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 <服務>,它拿那個服務的資料庫設定、以唯讀交易連線(環境)。
  • 位址也可以是對外的主機。箱子連它時會經連接器、從人自己的網路出去,這就是檢查他們的服務連不連得到外部網站的方法:箱子自己的流量是從別的位址出去的(其他事實)。
  • 它只讀,不需要箱子。環境怎麼設定、每個欄位的意思,見環境。

所有工具與主題都列在工具參考。