Skip to main content
failproofai auth login    # メール + ワンタイムコード
failproofai auth logout   # このセッションを無効化
failproofai auth whoami   # サインイン中のアカウントを表示
後方互換性のため、従来の --login / --logout / --whoami フラグ形式も引き続きエイリアスとして使用できます。 認証はオプトイン方式です。ポリシー、ダッシュボード、/audit ページ、その他すべてのローカル機能は、サインインの有無にかかわらず同じように動作します。ログイン機能が存在するのは、安定したアカウント情報を必要とする機能(現時点では再監査リマインダー、今後さらに追加予定)のためです。

サインインフロー

failproofai auth login
メールアドレスの入力を求め、そのアドレスに6桁のワンタイムコードを送信し、コードの入力を求めます。成功すると ~/.failproofai/auth.json(パーミッション 0600)が作成されます。同じセッションがアプリ内ダッシュボードにも反映され、/audit ページで [ set a reminder ] をクリックするとサインイン済みとして認識されます。 CLIを使用しないユーザー向けに、ダッシュボードの /audit ページでも同じフローをモーダルダイアログとして提供しています。

サインアウト

failproofai auth logout
サーバー上の現在のセッションを無効化し、~/.failproofai/auth.json を削除します。APIサーバーに接続できない場合でも、ローカルファイルは削除されます。ローカルでのサインアウト操作が常に優先されます。

アカウント確認

failproofai auth whoami
有効なセッションが存在する場合は <email> (<user uuid>) を表示して終了コード0で終了し、そうでない場合は not signed in を表示して終了コード1で終了します。アクセストークンの有効期限まで1分以内に近づいている場合は、バックグラウンドでサイレント更新を行います。

定期的な再監査リマインダー

/audit ページで [ set a reminder ] をクリックする(またはそのボタンが表示するモーダルからサインインする)と、ダッシュボードは ~/.failproofai/next-audit.json に補助ファイルを書き込みます:
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
このファイルは設定時のメールアドレスに紐付けられており、CLIセッションを別のアカウントに切り替えると、前のユーザーのリマインダーは非表示になります。デフォルトのオフセットは 7日間で、スケジューラー機能のリリース後に変更可能になります。auth.json と同様に 0600 パーミッションで作成されます。 ダッシュボードの /api/auth/reminder エンドポイントは GET(読み取り)、POST(設定・再スケジュール)、DELETE(削除)をサポートしており、有効なセッションが必要です。

~/.failproofai/auth.json の内容

{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
0600 パーミッション(オーナーのみ読み書き可能)で作成されます。アクセストークンは有効期限1時間のHS256 JWTです。リフレッシュトークンはサーバーが SHA-256(token) として保存する、不透明な256ビットのランダム文字列です。リフレッシュトークンの再利用はサーバー側で検出され、そのユーザーのすべてのセッションが無効化されます。

環境変数

変数デフォルト値用途
FAILPROOF_API_URLhttps://api.befailproof.aiAPIサーバーのベースURLを上書きします。セルフホスト型APIサーバーに対してローカル開発を行う際に便利です。
FAILPROOFAI_AUTH_DIR~/.failproofaiauth.json の保存場所を上書きします。主にテスト用途です。
全一覧については 環境変数 を参照してください。

トラブルシューティング

「APIサーバーに接続できませんでした」 — CLIが FAILPROOF_API_URL へのTCP接続を開けません。ネットワーク環境を確認するか、セルフホスト型APIサーバーを使用している場合は FAILPROOF_API_URL を設定してください。 「レート制限」 — 15分以内に同じメールアドレス(5回/メール)またはIPアドレス(20回/IP)からのログイン試行が多すぎる場合、または同じメールアドレスへの前回のリクエストから30秒間の再送信クールダウン中です。エラーメッセージには再試行可能になるまでの時間が秒単位で含まれます。 コードが拒否された — OTPが誤っているか、期限切れか、または5回の入力ミスによるロックアウトが発生しています。failproofai auth login を再実行して新しいコードをリクエストしてください。