Skip to Content

認証

Orizm CLI には 2 つの認証方式があります。

  • OAuth2 サインイン — ブラウザでサインインする方式。ローカルでの日常的な操作に向いています。
  • API キー — 環境変数 ORIZM_API_KEY に Developer API キーを設定する方式。ブラウザを開けない CI や自動化スクリプトに向いています。

両者は併存でき、CLI はコマンドごとに使う認証情報を自動で選びます(解決順序)。

OAuth2 でサインインする

orizm auth login

実行するとデフォルトブラウザが開き、サインインが求められます。完了すると、認証情報がローカルに保存され、以降のコマンドで自動的に使われます。サインインは 5 分以内 に完了する必要があります。ブラウザを自動で開けなかった場合は、ターミナルに表示される URL を手動で開いてください。

認証情報の保存場所

認証情報は次の場所に保存されます。

OS保存場所
macOS / Linux$XDG_CONFIG_HOME/orizm/auth.json(既定は ~/.config/orizm/auth.json
Windows%APPDATA%\orizm\auth.json

ファイルは本人のみが読み書きできる権限で作成されます。

サインイン状態を確認する

orizm auth status

サインインしているユーザーとセッションの有効期限を表示します(接続先や scope などの詳細は --json で確認できます)。サインインしていない場合は終了コード 1 で終了するため、orizm auth status || orizm auth login のような事前チェックに使えます。

orizm auth status--json を付けてもトークンなどの秘匿値は出力しません。表示するのはアカウント情報・有効期限・接続先・認証方式までです。

サインアウトする

orizm auth logout

ローカルの認証情報を破棄します。

セッションの更新

セッションの有効期限は CLI が自動で管理し、期限が近づくと自動的に更新します。そのため orizm auth login を頻繁に実行し直す必要はありません。セッションが失効していた場合は、再サインインを促すメッセージが表示されます。

API キーで認証する

ブラウザを開けない環境では、Developer API キーを環境変数で渡します。API キーは Orizm Console から取得します。

export ORIZM_API_KEY=<Developer API キー>

API キーが設定されていれば orizm auth login は不要です。orizm auth status は API キーで認証済みであることを表示します。

解決順序

各コマンドは、リクエストの直前に次の順序で認証情報を決めます。

  1. 現在の接続先に対する OAuth2 セッション があればそれを使う(ORIZM_API_KEY が設定されていてもこちらが優先されます)
  2. セッションが無く ORIZM_API_KEY が設定されていれば、API キーを使う
  3. どちらも無ければエラーで終了し、orizm auth login または ORIZM_API_KEY の設定を促す

OAuth2 セッションが残っていると、ORIZM_API_KEY を設定してもセッションが優先されます。API キーに切り替えたい場合は orizm auth logout でセッションを破棄してください。

接続先ごとのセッション

認証情報は接続先ごとに分けて保存されます。そのため ORIZM_BASE_URL を本番・ステージング・ローカルで切り替えると、対応するセッションが自動的に選ばれ、環境をまたいで認証情報が混ざりません。接続先の指定方法は 環境変数と接続先 を参照してください。

CI での認証

GitHub Actions では、API キーをシークレットから環境変数として渡します。

.github/workflows/example.yml
- run: pnpm exec orizm schema push --yes env: ORIZM_API_KEY: ${{ secrets.ORIZM_API_KEY }} ORIZM_BASE_URL: https://app.orizm.com ORIZM_PROJECT: my-project

CI ではプロジェクトのリンク(.orizm/project.json)の代わりに ORIZM_PROJECT で対象を指定すると簡潔です。詳しくは プロジェクトのリンク を参照してください。

Last updated on