@baochunli/flakes 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +76 -2
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/projects.d.ts +4 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +133 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/runs.d.ts.map +1 -1
- package/dist/commands/runs.js +5 -1
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/runtime.d.ts +0 -1
- package/dist/commands/runtime.d.ts.map +1 -1
- package/dist/commands/runtime.js +2 -280
- package/dist/commands/runtime.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +0 -6
- package/dist/commands/server.js.map +1 -1
- package/dist/config-example.js +1 -1
- package/dist/config-example.js.map +1 -1
- package/dist/host-config.d.ts +1 -6
- package/dist/host-config.d.ts.map +1 -1
- package/dist/host-config.js +10 -28
- package/dist/host-config.js.map +1 -1
- package/dist/host-runner.d.ts +3 -0
- package/dist/host-runner.d.ts.map +1 -1
- package/dist/host-runner.js +18 -6
- package/dist/host-runner.js.map +1 -1
- package/dist/host-runtime.d.ts.map +1 -1
- package/dist/host-runtime.js +92 -2
- package/dist/host-runtime.js.map +1 -1
- package/dist/host-transport.js +2 -5
- package/dist/host-transport.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -28
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@flakes/auth/dist/better-auth-shape.d.ts +10 -0
- package/dist/node_modules/@flakes/auth/dist/better-auth-shape.d.ts.map +1 -0
- package/dist/node_modules/@flakes/auth/dist/better-auth-shape.js +16 -0
- package/dist/node_modules/@flakes/auth/dist/better-auth-shape.js.map +1 -0
- package/dist/node_modules/@flakes/auth/package.json +1 -1
- package/dist/node_modules/@flakes/console/.output/nitro.json +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-CNPk8RVl.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/ProjectsPage-CKPR1nnu.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-BdugbnA3.js +3 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-CJbycrqM.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-BoLM52PY.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-6KHjMeaR.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-CHSq0_qN.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/_-CD1Voz9h.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/_runId-_0VPmGYe.js +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-CPAKAp4X.js +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/account-BoRurhrq.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-D4eVqOhW.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-QzVbRzF_.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-DBnq_eif.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/bits-BOMPEHvv.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/card-37qs8AAd.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/circle-alert-CM0SVfzc.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-CzwcEElH.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/circle-x-C_sOQVNQ.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/device-FqII-S41.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/dist-BEfdrJTS.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/documentation-2C3ncAuV.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/{external-link-BW8lpiMR.js → external-link-BWhbbPgy.js} +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/{file-text-DMdy8OfN.js → file-text-DLxLJ7P1.js} +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password-BSQ4TWpA.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/inbox-BVu38EN6.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/{lib-DtfURcG3.js → lib-COfgMmRR.js} +3 -3
- package/dist/node_modules/@flakes/console/.output/public/assets/link-ll3nLBSM.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/{lock-D4OhqEPW.js → lock-Ck2SfQA2.js} +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/main-LpSDdT-S.js +1215 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-puEkI9BI.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-CussJQT1.js +20 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/projects-CLgKBrCe.js +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/react-B8IZ02wI.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-ki7NpxV4.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/redirect-Cu9zBy04.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-DwWhVkEh.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/runs-CFYk2iRh.js +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-mGsOcVFL.js +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/{save-1uf5fQff.js → save-Bte_1tnN.js} +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/security-MjM55vIw.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/signin-KbA1cD6o.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-CBF-d8iK.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/signup-CbHsThKr.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/styles-DtA2wbW8.css +2 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/table-WMIs2m3R.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/tiny-invariant-CO5X59di.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/user-Bt9z7sSI.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/utils-CBxvVKOM.js +1 -0
- package/dist/node_modules/@flakes/console/.output/public/assets/x-Bdsfqbi3.js +1 -0
- package/dist/node_modules/@flakes/console/.output/server/{_-DwPiGKLE.mjs → _-BULJ6utw.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/{_-C-u135Pp.mjs → _-_ST9QYWn.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_chunks/ProjectsPage.mjs +589 -0
- package/dist/node_modules/@flakes/console/.output/server/_chunks/RunPage.mjs +13 -6
- package/dist/node_modules/@flakes/console/.output/server/_chunks/RunsPage.mjs +43 -12
- package/dist/node_modules/@flakes/console/.output/server/_chunks/SandboxesPage.mjs +2 -2
- package/dist/node_modules/@flakes/console/.output/server/_chunks/TranscriptPage.mjs +2 -2
- package/dist/node_modules/@flakes/console/.output/server/_chunks/project-navigation.mjs +79 -0
- package/dist/node_modules/@flakes/console/.output/server/_chunks/router.mjs +193 -110
- package/dist/node_modules/@flakes/console/.output/server/_chunks/utils.mjs +111 -3
- package/dist/node_modules/@flakes/console/.output/server/_libs/lucide-react.mjs +178 -1
- package/dist/node_modules/@flakes/console/.output/server/{_runId-CJ5_8uS8.mjs → _runId-CmYWNL8A.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/{_runId-Cag5UaYU.mjs → _runId-WZmbo654.mjs} +2 -2
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{App-CwFtUgAz.mjs → App-CUx8Ftit.mjs} +118 -64
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{DocumentationPage-CtBAQbzy.mjs → DocumentationPage-0I9oWWJT.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_ssr/ProjectsPage-CGj9V2Of.mjs +590 -0
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunPage-CatpnkFy.mjs → RunPage-B2vhVaj6.mjs} +14 -7
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunsPage-BmLTih8Z.mjs → RunsPage-BifKogQE.mjs} +44 -13
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{SandboxesPage-Dlq0Ga24.mjs → SandboxesPage-DGji_OdB.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{TranscriptPage-DaSIDCKk.mjs → TranscriptPage-deSxVZaQ.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{account-DzluYS58.mjs → account-D5y9vkAc.mjs} +2 -2
- package/dist/node_modules/@flakes/console/.output/server/_ssr/account-forms-CsothyLo.mjs +1 -1
- package/dist/node_modules/@flakes/console/.output/server/_ssr/device-CRZl7dGv.mjs +1 -1
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{documentation-PC93pMWl.mjs → documentation-C69e9_eF.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-C91gfyy0.mjs +210 -0
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{hooks-COIYuQzf.mjs → hooks-DrgN35zn.mjs} +110 -4
- package/dist/node_modules/@flakes/console/.output/server/_ssr/project-navigation-DI77TL9a.mjs +79 -0
- package/dist/node_modules/@flakes/console/.output/server/_ssr/projects-lJ2tIIPj.mjs +5 -0
- package/dist/node_modules/@flakes/console/.output/server/_ssr/reset-password-SmmTixcr.mjs +1 -1
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{router-elhBqT5k.mjs → router-DHxFQ03L.mjs} +49 -41
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{runs-CBkO-RO8.mjs → runs-BWxEGKO_.mjs} +17 -5
- package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-dnPfp9dt.mjs +19 -0
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-BIAgn8pu2.mjs → sandboxes-hxFINxDS.mjs} +3 -3
- package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-qSX_pfUJ.mjs → sandboxes-v28LJQM3.mjs} +2 -2
- package/dist/node_modules/@flakes/console/.output/server/_ssr/signin-form-CQDi-0A5.mjs +1 -1
- package/dist/node_modules/@flakes/console/.output/server/_ssr/ssr.mjs +2 -2
- package/dist/node_modules/@flakes/console/.output/server/{_tanstack-start-manifest_v-CR_hZXXv.mjs → _tanstack-start-manifest_v-DfwuEzTr.mjs} +54 -46
- package/dist/node_modules/@flakes/console/.output/server/{_taskId-BaezvY0w.mjs → _taskId-CBo95z-s.mjs} +2 -2
- package/dist/node_modules/@flakes/console/.output/server/{_taskId-Da7kHKj9.mjs → _taskId-Sil3-PKh.mjs} +3 -3
- package/dist/node_modules/@flakes/console/package.json +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts +17 -0
- package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/client-access.js +12 -0
- package/dist/node_modules/@flakes/control-plane/dist/client-access.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-credentials.d.ts +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-credentials.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts +24 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js +87 -3
- package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-stream.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/host-stream.js +150 -40
- package/dist/node_modules/@flakes/control-plane/dist/host-stream.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.d.ts +71 -0
- package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.d.ts.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.js +243 -0
- package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.js.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js +219 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts +3 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js +226 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/runs.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js +93 -6
- package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.d.ts +3 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.d.ts.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.js +153 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.js.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js +2 -2
- package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.d.ts +19 -0
- package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.d.ts.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.js +46 -0
- package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.js.map +1 -0
- package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts +2 -0
- package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/scheduler.js +53 -21
- package/dist/node_modules/@flakes/control-plane/dist/scheduler.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/server.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/server.js +2 -0
- package/dist/node_modules/@flakes/control-plane/dist/server.js.map +1 -1
- package/dist/node_modules/@flakes/control-plane/dist/types.d.ts +2 -0
- package/dist/node_modules/@flakes/control-plane/dist/types.d.ts.map +1 -1
- package/dist/node_modules/@flakes/control-plane/package.json +1 -1
- package/dist/node_modules/@flakes/core/dist/config.d.ts.map +1 -1
- package/dist/node_modules/@flakes/core/dist/config.js +6 -2
- package/dist/node_modules/@flakes/core/dist/config.js.map +1 -1
- package/dist/node_modules/@flakes/core/dist/ids.d.ts +4 -0
- package/dist/node_modules/@flakes/core/dist/ids.d.ts.map +1 -1
- package/dist/node_modules/@flakes/core/dist/ids.js +2 -0
- package/dist/node_modules/@flakes/core/dist/ids.js.map +1 -1
- package/dist/node_modules/@flakes/core/dist/runtime.d.ts +1 -1
- package/dist/node_modules/@flakes/core/dist/schemas.d.ts +11 -0
- package/dist/node_modules/@flakes/core/dist/schemas.d.ts.map +1 -1
- package/dist/node_modules/@flakes/core/dist/schemas.js +10 -0
- package/dist/node_modules/@flakes/core/dist/schemas.js.map +1 -1
- package/dist/node_modules/@flakes/core/package.json +1 -1
- package/dist/node_modules/@flakes/harness-agent/package.json +1 -1
- package/dist/node_modules/@flakes/harness-sdk/package.json +1 -1
- package/dist/node_modules/@flakes/pi-agent/package.json +1 -1
- package/dist/node_modules/@flakes/protocol/dist/index.d.ts +1 -1
- package/dist/node_modules/@flakes/protocol/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@flakes/protocol/dist/index.js +1 -1
- package/dist/node_modules/@flakes/protocol/dist/index.js.map +1 -1
- package/dist/node_modules/@flakes/protocol/dist/v1.d.ts +317 -0
- package/dist/node_modules/@flakes/protocol/dist/v1.d.ts.map +1 -1
- package/dist/node_modules/@flakes/protocol/dist/v1.js +50 -1
- package/dist/node_modules/@flakes/protocol/dist/v1.js.map +1 -1
- package/dist/node_modules/@flakes/protocol/package.json +1 -1
- package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js +3 -6
- package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js.map +1 -1
- package/dist/node_modules/@flakes/sandbox-runtime/package.json +1 -1
- package/dist/node_modules/@flakes/store/dist/artifacts-events-store.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js +10 -0
- package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts +2 -1
- package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js +1 -0
- package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts +2 -2
- package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/kysely-store.js +2 -2
- package/dist/node_modules/@flakes/store/dist/kysely-store.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts +6 -2
- package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js +160 -3
- package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/mappers.d.ts +10 -2
- package/dist/node_modules/@flakes/store/dist/mappers.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/mappers.js +45 -0
- package/dist/node_modules/@flakes/store/dist/mappers.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/projects-store.d.ts +42 -0
- package/dist/node_modules/@flakes/store/dist/projects-store.d.ts.map +1 -0
- package/dist/node_modules/@flakes/store/dist/projects-store.js +376 -0
- package/dist/node_modules/@flakes/store/dist/projects-store.js.map +1 -0
- package/dist/node_modules/@flakes/store/dist/runs-store.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/runs-store.js +7 -2
- package/dist/node_modules/@flakes/store/dist/runs-store.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/schema.js +72 -0
- package/dist/node_modules/@flakes/store/dist/schema.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/sqlite.d.ts +4 -0
- package/dist/node_modules/@flakes/store/dist/sqlite.d.ts.map +1 -0
- package/dist/node_modules/@flakes/store/dist/sqlite.js +34 -0
- package/dist/node_modules/@flakes/store/dist/sqlite.js.map +1 -0
- package/dist/node_modules/@flakes/store/dist/store-base.d.ts +14 -12
- package/dist/node_modules/@flakes/store/dist/store-base.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/tables.d.ts +41 -1
- package/dist/node_modules/@flakes/store/dist/tables.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/tasks-store.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/dist/tasks-store.js +9 -2
- package/dist/node_modules/@flakes/store/dist/tasks-store.js.map +1 -1
- package/dist/node_modules/@flakes/store/dist/types.d.ts +159 -1
- package/dist/node_modules/@flakes/store/dist/types.d.ts.map +1 -1
- package/dist/node_modules/@flakes/store/package.json +1 -1
- package/package.json +1 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-DM-ZYPgQ.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-i03UqHYF.js +0 -3
- package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-u8qbeAoV.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-BUQQWmH6.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-D8D_5kXP.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-ChoFjiPI.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/_-C4ecJpHe.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/_runId-BZXYFY32.js +0 -2
- package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-C28oHEU_.js +0 -2
- package/dist/node_modules/@flakes/console/.output/public/assets/account-B4wDEC7t.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-BLo66Mqa.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-BMW8fJP5.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-DiUSgtaY.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/bits-Cv0Te4iz.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/card-DSG3_teC.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-B0gtb8OH.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/device-NrLWypMd.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/dist-BtPw3IIV.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/documentation-NRDmcDud.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password--3Mujc8s.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/link-BsixJinJ.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/main-KBvz0mSQ.js +0 -1055
- package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-tJ0VTv5m.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-BSXwS5bo.js +0 -20
- package/dist/node_modules/@flakes/console/.output/public/assets/react-DtOYBmep.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-DrIU40PY.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/redirect-BEm0VK76.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-C7SbNx2J.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/runs-xD4ynllK.js +0 -2
- package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-Cfr1Y2Dn.js +0 -2
- package/dist/node_modules/@flakes/console/.output/public/assets/security-CCThSJae.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/signin-CYeR3TaY.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-Bp22jPob.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/signup-DHhPfohX.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/styles-8wEqfToJ.css +0 -2
- package/dist/node_modules/@flakes/console/.output/public/assets/table-DptQuuuq.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/user-DK27uFod.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/utils-CEE0-YEp.js +0 -1
- package/dist/node_modules/@flakes/console/.output/public/assets/x-fKvnmCoQ.js +0 -1
- package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-Bf0VPrnt.mjs +0 -210
- package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-BzfGldVd.mjs +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-sandbox-instances-store.d.ts","sourceRoot":"","sources":["../src/managed-sandbox-instances-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-sandbox-instances-store.d.ts","sourceRoot":"","sources":["../src/managed-sandbox-instances-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
38
38
|
owner_key: input.ownerKey,
|
|
39
39
|
name,
|
|
40
40
|
status: input.status ?? "created",
|
|
41
|
+
project_workspace_root: null,
|
|
41
42
|
last_seen_at: null,
|
|
42
43
|
connection_id: null,
|
|
43
44
|
stream_generation: 0,
|
|
@@ -261,6 +262,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
261
262
|
"host.owner_key as auth_host_owner_key",
|
|
262
263
|
"host.name as auth_host_name",
|
|
263
264
|
"host.status as auth_host_status",
|
|
265
|
+
"host.project_workspace_root as auth_host_project_workspace_root",
|
|
264
266
|
"host.last_seen_at as auth_host_last_seen_at",
|
|
265
267
|
"host.connection_id as auth_host_connection_id",
|
|
266
268
|
"host.stream_generation as auth_host_stream_generation",
|
|
@@ -404,6 +406,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
404
406
|
owner_key: input.ownerKey,
|
|
405
407
|
name: input.hostName,
|
|
406
408
|
status: "created",
|
|
409
|
+
project_workspace_root: null,
|
|
407
410
|
last_seen_at: null,
|
|
408
411
|
connection_id: null,
|
|
409
412
|
stream_generation: 0,
|
|
@@ -930,6 +933,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
930
933
|
owner_kind: input.ownerKind,
|
|
931
934
|
owner_id: input.ownerId,
|
|
932
935
|
owner_key: input.ownerKey,
|
|
936
|
+
project_id: input.projectId ?? null,
|
|
933
937
|
host_id: input.hostId,
|
|
934
938
|
host_pool_id: input.hostPoolId,
|
|
935
939
|
pool_id: input.hostPoolId,
|
|
@@ -1111,6 +1115,25 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1111
1115
|
if (input.maxAttempts <= 0) {
|
|
1112
1116
|
throw new Error("lease maxAttempts must be positive");
|
|
1113
1117
|
}
|
|
1118
|
+
const projectId = input.projectId ?? instance.project_id;
|
|
1119
|
+
if (projectId !== instance.project_id) {
|
|
1120
|
+
throw new Error("launch lease project mismatch");
|
|
1121
|
+
}
|
|
1122
|
+
if (projectId !== null && input.hostProjectBindingId === undefined) {
|
|
1123
|
+
throw new Error("host project binding is required for project launch");
|
|
1124
|
+
}
|
|
1125
|
+
if (projectId === null && input.hostProjectBindingId !== undefined) {
|
|
1126
|
+
throw new Error("host project binding requires project launch");
|
|
1127
|
+
}
|
|
1128
|
+
if (projectId !== null && input.hostProjectBindingId !== undefined) {
|
|
1129
|
+
await this.requireActiveHostProjectBindingForPool(trx, {
|
|
1130
|
+
ownerKey: input.ownerKey,
|
|
1131
|
+
hostId: input.hostId,
|
|
1132
|
+
projectId,
|
|
1133
|
+
hostProjectBindingId: input.hostProjectBindingId,
|
|
1134
|
+
hostPoolId: input.hostPoolId,
|
|
1135
|
+
});
|
|
1136
|
+
}
|
|
1114
1137
|
await this.assertProvisioningLeaseQuota(trx, input.ownerKey);
|
|
1115
1138
|
const now = this.nowIso();
|
|
1116
1139
|
const leaseId = input.leaseId ?? this.idGenerator.createId("provisioning_lease");
|
|
@@ -1122,6 +1145,8 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1122
1145
|
owner_kind: host.owner_kind,
|
|
1123
1146
|
owner_id: host.owner_id,
|
|
1124
1147
|
owner_key: host.owner_key,
|
|
1148
|
+
project_id: projectId,
|
|
1149
|
+
host_project_binding_id: input.hostProjectBindingId ?? null,
|
|
1125
1150
|
host_id: input.hostId,
|
|
1126
1151
|
host_pool_id: input.hostPoolId,
|
|
1127
1152
|
instance_id: input.instanceId,
|
|
@@ -1229,6 +1254,8 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1229
1254
|
owner_kind: host.owner_kind,
|
|
1230
1255
|
owner_id: host.owner_id,
|
|
1231
1256
|
owner_key: host.owner_key,
|
|
1257
|
+
project_id: instance.project_id,
|
|
1258
|
+
host_project_binding_id: null,
|
|
1232
1259
|
host_id: input.hostId,
|
|
1233
1260
|
host_pool_id: instance.host_pool_id,
|
|
1234
1261
|
instance_id: input.instanceId,
|
|
@@ -1335,6 +1362,8 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1335
1362
|
owner_kind: host.owner_kind,
|
|
1336
1363
|
owner_id: host.owner_id,
|
|
1337
1364
|
owner_key: host.owner_key,
|
|
1365
|
+
project_id: instance.project_id,
|
|
1366
|
+
host_project_binding_id: null,
|
|
1338
1367
|
host_id: input.hostId,
|
|
1339
1368
|
host_pool_id: instance.host_pool_id,
|
|
1340
1369
|
instance_id: input.instanceId,
|
|
@@ -1462,6 +1491,43 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1462
1491
|
!hasAllCapabilities(poolCapabilities, requiredCapabilities)) {
|
|
1463
1492
|
return { status: "skipped", reason: "pool_mismatch" };
|
|
1464
1493
|
}
|
|
1494
|
+
const taskProjectId = task.project_id;
|
|
1495
|
+
if (taskProjectId === null) {
|
|
1496
|
+
return { status: "skipped", reason: "pool_mismatch" };
|
|
1497
|
+
}
|
|
1498
|
+
if (input.projectId !== undefined &&
|
|
1499
|
+
input.projectId !== taskProjectId) {
|
|
1500
|
+
return { status: "skipped", reason: "pool_mismatch" };
|
|
1501
|
+
}
|
|
1502
|
+
if (taskProjectId !== null) {
|
|
1503
|
+
if (input.hostProjectBindingId === undefined) {
|
|
1504
|
+
return { status: "skipped", reason: "pool_mismatch" };
|
|
1505
|
+
}
|
|
1506
|
+
const binding = await trx
|
|
1507
|
+
.selectFrom("host_project_bindings as binding")
|
|
1508
|
+
.innerJoin("projects as project", (join) => join
|
|
1509
|
+
.onRef("project.project_id", "=", "binding.project_id")
|
|
1510
|
+
.onRef("project.owner_key", "=", "binding.owner_key"))
|
|
1511
|
+
.select([
|
|
1512
|
+
"binding.allowed_pool_keys_json",
|
|
1513
|
+
"binding.availability",
|
|
1514
|
+
"project.status as project_status",
|
|
1515
|
+
])
|
|
1516
|
+
.where("binding.binding_id", "=", input.hostProjectBindingId)
|
|
1517
|
+
.where("binding.owner_key", "=", input.ownerKey)
|
|
1518
|
+
.where("binding.host_id", "=", input.hostId)
|
|
1519
|
+
.where("binding.project_id", "=", taskProjectId)
|
|
1520
|
+
.forUpdate()
|
|
1521
|
+
.executeTakeFirst();
|
|
1522
|
+
const allowedPoolKeys = binding
|
|
1523
|
+
? (fromJson(binding.allowed_pool_keys_json) ?? [])
|
|
1524
|
+
: [];
|
|
1525
|
+
if (binding?.project_status !== "active" ||
|
|
1526
|
+
binding.availability !== "available" ||
|
|
1527
|
+
!allowedPoolKeys.includes(pool.pool_key)) {
|
|
1528
|
+
return { status: "skipped", reason: "pool_mismatch" };
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1465
1531
|
const activeInstances = await trx
|
|
1466
1532
|
.selectFrom("managed_sandbox_instances")
|
|
1467
1533
|
.select(sql `count(*)::text`.as("count"))
|
|
@@ -1500,6 +1566,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1500
1566
|
owner_kind: input.ownerKind,
|
|
1501
1567
|
owner_id: input.ownerId,
|
|
1502
1568
|
owner_key: input.ownerKey,
|
|
1569
|
+
project_id: task.project_id,
|
|
1503
1570
|
host_id: input.hostId,
|
|
1504
1571
|
host_pool_id: input.hostPoolId,
|
|
1505
1572
|
pool_id: input.hostPoolId,
|
|
@@ -1523,6 +1590,8 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1523
1590
|
owner_kind: host.owner_kind,
|
|
1524
1591
|
owner_id: host.owner_id,
|
|
1525
1592
|
owner_key: host.owner_key,
|
|
1593
|
+
project_id: task.project_id,
|
|
1594
|
+
host_project_binding_id: input.hostProjectBindingId ?? null,
|
|
1526
1595
|
host_id: input.hostId,
|
|
1527
1596
|
host_pool_id: input.hostPoolId,
|
|
1528
1597
|
instance_id: instanceRow.instance_id,
|
|
@@ -1612,9 +1681,23 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1612
1681
|
.innerJoin("host_pools as pool", "pool.host_pool_id", "lease.host_pool_id")
|
|
1613
1682
|
.innerJoin("managed_sandbox_instances as instance", "instance.instance_id", "lease.instance_id")
|
|
1614
1683
|
.innerJoin("sandbox_identities as identity", "identity.sandbox_id", "lease.sandbox_id")
|
|
1615
|
-
.
|
|
1684
|
+
.innerJoin("projects as project", (join) => join
|
|
1685
|
+
.onRef("project.project_id", "=", "lease.project_id")
|
|
1686
|
+
.onRef("project.owner_key", "=", "lease.owner_key"))
|
|
1687
|
+
.innerJoin("host_project_bindings as binding", (join) => join
|
|
1688
|
+
.onRef("binding.binding_id", "=", "lease.host_project_binding_id")
|
|
1689
|
+
.onRef("binding.project_id", "=", "lease.project_id")
|
|
1690
|
+
.onRef("binding.owner_key", "=", "lease.owner_key")
|
|
1691
|
+
.onRef("binding.host_id", "=", "lease.host_id"))
|
|
1692
|
+
.select([
|
|
1693
|
+
"lease.lease_id",
|
|
1694
|
+
"binding.binding_id as host_project_binding_id",
|
|
1695
|
+
"project.project_key",
|
|
1696
|
+
])
|
|
1616
1697
|
.where("lease.owner_key", "=", input.ownerKey)
|
|
1617
1698
|
.where("lease.host_id", "=", input.hostId)
|
|
1699
|
+
.where("lease.project_id", "is not", null)
|
|
1700
|
+
.whereRef("instance.project_id", "=", "lease.project_id")
|
|
1618
1701
|
.where("lease.action", "=", "launch")
|
|
1619
1702
|
.where("lease.state", "=", "pending")
|
|
1620
1703
|
.where("lease.lease_deadline_at", ">", now)
|
|
@@ -1622,6 +1705,13 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1622
1705
|
.where("pool.owner_key", "=", input.ownerKey)
|
|
1623
1706
|
.where("pool.host_id", "=", input.hostId)
|
|
1624
1707
|
.where("pool.status", "=", "available")
|
|
1708
|
+
.where("project.status", "=", "active")
|
|
1709
|
+
.where("binding.availability", "=", "available")
|
|
1710
|
+
.where(sql `exists (
|
|
1711
|
+
select 1
|
|
1712
|
+
from jsonb_array_elements_text(binding.allowed_pool_keys_json::jsonb) as allowed(pool_key)
|
|
1713
|
+
where allowed.pool_key = pool.pool_key
|
|
1714
|
+
)`)
|
|
1625
1715
|
.where("instance.owner_key", "=", input.ownerKey)
|
|
1626
1716
|
.whereRef("instance.host_id", "=", "lease.host_id")
|
|
1627
1717
|
.whereRef("instance.host_pool_id", "=", "lease.host_pool_id")
|
|
@@ -1652,7 +1742,12 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
1652
1742
|
hostStreamFence: input.hostStreamFence,
|
|
1653
1743
|
});
|
|
1654
1744
|
if (result?.credential) {
|
|
1655
|
-
claimed.push(
|
|
1745
|
+
claimed.push({
|
|
1746
|
+
lease: result.lease,
|
|
1747
|
+
credential: result.credential,
|
|
1748
|
+
hostProjectBindingId: candidate.host_project_binding_id,
|
|
1749
|
+
projectKey: candidate.project_key,
|
|
1750
|
+
});
|
|
1656
1751
|
}
|
|
1657
1752
|
}
|
|
1658
1753
|
return claimed;
|
|
@@ -2147,6 +2242,8 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
2147
2242
|
owner_kind: current.owner_kind,
|
|
2148
2243
|
owner_id: current.owner_id,
|
|
2149
2244
|
owner_key: current.owner_key,
|
|
2245
|
+
project_id: current.project_id,
|
|
2246
|
+
host_project_binding_id: current.host_project_binding_id,
|
|
2150
2247
|
host_id: current.host_id,
|
|
2151
2248
|
host_pool_id: current.host_pool_id,
|
|
2152
2249
|
instance_id: current.instance_id,
|
|
@@ -2477,7 +2574,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
2477
2574
|
if (current.action === "launch" && current.host_pool_id !== null) {
|
|
2478
2575
|
const pool = await trx
|
|
2479
2576
|
.selectFrom("host_pools")
|
|
2480
|
-
.select(["status"])
|
|
2577
|
+
.select(["pool_key", "status"])
|
|
2481
2578
|
.where("host_pool_id", "=", current.host_pool_id)
|
|
2482
2579
|
.where("owner_key", "=", current.owner_key)
|
|
2483
2580
|
.where("host_id", "=", current.host_id)
|
|
@@ -2486,6 +2583,35 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
2486
2583
|
if (pool?.status !== "available") {
|
|
2487
2584
|
return undefined;
|
|
2488
2585
|
}
|
|
2586
|
+
if (current.project_id !== null) {
|
|
2587
|
+
if (current.host_project_binding_id === null) {
|
|
2588
|
+
return undefined;
|
|
2589
|
+
}
|
|
2590
|
+
const binding = await trx
|
|
2591
|
+
.selectFrom("host_project_bindings as binding")
|
|
2592
|
+
.innerJoin("projects as project", (join) => join
|
|
2593
|
+
.onRef("project.project_id", "=", "binding.project_id")
|
|
2594
|
+
.onRef("project.owner_key", "=", "binding.owner_key"))
|
|
2595
|
+
.select([
|
|
2596
|
+
"binding.allowed_pool_keys_json",
|
|
2597
|
+
"binding.availability",
|
|
2598
|
+
"project.status as project_status",
|
|
2599
|
+
])
|
|
2600
|
+
.where("binding.binding_id", "=", current.host_project_binding_id)
|
|
2601
|
+
.where("binding.owner_key", "=", current.owner_key)
|
|
2602
|
+
.where("binding.host_id", "=", current.host_id)
|
|
2603
|
+
.where("binding.project_id", "=", current.project_id)
|
|
2604
|
+
.forUpdate()
|
|
2605
|
+
.executeTakeFirst();
|
|
2606
|
+
const allowedPoolKeys = binding
|
|
2607
|
+
? (fromJson(binding.allowed_pool_keys_json) ?? [])
|
|
2608
|
+
: [];
|
|
2609
|
+
if (binding?.project_status !== "active" ||
|
|
2610
|
+
binding.availability !== "available" ||
|
|
2611
|
+
!allowedPoolKeys.includes(pool.pool_key)) {
|
|
2612
|
+
return undefined;
|
|
2613
|
+
}
|
|
2614
|
+
}
|
|
2489
2615
|
}
|
|
2490
2616
|
const nowDate = this.clock.now();
|
|
2491
2617
|
const now = nowDate.toISOString();
|
|
@@ -2538,6 +2664,7 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
2538
2664
|
.where("pool.status", "=", "available")
|
|
2539
2665
|
.where("instance.owner_key", "=", current.owner_key)
|
|
2540
2666
|
.where("instance.host_id", "=", current.host_id)
|
|
2667
|
+
.where(sql `instance.project_id is not distinct from lease.project_id`)
|
|
2541
2668
|
.where("instance.host_pool_id", "=", current.host_pool_id)
|
|
2542
2669
|
.where("instance.sandbox_id", "=", current.sandbox_id)
|
|
2543
2670
|
.where("instance.launch_lease_id", "=", current.lease_id)
|
|
@@ -2725,6 +2852,35 @@ export class ManagedSandboxInstancesStore extends ArtifactsEventsStore {
|
|
|
2725
2852
|
}
|
|
2726
2853
|
return pool;
|
|
2727
2854
|
}
|
|
2855
|
+
async requireActiveHostProjectBindingForPool(executor, input) {
|
|
2856
|
+
const binding = await executor
|
|
2857
|
+
.selectFrom("host_project_bindings as binding")
|
|
2858
|
+
.innerJoin("projects as project", (join) => join
|
|
2859
|
+
.onRef("project.project_id", "=", "binding.project_id")
|
|
2860
|
+
.onRef("project.owner_key", "=", "binding.owner_key"))
|
|
2861
|
+
.innerJoin("host_pools as pool", (join) => join
|
|
2862
|
+
.onRef("pool.owner_key", "=", "binding.owner_key")
|
|
2863
|
+
.onRef("pool.host_id", "=", "binding.host_id"))
|
|
2864
|
+
.select([
|
|
2865
|
+
"binding.allowed_pool_keys_json",
|
|
2866
|
+
"project.status as project_status",
|
|
2867
|
+
"pool.pool_key",
|
|
2868
|
+
])
|
|
2869
|
+
.where("binding.binding_id", "=", input.hostProjectBindingId)
|
|
2870
|
+
.where("binding.owner_key", "=", input.ownerKey)
|
|
2871
|
+
.where("binding.host_id", "=", input.hostId)
|
|
2872
|
+
.where("binding.project_id", "=", input.projectId)
|
|
2873
|
+
.where("pool.host_pool_id", "=", input.hostPoolId)
|
|
2874
|
+
.executeTakeFirst();
|
|
2875
|
+
if (!binding) {
|
|
2876
|
+
throw new Error("host project binding not found");
|
|
2877
|
+
}
|
|
2878
|
+
const allowedPoolKeys = fromJson(binding.allowed_pool_keys_json) ?? [];
|
|
2879
|
+
if (binding.project_status !== "active" ||
|
|
2880
|
+
!allowedPoolKeys.includes(binding.pool_key)) {
|
|
2881
|
+
throw new Error("host project binding is not valid for project launch");
|
|
2882
|
+
}
|
|
2883
|
+
}
|
|
2728
2884
|
async requireSandboxIdentityOwner(executor, sandboxId, ownerKey) {
|
|
2729
2885
|
const sandbox = await executor
|
|
2730
2886
|
.selectFrom("sandbox_identities")
|
|
@@ -3105,6 +3261,7 @@ function mapHostCredentialAuth(row) {
|
|
|
3105
3261
|
owner_key: row.auth_host_owner_key,
|
|
3106
3262
|
name: row.auth_host_name,
|
|
3107
3263
|
status: row.auth_host_status,
|
|
3264
|
+
project_workspace_root: row.auth_host_project_workspace_root,
|
|
3108
3265
|
last_seen_at: row.auth_host_last_seen_at,
|
|
3109
3266
|
connection_id: row.auth_host_connection_id,
|
|
3110
3267
|
stream_generation: row.auth_host_stream_generation,
|