每晚备份、发布流水线或定时同步,不应直接使用配置者的个人凭证登录。Sudomimus 可以为固定流程创建归属于账户的 Automation 身份。它有独立的名称、凭证和登录记录。暂停或撤销这个身份,不会改变你的个人登录方式。
产品概览见 Agent 与自动化。
如果程序会读取上下文、自己选择工具和下一步,则应使用 Agent。这两类身份都不会自动获得应用内的业务权限。任务登录后可以做什么,仍由你的应用决定。
1. 按任务和环境创建身份
在 With 门户打开程序化访问 → 自动化,选择创建。名称可以写为“生产环境每晚备份”。在说明中记录触发器、运行位置和负责团队。测试环境或另一条流水线应使用另一个 Automation。
Automation 归你的账户所有,不是第二个用户账户。你可以独立管理它的凭证和会话。
2. 选择并限制凭证
最便捷的方式是为该 Automation 和目标应用创建访问密钥。立即将密钥存入受保护的位置;门户只会在创建或同一请求的准确重试中显示秘密部分。凭证应存放在密钥管理服务或受保护的运行环境,不能写进仓库或任务定义。
如果运行环境已有可靠的 Ed25519 私钥存储和签名能力,可改为注册公钥。只有公钥会提交给 Sudomimus。将公钥限制到目标应用或扇区;创建后不能修改覆盖范围。
生产与测试环境分别使用凭证。凭证范围只限制任务能向哪些应用证明身份,不会赋予这些应用中的数据或操作权限。
3. 在目标应用允许 Automation 登录
应用必须在第一层规则中明确允许与凭证相符的 Automation 方法。允许账户使用 AccessKey 的规则,不会自动允许 Automation 使用 AccessKey。
| 凭证 | 所需的第一层方法 |
|---|---|
| Automation AccessKey | AUTOMATION_ACCESS_KEY_DIRECT |
| Automation Ed25519 公钥 | AUTOMATION_PUBLIC_KEY_DIRECT |
还需配置允许所属账户的第二层 realize 规则,以及第三层 DIRECT_ISSUE 返回规则,然后启用应用。这些规则默认拒绝;只有凭证并不足以登录。
4. 使用凭证取得会话
使用 AccessKey 时,任务从受保护的服务端环境调用 Native 直发接口。示例通过环境变量读取秘密,避免把秘密写进源码:
const response = await fetch( "https://native-api.sudomimus.com/direct-issue/access-key", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ applicationAnchor: process.env.SUDOMIMUS_APPLICATION_ANCHOR, accessKeyIdentifier: process.env.SUDOMIMUS_ACCESS_KEY_ID, accessKeySecret: process.env.SUDOMIMUS_ACCESS_KEY_SECRET, }), },);
if (!response.ok) { throw new Error(`Automation sign-in failed (${response.status})`);}
const { accessToken, refreshToken } = await response.json();按 Native 和 Session 文档校验令牌并保护 Refresh Token。不要将凭证或令牌写入任务日志。如果缺少必需的信息或用户授权,Native 可能返回需要浏览器处理的 Errand,而不是令牌;任务应报告需要人工处理,不能无限重试。
Automation 的 Access Token 通过扇区范围内的 sub 标识所属账户,并在 act.sub 中携带独立的执行者标识。应用必须校验令牌类型,并自行决定任务的业务权限。
5. 轮换和停用任务
先创建替代凭证、更新运行环境,并确认新凭证能登录,再撤销旧凭证。调查问题时可以暂停 Automation。恢复前,检查调度器是否会补跑旧任务。任务永久停用时可撤销 Automation;该操作无法撤回。
门户操作和生命周期说明见管理自动化。如果每次登录时都有人可以在浏览器中确认,发放长期秘密前可先比较设备授权流程。