Skip to Content
概念架構:控制面與資料面

架構:控制面與資料面

前端的世界:/private/module/sandbox

所有前端會呼叫的 sandbox API 都掛在 /private/module/sandbox 底下(注意是單數 module,這在後端是「安全相關」的路徑,用於請求內容遮蔽)。子路由前綴:

資源前綴
公司設定/settings
環境 / 版本 / 建置/environments
任務 / 任務版本 / 分享/tasks
綁定/bindings
Secret / 授權/secrets/secret-approvals
執行/chatrooms/{chatroom_id}/...(含 /menu/runs/quick-run

前端「看不到」的世界:控制面

以下都是系統對系統,前端沒有呼叫路徑,也不該出現在前端文件裡(僅為理解流程列出):

路由群用途認證
/sandbox-control/*Cloud Build / Run / Scheduler 等隔離工作負載回呼、結果物件上傳、建置內容串流Google 服務帳號 OIDC + capability session;include_in_schema=False
/root/sandbox/*營運/root 操作Root/operator

位元組怎麼搬:實際的建置內容上傳(init → capability → put/parts → complete)、結果物件寫入、建置內容串流,全在控制面。前端不會拿到上傳 capability,也不需要處理 20 槽位配額那類事情——那些是控制面內部機制。前端對「內容」的接觸只有兩點:

  1. 建立版本時提供一個 source_digestsha256:...),宣告建置內容的內容雜湊。
  2. 取產出物時,向 /download 換一張短效 capability token,再用它拿位元組。

詳見 內容、Digest 與下載

沒有 streaming

sandbox 面向前端的部分沒有任何 WebSocket / SSE / StreamingResponse。建置與執行的進度一律用輪詢(GET 狀態)。細節見 狀態機與輪詢

Last updated on