Skip to Content
概念Secret 與授權

Secret 與授權

任務版本可以宣告需要的 secret slotsecret_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: boolstategeneration…,沒有值)。

規則:

  • 需要 consumer-scope manager 權限。
  • 建立/輪替/撤銷都要帶 Idempotency-Key header,缺了回 422 idempotency_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_digestsha256:...)與 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