什麼是 Edge Workers
Edge Workers 讓每個 TeamSync 部門在每個應用環境擁有一個小型 HTTP Worker,跑在 Cloudflare Workers for Platforms 上(在地端部署中則跑在客戶自己的主機上)。部門管理者提交一個標準化的 JavaScript/TypeScript 專案;平台以確定性方式建置、以不可變修訂版部署,並用兩種方式對外提供:經過驗證的 TeamSync 後端(/worker/invoke/…),以及由五種存取模式之一守護的平台公開 URL,可對整個 Worker 設定,也可逐操作設定。
它刻意不是一個通用 serverless 平台:
- 每個部門每個環境一個 Worker — 由資料庫強制。新 API 是同一個 Worker 下一個修訂版裡的新路由。
- 僅限 JS/TS;Python、Wasm、容器、預建 bundle、使用者自訂建置外掛一律拒絕。
- 依賴只能來自釘死版本、經審查的目錄(目前只有
zod@4.3.6)— 絕不npm install。 - 在 Cloudflare 上,Worker 程式碼的對外網路存取不受限制 — 沒有 Outbound Worker、沒有允許清單、沒有 egress 政策;
fetch()直接送達任何目的地(無法使用原始 TCPconnect()— bundle 不能匯入cloudflare:sockets)。地端部署中,fetch()可連到網際網路與客戶的區域網路,只排除固定的拒絕清單(link-local、loopback 與 edge 控制子網)。唯一的界限是每次呼叫:預設 500 個子請求與 50 ms CPU — 後端依EDGE_WORKERS_LIMIT_SUBREQUESTS/EDGE_WORKERS_LIMIT_CPU_MS簽進每個後端請求,公開通道則採用 dispatcher 的EDGE_WORKER_SUBREQUESTS/EDGE_WORKER_CPU_MS(限制)。 - 狀態 = 每個 Worker 一個 SQLite Durable Object,經由有界的儲存介面存取。沒有其他 Cloudflare binding。
- 租戶永遠拿不到 Cloudflare 憑證、Wrangler 設定、自訂網域或 cron trigger。Worker 需要的憑證放進僅可寫入、由 TeamSync 管理的 Worker 機密,由 handler 程式碼以
context.secrets讀取。
角色
| 角色 | 可以做什麼 |
|---|---|
| 部門成員(部門內任何 JWT 使用者) | 讀取 Worker、版本(含 SBOM/回執)、部署票證、生成的 OpenAPI;透過閘道呼叫已部署的 API;下載範本與 CLI |
| 部門管理者(角色 ≥ 2) | 以上全部 + 提交版本、下載某個版本的原始碼、部署、管理存取政策(整個 Worker 與逐操作)、API 金鑰、執行期設定、Worker 機密、服務帳號 |
| 公司管理者(角色 ≥ 3) | 全公司部門清單總覽、各部門健康狀態,以及 uncertain 部署的修復動作 |
| 平台操作者 | 用 deploy-platform.mjs 佈建 dispatcher Worker(平台維運) |
一切都只收 JWT — API 金鑰與整合憑證不被接受(沒帶 Bearer JWT 的請求回 418),服務帳號的 JWT 則以 403 拒絕。見驗證與角色。
工作的形狀
get the CLI from your backend (or start from a starter, no CLI)
edit manifest + src → generate → validate → test → dev (local, CLI)
→ submit (201: immutable ready revision)
→ deploy (202: ticket) → poll until completed
→ invoke (gateway or public URL) · openapi.json / web app API 文件還有什麼
- 範本與原始碼下載 — 不用 CLI 就開始、從你的後端取得 CLI、下載某個版本的原始碼。
- Worker 機密 — 僅可寫入的值,由你的 handler 以
context.secrets讀取。 - 服務帳號 — 你的 Worker 可以登入的部門身分。
- 逐操作存取 — 每個操作各自的存取模式與 API 金鑰。
- Edge Workers 地端部署 — 在客戶自行維運的主機上執行 Edge Workers。
Last updated on