CLI:auth
CLI:auth
Section titled “CLI:auth”先读 CLI 总览:会话/目录、退出约定、角色边界、合成占位 ID 和执行授权规则在其中统一定义。本页逐叶补充例外;以下命令不是按顺序执行的脚本。
- viat auth login
- viat auth logout
- viat auth token create
- viat auth token list
- viat auth token revoke
- viat auth whoami
viat auth login
Section titled “viat auth login”前提与权限。 无需已有平台登录或选择项目;仍须本地文件/进程权限及下述命令专属前提。 隔离实例上的现有平台账号。示例密码仅演示语法,不是产品预置凭据。OIDC 还需配置平台 OIDC 提供方并能打开浏览器。
Usage: viat auth login [OPTIONS] --server <SERVER>命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
email: --email | String, 1, Set | 否;条件必填见行为; Clap 无显式默认 | — | 冲突 ID:oidc |
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
oidc: --oidc | String, 1, Set | 否;条件必填见行为; Clap 无显式默认 | — | 冲突 ID:email, password; 原始帮助:Use OIDC SSO with the named platform provider |
password: --password | String, 1, Set | 否;条件必填见行为; Clap 无显式默认 | — | 冲突 ID:oidc |
server: --server | String, 1, Set | 是; Clap 无显式默认 | — | — |
totp: --totp | String, 1, Set | 否;条件必填见行为; Clap 无显式默认 | — | 冲突 ID:oidc; 原始帮助:Second-factor code for an account with two-factor authentication. Prompted for on the terminal when omitted; needed on the command line only when stdin is not a terminal |
Clap 参数组(literal metadata):{"arguments":["email","oidc","password","server","totp"],"id":"Login","multiple":true,"required":false}
输入、行为与副作用。 密码模式运行时同时需要 —email 和 —password;—oidc 选择浏览器登录。密码 MFA 使用 —totp 或提示输入,同票最多五次。要求注册 MFA 时必须在控制台完成。OIDC 打印浏览器 URL,每 2 秒轮询、最多 5 分钟。
实际输出与退出。 stdout: logged in as <email>。将 access/refresh token 保存到解析出的 .viat/config.yaml;不选择项目。同服务端复用祖先会话;换服务端会在 CWD 新建会话,除非显式 VIAT_CONFIG_DIR。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth login --server http://127.0.0.1:28080 --email operator@example.invalid --password demo-only-not-a-real-password失败处理、验证与清理。 凭据/MFA 错误、浏览器流程超时或要求注册均退出 1。核对 URL 并在控制台注册,不要反复重试(有速率限制)。用 auth logout 清理本地登录;保护 config.yaml,勿把真实密码写入历史。
viat auth logout
Section titled “viat auth logout”前提与权限。 无需已有平台登录或选择项目;仍须本地文件/进程权限及下述命令专属前提。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。
Usage: viat auth logout命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
输入、行为与副作用。 清除配置中的旧 token、access/refresh token、刷新到期时间和 current_project。实现不调用服务端撤销,并保留 server_url 与 project_token。
实际输出与退出。 stdout: logged out;配置保存成功即退出 0,不需要在线服务端。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth logout失败处理、验证与清理。 保存失败退出 1;修复文件权限。真正撤销会话/PAT 应使用服务端账号管理;若不应保留 project_token,请从受保护本地配置中移除。恢复使用需重新登录并选择项目。
viat auth token create
Section titled “viat auth token create”前提与权限。 平台登录会话,不接受个人访问令牌(PAT);无需选择项目。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。
Usage: viat auth token create [OPTIONS] --name <NAME>命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
json: --json | bool, 0, SetTrue | 否;条件必填见行为; false | — | — |
name: --name | String, 1, Set | 是; Clap 无显式默认 | — | 原始帮助:Human label, max 64 chars, unique per user |
project: --project | String, 1, Set | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Restrict to a single project |
ttl: --ttl | String, 1, Set | 否;条件必填见行为; Clap 无显式默认;运行时:30d;never → 不过期 | — | 原始帮助:Expiry duration, e.g. 30d, 12h, 7d, never. Default 30d |
Clap 参数组(literal metadata):{"arguments":["json","name","project","ttl"],"id":"Create","multiple":true,"required":false}
输入、行为与副作用。 POST /auth/tokens;—project 限定项目,省略表示用户可访问的所有项目。运行时 —ttl 默认 30d,接受 12h 等 humantime 时长;—ttl never 发送零表示不过期。时长截断到整秒,避免不足一秒被转为零/不过期。权限仍来自账号:PAT 不授予角色。 名称须 1–64 字节,且同账号内唯一;scoped 项目必须已有成员身份。
实际输出与退出。 文本打印元数据及仅显示一次的 Secret;—json 返回含 secret 的响应。须安全保存;成功退出 0。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth token create --name demo-ci --ttl 12h失败处理、验证与清理。 TTL/名称/范围无效或用 PAT 管理令牌会失败。若输出丢失,请按 ID 撤销重建;auth token list 无法恢复秘密。
viat auth token list
Section titled “viat auth token list”前提与权限。 平台登录会话,不接受个人访问令牌(PAT);无需选择项目。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。
Usage: viat auth token list [OPTIONS]命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
json: --json | bool, 0, SetTrue | 否;条件必填见行为; false | — | — |
Clap 参数组(literal metadata):{"arguments":["json"],"id":"List","multiple":true,"required":false}
输入、行为与副作用。 GET /auth/tokens,仅列当前平台账号,不是其他账号或 api_key authorizer 的 key。
实际输出与退出。 表列名称、项目、前缀、创建/到期/最后使用时间及状态;—json 返回 items 对象,无秘密。文本状态为尽力判断(expired 比较不是可靠的当前时间判断);应查看到期时间。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth token list --json失败处理、验证与清理。 PAT 认证被拒绝;使用登录会话。除常规刷新持久化外只读,无需清理。
viat auth token revoke
Section titled “viat auth token revoke”前提与权限。 平台登录会话,不接受个人访问令牌(PAT);无需选择项目。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。
Usage: viat auth token revoke <ID_OR_NAME>命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
id_or_name: <ID_OR_NAME> (#1) | String, 1, Set | 是; Clap 无显式默认 | — | — |
Clap 参数组(literal metadata):{"arguments":["id_or_name"],"id":"Revoke","multiple":true,"required":false}
输入、行为与副作用。 UUID 直接使用;其他字符串按未撤销 token 名称解析。零匹配或重名均拒绝,不随意选择。DELETE /auth/tokens/{id}。
实际输出与退出。 stdout: Revoked token: <id-or-name>;成功 0。秘密不再授权;撤销不是本地退出。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth token revoke 00000000-0000-4000-8000-000000000001失败处理、验证与清理。 重名时 list 并使用 ID。无法撤销此操作:创建替代 token 并更新调用方。用 auth token list —json 核查。
viat auth whoami
Section titled “viat auth whoami”前提与权限。 已配置服务端并完成平台登录;无需选择项目。 以下合成名称仅用于隔离演示项目;标识符请替换成该项目 list/create 返回的值。
Usage: viat auth whoami命令别名: 无。
| 参数 ID / 完整拼写 | 类型、消费值数量、action | 必填 / 默认 | 允许值 | 冲突、别名、解析与原始 Clap 帮助 |
|---|---|---|---|---|
help: --help / -h | String, 0, Help | 否;条件必填见行为; Clap 无显式默认 | — | 原始帮助:Print help |
输入、行为与副作用。 以控制台凭据 GET /auth/whoami;不是查询项目终端用户身份。
实际输出与退出。 stdout 仅输出已登录邮箱;成功退出 0。 除本节例外外,正常完成为 0,参数/文件/HTTP/运行错误为非零(解析错误通常 2,运行错误通常 1)。
合成调用示例(只校验语法,不执行)。
viat auth whoami失败处理、验证与清理。 会话过期且无法刷新时退出 1:重新登录再查。无项目变更,无需清理。
实现核对依据
Section titled “实现核对依据”语法来自固定 Clap 合同与 main.rs;行为/权限核对以下源文件,路径相对产品仓库根。
crates/viat-cli/src/commands/auth.rscrates/viat-cli/src/commands/auth_token.rscrates/viat-api/src/handlers/auth_tokens.rs