跳转到内容

CLI:apikey

先读 CLI 总览:会话/目录、退出约定、角色边界、合成占位 ID 和执行授权规则在其中统一定义。本页逐叶补充例外;以下命令不是按顺序执行的脚本。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin/Developer。Operator 不可用,包括只读形式。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat apikey create [OPTIONS] --user <USER> --name <NAME> <AUTHORIZER>

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
authorizer: <AUTHORIZER> (#1)String, 1, Set是; Clap 无显式默认——
expires: --expiresString, 1, Set否;条件必填见行为; Clap 无显式默认——
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
name: --nameString, 1, Set是; Clap 无显式默认——
user: --userString, 1, Set是; Clap 无显式默认——

Clap 参数组(literal metadata):{"arguments":["authorizer","expires","name","user"],"id":"Create","multiple":true,"required":false}

输入、行为与副作用。 先按 —user 精确查项目用户 identity,再在 api_key 认证器下签发 key。—expires 是绝对服务端时间戳,不是 humantime TTL。不是平台 PAT。

实际输出与退出。 stdout 仅完整一次性 vsk_<key_id>.<secret>;stderr 为行 UUID/key_id/last4 摘要。秘密不能读回。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat apikey create demo_keys --user demo_user --name demo-client

失败处理、验证与清理。 身份不存在/认证器类型错/到期无效失败。安全保存,勿贴文档;清理用 list 的行 UUID revoke。输出丢失需撤销重签。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin/Developer。Operator 不可用,包括只读形式。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat apikey list <AUTHORIZER>

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
authorizer: <AUTHORIZER> (#1)String, 1, Set是; Clap 无显式默认——
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help

Clap 参数组(literal metadata):{"arguments":["authorizer"],"id":"List","multiple":true,"required":false}

输入、行为与副作用。 列此 api_key 认证器下 key 元数据,不是账号 PAT。

实际输出与退出。 文本含 UUID、短 key_id、name、last4、revoked/active、created。无秘密,无 —json。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat apikey list demo_keys

失败处理、验证与清理。 认证器类型错失败。revoke 用首列 UUID,不是短 key_id。只读,无需清理。

前提与权限。 平台登录、已选择项目,有效项目角色为 Owner/Admin/Developer。Operator 不可用,包括只读形式。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。

Usage: viat apikey revoke <AUTHORIZER> <KEY_ID>

命令别名: 无。

参数 ID / 完整拼写类型、消费值数量、action必填 / 默认允许值冲突、别名、解析与原始 Clap 帮助
authorizer: <AUTHORIZER> (#1)String, 1, Set是; Clap 无显式默认——
help: --help / -hString, 0, Help否;条件必填见行为; Clap 无显式默认—原始帮助:Print help
key_id: <KEY_ID> (#2)String, 1, Set是; Clap 无显式默认——

Clap 参数组(literal metadata):{"arguments":["authorizer","key_id"],"id":"Revoke","multiple":true,"required":false}

输入、行为与副作用。 撤销指定认证器的一个 key 行。位置参数名 key_id 易误导:必须是行 UUID,不是 token 中 12 字符 key_id。

实际输出与退出。 stdout: revoked api_key id=<UUID> at=<time>。后续此 key 认证被拒绝。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。

合成调用示例(只校验语法,不执行)。

终端窗口
viat apikey revoke demo_keys 00000000-0000-4000-8000-000000000001

失败处理、验证与清理。 apikey list 获取 UUID。无恢复撤销 CLI;重签并更新客户端,list 核查 revoked 时间/状态。

语法来自固定 Clap 合同与 main.rs;行为/权限核对以下源文件,路径相对产品仓库根。

  • crates/viat-cli/src/commands/apikey.rs
  • crates/viat-api/src/handlers/api_keys.rs