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

サインインフロー

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

サインアウト

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

アカウント確認

有効なセッションが存在する場合は <メールアドレス> (<ユーザーUUID>) を表示してコード0で終了し、サインインしていない場合は not signed in を表示してコード1で終了します。アクセストークンの有効期限が1分以内に迫っている場合は、バックグラウンドで自動的に更新されます。

再監査リマインダーの設定

/audit ページで [ set a reminder ] をクリックする(またはボタンが表示するモーダルからサインインする)と、ダッシュボードが ~/.failproofai/next-audit.json に小さなファイルを作成します。
このファイルは設定したメールアドレスにひもづいています。CLIセッションを別のアカウントに切り替えると、以前のユーザーのリマインダーは表示されなくなります。デフォルトの期間は7日間で、スケジューラーが実装された後に設定可能になる予定です。auth.json と同様に 0600 パーミッションで作成されます。 ダッシュボードの /api/auth/reminder エンドポイントは GET(読み取り)、POST(設定・再スケジュール)、DELETE(削除)をサポートし、有効なセッションが必要です。

~/.failproofai/auth.json の内容

0600 パーミッション(オーナーのみ読み書き可能)で作成されます。アクセストークンは有効期限1時間のHS256 JWTで、リフレッシュトークンはサーバーが SHA-256(token) として保存する不透明な256ビットのランダム文字列です。リフレッシュトークンの使い回しはサーバー側で検出され、そのユーザーのすべてのセッションが無効化されます。

環境変数

完全な一覧については 環境変数 を参照してください。

トラブルシューティング

「Could not reach the api-server」 — CLIが FAILPROOF_API_URL へのTCP接続を確立できません。ネットワーク接続を確認するか、セルフホスト型APIサーバーを使用している場合は FAILPROOF_API_URL を設定してください。 「Rate limited」 — 15分間のウィンドウ内で、同一メールアドレスからのログイン試行が上限(メール5回、IP20回)を超えたか、同一メールアドレスへの再送信クールダウン(30秒)中です。エラーメッセージには、秒単位の再試行可能時間が含まれます。 コードが拒否された — OTPが誤っているか、有効期限が切れているか、5回の誤入力によるロックアウトが発生しています。failproofai auth login を再実行して、新しいコードを取得してください。