void 0.21.8 → 0.22.0
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/{account-cmd-CQ2wi4Th.mjs → account-cmd-CjyxcGkM.mjs} +4 -4
- package/dist/{auth-link-B_lceSHK.mjs → auth-link-BLO4ptzo.mjs} +4 -4
- package/dist/{auth-router-cZq0HuWe.mjs → auth-router-ZUg9MF_U.mjs} +5 -5
- package/dist/{build-cmd-Dpt0jd-x.mjs → build-cmd-BxR5FROK.mjs} +3 -3
- package/dist/{cache-7_UeZdTk.mjs → cache-D0sWhgKI.mjs} +3 -3
- package/dist/{cancel-deploy-D23R1RXT.mjs → cancel-deploy-D4NUqFbi.mjs} +3 -3
- package/dist/{cf-build-output-CGT03qCD.mjs → cf-build-output-BJ6yGEIS.mjs} +139 -62
- package/dist/cli/cf-compat.mjs +164 -42
- package/dist/cli/cli.mjs +73 -44
- package/dist/cli/env-schema-probe.d.mts +1 -1
- package/dist/{client-QTl6ko_D.mjs → client-BTZ3XkrB.mjs} +25 -0
- package/dist/client-Czz8o5jP.mjs +2 -0
- package/dist/{cloudflare-auth-C4_GPZr0.mjs → cloudflare-auth-DQkqoMYa.mjs} +1 -6
- package/dist/{cloudflare-cmd-bSmZ1d5L.mjs → cloudflare-cmd-BKlfGHAy.mjs} +6 -7
- package/dist/{cloudflare-connect-jAwacxxP.mjs → cloudflare-connect-Ctmrw579.mjs} +3 -3
- package/dist/{cloudflare-operations-sMZXpk_S.mjs → cloudflare-operations-B9tzgjmf.mjs} +10 -39
- package/dist/{cloudflare-operations-BipGMJ5O.mjs → cloudflare-operations-BT6OWFBk.mjs} +1 -1
- package/dist/{config-CafTW6Cz.mjs → config-Br_JZD6u.mjs} +2 -7
- package/dist/{config-s7Xj7tPb.mjs → config-CyQ-wVd7.mjs} +1 -1
- package/dist/{config-CF69HgXc.d.mts → config-VavjpDnp.d.mts} +1 -2
- package/dist/config-entry.d.mts +1 -1
- package/dist/{config-write-BSduPMY8.mjs → config-write-B1f88wJA.mjs} +1 -1
- package/dist/{connect-BY38i-9E.mjs → connect-Dg-WkW-C.mjs} +5 -5
- package/dist/{create-project-BniEV0OW.mjs → create-project-DdoqwFLF.mjs} +1 -1
- package/dist/{create-project-DBfFSZKY.mjs → create-project-l9J7pbtm.mjs} +8 -4
- package/dist/{db-BIo37Y7H.mjs → db-gp2sCXyN.mjs} +14 -14
- package/dist/{delete-D6dZ9B6B.mjs → delete-TTedbH6B.mjs} +3 -3
- package/dist/{deploy-BM_LoBXC.mjs → deploy-B19L2Bra.mjs} +1 -1
- package/dist/{deploy-C0JaQSWS.mjs → deploy-CH-o2CaZ.mjs} +47 -36
- package/dist/{dist-BR1quN_w.mjs → dist-AoCzRTJE.mjs} +226 -60
- package/dist/{dist-C5fND3R0.mjs → dist-BuDuKZJv.mjs} +1 -1
- package/dist/{dist-Dn6nn2IU.mjs → dist-CTBk70IR.mjs} +42 -42
- package/dist/{domain-Dmhvb2oU.mjs → domain-JRF59P_r.mjs} +4 -4
- package/dist/{email-dMnE_Lat.mjs → email-Bo6G9LOZ.mjs} +6 -6
- package/dist/{env-Csi-tMbT.mjs → env-BYOrWQnv.mjs} +4 -4
- package/dist/{env-public-D_6u46fX.d.mts → env-public-BxU_0yTL.d.mts} +2 -1
- package/dist/gen-CNJ62MM7.mjs +2 -0
- package/dist/{gen-Dz3X1Qab.mjs → gen-sCtlCOdA.mjs} +3 -3
- package/dist/{github-cmd-BED3_9JD.mjs → github-cmd-0-7PexDq.mjs} +5 -7
- package/dist/{handler-BXJTXd02.d.mts → handler-HEcZsaij.d.mts} +2 -1
- package/dist/{headers-BOg_velo.mjs → headers-DWi2IXWx.mjs} +1 -1
- package/dist/help-CmZzxUba.mjs +2 -0
- package/dist/{help-DC7gdz7L.mjs → help-GKtwl07I.mjs} +124 -4
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +53 -24
- package/dist/{init-CJSnEcuj.mjs → init-FZx3Elvz.mjs} +13 -13
- package/dist/{link-CsHOinF7.mjs → link-BrQfb_CU.mjs} +4 -4
- package/dist/{list-CDb-4bZ1.mjs → list-D44jmIAM.mjs} +4 -4
- package/dist/{live-CKiJilLr.d.mts → live-CKJlvlNp.d.mts} +1 -1
- package/dist/{local-d1-CC8sKFGu.mjs → local-d1-Bg9OzEEO.mjs} +1 -1
- package/dist/{login-DZldyb8c.mjs → login-CAsAsQ-_.mjs} +4 -4
- package/dist/login-CGcRKEoi.mjs +2 -0
- package/dist/{logs-BdfiOezj.mjs → logs-BjKvFnVM.mjs} +4 -4
- package/dist/{migrate-B8KuoYsO.mjs → migrate-BPITvDJN.mjs} +4 -4
- package/dist/migrate-CYfbKkXh.mjs +2 -0
- package/dist/{node-BM43oz4G.mjs → node-Dt7z256D.mjs} +1 -1
- package/dist/{operator-cmd-B9dbG3Od.mjs → operator-cmd-BK5CCiT9.mjs} +4 -4
- package/dist/output-Dm_A4Tbv.mjs +81 -0
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/index.d.mts +1 -1
- package/dist/pages/index.mjs +2 -2
- package/dist/pages/islands-plugin.d.mts +16 -6
- package/dist/pages/islands-plugin.mjs +1 -1
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/{output-CCH48AMM.mjs → picocolors-BTps1_gs.mjs} +2 -76
- package/dist/{platform-auth-config-Bex45lQt.mjs → platform-auth-config-BlN8xTdD.mjs} +3 -3
- package/dist/{platform-auth-protection-Dma02l6-.mjs → platform-auth-protection-7d5aV2Jg.mjs} +3 -3
- package/dist/{platform-auth-recovery-COOhMCvx.mjs → platform-auth-recovery-Dxij8ZbR.mjs} +3 -3
- package/dist/{platform-cmd-BtxZrT6w.mjs → platform-cmd-B3hwKrFK.mjs} +5 -5
- package/dist/{platform-cmd-CjNB09OF.mjs → platform-cmd-E0FuL212.mjs} +1 -1
- package/dist/{platform-domain-DppaTARe.mjs → platform-domain-D6Xcy9ZX.mjs} +36 -9
- package/dist/{platform-lifecycle-CYll-oKE.mjs → platform-lifecycle-DMh_qrry.mjs} +1 -1
- package/dist/{platform-lifecycle-BpDlxT3t.mjs → platform-lifecycle-k0E0xoxx.mjs} +769 -59
- package/dist/{platform-management-BKYenDlE.mjs → platform-management-Brz_BDiT.mjs} +72 -10
- package/dist/{platform-management-BS5r6Ao8.mjs → platform-management-DOtss0BN.mjs} +1 -1
- package/dist/{platform-recovery-dJ5Me-I0.mjs → platform-recovery-BvtcXON5.mjs} +2 -2
- package/dist/prepare-Bm3iq-u4.mjs +2 -0
- package/dist/{prepare-DyZ-Yok5.mjs → prepare-C-6YZyyg.mjs} +3 -3
- package/dist/{prepare-C3kt3Rst.mjs → prepare-CRhJbVrG.mjs} +1 -1
- package/dist/{project-cmd-B44I8J_W.mjs → project-cmd-BZLCqOqw.mjs} +29 -15
- package/dist/{project-team-BkbYIsXN.mjs → project-team-BvgM0WoX.mjs} +3 -3
- package/dist/{project-token-C8xEEQnB.mjs → project-token-l5DqK6Az.mjs} +3 -3
- package/dist/project-zero-trust-v6Mvpp8y.mjs +63 -0
- package/dist/{protocol-ZH3jP4a7.d.mts → protocol-BBa6cstI.d.mts} +1 -1
- package/dist/{provision-BhreDAOS.mjs → provision-C4IGqkBf.mjs} +24 -19
- package/dist/{provision-DNtrtaVD.mjs → provision-Fr9pRqce.mjs} +1 -1
- package/dist/{requests-DFyhBMaf.mjs → requests-DN-BbNiM.mjs} +3 -3
- package/dist/{rollback-DHHxXZiS.mjs → rollback-D7rzSaZM.mjs} +4 -4
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/sandbox-container.d.mts +3 -0
- package/dist/runtime/sandbox-container.mjs +2 -0
- package/dist/runtime/sandbox.d.mts +4 -32
- package/dist/runtime/sandbox.mjs +118 -72
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +1 -1
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/sandbox-container-4fdqLnyb.mjs +279 -0
- package/dist/sandbox-container-DdNEBfCc.d.mts +72 -0
- package/dist/sandbox-qpNBT8a3.d.mts +49 -0
- package/dist/{secret-DN9sSNiV.mjs → secret-BOtOl_cb.mjs} +4 -4
- package/dist/{skills-O6FUaizK.mjs → skills-D1II1Juz.mjs} +1 -1
- package/dist/{subcommand-prompt-BuGYkAkC.mjs → subcommand-prompt-CY1C4fvl.mjs} +2 -2
- package/dist/{wrangler-BymcxrRa.mjs → wrangler-DQF1vKyf.mjs} +37 -27
- package/dist/{ws-BwcqizuH.d.mts → ws-BoY7vQML.d.mts} +1 -1
- package/package.json +40 -32
- package/sandbox.Dockerfile +4 -0
- package/schema.json +10 -22
- package/skills/void/SKILL.md +2 -0
- package/skills/void/docs/guide/deployment.md +1 -1
- package/skills/void/docs/guide/edge/revalidation.md +1 -1
- package/skills/void/docs/guide/edge/static-assets.md +1 -0
- package/skills/void/docs/guide/platform/administration/zero-trust.md +318 -0
- package/skills/void/docs/guide/platform/development/local.md +2 -2
- package/skills/void/docs/guide/platform/installation/domains.md +1 -1
- package/skills/void/docs/guide/platform/installation/first-deployment.md +4 -0
- package/skills/void/docs/guide/platform/installation/prerequisites.md +1 -1
- package/skills/void/docs/guide/platform/installation/uninstall.md +17 -2
- package/skills/void/docs/guide/platform-administration.md +1 -0
- package/skills/void/docs/guide/sandboxes.md +70 -41
- package/skills/void/docs/integrations/cloudflare.md +1 -1
- package/skills/void/docs/reference/api.md +35 -35
- package/skills/void/docs/reference/cli.md +68 -6
- package/skills/void/docs/reference/config.md +16 -16
- package/dist/client-4cDVv7BO.mjs +0 -2
- package/dist/gen-Vnv2f65C.mjs +0 -2
- package/dist/help-DQMfeKMz.mjs +0 -2
- package/dist/login-t6rndSRW.mjs +0 -2
- package/dist/migrate-TsHGBnDA.mjs +0 -2
- package/dist/prepare-BZXkjdNe.mjs +0 -2
|
@@ -842,7 +842,7 @@ interface CloudEnv extends Env {
|
|
|
842
842
|
KV: KVNamespace;
|
|
843
843
|
STORAGE: R2Bucket;
|
|
844
844
|
AI: Ai;
|
|
845
|
-
SANDBOX: DurableObjectNamespace<import('
|
|
845
|
+
SANDBOX: DurableObjectNamespace<import('void/sandbox').VoidPlatformSandbox>;
|
|
846
846
|
[key: string]: unknown;
|
|
847
847
|
};
|
|
848
848
|
Variables: CloudContextVariables;
|
|
@@ -1195,37 +1195,37 @@ See [Markdown Pages](../guide/pages-routing/markdown.md) for setup and framework
|
|
|
1195
1195
|
|
|
1196
1196
|
Import Void's app-facing APIs from these paths:
|
|
1197
1197
|
|
|
1198
|
-
| Import path | Contents
|
|
1199
|
-
| ------------------------- |
|
|
1200
|
-
| `void` | `voidPlugin`, handler/type re-exports, `defer`, `Deferred`, `DeferredState`, `InferProps`, `HeadDescriptor`
|
|
1201
|
-
| `void/handler` | `defineHandler`, `defineMiddleware`, `basicAuth`, `defineScheduled`, `defineQueue`, `defineRender`, `defineHead`, types
|
|
1202
|
-
| `void/auth` | `defineAuth`, `getUser`, `getSession`, `requireAuth`, `AuthUser`, `AuthSession`, `AuthState`
|
|
1203
|
-
| `void/client` | `fetch`, `fetchStream`, `FetchError`, `auth`, `createAuthClient`, `AuthUser`, `AuthSession`, `AuthState`
|
|
1204
|
-
| `void/client/{framework}` | Same as `void/client`, with framework-specific Better Auth clients for `react`, `vue`, `svelte`, and `solid`
|
|
1205
|
-
| `void/ws` | `defineRoom`, `defineWebSocket`, `connect`, WebSocket context and connection types
|
|
1206
|
-
| `void/durable` | `defineDurableState`, typed state/RPC/context/migration types
|
|
1207
|
-
| `void/sse` | `eventStream`, `formatSse`, `formatSseText`, `getLastEventId`, `SseStreamClosedError`, SSE message and stream types
|
|
1208
|
-
| `void/sse/client` | `connectEventStream`, browser `EventSource` wrapper types
|
|
1209
|
-
| `void/live` | `defineLiveStream`, SSE topic fanout runtime types. Server-only.
|
|
1210
|
-
| `void/live/client` | `connectLiveStream`, browser helper for one SSE connection plus POST subscribe/unsubscribe control.
|
|
1211
|
-
| `void/response` | `convertReturnValue`
|
|
1212
|
-
| `void/validator` | `runValidation`, `ValidatorSlots`, `HandlerInput`
|
|
1213
|
-
| `void/drizzle-zod` | Re-exports [`drizzle-zod`](https://orm.drizzle.team/docs/zod) for schema-derived Zod validators for Drizzle tables
|
|
1214
|
-
| `void/drizzle-valibot` | Re-exports [`drizzle-valibot`](https://orm.drizzle.team/docs/typebox) for schema-derived Valibot validators for Drizzle tables
|
|
1215
|
-
| `void/drizzle-arktype` | Re-exports [`drizzle-arktype`](https://orm.drizzle.team/docs/arktype) for schema-derived ArkType validators for Drizzle tables
|
|
1216
|
-
| `void/schema-d1` | Re-exports [`drizzle-orm/sqlite-core`](https://orm.drizzle.team/docs/column-types/sqlite) for D1 table and column builders
|
|
1217
|
-
| `void/schema-pg` | Re-exports [`drizzle-orm/pg-core`](https://orm.drizzle.team/docs/column-types/pg) for PostgreSQL table and column builders
|
|
1218
|
-
| `void/schema-mysql` | Re-exports `drizzle-orm/mysql-core` for MySQL table and column builders
|
|
1219
|
-
| `void/database-provider` | `defineDatabaseProvider` and adapter types for `void db connect --provider`
|
|
1220
|
-
| `void/db` | `db` (Drizzle D1, PostgreSQL, or MySQL instance for the active dialect), `createDb`, query operators (`eq`, `and`, `or`, `desc`, `like`, `inArray`, etc.)
|
|
1221
|
-
| `void/seed` | `defineSeed`, `SeedContext`, `SeedFn` for programmatic `void db seed` modules
|
|
1222
|
-
| `void/kv` | `kv`, `createKV`, typed KV client/map types
|
|
1223
|
-
| `void/storage` | `storage`, `createStorage` for the inferred R2 binding or a specific `R2Bucket`
|
|
1224
|
-
| `void/ai` | `ai`, `VoidAi`, model input and response types
|
|
1225
|
-
| `void/isr` | `revalidate(options)` for on-demand ISR cache invalidation
|
|
1226
|
-
| `void/log` | `logger` structured logging helper
|
|
1227
|
-
| `void/routes` | `RouteMap` and `WebSocketRouteMap` stubs (types only)
|
|
1228
|
-
| `void/queues` | `queues` proxy for sending messages to typed queues
|
|
1229
|
-
| `void/sandbox` | `getSandbox`, `sandbox`, `
|
|
1230
|
-
| `void/env` | `defineEnv`, `env`, schema helpers (`string`, `number`, `boolean`, `url`, `email`, `oneOf`, `json`), and global Cloudflare env types
|
|
1231
|
-
| `void/sveltekit` | SvelteKit integration helpers: `withVoidTSConfig()` and `mergeVoidSvelteKitTsconfig()`
|
|
1198
|
+
| Import path | Contents |
|
|
1199
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1200
|
+
| `void` | `voidPlugin`, handler/type re-exports, `defer`, `Deferred`, `DeferredState`, `InferProps`, `HeadDescriptor` |
|
|
1201
|
+
| `void/handler` | `defineHandler`, `defineMiddleware`, `basicAuth`, `defineScheduled`, `defineQueue`, `defineRender`, `defineHead`, types |
|
|
1202
|
+
| `void/auth` | `defineAuth`, `getUser`, `getSession`, `requireAuth`, `AuthUser`, `AuthSession`, `AuthState` |
|
|
1203
|
+
| `void/client` | `fetch`, `fetchStream`, `FetchError`, `auth`, `createAuthClient`, `AuthUser`, `AuthSession`, `AuthState` |
|
|
1204
|
+
| `void/client/{framework}` | Same as `void/client`, with framework-specific Better Auth clients for `react`, `vue`, `svelte`, and `solid` |
|
|
1205
|
+
| `void/ws` | `defineRoom`, `defineWebSocket`, `connect`, WebSocket context and connection types |
|
|
1206
|
+
| `void/durable` | `defineDurableState`, typed state/RPC/context/migration types |
|
|
1207
|
+
| `void/sse` | `eventStream`, `formatSse`, `formatSseText`, `getLastEventId`, `SseStreamClosedError`, SSE message and stream types |
|
|
1208
|
+
| `void/sse/client` | `connectEventStream`, browser `EventSource` wrapper types |
|
|
1209
|
+
| `void/live` | `defineLiveStream`, SSE topic fanout runtime types. Server-only. |
|
|
1210
|
+
| `void/live/client` | `connectLiveStream`, browser helper for one SSE connection plus POST subscribe/unsubscribe control. |
|
|
1211
|
+
| `void/response` | `convertReturnValue` |
|
|
1212
|
+
| `void/validator` | `runValidation`, `ValidatorSlots`, `HandlerInput` |
|
|
1213
|
+
| `void/drizzle-zod` | Re-exports [`drizzle-zod`](https://orm.drizzle.team/docs/zod) for schema-derived Zod validators for Drizzle tables |
|
|
1214
|
+
| `void/drizzle-valibot` | Re-exports [`drizzle-valibot`](https://orm.drizzle.team/docs/typebox) for schema-derived Valibot validators for Drizzle tables |
|
|
1215
|
+
| `void/drizzle-arktype` | Re-exports [`drizzle-arktype`](https://orm.drizzle.team/docs/arktype) for schema-derived ArkType validators for Drizzle tables |
|
|
1216
|
+
| `void/schema-d1` | Re-exports [`drizzle-orm/sqlite-core`](https://orm.drizzle.team/docs/column-types/sqlite) for D1 table and column builders |
|
|
1217
|
+
| `void/schema-pg` | Re-exports [`drizzle-orm/pg-core`](https://orm.drizzle.team/docs/column-types/pg) for PostgreSQL table and column builders |
|
|
1218
|
+
| `void/schema-mysql` | Re-exports `drizzle-orm/mysql-core` for MySQL table and column builders |
|
|
1219
|
+
| `void/database-provider` | `defineDatabaseProvider` and adapter types for `void db connect --provider` |
|
|
1220
|
+
| `void/db` | `db` (Drizzle D1, PostgreSQL, or MySQL instance for the active dialect), `createDb`, query operators (`eq`, `and`, `or`, `desc`, `like`, `inArray`, etc.) |
|
|
1221
|
+
| `void/seed` | `defineSeed`, `SeedContext`, `SeedFn` for programmatic `void db seed` modules |
|
|
1222
|
+
| `void/kv` | `kv`, `createKV`, typed KV client/map types |
|
|
1223
|
+
| `void/storage` | `storage`, `createStorage` for the inferred R2 binding or a specific `R2Bucket` |
|
|
1224
|
+
| `void/ai` | `ai`, `VoidAi`, model input and response types |
|
|
1225
|
+
| `void/isr` | `revalidate(options)` for on-demand ISR cache invalidation |
|
|
1226
|
+
| `void/log` | `logger` structured logging helper |
|
|
1227
|
+
| `void/routes` | `RouteMap` and `WebSocketRouteMap` stubs (types only) |
|
|
1228
|
+
| `void/queues` | `queues` proxy for sending messages to typed queues |
|
|
1229
|
+
| `void/sandbox` | `getSandbox`, `sandbox`, `SandboxLimitError`, `SandboxUnavailableError`, and the SDK 1.0 file, backup, and mount helpers. `getSandbox(id)` returns command execution, files, port requests, and lifecycle operations. Container state lasts until inactivity (default ten minutes), a crash, or a restart. See [Sandboxes](../guide/sandboxes.md) for the API and deployment requirements. |
|
|
1230
|
+
| `void/env` | `defineEnv`, `env`, schema helpers (`string`, `number`, `boolean`, `url`, `email`, `oneOf`, `json`), and global Cloudflare env types |
|
|
1231
|
+
| `void/sveltekit` | SvelteKit integration helpers: `withVoidTSConfig()` and `mergeVoidSvelteKitTsconfig()` |
|
|
@@ -38,6 +38,7 @@ Use this page as a command reference. If you are setting up a project for the fi
|
|
|
38
38
|
| `void project requests` | Show request-level traffic (status, method, timing) |
|
|
39
39
|
| `void project rollback` | Roll back to a previous deployment |
|
|
40
40
|
| `void project cancel` | Cancel an active deployment |
|
|
41
|
+
| `void project zero-trust` | Inspect or override project Zero Trust protection |
|
|
41
42
|
| `void project purge-cache` | Purge all cached pages |
|
|
42
43
|
| `void build logs` | Stream, tail, or download build logs |
|
|
43
44
|
| `void email status` | Show email readiness on your own Cloudflare account (`--platform cloudflare`) |
|
|
@@ -282,6 +283,27 @@ platform, and accepting an invitation leaves directory links intact. To link
|
|
|
282
283
|
the invited application, run `void project link` in an unlinked checkout of
|
|
283
284
|
that application.
|
|
284
285
|
|
|
286
|
+
### `void project zero-trust`
|
|
287
|
+
|
|
288
|
+
Inspect or override protection for a project on a Void platform:
|
|
289
|
+
|
|
290
|
+
```sh
|
|
291
|
+
void project zero-trust status [--project <slug>]
|
|
292
|
+
void project zero-trust protect [--project <slug>]
|
|
293
|
+
void project zero-trust public [--project <slug>]
|
|
294
|
+
void project zero-trust reconcile [--project <slug>]
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Project selection follows `--project`, then `VOID_PROJECT`, then the linked
|
|
298
|
+
project.
|
|
299
|
+
|
|
300
|
+
Readers can inspect the state. The owner or a project administrator can protect
|
|
301
|
+
the project, make it public, or repair drift. `public` does not change the
|
|
302
|
+
platform default for future projects. Deploys and rollbacks wait until a
|
|
303
|
+
protection change is finished; if one is refused, the owner or a project
|
|
304
|
+
administrator can run `void project zero-trust reconcile` before you retry.
|
|
305
|
+
These commands do not apply to direct Cloudflare deployments.
|
|
306
|
+
|
|
285
307
|
### `void project token <create|list|renew|revoke>`
|
|
286
308
|
|
|
287
309
|
Manage revocable `aud: deploy` credentials for one Void platform project. The
|
|
@@ -585,6 +607,46 @@ Search matches a project's slug, ID, or owner's login. `show` includes resources
|
|
|
585
607
|
|
|
586
608
|
`owner` transfers a project to another registered user. Preview it with `--plan`; apply it interactively or with `--yes`. The preview reports active-work blockers and the account plan that will apply. The former owner becomes a project administrator, existing project-scoped CI deploy credentials are revoked, and usage already incurred remains with the former owner.
|
|
587
609
|
|
|
610
|
+
#### Project Zero Trust {#operator-zero-trust}
|
|
611
|
+
|
|
612
|
+
Configure the installation-wide Cloudflare Access policy and project overrides:
|
|
613
|
+
|
|
614
|
+
```sh
|
|
615
|
+
void platform zero-trust status [--check]
|
|
616
|
+
printf '%s' "$ACCESS_API_TOKEN" | void platform zero-trust configure \
|
|
617
|
+
--identity-providers <id[,id...]> \
|
|
618
|
+
--policies <id[,id...]> \
|
|
619
|
+
[--existing-projects <protected|public>] \
|
|
620
|
+
[--protect-new-projects] \
|
|
621
|
+
--token-stdin \
|
|
622
|
+
--yes
|
|
623
|
+
void platform zero-trust reconcile
|
|
624
|
+
void platform zero-trust disable
|
|
625
|
+
|
|
626
|
+
void platform zero-trust project-status <project-id>
|
|
627
|
+
void platform zero-trust project-protect <project-id>
|
|
628
|
+
void platform zero-trust project-public <project-id>
|
|
629
|
+
void platform zero-trust project-reconcile <project-id>
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
Mutations support `--plan`, `--yes`, and `--timeout`; use `--plan` instead of
|
|
633
|
+
`--yes` to inspect this change without applying it. The Access management token
|
|
634
|
+
is accepted only on standard input. Zero Trust uses the Cloudflare account that
|
|
635
|
+
hosts the platform. Omit `--protect-new-projects` to make new projects public
|
|
636
|
+
by default. `--existing-projects` is required when you enable Zero Trust and
|
|
637
|
+
rejected once it is enabled; later configuration changes keep each project's
|
|
638
|
+
protection. `status` reports saved state; `--check` also compares it with
|
|
639
|
+
Cloudflare Access. If status remains `configuring` or `disabling`, run
|
|
640
|
+
`void platform zero-trust reconcile` to resume the saved operation. Protected
|
|
641
|
+
projects support up to 100 custom domains.
|
|
642
|
+
|
|
643
|
+
The token needs **Access: Apps and Policies Write** plus **Access:
|
|
644
|
+
Organizations, Identity Providers, and Groups Read**, scoped to the platform's
|
|
645
|
+
Cloudflare account. Select at least one Allow policy that matches people by
|
|
646
|
+
identity; Void rejects Bypass and Service Auth policies and rules that allow
|
|
647
|
+
Everyone or any service token. See [Project Zero Trust](../guide/platform/administration/zero-trust.md)
|
|
648
|
+
for requirements and recovery.
|
|
649
|
+
|
|
588
650
|
#### Deployments {#operator-deployments}
|
|
589
651
|
|
|
590
652
|
Find a deployment, inspect its manifest, or request cancellation:
|
|
@@ -818,7 +880,7 @@ See [Self-host a Void platform](../guide/self-hosted-platform.md) for prerequisi
|
|
|
818
880
|
void platform domain set <domain> [--installation <id>] [--zone <domain>] [--dedicated-zone] [--plan] [--yes]
|
|
819
881
|
```
|
|
820
882
|
|
|
821
|
-
Add an application domain to a workers.dev test platform. Domain-based installations remain the recommended default. The command detects the zone when possible, creates missing DNS and routes after confirmation, and checks HTTPS before making the domain canonical. If DNS or
|
|
883
|
+
Add an application domain to a workers.dev test platform. Domain-based installations remain the recommended default. The command detects the zone when possible, creates missing DNS and routes after confirmation, and checks HTTPS and project Zero Trust protection before making the domain canonical. If DNS, certificates, or protection are pending, rerun the same command to resume. `--plan` is read-only; non-interactive mutations require `--yes`.
|
|
822
884
|
|
|
823
885
|
Existing workers.dev URLs remain available, and the platform API origin, OAuth callback, projects, and deployments stay unchanged. The command verifies the running runtime token's Cache Purge permission for the new zone. A disabled platform stays disabled. Use the database URL from the original installation when administering from another machine. Replacing an already configured application domain is not supported. See [Adding a Domain](../guide/platform/installation/domains.md#adding-a-domain).
|
|
824
886
|
|
|
@@ -866,11 +928,11 @@ An upgrade completes after the new Workers pass health checks. If rollout fails,
|
|
|
866
928
|
|
|
867
929
|
`platform rollback` restores a compatible earlier runtime without reversing database migrations. Pass its files with `--runtime`. If the installed version is a custom build, also supply that version with `--from-runtime`. Void refuses targets that are incompatible with the current database or predate installed authentication, sandbox-drain, or ownership-aware usage protocols. A later `upgrade` can move forward again.
|
|
868
930
|
|
|
869
|
-
Uninstall verifies remote ownership before removing anything. Data resources are retained unless you pass `--purge-data`. Workers, R2, AI Gateway, DNS records, routes, custom domains, adopted resources, external PostgreSQL, and zones are always retained for manual review.
|
|
931
|
+
Uninstall verifies remote ownership before removing anything. Data resources are retained unless you pass `--purge-data`. Workers, the Queues they use, R2, AI Gateway, DNS records, routes, custom domains, adopted resources, external PostgreSQL, and zones are always retained for manual review.
|
|
870
932
|
|
|
871
933
|
Resources that may have been shared or repurposed are retained for manual review. Platform traffic stays blocked. External PostgreSQL and its data are never deleted.
|
|
872
934
|
|
|
873
|
-
See [Disable and Uninstall](../guide/platform/installation/uninstall.md) for the full removal policy.
|
|
935
|
+
See [Disable and Uninstall](../guide/platform/installation/uninstall.md#remove-retained-resources) for the full removal policy and the cleanup order.
|
|
874
936
|
|
|
875
937
|
## Deploy
|
|
876
938
|
|
|
@@ -1400,7 +1462,7 @@ void github connect my-app \
|
|
|
1400
1462
|
|
|
1401
1463
|
For every organization installation, `void github connect` confirms that you personally have access to the specific repository, including when you originally installed the App. Interactively (TTY), it opens your browser once to authorize access to that repo on GitHub (a localhost + PKCE handshake), then completes the connection automatically. Without a TTY, this per-repo authorization never opens a browser: connect fails closed with an error explaining that the installation requires per-repo authorization and telling you to run `void github connect` locally. Interactively, connect joins the shared installation automatically when your account has no active installations linked, so running `void github join` first is optional. You can only connect repositories you can access on GitHub; seeing the organization installation never grants access to its other private repositories.
|
|
1402
1464
|
|
|
1403
|
-
|
|
1465
|
+
A project has one GitHub connection. Running `void github connect` on a project that is already connected fails. To connect a different repository, run `void github disconnect` first.
|
|
1404
1466
|
|
|
1405
1467
|
### `void github update`
|
|
1406
1468
|
|
|
@@ -1433,7 +1495,7 @@ void github update my-app --executor github_actions
|
|
|
1433
1495
|
void github status [project]
|
|
1434
1496
|
```
|
|
1435
1497
|
|
|
1436
|
-
Show a project's current GitHub connection: the connected **repository**, the deploy **branch**, the **build executor** (`container` or `github_actions`), and the authorized **deploy workflow file**. Read-only — it never changes anything. The workflow file is the OIDC pin used only for `github_actions` builds; on a `container` connection it is still shown but marked unused.
|
|
1498
|
+
Show a project's current GitHub connection: the connected **repository**, the deploy **branch**, the **build executor** (`container` or `github_actions`), and the authorized **deploy workflow file**. Read-only — it never changes anything. The workflow file is the OIDC pin used only for `github_actions` builds; on a `container` connection it is still shown but marked unused. The project must already be connected (run `void github connect` first, otherwise it reports that and exits).
|
|
1437
1499
|
|
|
1438
1500
|
**Options**
|
|
1439
1501
|
|
|
@@ -1522,7 +1584,7 @@ Add a custom domain to the saved target. Hosted Void projects print the DNS reco
|
|
|
1522
1584
|
void domain delete <hostname> [--project <name>]
|
|
1523
1585
|
```
|
|
1524
1586
|
|
|
1525
|
-
Direct Cloudflare projects apply the change immediately. Deleting the final custom domain
|
|
1587
|
+
Direct Cloudflare projects apply the change immediately. Deleting the final custom domain uses your browser session from `void cloudflare login` or an API token with Workers Scripts: Edit permission. If Cloudflare rejects the change, Void attempts to restore the previous domain configuration and reports whether recovery succeeded.
|
|
1526
1588
|
|
|
1527
1589
|
Remove a custom domain from the saved target. For Cloudflare, this removes the matching `custom_domain` route and synchronizes triggers. If Cloudflare rejects the update, Void restores the exact previous local config and immediately reapplies it remotely. If that second synchronization also fails, the CLI reports that remote route state may be partial instead of claiming a successful rollback.
|
|
1528
1590
|
|
|
@@ -229,31 +229,31 @@ VOID_REMOTE=1 pnpm dev
|
|
|
229
229
|
|
|
230
230
|
### `sandbox`
|
|
231
231
|
|
|
232
|
-
Enable and configure Cloudflare Sandboxes
|
|
232
|
+
Enable and configure Cloudflare Sandboxes. Importing from `void/sandbox` enables this automatically.
|
|
233
233
|
|
|
234
234
|
```json
|
|
235
235
|
{
|
|
236
236
|
"sandbox": {
|
|
237
237
|
"image": "./Dockerfile.sandbox",
|
|
238
|
-
"platformImage": "registry.
|
|
239
|
-
"instanceType": "
|
|
240
|
-
"maxInstances": 2
|
|
238
|
+
"platformImage": "registry.cloudflare.com/<account-id>/sandbox@sha256:<digest>",
|
|
239
|
+
"instanceType": "standard-1"
|
|
241
240
|
}
|
|
242
241
|
}
|
|
243
242
|
```
|
|
244
243
|
|
|
245
|
-
| Field | Type | Default
|
|
246
|
-
| ------------------- | -------- |
|
|
247
|
-
| `binding` | `string` | `SANDBOX`
|
|
248
|
-
| `className` | `string` | `
|
|
249
|
-
| `containerName` | `string` | `void-sandbox`
|
|
250
|
-
| `image` | `string` |
|
|
251
|
-
| `imageBuildContext` | `string` | Directory of `image`
|
|
252
|
-
| `platformImage` | `string` |
|
|
253
|
-
| `instanceType` | `string` | `lite`
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
244
|
+
| Field | Type | Default |
|
|
245
|
+
| ------------------- | -------- | --------------------------- |
|
|
246
|
+
| `binding` | `string` | `SANDBOX` |
|
|
247
|
+
| `className` | `string` | `SandboxV1` |
|
|
248
|
+
| `containerName` | `string` | `void-sandbox-v1` |
|
|
249
|
+
| `image` | `string` | Packaged Node.js Dockerfile |
|
|
250
|
+
| `imageBuildContext` | `string` | Directory of `image` |
|
|
251
|
+
| `platformImage` | `string` | `cloudflare/debian-trixie` |
|
|
252
|
+
| `instanceType` | `string` | `lite` |
|
|
253
|
+
|
|
254
|
+
Supported sizes are `lite` and `standard-1` through `standard-4`. Native deploys build Dockerfiles with Docker; registry images must be digest-pinned references from the Cloudflare managed registry. Custom images must include the matching Sandbox SDK helper. For a local Dockerfile, supply `platformImage` when deploying to a managed platform. See [Sandboxes](../guide/sandboxes.md) for image setup and runtime examples.
|
|
255
|
+
|
|
256
|
+
Sandbox requires [Workers Paid](https://dash.cloudflare.com/?to=/:account/workers/plans) and Containers access, checked before provisioning or building. Managed runtime tokens need Account / Containers: Edit and Account / Cloudchamber: Edit. Apps without Sandbox use neither Containers nor an entitlement check.
|
|
257
257
|
|
|
258
258
|
### `target`
|
|
259
259
|
|
package/dist/client-4cDVv7BO.mjs
DELETED
package/dist/gen-Vnv2f65C.mjs
DELETED
package/dist/help-DQMfeKMz.mjs
DELETED
package/dist/login-t6rndSRW.mjs
DELETED