Organization と workspace
Subako のあらゆるものが属する 2 つのスコープ — 誰に請求されるか、そして作業がどこにあるか。
Subako のスコープはちょうど 2 つで、すべてのリソースはそのどちらかに属します。
Organization はアイデンティティと請求の境界です。handle、メンバーの集まり、plan とクレジット残高を持ちます。Credential はちょうどひとつの organization に対して認証します。Organization 名を取るコマンドがひとつもないのはそのためで、どの profile として操作しているかですでに決まっているからです。
Workspace は作業が置かれる場所です。Agent、skill、vault、model provider、API key、session はいずれもそのひとつに属し、workspace をまたぐものはありません。多くのチームは環境ごとに 1 つ — staging、production — か、プロダクトの面ごとに 1 つの workspace を使います。
Role
メンバーシップは各スコープで role を持ち、両者は独立しています。Organization の admin であることが、workspace への参加を意味するわけではありません。
| Role | Organization では | Workspace では |
|---|---|---|
admin |
メンバー、招待、請求、workspace を管理する | メンバーと API key を管理する。加えて member にできることすべて |
member |
Organization に所属し、追加された workspace に到達できる | Workspace のリソースを読み、実行する |
Organization の最後の admin を降格させることはできません。
参加する
あなたがアドレスを招待し、そのアドレスの持ち主が organization の ID プロバイダー経由でサインインして参加します。招待はアドレスに紐づいているので、送った相手だけが参加でき、他の誰も参加できません。
subako org invite --email dev@acme.example --role member
subako org invitations
まだ受諾されていない招待は取り消せます。すでに受諾されたものはメンバーシップなので、代わりにメンバーを削除します。
subako org members
subako org set-role <user-id> --role admin
subako org remove-member <user-id>
メンバーを削除すると、その organization 内の workspace メンバーシップも外れます。そのメンバーが発行した API key はそのまま残ります — キーは workspace のマシン用 credential であって、作成者の権限を委譲したものではないからです。
Workspace を選ぶ
CLI は選択した workspace を credential profile に記録するので、通常のコマンドに workspace フラグは付きません。
subako workspace list # * marks the selected one
subako workspace use production
Workspace に誰かを追加するには、その人がすでに organization のメンバーである必要があります。
subako workspace add-member <user-id> --role member
subako workspace members
Profile
1 台のマシンで複数のログインが必要になることはよくあります — 2 つの organization、あるいはステージングと本番のサーバー。subako login はそのたびに profile を保存し、コマンドは --profile で指定しない限り現在の profile として動作します。
subako profile list
subako profile use staging
Credential は ~/.config/subako/credentials.json、または SUBAKO_CREDENTIALS_FILE が指す場所に保存されます。--credentials-file はその両方を上書きし、これが CI 用のフックになります。