Secret 與授權
任務版本可以宣告需要的 secret slot(secret_slot_declarations / secret_slot_names)。實際的 secret 值透過獨立的 secret API 綁定,值永遠不回傳、不記錄。
兩種 API
Secret binding(自己的任務綁值)
把一個 secret 值綁到 (consumer_scope, consumer_id, task_id, slot_name):
POST /secrets:建立值。POST /secrets/rotate:輪替值。POST /secrets/revoke:撤銷值。GET /secrets/{binding_id}:讀遮蔽後的 binding(只有has_provider_binding: bool、state、generation…,沒有值)。
規則:
- 需要 consumer-scope manager 權限。
- 建立/輪替/撤銷都要帶
Idempotency-Keyheader,缺了回 422idempotency_key_required。 - 值:1..64 KiB,不可含 NUL,永不回顯。
- secret adapter / pepper 不可用時回 503。
Secret approval(借用他人分享的任務)
當你執行的是別人分享的任務,且該任務需要 secret,擁有方要先核准借用方使用哪些 slot:
POST /secret-approvals(或別名POST /shared-task-secret-approvals):對精確的任務版本 digest核准一組slot_names。POST /secret-approvals/{approval_id}/revoke:撤銷。
規則:
SandboxSecretApprovalCreateRequest要帶task_version_digest(sha256:...)與risk_accepted: true(必須剛好是 true)。- digest 與已發布版本不符 → 409
task_version_digest_mismatch。 - 撤銷不改寫歷史,只作廢後續使用。
slot 命名
slot_name 有格式限制(slot pattern,1..128 字元)。任務版本回應只給 secret_slot_names(名稱清單),不給值或 provider 路徑。
確切請求/回應欄位見 API 端點目錄。
Last updated on