sandbox_environments
列出帳號的環境(它自己的 dev 或 staging):箱子經連接器連得到的內網位址、每條連線在不在線上、箱子拿得到設定的服務,以及已經在用每個環境的箱子。
| 輸入 | 輸出 |
|---|---|
| 無 | 每個環境的 name、externalBaseUrl、reachable(箱子連得到的 host:port)、connectorOnline(至少一條連線在線上)、connections[{name, online, sessions, lastSeenAt, connectorVersion, rttMs, reachable}]、services[{name, envFile, shellFile, keysCount, keys, notable, notableMore, source, deployedImage, syncedAt}]、activeBoxes[{id, name, goal, status, agent, lastUsedAt, background}] |
sandbox_environments {}
- 環境是帳號自己的 dev 或 staging。這個工具只讀,也沒有 MCP 工具能建立或修改環境:用你的 token 打 REST(環境):
POST /v1/environments、POST /v1/environments/{env}/connections、PUT /v1/environments/{env}/connections/{id}/endpoints,以及帶.env內容的PUT /v1/environments/{env}/services/{name}(或從 AWS ECS 匯入的POST .../services/import)。把它的name當environment傳給sandbox_start,箱子就只跑你改過的服務,其餘接那個環境。 reachable:用這個環境開的箱子,經人網路裡的連接器,用平常的主機名連得到的內網host:port。connectorOnline在至少一條連線在線上時為 true。connections[]分別列出每個網路的連接器(online、sessions、lastSeenAt、connectorVersion),以及經過它的位址(reachable)。rttMs是 ParallelSandbox 到那個連接器的往返時間,在線時每次心跳(約 15 秒)量一次:箱子經它開的每一條連線至少多這麼多,所以經連接器量到的時間只能彼此比倍數,不能拿去跟人網路內部量到的秒數比。services[]:箱子拿得到設定的服務,檔案是/work/.sbx/env/<service>.env(envFile)與.sh(shellFile)。keys列出每個設定的名稱(keysCount是數量);notable挑出最該先看的,最多 15 個(notableMore是其餘的數量):connection:值指到環境本身(它的某個位址或externalBaseUrl的主機,寫在host),例如資料庫連線字串:透過它寫入就是改環境的真資料。服務的資料庫變數不叫DATABASE_URL時,看這裡就知道是哪一個。mode:切換服務行為的設定(SERVER_MODE、NODE_ENV、STAGE、*_BYPASS、SKIP_AUTH、DEBUG),值是個簡單的字、箱子本來就不遮時附上value。dev 的值可能把認證或檢查關掉,測那條路徑時會因此假通過:有關係時覆蓋掉(-e SERVER_MODE=production)。permission:admin 名單、allowlist、允許的來源。dev 有自己的一份,不是正式環境那份,所以在箱子裡打 admin 端點可能拿到 403;值去 env 檔看。source是aws-ecs或dotenv。從 AWS ECS 匯入的服務,deployedImage是匯入當下(syncedAt)那個 ECS 服務跑的映像,tag 常常就是 dev 跑的 commit:dev 落後或超前分支時,把改動疊在那個 commit 上編。POST /v1/environments/{env}/services/{name}/sync會重讀 task definition。
activeBoxes[]:帳號裡用這個環境開、還活著的箱子,附name、goal、status、agent(它的對話是否還在用)與background(最近幾條用background: true起的指令,可能已經結束)。dev 是共用的真資料:結果對不上時,先看是不是別的箱子正在改同一批資料。ParallelSandbox 以外寫 dev 的程式不會出現在這裡。externalBaseUrl:沒改的 HTTP 服務在哪裡;用這個環境開的箱子會用它,除非你自己傳一個。- 測試不要打環境的資料庫:
psbx-testdb up <名字>在箱子裡開一個你自己的乾淨 Postgres(--redis開 Redis;團隊設定)。要讀 dev 的資料,在箱子裡用psbx-ro-psql <服務>,它拿那個服務的資料庫設定、以唯讀交易連線(環境)。 - 位址也可以是對外的主機。箱子連它時會經連接器、從人自己的網路出去,這就是檢查他們的服務連不連得到外部網站的方法:箱子自己的流量是從別的位址出去的(其他事實)。
- 它只讀,不需要箱子。環境怎麼設定、每個欄位的意思,見環境。
所有工具與主題都列在工具參考。