資源模型
Sandbox 有六種前端會碰到的資源。理解它們的關係,UI 結構就清楚了。
關係圖
Environment ──has many──▶ Environment Version ──build──▶ (ready)
▲
│ references (ready 版本)
Task ──has many──▶ Task Version ───┘
│ │
│ share (dept/ │ publish
│ company/chatroom) ▼
└────────────▶ Binding(把已發布任務版本釘進某聊天室)
│
▼
Run(在該聊天室提交執行)各資源速覽
| 資源 | 是什麼 | 建立/擁有 |
|---|---|---|
| Environment | 沙盒容器;一種要跑的東西 | POST /environments(company manager) |
| Environment Version | 實際建置/執行單位;綁一份建置內容(source_digest) | POST /environments/{id}/versions;不可變 |
| Build Attempt | 對某版本的一次建置 | POST /.../versions/{vid}/builds;輪詢狀態 |
| Task | 使用者定義的可執行任務;有 owner scope(chatroom/department/company) | POST /tasks |
| Task Version | 任務的一個版本:綁定一個 ready 環境版本 + startup/work 腳本 + secret slot 宣告 | POST /tasks/{id}/versions(draft)→ publish |
| Share Grant | 把任務分享給部門/公司/聊天室 | POST /tasks/{id}/shares |
| Binding | 把「已發布的某個任務版本」釘進一個聊天室 | POST /bindings |
| Run | 一次執行(在某聊天室提交) | POST /chatrooms/{id}/runs 或 quick-run |
幾個關鍵規則
- 版本要
ready才能被 Task Version 引用:環境版本必須走完建置流程到ready(見 狀態機)。 - Task Version 要
published才能被綁定/執行:draft 版本不可執行。 - 不可變版本:環境版本與任務版本一旦建立(發布)即不可變;要改就開新版本。
- 多租戶隔離:所有查詢以公司歸屬錨定;未授權一律回 404(不洩漏存在性)。
- 列表預設只看 active:多數列表端點吃
lifecycle查詢參數,預設active(archived 隱藏);SandboxLifecycleFilter=active/retired/all。 - 擁有者 vs 借用者視圖:分享出去的任務/版本,借用方看不到腳本、
source_digest等擁有者專屬欄位(回應會省略)。
各資源的確切端點、請求欄位與回應欄位,見 API 端點目錄。
Last updated on