Skip to Content
參考資料列舉與狀態

列舉與狀態

資料庫 CHECK 約束是權威字彙;API 層的 Literal 與列舉鏡射它們(有一處是超集 — 見票證狀態)。

資料庫 CHECK 字彙

集合值
Worker statusdraft、active、paused
Version stateuploading、ready、deploy_pending、deploying、deployed、superseded、failed、uncertain
Outbox operationdeploy、delete、artifact_cleanup、control_audit
Outbox statuspending、leased、completed、failed、cancelled、uncertain
Version languagejavascript、typescript
Maintenance state (edge_worker_maintenance.state)idle、active

注意:

  • uploading 是 fail-closed 的資料庫預設;V2 提交路由一律插入 ready。透過 API 你永遠不該觀察到 uploading。
  • delete 保留在 CHECK 裡但沒有任何存活的程式路徑。
  • Worker paused 表示部署結算不確定,或部署已越過 provider 邊界而仍在進行中;它會擋掉新的呼叫准入(見版本與部署)。
  • 維護表只由地端 provider 讀寫(每個地端部署範圍一列);在雲端,它存在但從不被讀取。見資料庫模型。

原始碼語言

EdgeWorkerLanguage:javascript、typescript — 恰好兩個成員;其他值(例如 python)在解析時就被拒絕。

部署票證狀態(API 視圖)

EdgeWorkerDeploymentStatus.status 是資料庫 outbox 狀態的超集:

submitting | pending | leased | deploying | completed | failed | cancelled | uncertain
  • submitting 與 deploying 是 API 層合成的,不是合法的資料庫 outbox 狀態:submitting 是路由在耐久列對輪詢者可見之前回報的值,deploying 反映 outbox 列為 leased 時的版本狀態。
  • operation 恆為 "deploy"。
  • 回應中 error_code 的 "" 會正規化為 None。
  • 終態:completed、failed、cancelled。非終態:其餘 — 繼續輪詢。uncertain 不是終態:它表示 Worker 維持暫停,直到調解結案。(下方 outbox 常數 TERMINAL_STATUSES 是另一個任務端的集合,其中包含 uncertain。)
  • 此字彙在 5.21.0 沒有變動。在地端,被備份圍欄暫留的部署會顯示為 pending,並帶 error_code: "edge_host_fenced"。

Outbox 內部

常數/列舉值
DeployStatuspending、leased、completed、failed、cancelled、uncertain
TERMINAL_STATUSEScompleted、failed、cancelled、uncertain — 自動處理在此停止的狀態(租約邏輯、部署任務與控制面稽核結算都會略過這種列;uncertain 的部署列只有公司修復會重新開啟);不是上方 API 層的終態集合
ADMISSION_RELEASE_STATUSEScompleted、failed、cancelled — 其他狀態(含 uncertain)的列都會擋掉該 Worker 的新部署准入
ADMISSION_FENCING_VERSION_STATESdeploy_pending、deploying、uncertain — 處於這些狀態之一的版本會擋掉新的部署准入
LeaseDispositionacquired、terminal、inflight、not_due
事件種類deploy、artifact_cleanup、control_audit
CONTROL_WORKER_RETIREDworker_retired — 因其 Worker 已退役而結算的控制面稽核列所帶的 last_error_code(見稽核)
MAX_DEPLOYMENT_SEQUENCE9_223_372_036_854_775_807(BigInteger 上限;耗盡 → 部署衝突)

控制面稽核操作

control_audit outbox 指令的 operation;每個操作各對應一個稽核動作(四個 revoke/delete 操作對應已套用的動作,或在沒有任何變更時對應 *_noop 動作),見稽核:

群組操作
Worker 層級存取政策access_policy.replace、access_policy.api_key.rotate、access_policy.api_key.revoke
執行期設定runtime_config.replace、runtime_config.delete
操作設定operation_settings.replace、operation_settings.api_key.rotate、operation_settings.api_key.revoke
Worker 機密secrets.put、secrets.delete
服務帳號憑證service_accounts.credentials.put、service_accounts.credentials.delete

Release 功能與 provider

功能關卡以數值比較 release 所記錄的 builder policy department-worker-project-vX.Y;格式錯誤或不屬於此家族的政策字串會 fail closed。每一次新提交的 builder policy 都是 department-worker-project-v2.10。

功能(ReleaseFeature)最早的 builder policy
secretsdepartment-worker-project-v2.6
salted_secretsdepartment-worker-project-v2.7
operation_settingsdepartment-worker-project-v2.8
service_account_credentialsdepartment-worker-project-v2.9
state_migrationdepartment-worker-project-v2.10

每個關卡對作者的意義見提交管線。

EDGE_WORKERS_PROVIDER 選擇 runtime:cloudflare(未設定或空白時的預設)或 onprem,比對前會先去除前後空白並轉小寫。其他任何值都是設定錯誤,以 edge_workers_provider_invalid 回應(見環境變數)。

操作設定字彙

見逐操作存取:

欄位值
操作設定 state(同時也是 OpenAPI 的 x-teamsync-operation-settings-state)legacy、reconciled、pending
有效存取 sourceoperation、worker
服務帳號綁定 sourceoperation、default

登入來源

UserAuthSource(users.auth_source):local、ldap、service_account。service_account 是部門服務帳號由平台生成的虛擬身分,見服務帳號。

公司管理字彙

列舉值
EdgeWorkerDepartmentHealthnot_configured、draft、deploying、active、paused、failed、uncertain
EdgeWorkerCompanyRecommendedActionnone、submit_version、deploy_ready_version、wait_for_automatic_recovery、submit_new_version、reconcile_uncertain_deployment
EdgeWorkerCompanyWorkerStatedraft、active、paused
EdgeWorkerCompanyVersionState與資料庫 version state 相同的 8 個值
EdgeWorkerCompanyDeploymentState與資料庫 outbox status 相同的 6 個值
EdgeWorkerCompanyRepairActionreconcile_uncertain_deployment(單一成員)

健康狀態以嚴格優先序推導:沒有 worker → not_configured/submit_version;任何 uncertain → uncertain/reconcile_uncertain_deployment;部署 pending|leased 或版本 deploy_pending|deploying → deploying/wait_for_automatic_recovery;失敗 → failed/submit_new_version;worker paused → paused/none;worker active + current 版本 deployed → active(有更新的 ready 修訂版時給 deploy_ready_version);其餘 → draft/deploy_ready_version(最新修訂版是 ready 時),否則 draft/submit_version。

manifest 層的封閉集合

細節見 Manifest 規格:

  • EdgeWorkerHttpMethod — 操作可宣告的方法:GET、POST、PUT、PATCH、DELETE。
  • EdgeWorkerParameterLocation — 參數可出現的位置:path、query、header。
  • EdgeWorkerAccessMode — 五種存取模式:public、api_key、ip_allowlist、api_key_and_ip、teamsync_internal(見存取模式)。
  • EdgeWorkerJsonSchemaType — object、array、string、integer、number、boolean、null;EdgeWorkerJsonSchemaFormat — date、date-time、email、uuid。兩者合起來是 manifest schema 的有界 JSON-Schema 子集。
Last updated on