sandbox
coscli の sandbox 機能はコマンドの実行権限を制限します。 AI エージェントや CI に安全なコマンドだけを許可したいときに使います。
コマンドの指定形式
noun.verb 形式でコマンドを識別します。
page.list、page.delete、auth.login のように指定します。
ワイルドカード:
* または all — 全コマンドを一括指定
page.* または page — page グループ全体
CLI フラグによる制限
code:bash
# 読み取り系だけ許可する
cos --enable-commands "page.list,page.get,page.text,search,project.list" page list --project myproject
# 削除だけ禁止する
cos --disable-commands "page.delete" page list --project myproject
# enable で絞ってから disable でさらに制限
cos --enable-commands "page.*" --disable-commands "page.delete,page.edit" page list --project myproject
環境変数による設定
code:bash
export COS_ENABLE_COMMANDS="page.list,page.get,page.text,search"
export COS_DISABLE_COMMANDS="page.delete"
cos page list --project myproject
設定ファイルによる永続的な制限
code:json5
// ~/.config/coscli/config.json5
{
projects: {
"myproject": {
permission: "read"
}
}
}
権限プリセット
permission に以下のいずれかを指定するとコマンドグループを一括制御できます。
"readwrite" — 全コマンド許可
"none" — 全コマンド拒否
優先順位 (高い順)
1. CLI フラグ (--enable-commands / --disable-commands)
2. 環境変数 (COS_ENABLE_COMMANDS / COS_DISABLE_COMMANDS)
3. プロジェクト固有設定 (projects.<name>.permission / enableCommands / disableCommands)
4. defaultPermission (プロジェクト名が解決できる場合のみ有効)
5. 全許可 (デフォルト)
config.disableCommands は 3〜5 の後に必ず重ねがけされます (絶対禁止リスト)。
⚠️ CLI / 環境変数が指定された場合、config の設定は完全に無視されます。
違反時の挙動
code:bash
cos --enable-commands "page.list" page delete "タイトル" --project myproject
# stderr: denied page.delete is disabled by policy # exit 7
関連ページ