Skip to Content
概念資源模型

資源模型

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_digestPOST /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}/runsquick-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