Skip to content

CLI / Auth model

Takos CLI は task-oriented です。 HTTP verb をそのまま露出するのではなく、domain ごとの task を前面に出します。

認証

takos login

takos login はブラウザリダイレクト方式で認証します。

  1. CLI がローカルに一時 HTTP サーバーを起動する
  2. ブラウザで {apiUrl}/auth/cli?callback=...&state=... を開く
  3. ユーザーがブラウザ上で認証を完了する
  4. コールバックでトークンを受け取り、~/.takos/credentials.json に保存する
bash
takos login
takos whoami
takos logout

OAuth Device Flow との違い

OAuth 仕様 で文書化されている Device Authorization Grant はサードパーティアプリ向けです。takos login はブラウザコールバック方式を使い、Device Flow は使いません。

認証モードの優先順位

CLI は次の順序で認証情報を解決します。

  1. 環境変数TAKOS_SESSION_ID または TAKOS_TOKEN が設定されていればそれを使う
  2. セッションファイル — カレントディレクトリから親方向に .takos-session ファイルを探索する
  3. ユーザー設定~/.takos/credentials.json を読む(takos login で保存される)

container mode

Takos session container 内では、環境変数による自動認証が使えます。

環境変数説明
TAKOS_SESSION_IDセッション ID による認証
TAKOS_TOKENトークンによる認証 (TAKOS_SESSION_ID の代替)
TAKOS_WORKSPACE_IDデフォルト workspace の指定
TAKOS_API_URLAPI エンドポイントの指定

endpoint 切り替え

endpoint は preset 名またはカスタム URL で切り替えられます。

bash
takos endpoint use prod          # https://takos.jp
takos endpoint use staging       # https://test.takos.jp
takos endpoint use local         # http://localhost:8787
takos endpoint use https://custom.example.com
takos endpoint show
presetURL
prod / productionhttps://takos.jp
staging / testhttps://test.takos.jp
localhttp://localhost:8787

domain + task verbs

Takos CLI では api 直叩きではなく、domain + task verbs を使います。

例:

bash
takos workspace list
takos repo create --body '{"name":"my-repo"}'
takos deploy --space SPACE_ID --repo REPO_ID --ref main
takos run follow RUN_ID --transport ws

共通 task verb

すべての domain で共通して使える verb:

verbHTTP method説明
listGETリソースの一覧取得
viewGETリソースの詳細取得
createPOSTリソースの作成
replacePUTリソースの置き換え
updatePATCHリソースの部分更新
removeDELETEリソースの削除
probeHEADリソースの存在確認
describeOPTIONS利用可能な操作の確認

stream 対応 domain は追加で watchfollow を持ちます。

domain の詳細は CLI コマンドリファレンス を参照してください。

removed legacy surface

Takos CLI は次を intentionally 露出しません。

  • takos api ...
  • 直接的な HTTP verb style subcommands
  • 古い legacy command group

deploy CLI

takos deploy は repo-local .takos/app.yml を前提に deploy します。

bash
takos deploy --space SPACE_ID --repo REPO_ID --ref main
takos deploy validate
takos deploy status --space SPACE_ID
takos deploy status APP_DEPLOYMENT_ID --space SPACE_ID
takos deploy rollback APP_DEPLOYMENT_ID --space SPACE_ID
flagrequireddescription
--repoyesrepo ID
--refnobranch / tag / commit (default: current git branch or main)
--ref-typenobranch / tag / commit (default: branch)
--spacenospace ID (default: config の current space)
--approve-oauth-auto-envnoOAuth auto env 変更の自動承認
--approve-source-changenosource provenance 変更の自動承認
--jsonnoJSON 出力

takos deploy validate は local manifest validation のみ行い、API は呼びません。