列舉與狀態
資料庫 CHECK 約束是權威字彙;API 層的 Literal 與列舉鏡射它們(有一處是超集 — 見票證狀態)。
資料庫 CHECK 字彙
| 集合 | 值 |
|---|---|
| Worker status | draft、active、paused |
| Version state | uploading、ready、deploy_pending、deploying、deployed、superseded、failed、uncertain |
| Outbox operation | deploy、delete、artifact_cleanup、control_audit |
| Outbox status | pending、leased、completed、failed、cancelled、uncertain |
| Version language | javascript、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 | uncertainsubmitting與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 內部
| 常數/列舉 | 值 |
|---|---|
DeployStatus | pending、leased、completed、failed、cancelled、uncertain |
TERMINAL_STATUSES | completed、failed、cancelled、uncertain — 自動處理在此停止的狀態(租約邏輯、部署任務與控制面稽核結算都會略過這種列;uncertain 的部署列只有公司修復會重新開啟);不是上方 API 層的終態集合 |
ADMISSION_RELEASE_STATUSES | completed、failed、cancelled — 其他狀態(含 uncertain)的列都會擋掉該 Worker 的新部署准入 |
ADMISSION_FENCING_VERSION_STATES | deploy_pending、deploying、uncertain — 處於這些狀態之一的版本會擋掉新的部署准入 |
LeaseDisposition | acquired、terminal、inflight、not_due |
| 事件種類 | deploy、artifact_cleanup、control_audit |
CONTROL_WORKER_RETIRED | worker_retired — 因其 Worker 已退役而結算的控制面稽核列所帶的 last_error_code(見稽核) |
MAX_DEPLOYMENT_SEQUENCE | 9_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 |
|---|---|
secrets | department-worker-project-v2.6 |
salted_secrets | department-worker-project-v2.7 |
operation_settings | department-worker-project-v2.8 |
service_account_credentials | department-worker-project-v2.9 |
state_migration | department-worker-project-v2.10 |
每個關卡對作者的意義見提交管線。
EDGE_WORKERS_PROVIDER 選擇 runtime:cloudflare(未設定或空白時的預設)或 onprem,比對前會先去除前後空白並轉小寫。其他任何值都是設定錯誤,以 edge_workers_provider_invalid 回應(見環境變數)。
操作設定字彙
見逐操作存取:
| 欄位 | 值 |
|---|---|
操作設定 state(同時也是 OpenAPI 的 x-teamsync-operation-settings-state) | legacy、reconciled、pending |
有效存取 source | operation、worker |
服務帳號綁定 source | operation、default |
登入來源
UserAuthSource(users.auth_source):local、ldap、service_account。service_account 是部門服務帳號由平台生成的虛擬身分,見服務帳號。
公司管理字彙
| 列舉 | 值 |
|---|---|
EdgeWorkerDepartmentHealth | not_configured、draft、deploying、active、paused、failed、uncertain |
EdgeWorkerCompanyRecommendedAction | none、submit_version、deploy_ready_version、wait_for_automatic_recovery、submit_new_version、reconcile_uncertain_deployment |
EdgeWorkerCompanyWorkerState | draft、active、paused |
EdgeWorkerCompanyVersionState | 與資料庫 version state 相同的 8 個值 |
EdgeWorkerCompanyDeploymentState | 與資料庫 outbox status 相同的 6 個值 |
EdgeWorkerCompanyRepairAction | reconcile_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 子集。