Handlers
Workflow 与 Queue
组合命令、延迟执行和失败恢复。
Workflow
Workflow 顺序执行配置声明的步骤,并共享总超时。配置加载时会验证所有目标存在,并拒绝直接循环和间接循环;运行时仍保留调用轨迹与最大深度守卫。
handler: workflow
config:
steps:
- command: build
params:
ref: "{{ref}}"
- command: deploy
params:
env: "{{env}}"步骤参数不是“临时添加的新参数”,而是目标 Command 已声明参数的显式映射。params 的 key 必须是目标 Command 的参数名,value 可以是 {{workflow_param}},也可以是固定值。未映射的参数不会传给目标命令。
直接递归、间接循环、空步骤、超过最大步骤数或最大深度都会被拒绝。配置加载还会检查步骤参数属于目标 Command、必填参数完整、模板来源存在且类型匹配;映射到敏感目标的来源参数也必须标记为敏感。Workflow 按顺序执行,第一步失败后停止,后续步骤不会运行;错误审计只记录步骤序号、Command 名称和安全分类。
Queue
handler: queue
config:
command: deploy
max_attempts: 3Queue 使用 SQLite lease。Worker 崩溃后,过期 lease 可以被重新 claim;耗尽重试后进入 dead 状态。
Queue Command 的参数必须与目标 Command 同名同类型,并覆盖目标的必填参数。Queue 不能声明敏感参数:延迟执行依赖参数持久化,MailRelay 不会以 [REDACTED] 冒充可执行值,也不会在 v0.1 中引入隐式密钥存储。
dependency 等外部依赖故障按配置退避重试;unknown_command、invalid_parameters 和 policy 属于终止错误,会直接进入 dead 状态,避免无意义重试。
mailrelay status
mailrelay replay queue 42修复配置或依赖后显式 replay。重放会重置尝试计数和 lease,但保留既有运行事件与审计记录。