Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI 命令行工具完整参考

Portico CLI (src/cli/main.ts) 是系统运维与 Agent 自动化的核心工具。


全局通用规范

  • 执行方式:通过 deno task cli -- <subcommand> [args] 或独立二进制 dist/portico <subcommand> [args]
  • 输出格式:标准输出(stdout)严格输出单行机读 JSON:
    • 成功:{"ok": true, "data": ...}
    • 失败:{"ok": false, "error": {"code": "...", "message": "..."}}
  • 退出状态码:成功退出码为 0;发生业务拦截或参数错误退出码为 1

错误代码字典 (Error Codes)

错误代码 (Error Code)触发场景说明
USAGE命令行参数缺失、参数格式错误或单独传入了伪造的 --actor-* 参数。
FORBIDDEN会话主体无权执行该操作(例如 Reader 尝试登记服务、维护者尝试审批公开)。
UNAUTHENTICATED会话令牌无效、已过期或在 sessions.json 中不存在。
NOT_FOUND指定的服务 ID 或主体 ID 在数据存储中不存在。
INVALID_STATE当前服务的生命周期状态不满足该操作的前提条件(例如对非公开服务执行撤回)。
INVALID_INPUT传入的 JSON 数据违反 Schema 约束(如缺少必填字段、出现未知字段)。
SELF_APPROVAL审计者尝试审批由自己登记或维护的服务公开申请。
PUBLIC_REQUIRES_APPROVAL试图在 catalog register 中绕过审批直接声明公开。

子命令手册

1. identity 身份与会话管理

# 授予主体角色
portico identity grant --identities <path> [--sessions <path> --session <token>] --id <id> --kind <human|agent> --role <auditor|maintainer|reader> [--email <address>]

# 注销主体
portico identity revoke --identities <path> --sessions <path> --session <token> --id <id>

# 签发一次性登录凭证
portico identity credential issue --identities <path> --sessions <path> [--session <token>] --id <id>

# 作废凭证与活跃会话
portico identity credential revoke --identities <path> --sessions <path> --session <token> --id <id>

# 凭证登录换取 Session
portico identity login --identities <path> --sessions <path> --id <id> --token <pct1_...>

# 退出登录作废当前 Session
portico identity logout --sessions <path> --session <pst1_...>

# 查看当前会话所属身份与角色
portico identity whoami --identities <path> --sessions <path> --session <pst1_...>

# 列出追加式授权轨迹(仅人类审计者)
portico identity grants --identities <path> --sessions <path> --session <token>

# 列出追加式身份撤回轨迹(仅人类审计者)
portico identity revokes --identities <path> --sessions <path> --session <token>

# 列出登录会话轨迹(仅人类审计者;不含令牌或哈希)
portico identity sessions --identities <path> --sessions <path> --session <token>

# 列出登录凭证轨迹(仅人类审计者;不含令牌或哈希)
portico identity credentials --identities <path> --sessions <path> --session <token>

# 列出追加式登录凭证作废轨迹(仅人类审计者;不含令牌或哈希)
portico identity credential revokes --identities <path> --sessions <path> --session <token>

2. catalog 目录与发布管理

# 内部登记新服务表面
portico catalog register --catalog <path> --identities <path> --sessions <path> --session <token> --input <record.json>

# 登记本地草稿
portico catalog draft --catalog <path> --identities <path> --sessions <path> --session <token> --input <record.json>

# 正式发布 (内部或公开候选)
portico catalog publish --catalog <path> --identities <path> --sessions <path> --session <token> --id <id> --visibility <internal|public>

# 更新受治理表面字段 (仅限 draft/internal/rejected)
portico catalog update --catalog <path> --identities <path> --sessions <path> --session <token> --id <id> --input <record.json>

# 审批公开申请 (仅限独立人类审计者)
portico catalog approve --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 驳回公开申请 (仅限独立人类审计者)
portico catalog reject --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 撤回已公开服务至内部 (仅限人类审计者)
portico catalog withdraw --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 列出公开边界审批记录(通过 / 拒绝 / 撤回);匿名为空列表
portico catalog approvals --catalog <path> --identities <path> --sessions <path> --session <token>

# 列表查询可见服务
portico catalog list --catalog <path> [--identities <path> --sessions <path> --session <token>]

# 查询服务详情
portico catalog get --catalog <path> [--identities <path> --sessions <path> --session <token>] --id <id>

3. 渠道与网关命令

# 查询 MCP 渠道服务及连接信息
portico mcp list --catalog <path> --identities <path> --sessions <path> --session <token>
portico mcp describe --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 查询 Web 渠道服务及直连链接
portico web list --catalog <path> --identities <path> --sessions <path> --session <token>
portico web describe --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 查询 CLI 渠道服务及包坐标
portico cli list --catalog <path> --identities <path> --sessions <path> --session <token>
portico cli describe --catalog <path> --identities <path> --sessions <path> --session <token> --id <id>

# 网关准入鉴权与路由获取
portico gateway authorize --catalog <path> --identities <path> --sessions <path> --audit <audit.json> --session <token> --id <id>

# 查询网关访问审计流水
portico gateway audit --identities <path> --sessions <path> --audit <audit.json> --session <token>

4. 审计与门户组件盒命令

# 查询系统全局聚合审计时间线
portico audit list --catalog <path> --identities <path> --sessions <path> --session <token> [--limit <n>]

# 设置自定义门户卡片配置
portico page set --page <path> --catalog <path> --identities <path> --sessions <path> --session <token> --input <page.json>

# 获取当前门户排布配置
portico page get --page <path> --catalog <path> --identities <path> --sessions <path> --session <token>