資源模型
前端碰的資源如下。受眾規則(誰擁有、誰可分享、啟用代表什麼)寫在 任務受眾。這裡不要再重寫那些規則。
關係圖
Environment ──context 上傳──▶ owned_object_id
└─has many──▶ Environment Version ──build──▶ ready
▲
│ 釘 ready 版本
目錄任務 (department|company)
└─has many──▶ Task Version ──publish──▶
│
│ 分享 (company / department / chatroom)
▼
Grant ──房間啟用──▶ Binding(精確版本釘選)
│
▼
選單 / Agent (已授予且已啟用)
手動 REST (share + 成員資格;不要求啟用)
│
▼
Run資源一覽
| 資源 | 是什麼 | 誰建立 |
|---|---|---|
| Environment | 公司或部門擁有的租戶父層,或 system_curated | Owner-scope manager 呼叫 POST /environments;curated 僅 operator。 |
| Context upload | zip/tar/tar.gz 的 staging session | POST /environments/{id}/context-uploads |
| Environment Version | 把 owned_object_id(或已知 digest)+ profile 釘死 | POST /environments/{id}/versions |
| Build Attempt | 某一版的一次建置 | POST /.../versions/{vid}/builds |
| Task(目錄任務) | 部門或公司擁有的可執行物 | POST /tasks(owner_scope department | company) |
| Task Version | 腳本 + ready 環境版本 + 可選 output_policy | POST /tasks/{id}/versions → publish |
| Share Grant | 讓符合條件的房間可以用這個任務 | POST /tasks/{id}/shares |
| Granted-job 啟用 / Binding | 房間開關 + 精確版本釘選。同一物件。 | 首選 POST /chatrooms/{id}/granted-jobs/{task_id}/enable |
| Run | 在聊天室的一次執行 | POST /chatrooms/{id}/runs、quick-run、agent sandbox_submit_job、或 submit_sandbox_job |
不能漂移的規則
- 環境版本必須
ready,任務版本才能對它發布。 - 任務版本必須
published(+content_state=active)才能分享、啟用、執行。 - 發布後版本不可變;要改就開新版。
- 未授權識別子通常回 404。例外:403
owner_scope_forbidden(不能擁有該 department/company scope),以及錯誤表裡的 writeback/預算 403。 - 列表預設
lifecycle=active,除了GET /tasks/{id}/shares(all)。 - 擁有者 vs 借用者:借用者看不到 scripts、
work_command(是null,不只是缺席)、source_digest、secret_slot_declarations、output_policy。
端點與欄位:API 目錄。
Last updated on