Skip to Content
概念總覽

概念總覽

先讀架構與信任邊界 — 拓撲、兩條呼叫通道、機密放在哪裡。然後:

交付程式碼

  • Manifest 契約 — teamsync.worker.json 作為 API 唯一權威;handler、tag、example、靜態資料。
  • 提交管線 — 無憑證 builder、確定性摘要、SBOM + 回執、崩潰安全的提交,以及 builder 政策的功能對照表(機密、操作設定、服務帳號憑證)。
  • npm 依賴政策 — 釘死版本的目錄(目前是 zod@4.3.6),以及為何永遠不會發生 npm install。
  • 版本與部署 — 不可變修訂版階梯、單一併發部署、結算回讀、暫停、修復。

執行期行為

  • 存取模式 — 五種公開通道准入模式、Worker 整體的存取政策與 API 金鑰機制。
  • 逐操作存取 — 逐操作覆寫模式與 IP 允許清單、操作 API 金鑰,以及各層如何組合。
  • Worker 機密 — 僅可寫入的具名機密、其上限,以及 handler 程式碼中的 context.secrets.get。
  • 服務帳號 — 由平台擁有、作為 Worker 對外身分並綁定到操作的虛擬使用者;context.teamsync。
  • 持久儲存 — DepartmentStorage 介面與其上限。
  • 執行期設定 — 以 CAS 整體替換的非機密 JSON 與凍結的 config 介面。
  • 調度協定 — 30 秒 EdDSA 簽章斷言、共用路徑圍欄、header 清理。

平台保證

  • 產物與清理 — 專用的 artifact store(雲端為 R2,地端為 S3 相容儲存)與「先寫意圖再寫物件」的清理 outbox。
  • 退役與刪除 — 部門或公司被刪除時 Worker 會發生什麼事:鎖定、清除、墓碑、孤兒。
  • 搬移 Worker — 平台維運者把 Worker 連同其儲存的資料搬到另一個 Worker 位置時,作者與呼叫端能觀察到什麼:無需任何動作、短暫的暫停、暫停期間的回應,以及失敗或已回滾的搬移。
  • 稽核與控制面稽核 — 每一筆會被記錄的事實,以及控制面變更如何靠回執背書。
  • 限制一覽 — 所有數字上限一次列出,包含機密、操作設定、服務帳號與地端每個 Worker 的限制。

最需要記住的幾件事,各一段:

一個部門一個 Worker。 資料庫(department_id 唯一約束)是最終權威。多個 API 是同一個 Worker 連續不可變修訂版裡的路由 — 絕不是分開的 Cloudflare script。

不可變 + 沒有回滾。 修訂版的專案、bundle 與證據永不改變;部署只是把指標往前移。要「回滾」,就提交新的修訂版。

一切都有圍欄。 租戶身分來自 JWT 解析出的使用者列,絕非請求欄位;script 名稱是推導的,不可選擇;路徑被三重上限約束並簽章;provider 的回應會用預期修訂版、摘要與精確鍵集合驗證 — 說謊的 provider 會變成 503,絕不會被默默接受。

機密僅可寫入。 Worker 機密的值只被接受一次,只存放在部門 Worker 的 Durable Object 裡,只有 handler 程式碼能透過 context.secrets.get 讀取;沒有任何路由會回傳值,後端與稽核紀錄只保留加鹽摘要。服務帳號的憑證遵循同一條規則:沒有人會看到它們。

Last updated on