@voltro/cli 0.1.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/CHANGELOG.md +52 -0
- package/LICENSE +57 -0
- package/README.md +26 -0
- package/SECURITY.md +56 -0
- package/THIRD-PARTY-NOTICES.md +20236 -0
- package/bin/voltro.mjs +43 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +9 -0
- package/dist/commands-CfPH2Wf4.js +18061 -0
- package/dist/frameworkInspectState-CX2250XB.js +86 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.js +5 -0
- package/dist/inspectState.d.ts +116 -0
- package/dist/inspectState.js +2 -0
- package/dist/startup.d.ts +26 -0
- package/dist/startup.js +2 -0
- package/dist/startupRunner-CRhuUl91.js +71 -0
- package/package.json +88 -0
- package/templates/AGENTS.core.md +258 -0
- package/templates/AGENTS.md +351 -0
- package/templates/agent-docs/_index.md +93 -0
- package/templates/agent-docs/_manifest.json +655 -0
- package/templates/agent-docs/ai.md +1845 -0
- package/templates/agent-docs/authentication.md +1788 -0
- package/templates/agent-docs/caching.md +624 -0
- package/templates/agent-docs/cli.md +1650 -0
- package/templates/agent-docs/configuration.md +295 -0
- package/templates/agent-docs/data.md +2172 -0
- package/templates/agent-docs/database/advancedqueries.md +1583 -0
- package/templates/agent-docs/database/columntypes.md +1200 -0
- package/templates/agent-docs/database/hosting.md +881 -0
- package/templates/agent-docs/database/migrations.md +2938 -0
- package/templates/agent-docs/database/misc.md +270 -0
- package/templates/agent-docs/database/overview.md +108 -0
- package/templates/agent-docs/database/querying.md +1622 -0
- package/templates/agent-docs/database/scaling.md +331 -0
- package/templates/agent-docs/database/schema.md +1458 -0
- package/templates/agent-docs/database/seedsdialects.md +1235 -0
- package/templates/agent-docs/database/transactions.md +285 -0
- package/templates/agent-docs/deployment.md +999 -0
- package/templates/agent-docs/internationalization.md +359 -0
- package/templates/agent-docs/introduction.md +438 -0
- package/templates/agent-docs/multi-tenancy.md +610 -0
- package/templates/agent-docs/observability.md +350 -0
- package/templates/agent-docs/plugins.md +1273 -0
- package/templates/agent-docs/reference.md +978 -0
- package/templates/agent-docs/routing.md +1553 -0
- package/templates/agent-docs/scheduling.md +666 -0
- package/templates/agent-docs/schema-driven-ui.md +607 -0
- package/templates/agent-docs/security.md +42 -0
- package/templates/agent-docs/templates/apibackends.md +3214 -0
- package/templates/agent-docs/templates/appshells.md +2062 -0
- package/templates/agent-docs/templates/custom.md +128 -0
- package/templates/agent-docs/templates/overview.md +122 -0
- package/templates/agent-docs/templates/serverless.md +315 -0
- package/templates/agent-docs/testing.md +376 -0
- package/templates/agent-docs/workflows.md +1351 -0
- package/templates/apps/api-ai/README.md +105 -0
- package/templates/apps/api-ai/actions/summarize.action.server.tsx +32 -0
- package/templates/apps/api-ai/actions/summarize.action.ts +33 -0
- package/templates/apps/api-ai/agents/support.agent.server.tsx +31 -0
- package/templates/apps/api-ai/agents/support.agent.tsx +27 -0
- package/templates/apps/api-ai/app.config.ts +57 -0
- package/templates/apps/api-ai/database/schema.ts +67 -0
- package/templates/apps/api-ai/package.json +27 -0
- package/templates/apps/api-ai/seeds/docs.seed.ts +67 -0
- package/templates/apps/api-ai/template.json +6 -0
- package/templates/apps/api-ai/tests/summarize.test.ts +50 -0
- package/templates/apps/api-ai/tools/searchDocs.tool.tsx +60 -0
- package/templates/apps/api-ai/tsconfig.json +5 -0
- package/templates/apps/api-auth/.env +17 -0
- package/templates/apps/api-auth/README.md +109 -0
- package/templates/apps/api-auth/actions/me.action.server.ts +20 -0
- package/templates/apps/api-auth/actions/me.action.ts +19 -0
- package/templates/apps/api-auth/app.config.ts +59 -0
- package/templates/apps/api-auth/database/schema.ts +26 -0
- package/templates/apps/api-auth/package.json +28 -0
- package/templates/apps/api-auth/template.json +6 -0
- package/templates/apps/api-auth/tests/me.test.ts +37 -0
- package/templates/apps/api-auth/tsconfig.json +5 -0
- package/templates/apps/api-backend/README.md +25 -0
- package/templates/apps/api-backend/app.config.ts +39 -0
- package/templates/apps/api-backend/database/schema.ts +57 -0
- package/templates/apps/api-backend/mutations/notes.create.mutation.server.ts +19 -0
- package/templates/apps/api-backend/mutations/notes.create.mutation.ts +37 -0
- package/templates/apps/api-backend/package.json +28 -0
- package/templates/apps/api-backend/queries/notes.query.server.ts +14 -0
- package/templates/apps/api-backend/queries/notes.query.ts +20 -0
- package/templates/apps/api-backend/template.json +6 -0
- package/templates/apps/api-backend/tests/notes.create.test.ts +50 -0
- package/templates/apps/api-backend/tsconfig.json +5 -0
- package/templates/apps/api-backend-deactivation/README.md +49 -0
- package/templates/apps/api-backend-deactivation/actions/users.get.action.server.ts +17 -0
- package/templates/apps/api-backend-deactivation/actions/users.get.action.ts +18 -0
- package/templates/apps/api-backend-deactivation/app.config.ts +20 -0
- package/templates/apps/api-backend-deactivation/database/schema.ts +41 -0
- package/templates/apps/api-backend-deactivation/mutations/users.create.mutation.server.ts +6 -0
- package/templates/apps/api-backend-deactivation/mutations/users.create.mutation.ts +16 -0
- package/templates/apps/api-backend-deactivation/mutations/users.deactivate.mutation.server.ts +10 -0
- package/templates/apps/api-backend-deactivation/mutations/users.deactivate.mutation.ts +19 -0
- package/templates/apps/api-backend-deactivation/package.json +28 -0
- package/templates/apps/api-backend-deactivation/template.json +6 -0
- package/templates/apps/api-backend-deactivation/tests/users.deactivate.test.ts +47 -0
- package/templates/apps/api-backend-deactivation/tsconfig.json +5 -0
- package/templates/apps/api-backend-mail/README.md +39 -0
- package/templates/apps/api-backend-mail/actions/sendWelcome.action.server.ts +15 -0
- package/templates/apps/api-backend-mail/actions/sendWelcome.action.ts +21 -0
- package/templates/apps/api-backend-mail/app.config.ts +34 -0
- package/templates/apps/api-backend-mail/database/schema.ts +57 -0
- package/templates/apps/api-backend-mail/emails/welcome.email.tsx +106 -0
- package/templates/apps/api-backend-mail/mutations/notes.create.mutation.server.ts +19 -0
- package/templates/apps/api-backend-mail/mutations/notes.create.mutation.ts +37 -0
- package/templates/apps/api-backend-mail/package.json +30 -0
- package/templates/apps/api-backend-mail/queries/notes.query.server.ts +14 -0
- package/templates/apps/api-backend-mail/queries/notes.query.ts +20 -0
- package/templates/apps/api-backend-mail/template.json +6 -0
- package/templates/apps/api-backend-mail/tests/notes.create.test.ts +50 -0
- package/templates/apps/api-backend-mail/tsconfig.json +5 -0
- package/templates/apps/api-backend-mariadb/.env.example +35 -0
- package/templates/apps/api-backend-mariadb/README.md +31 -0
- package/templates/apps/api-backend-mariadb/app.config.ts +68 -0
- package/templates/apps/api-backend-mariadb/database/schema.ts +57 -0
- package/templates/apps/api-backend-mariadb/mutations/notes.create.mutation.server.ts +19 -0
- package/templates/apps/api-backend-mariadb/mutations/notes.create.mutation.ts +37 -0
- package/templates/apps/api-backend-mariadb/package.json +30 -0
- package/templates/apps/api-backend-mariadb/queries/notes.query.server.ts +14 -0
- package/templates/apps/api-backend-mariadb/queries/notes.query.ts +20 -0
- package/templates/apps/api-backend-mariadb/template.json +6 -0
- package/templates/apps/api-backend-mariadb/tests/notes.create.test.ts +50 -0
- package/templates/apps/api-backend-mariadb/tsconfig.json +5 -0
- package/templates/apps/api-backend-storage/README.md +86 -0
- package/templates/apps/api-backend-storage/actions/uploadAvatar.action.server.ts +21 -0
- package/templates/apps/api-backend-storage/actions/uploadAvatar.action.ts +21 -0
- package/templates/apps/api-backend-storage/actions/uploadDocument.action.server.ts +21 -0
- package/templates/apps/api-backend-storage/actions/uploadDocument.action.ts +20 -0
- package/templates/apps/api-backend-storage/app.config.ts +38 -0
- package/templates/apps/api-backend-storage/database/schema.ts +57 -0
- package/templates/apps/api-backend-storage/mutations/notes.create.mutation.server.ts +19 -0
- package/templates/apps/api-backend-storage/mutations/notes.create.mutation.ts +37 -0
- package/templates/apps/api-backend-storage/package.json +27 -0
- package/templates/apps/api-backend-storage/queries/notes.query.server.ts +14 -0
- package/templates/apps/api-backend-storage/queries/notes.query.ts +20 -0
- package/templates/apps/api-backend-storage/template.json +6 -0
- package/templates/apps/api-backend-storage/tests/notes.create.test.ts +50 -0
- package/templates/apps/api-backend-storage/tsconfig.json +5 -0
- package/templates/apps/api-data-advanced/.env +17 -0
- package/templates/apps/api-data-advanced/README.md +88 -0
- package/templates/apps/api-data-advanced/app.config.ts +56 -0
- package/templates/apps/api-data-advanced/database/actors.entity.ts +14 -0
- package/templates/apps/api-data-advanced/database/authors.entity.ts +30 -0
- package/templates/apps/api-data-advanced/database/authors.relations.ts +15 -0
- package/templates/apps/api-data-advanced/database/books.entity.ts +59 -0
- package/templates/apps/api-data-advanced/database/books.relations.ts +10 -0
- package/templates/apps/api-data-advanced/database/index.ts +23 -0
- package/templates/apps/api-data-advanced/database/tenants.entity.ts +11 -0
- package/templates/apps/api-data-advanced/package.json +28 -0
- package/templates/apps/api-data-advanced/queries/authors.withBooks.query.server.ts +18 -0
- package/templates/apps/api-data-advanced/queries/authors.withBooks.query.ts +40 -0
- package/templates/apps/api-data-advanced/queries/books.search.query.server.ts +17 -0
- package/templates/apps/api-data-advanced/queries/books.search.query.ts +39 -0
- package/templates/apps/api-data-advanced/seeds/catalog.seed.ts +101 -0
- package/templates/apps/api-data-advanced/template.json +6 -0
- package/templates/apps/api-data-advanced/tests/queries.test.ts +124 -0
- package/templates/apps/api-data-advanced/tsconfig.json +5 -0
- package/templates/apps/api-durable/README.md +81 -0
- package/templates/apps/api-durable/aggregates/orderStats.aggregate.ts +49 -0
- package/templates/apps/api-durable/app.config.ts +41 -0
- package/templates/apps/api-durable/database/schema.ts +65 -0
- package/templates/apps/api-durable/mutations/orders.approve.mutation.server.ts +43 -0
- package/templates/apps/api-durable/mutations/orders.approve.mutation.ts +23 -0
- package/templates/apps/api-durable/mutations/orders.place.mutation.server.ts +45 -0
- package/templates/apps/api-durable/mutations/orders.place.mutation.ts +40 -0
- package/templates/apps/api-durable/package.json +28 -0
- package/templates/apps/api-durable/schedules/nightlyReport.cron.tsx +37 -0
- package/templates/apps/api-durable/startup/warm.startup.tsx +33 -0
- package/templates/apps/api-durable/subscribers/orderChanges.subscribe.ts +27 -0
- package/templates/apps/api-durable/template.json +6 -0
- package/templates/apps/api-durable/tests/orders.place.test.ts +91 -0
- package/templates/apps/api-durable/triggers/order.placed.trigger.tsx +21 -0
- package/templates/apps/api-durable/tsconfig.json +5 -0
- package/templates/apps/api-durable/workflows/order.fulfill.workflow.server.tsx +103 -0
- package/templates/apps/api-durable/workflows/order.fulfill.workflow.tsx +25 -0
- package/templates/apps/api-feature-flags/README.md +63 -0
- package/templates/apps/api-feature-flags/actions/notes.export.action.server.ts +11 -0
- package/templates/apps/api-feature-flags/actions/notes.export.action.ts +18 -0
- package/templates/apps/api-feature-flags/app.config.ts +41 -0
- package/templates/apps/api-feature-flags/database/schema.ts +37 -0
- package/templates/apps/api-feature-flags/mutations/notes.create.mutation.server.ts +29 -0
- package/templates/apps/api-feature-flags/mutations/notes.create.mutation.ts +28 -0
- package/templates/apps/api-feature-flags/package.json +29 -0
- package/templates/apps/api-feature-flags/template.json +6 -0
- package/templates/apps/api-feature-flags/tests/notes.create.test.ts +67 -0
- package/templates/apps/api-feature-flags/tsconfig.json +5 -0
- package/templates/apps/api-governance/.env +4 -0
- package/templates/apps/api-governance/README.md +61 -0
- package/templates/apps/api-governance/actions/profiles.get.action.server.ts +17 -0
- package/templates/apps/api-governance/actions/profiles.get.action.ts +17 -0
- package/templates/apps/api-governance/app.config.ts +35 -0
- package/templates/apps/api-governance/database/schema.ts +41 -0
- package/templates/apps/api-governance/mutations/profiles.create.mutation.server.ts +17 -0
- package/templates/apps/api-governance/mutations/profiles.create.mutation.ts +21 -0
- package/templates/apps/api-governance/package.json +29 -0
- package/templates/apps/api-governance/template.json +6 -0
- package/templates/apps/api-governance/tests/profiles.create.test.ts +59 -0
- package/templates/apps/api-governance/tsconfig.json +5 -0
- package/templates/apps/api-kv/README.md +100 -0
- package/templates/apps/api-kv/actions/sync.pull.action.server.ts +75 -0
- package/templates/apps/api-kv/actions/sync.pull.action.ts +25 -0
- package/templates/apps/api-kv/actions/sync.reset.action.server.ts +25 -0
- package/templates/apps/api-kv/actions/sync.reset.action.ts +22 -0
- package/templates/apps/api-kv/actions/sync.status.action.server.ts +28 -0
- package/templates/apps/api-kv/actions/sync.status.action.ts +17 -0
- package/templates/apps/api-kv/app.config.ts +48 -0
- package/templates/apps/api-kv/database/schema.ts +62 -0
- package/templates/apps/api-kv/package.json +28 -0
- package/templates/apps/api-kv/queries/events.list.query.server.ts +14 -0
- package/templates/apps/api-kv/queries/events.list.query.ts +23 -0
- package/templates/apps/api-kv/template.json +6 -0
- package/templates/apps/api-kv/tests/sync.test.ts +103 -0
- package/templates/apps/api-kv/tsconfig.json +5 -0
- package/templates/apps/api-moderation/README.md +46 -0
- package/templates/apps/api-moderation/app.config.ts +33 -0
- package/templates/apps/api-moderation/database/schema.ts +45 -0
- package/templates/apps/api-moderation/mutations/comments.create.mutation.server.ts +8 -0
- package/templates/apps/api-moderation/mutations/comments.create.mutation.ts +20 -0
- package/templates/apps/api-moderation/mutations/posts.create.mutation.server.ts +9 -0
- package/templates/apps/api-moderation/mutations/posts.create.mutation.ts +25 -0
- package/templates/apps/api-moderation/package.json +29 -0
- package/templates/apps/api-moderation/template.json +6 -0
- package/templates/apps/api-moderation/tests/posts.create.test.ts +79 -0
- package/templates/apps/api-moderation/tsconfig.json +5 -0
- package/templates/apps/api-observability/README.md +106 -0
- package/templates/apps/api-observability/app.config.ts +32 -0
- package/templates/apps/api-observability/database/schema.ts +38 -0
- package/templates/apps/api-observability/mutations/notes.create.mutation.server.ts +33 -0
- package/templates/apps/api-observability/mutations/notes.create.mutation.ts +15 -0
- package/templates/apps/api-observability/package.json +29 -0
- package/templates/apps/api-observability/queries/notes.list.query.server.ts +7 -0
- package/templates/apps/api-observability/queries/notes.list.query.ts +14 -0
- package/templates/apps/api-observability/template.json +6 -0
- package/templates/apps/api-observability/tests/notes.create.test.ts +36 -0
- package/templates/apps/api-observability/tsconfig.json +5 -0
- package/templates/apps/api-ratelimit/README.md +49 -0
- package/templates/apps/api-ratelimit/app.config.ts +42 -0
- package/templates/apps/api-ratelimit/database/schema.ts +37 -0
- package/templates/apps/api-ratelimit/mutations/notes.create.mutation.server.ts +16 -0
- package/templates/apps/api-ratelimit/mutations/notes.create.mutation.ts +34 -0
- package/templates/apps/api-ratelimit/package.json +29 -0
- package/templates/apps/api-ratelimit/template.json +6 -0
- package/templates/apps/api-ratelimit/tests/notes.create.test.ts +69 -0
- package/templates/apps/api-ratelimit/tsconfig.json +5 -0
- package/templates/apps/api-rbac/README.md +59 -0
- package/templates/apps/api-rbac/app.config.ts +48 -0
- package/templates/apps/api-rbac/database/schema.ts +37 -0
- package/templates/apps/api-rbac/mutations/notes.create.mutation.server.ts +22 -0
- package/templates/apps/api-rbac/mutations/notes.create.mutation.ts +26 -0
- package/templates/apps/api-rbac/package.json +29 -0
- package/templates/apps/api-rbac/template.json +6 -0
- package/templates/apps/api-rbac/tests/notes.create.test.ts +80 -0
- package/templates/apps/api-rbac/tsconfig.json +5 -0
- package/templates/apps/api-rest/README.md +85 -0
- package/templates/apps/api-rest/app.config.ts +70 -0
- package/templates/apps/api-rest/database/schema.ts +52 -0
- package/templates/apps/api-rest/lib/product.ts +30 -0
- package/templates/apps/api-rest/package.json +27 -0
- package/templates/apps/api-rest/routes/v1/products.create.route.tsx +45 -0
- package/templates/apps/api-rest/routes/v1/products.delete.route.tsx +25 -0
- package/templates/apps/api-rest/routes/v1/products.get.route.tsx +29 -0
- package/templates/apps/api-rest/routes/v1/products.list.route.tsx +43 -0
- package/templates/apps/api-rest/template.json +6 -0
- package/templates/apps/api-rest/tests/products.create.test.ts +53 -0
- package/templates/apps/api-rest/tsconfig.json +5 -0
- package/templates/apps/api-saas/README.md +106 -0
- package/templates/apps/api-saas/app.config.ts +51 -0
- package/templates/apps/api-saas/database/schema.ts +50 -0
- package/templates/apps/api-saas/mutations/projects.create.mutation.server.ts +52 -0
- package/templates/apps/api-saas/mutations/projects.create.mutation.ts +18 -0
- package/templates/apps/api-saas/package.json +31 -0
- package/templates/apps/api-saas/queries/projects.list.query.server.ts +7 -0
- package/templates/apps/api-saas/queries/projects.list.query.ts +18 -0
- package/templates/apps/api-saas/template.json +6 -0
- package/templates/apps/api-saas/tests/projects.create.test.ts +47 -0
- package/templates/apps/api-saas/tsconfig.json +5 -0
- package/templates/apps/api-search/README.md +68 -0
- package/templates/apps/api-search/app.config.ts +31 -0
- package/templates/apps/api-search/database/schema.ts +47 -0
- package/templates/apps/api-search/lib/search.ts +27 -0
- package/templates/apps/api-search/mutations/articles.create.mutation.server.ts +19 -0
- package/templates/apps/api-search/mutations/articles.create.mutation.ts +35 -0
- package/templates/apps/api-search/package.json +29 -0
- package/templates/apps/api-search/queries/articles.list.query.server.ts +14 -0
- package/templates/apps/api-search/queries/articles.list.query.ts +19 -0
- package/templates/apps/api-search/seeds/articles.seed.ts +41 -0
- package/templates/apps/api-search/startup/searchBackfill.startup.tsx +24 -0
- package/templates/apps/api-search/template.json +6 -0
- package/templates/apps/api-search/tests/articles.create.test.ts +69 -0
- package/templates/apps/api-search/tsconfig.json +5 -0
- package/templates/apps/api-versioning/README.md +51 -0
- package/templates/apps/api-versioning/actions/documents.asOf.action.server.ts +13 -0
- package/templates/apps/api-versioning/actions/documents.asOf.action.ts +14 -0
- package/templates/apps/api-versioning/actions/documents.history.action.server.ts +15 -0
- package/templates/apps/api-versioning/actions/documents.history.action.ts +17 -0
- package/templates/apps/api-versioning/app.config.ts +24 -0
- package/templates/apps/api-versioning/database/schema.ts +38 -0
- package/templates/apps/api-versioning/mutations/documents.create.mutation.server.ts +8 -0
- package/templates/apps/api-versioning/mutations/documents.create.mutation.ts +21 -0
- package/templates/apps/api-versioning/mutations/documents.update.mutation.server.ts +9 -0
- package/templates/apps/api-versioning/mutations/documents.update.mutation.ts +21 -0
- package/templates/apps/api-versioning/package.json +29 -0
- package/templates/apps/api-versioning/template.json +6 -0
- package/templates/apps/api-versioning/tests/documents.create.test.ts +37 -0
- package/templates/apps/api-versioning/tsconfig.json +5 -0
- package/templates/apps/api-webhooks/.env +6 -0
- package/templates/apps/api-webhooks/README.md +106 -0
- package/templates/apps/api-webhooks/app.config.ts +16 -0
- package/templates/apps/api-webhooks/database/schema.ts +49 -0
- package/templates/apps/api-webhooks/events/order.completed.webhook.tsx +22 -0
- package/templates/apps/api-webhooks/mutations/orders.fulfill.mutation.server.ts +37 -0
- package/templates/apps/api-webhooks/mutations/orders.fulfill.mutation.ts +15 -0
- package/templates/apps/api-webhooks/package.json +28 -0
- package/templates/apps/api-webhooks/queries/orders.list.query.server.ts +7 -0
- package/templates/apps/api-webhooks/queries/orders.list.query.ts +15 -0
- package/templates/apps/api-webhooks/template.json +6 -0
- package/templates/apps/api-webhooks/tests/orders.fulfill.test.ts +51 -0
- package/templates/apps/api-webhooks/tsconfig.json +5 -0
- package/templates/apps/api-webhooks/webhooks/orders.webhook.tsx +35 -0
- package/templates/apps/changelog/README.md +77 -0
- package/templates/apps/changelog/app.config.ts +27 -0
- package/templates/apps/changelog/content/releases/0.1.0.mdx +19 -0
- package/templates/apps/changelog/content/releases/0.2.0.mdx +28 -0
- package/templates/apps/changelog/package.json +30 -0
- package/templates/apps/changelog/scripts/generate-rss.mjs +38 -0
- package/templates/apps/changelog/src/globals.css +66 -0
- package/templates/apps/changelog/src/globals.d.ts +16 -0
- package/templates/apps/changelog/src/lib/locale.test.ts +72 -0
- package/templates/apps/changelog/src/lib/locale.ts +55 -0
- package/templates/apps/changelog/src/lib/releases.ts +21 -0
- package/templates/apps/changelog/src/locales/de.ts +22 -0
- package/templates/apps/changelog/src/locales/en.ts +30 -0
- package/templates/apps/changelog/src/pages/[locale]/[slug].tsx +24 -0
- package/templates/apps/changelog/src/pages/[locale]/index.tsx +13 -0
- package/templates/apps/changelog/src/pages/[locale]/mirrors.test.tsx +95 -0
- package/templates/apps/changelog/src/pages/[slug].test.tsx +127 -0
- package/templates/apps/changelog/src/pages/[slug].tsx +52 -0
- package/templates/apps/changelog/src/pages/index.test.tsx +112 -0
- package/templates/apps/changelog/src/pages/index.tsx +55 -0
- package/templates/apps/changelog/src/pages/layout.tsx +84 -0
- package/templates/apps/changelog/template.json +6 -0
- package/templates/apps/changelog/tsconfig.json +11 -0
- package/templates/apps/edge-functions/README.md +55 -0
- package/templates/apps/edge-functions/functions/aiComplete.serverless.ts +58 -0
- package/templates/apps/edge-functions/functions/currencyConvert.serverless.ts +47 -0
- package/templates/apps/edge-functions/functions/geoGreeting.serverless.ts +44 -0
- package/templates/apps/edge-functions/functions/health.serverless.ts +29 -0
- package/templates/apps/edge-functions/functions/resolveLink.serverless.ts +32 -0
- package/templates/apps/edge-functions/functions/shareLink.serverless.ts +30 -0
- package/templates/apps/edge-functions/functions/slackNotify.serverless.ts +40 -0
- package/templates/apps/edge-functions/functions/verifySignature.serverless.ts +52 -0
- package/templates/apps/edge-functions/package.json +21 -0
- package/templates/apps/edge-functions/template.json +6 -0
- package/templates/apps/edge-functions/tsconfig.json +10 -0
- package/templates/apps/frontend-admin/README.md +40 -0
- package/templates/apps/frontend-admin/app.config.ts +37 -0
- package/templates/apps/frontend-admin/package.json +30 -0
- package/templates/apps/frontend-admin/src/config.ts +8 -0
- package/templates/apps/frontend-admin/src/globals.css +76 -0
- package/templates/apps/frontend-admin/src/globals.d.ts +6 -0
- package/templates/apps/frontend-admin/src/lib/admin.ts +16 -0
- package/templates/apps/frontend-admin/src/lib/auth.ts +24 -0
- package/templates/apps/frontend-admin/src/locales/de.ts +67 -0
- package/templates/apps/frontend-admin/src/locales/en.ts +79 -0
- package/templates/apps/frontend-admin/src/locales/index.ts +15 -0
- package/templates/apps/frontend-admin/src/pages/(marketing)/index.test.tsx +55 -0
- package/templates/apps/frontend-admin/src/pages/(marketing)/index.tsx +32 -0
- package/templates/apps/frontend-admin/src/pages/(marketing)/layout.tsx +29 -0
- package/templates/apps/frontend-admin/src/pages/(marketing)/login.test.tsx +73 -0
- package/templates/apps/frontend-admin/src/pages/(marketing)/login.tsx +35 -0
- package/templates/apps/frontend-admin/src/pages/admin/[entity].tsx +121 -0
- package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +119 -0
- package/templates/apps/frontend-admin/src/pages/admin/error.tsx +20 -0
- package/templates/apps/frontend-admin/src/pages/admin/fallbacks.test.tsx +68 -0
- package/templates/apps/frontend-admin/src/pages/admin/index.test.tsx +88 -0
- package/templates/apps/frontend-admin/src/pages/admin/index.tsx +65 -0
- package/templates/apps/frontend-admin/src/pages/admin/layout.test.tsx +114 -0
- package/templates/apps/frontend-admin/src/pages/admin/layout.tsx +97 -0
- package/templates/apps/frontend-admin/src/pages/admin/loading.tsx +15 -0
- package/templates/apps/frontend-admin/src/pages/admin/not-found.tsx +15 -0
- package/templates/apps/frontend-admin/src/pages/layout.tsx +12 -0
- package/templates/apps/frontend-admin/src/pages/layouts.test.tsx +54 -0
- package/templates/apps/frontend-admin/template.json +6 -0
- package/templates/apps/frontend-admin/tsconfig.json +11 -0
- package/templates/apps/frontend-app/README.md +98 -0
- package/templates/apps/frontend-app/app.config.ts +43 -0
- package/templates/apps/frontend-app/package.json +30 -0
- package/templates/apps/frontend-app/src/locales/de.ts +36 -0
- package/templates/apps/frontend-app/src/locales/en.ts +43 -0
- package/templates/apps/frontend-app/src/locales/index.ts +15 -0
- package/templates/apps/frontend-app/src/pages/index.test.tsx +167 -0
- package/templates/apps/frontend-app/src/pages/index.tsx +136 -0
- package/templates/apps/frontend-app/src/pages/layout.tsx +41 -0
- package/templates/apps/frontend-app/src/pages/schema-ui.test.tsx +99 -0
- package/templates/apps/frontend-app/src/pages/schema-ui.tsx +74 -0
- package/templates/apps/frontend-app/template.json +6 -0
- package/templates/apps/frontend-app/tsconfig.json +11 -0
- package/templates/apps/frontend-blank/README.md +18 -0
- package/templates/apps/frontend-blank/app.config.ts +29 -0
- package/templates/apps/frontend-blank/package.json +29 -0
- package/templates/apps/frontend-blank/src/locales/de.ts +15 -0
- package/templates/apps/frontend-blank/src/locales/en.ts +22 -0
- package/templates/apps/frontend-blank/src/locales/index.ts +15 -0
- package/templates/apps/frontend-blank/src/pages/index.test.tsx +55 -0
- package/templates/apps/frontend-blank/src/pages/index.tsx +27 -0
- package/templates/apps/frontend-blank/src/pages/layout.test.tsx +54 -0
- package/templates/apps/frontend-blank/src/pages/layout.tsx +35 -0
- package/templates/apps/frontend-blank/template.json +6 -0
- package/templates/apps/frontend-blank/tsconfig.json +11 -0
- package/templates/apps/frontend-contact/README.md +65 -0
- package/templates/apps/frontend-contact/app.config.ts +25 -0
- package/templates/apps/frontend-contact/functions/sendMessage.serverless.ts +69 -0
- package/templates/apps/frontend-contact/package.json +33 -0
- package/templates/apps/frontend-contact/src/components/ContactForm.island.test.tsx +142 -0
- package/templates/apps/frontend-contact/src/components/ContactForm.island.tsx +104 -0
- package/templates/apps/frontend-contact/src/config.ts +12 -0
- package/templates/apps/frontend-contact/src/globals.css +84 -0
- package/templates/apps/frontend-contact/src/lib/locale.ts +55 -0
- package/templates/apps/frontend-contact/src/locales/de.ts +26 -0
- package/templates/apps/frontend-contact/src/locales/en.ts +29 -0
- package/templates/apps/frontend-contact/src/pages/[locale]/index.tsx +14 -0
- package/templates/apps/frontend-contact/src/pages/index.test.tsx +70 -0
- package/templates/apps/frontend-contact/src/pages/index.tsx +63 -0
- package/templates/apps/frontend-contact/src/pages/layout.tsx +65 -0
- package/templates/apps/frontend-contact/template.json +6 -0
- package/templates/apps/frontend-contact/tsconfig.json +11 -0
- package/templates/apps/frontend-dashboard/README.md +54 -0
- package/templates/apps/frontend-dashboard/app.config.ts +39 -0
- package/templates/apps/frontend-dashboard/package.json +29 -0
- package/templates/apps/frontend-dashboard/src/config.ts +8 -0
- package/templates/apps/frontend-dashboard/src/globals.css +72 -0
- package/templates/apps/frontend-dashboard/src/globals.d.ts +6 -0
- package/templates/apps/frontend-dashboard/src/lib/auth.ts +27 -0
- package/templates/apps/frontend-dashboard/src/locales/de.ts +49 -0
- package/templates/apps/frontend-dashboard/src/locales/en.ts +60 -0
- package/templates/apps/frontend-dashboard/src/locales/index.ts +15 -0
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/index.test.tsx +55 -0
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/index.tsx +34 -0
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/layout.tsx +32 -0
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/login.test.tsx +74 -0
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/login.tsx +40 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/error.tsx +21 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/fallbacks.test.tsx +68 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/index.test.tsx +55 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/index.tsx +38 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.test.tsx +88 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.tsx +69 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/loading.tsx +21 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/not-found.tsx +19 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/settings.test.tsx +69 -0
- package/templates/apps/frontend-dashboard/src/pages/dashboard/settings.tsx +35 -0
- package/templates/apps/frontend-dashboard/src/pages/layout.tsx +12 -0
- package/templates/apps/frontend-dashboard/src/pages/layouts.test.tsx +54 -0
- package/templates/apps/frontend-dashboard/template.json +6 -0
- package/templates/apps/frontend-dashboard/tsconfig.json +11 -0
- package/templates/apps/frontend-docs/README.md +19 -0
- package/templates/apps/frontend-docs/app.config.ts +25 -0
- package/templates/apps/frontend-docs/package.json +29 -0
- package/templates/apps/frontend-docs/src/globals.css +32 -0
- package/templates/apps/frontend-docs/src/lib/locale.test.ts +72 -0
- package/templates/apps/frontend-docs/src/lib/locale.ts +56 -0
- package/templates/apps/frontend-docs/src/locales/de.ts +24 -0
- package/templates/apps/frontend-docs/src/locales/en.ts +28 -0
- package/templates/apps/frontend-docs/src/pages/[locale]/docs/[...slug].tsx +18 -0
- package/templates/apps/frontend-docs/src/pages/[locale]/index.tsx +13 -0
- package/templates/apps/frontend-docs/src/pages/[locale]/mirrors.test.tsx +67 -0
- package/templates/apps/frontend-docs/src/pages/docs/[...slug].test.tsx +115 -0
- package/templates/apps/frontend-docs/src/pages/docs/[...slug].tsx +82 -0
- package/templates/apps/frontend-docs/src/pages/index.test.tsx +90 -0
- package/templates/apps/frontend-docs/src/pages/index.tsx +45 -0
- package/templates/apps/frontend-docs/src/pages/layout.test.tsx +84 -0
- package/templates/apps/frontend-docs/src/pages/layout.tsx +66 -0
- package/templates/apps/frontend-docs/template.json +6 -0
- package/templates/apps/frontend-docs/tsconfig.json +11 -0
- package/templates/apps/frontend-i18n/README.md +61 -0
- package/templates/apps/frontend-i18n/app.config.ts +33 -0
- package/templates/apps/frontend-i18n/package.json +28 -0
- package/templates/apps/frontend-i18n/src/globals.css +46 -0
- package/templates/apps/frontend-i18n/src/globals.d.ts +6 -0
- package/templates/apps/frontend-i18n/src/lib/locale.test.ts +72 -0
- package/templates/apps/frontend-i18n/src/lib/locale.ts +55 -0
- package/templates/apps/frontend-i18n/src/locales/de.ts +24 -0
- package/templates/apps/frontend-i18n/src/locales/en.ts +25 -0
- package/templates/apps/frontend-i18n/src/pages/[locale]/about.tsx +11 -0
- package/templates/apps/frontend-i18n/src/pages/[locale]/index.tsx +13 -0
- package/templates/apps/frontend-i18n/src/pages/[locale]/mirrors.test.tsx +50 -0
- package/templates/apps/frontend-i18n/src/pages/about.test.tsx +75 -0
- package/templates/apps/frontend-i18n/src/pages/about.tsx +31 -0
- package/templates/apps/frontend-i18n/src/pages/index.test.tsx +102 -0
- package/templates/apps/frontend-i18n/src/pages/index.tsx +43 -0
- package/templates/apps/frontend-i18n/src/pages/layout.test.tsx +86 -0
- package/templates/apps/frontend-i18n/src/pages/layout.tsx +70 -0
- package/templates/apps/frontend-i18n/template.json +6 -0
- package/templates/apps/frontend-i18n/tsconfig.json +11 -0
- package/templates/apps/frontend-landing/README.md +17 -0
- package/templates/apps/frontend-landing/app.config.ts +25 -0
- package/templates/apps/frontend-landing/package.json +29 -0
- package/templates/apps/frontend-landing/src/globals.css +23 -0
- package/templates/apps/frontend-landing/src/lib/locale.test.ts +72 -0
- package/templates/apps/frontend-landing/src/lib/locale.ts +55 -0
- package/templates/apps/frontend-landing/src/locales/de.ts +24 -0
- package/templates/apps/frontend-landing/src/locales/en.ts +26 -0
- package/templates/apps/frontend-landing/src/pages/[locale]/index.tsx +13 -0
- package/templates/apps/frontend-landing/src/pages/[locale]/mirrors.test.tsx +37 -0
- package/templates/apps/frontend-landing/src/pages/index.test.tsx +110 -0
- package/templates/apps/frontend-landing/src/pages/index.tsx +75 -0
- package/templates/apps/frontend-landing/src/pages/layout.test.tsx +84 -0
- package/templates/apps/frontend-landing/src/pages/layout.tsx +66 -0
- package/templates/apps/frontend-landing/template.json +6 -0
- package/templates/apps/frontend-landing/tsconfig.json +11 -0
- package/templates/apps/frontend-spa/README.md +45 -0
- package/templates/apps/frontend-spa/app.config.ts +27 -0
- package/templates/apps/frontend-spa/package.json +29 -0
- package/templates/apps/frontend-spa/src/globals.css +84 -0
- package/templates/apps/frontend-spa/src/locales/de.ts +22 -0
- package/templates/apps/frontend-spa/src/locales/en.ts +29 -0
- package/templates/apps/frontend-spa/src/locales/index.ts +15 -0
- package/templates/apps/frontend-spa/src/pages/index.test.tsx +137 -0
- package/templates/apps/frontend-spa/src/pages/index.tsx +123 -0
- package/templates/apps/frontend-spa/src/pages/layout.tsx +27 -0
- package/templates/apps/frontend-spa/template.json +6 -0
- package/templates/apps/frontend-spa/tsconfig.json +11 -0
- package/templates/apps/frontend-ssr/README.md +68 -0
- package/templates/apps/frontend-ssr/app.config.ts +32 -0
- package/templates/apps/frontend-ssr/package.json +29 -0
- package/templates/apps/frontend-ssr/src/globals.css +67 -0
- package/templates/apps/frontend-ssr/src/locales/de.ts +41 -0
- package/templates/apps/frontend-ssr/src/locales/en.ts +54 -0
- package/templates/apps/frontend-ssr/src/locales/index.ts +16 -0
- package/templates/apps/frontend-ssr/src/pages/feed-swr.test.tsx +69 -0
- package/templates/apps/frontend-ssr/src/pages/feed-swr.tsx +54 -0
- package/templates/apps/frontend-ssr/src/pages/feed.test.tsx +73 -0
- package/templates/apps/frontend-ssr/src/pages/feed.tsx +64 -0
- package/templates/apps/frontend-ssr/src/pages/index.test.tsx +89 -0
- package/templates/apps/frontend-ssr/src/pages/index.tsx +72 -0
- package/templates/apps/frontend-ssr/src/pages/layout.tsx +37 -0
- package/templates/apps/frontend-ssr/template.json +6 -0
- package/templates/apps/frontend-ssr/tsconfig.json +11 -0
- package/templates/apps/frontend-ssr-api/README.md +50 -0
- package/templates/apps/frontend-ssr-api/app.config.ts +43 -0
- package/templates/apps/frontend-ssr-api/package.json +30 -0
- package/templates/apps/frontend-ssr-api/src/globals.css +38 -0
- package/templates/apps/frontend-ssr-api/src/globals.d.ts +6 -0
- package/templates/apps/frontend-ssr-api/src/locales/de.ts +20 -0
- package/templates/apps/frontend-ssr-api/src/locales/en.ts +31 -0
- package/templates/apps/frontend-ssr-api/src/locales/index.ts +16 -0
- package/templates/apps/frontend-ssr-api/src/pages/index.test.tsx +105 -0
- package/templates/apps/frontend-ssr-api/src/pages/index.tsx +83 -0
- package/templates/apps/frontend-ssr-api/src/pages/layout.tsx +28 -0
- package/templates/apps/frontend-ssr-api/template.json +6 -0
- package/templates/apps/frontend-ssr-api/tsconfig.json +11 -0
- package/templates/apps/frontend-static-blog/README.md +49 -0
- package/templates/apps/frontend-static-blog/app.config.ts +34 -0
- package/templates/apps/frontend-static-blog/package.json +28 -0
- package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.test.tsx +65 -0
- package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.tsx +35 -0
- package/templates/apps/frontend-static-blog/src/content/posts.ts +64 -0
- package/templates/apps/frontend-static-blog/src/globals.css +75 -0
- package/templates/apps/frontend-static-blog/src/lib/locale.test.ts +72 -0
- package/templates/apps/frontend-static-blog/src/lib/locale.ts +55 -0
- package/templates/apps/frontend-static-blog/src/locales/de.ts +19 -0
- package/templates/apps/frontend-static-blog/src/locales/en.ts +26 -0
- package/templates/apps/frontend-static-blog/src/pages/[locale]/blog/[slug].tsx +20 -0
- package/templates/apps/frontend-static-blog/src/pages/[locale]/index.tsx +13 -0
- package/templates/apps/frontend-static-blog/src/pages/[locale]/mirrors.test.tsx +62 -0
- package/templates/apps/frontend-static-blog/src/pages/blog/[slug].test.tsx +116 -0
- package/templates/apps/frontend-static-blog/src/pages/blog/[slug].tsx +69 -0
- package/templates/apps/frontend-static-blog/src/pages/index.test.tsx +100 -0
- package/templates/apps/frontend-static-blog/src/pages/index.tsx +58 -0
- package/templates/apps/frontend-static-blog/src/pages/layout.tsx +63 -0
- package/templates/apps/frontend-static-blog/template.json +6 -0
- package/templates/apps/frontend-static-blog/tsconfig.json +11 -0
- package/templates/baselines/bare/.env.example +37 -0
- package/templates/baselines/bare/README.md +47 -0
- package/templates/baselines/bare/baseline.json +31 -0
- package/templates/baselines/bare/deploy/README.md +43 -0
- package/templates/baselines/bare/deploy/voltro.service.example +36 -0
- package/templates/baselines/compose/.env.example +46 -0
- package/templates/baselines/compose/README.md +69 -0
- package/templates/baselines/compose/baseline.json +51 -0
- package/templates/baselines/compose/docker/.dockerignore +38 -0
- package/templates/baselines/compose/docker/api.Dockerfile +57 -0
- package/templates/baselines/compose/docker/dev.Dockerfile +35 -0
- package/templates/baselines/compose/docker/web.Dockerfile +59 -0
- package/templates/baselines/compose/docker-compose.dev.yml +89 -0
- package/templates/baselines/compose/docker-compose.prod.yml +87 -0
- package/templates/baselines/compose/docker-compose.yml +41 -0
- package/templates/baselines/compose-mariadb/.env.example +57 -0
- package/templates/baselines/compose-mariadb/README.md +78 -0
- package/templates/baselines/compose-mariadb/baseline.json +51 -0
- package/templates/baselines/compose-mariadb/docker/.dockerignore +38 -0
- package/templates/baselines/compose-mariadb/docker/api.Dockerfile +57 -0
- package/templates/baselines/compose-mariadb/docker/dev.Dockerfile +35 -0
- package/templates/baselines/compose-mariadb/docker/mariadb-init.sql +6 -0
- package/templates/baselines/compose-mariadb/docker/web.Dockerfile +59 -0
- package/templates/baselines/compose-mariadb/docker-compose.dev.yml +117 -0
- package/templates/baselines/compose-mariadb/docker-compose.prod.yml +114 -0
- package/templates/baselines/compose-mariadb/docker-compose.yml +79 -0
- package/templates/baselines/helm/.env.example +39 -0
- package/templates/baselines/helm/README.md +98 -0
- package/templates/baselines/helm/baseline.json +53 -0
- package/templates/baselines/helm/charts/voltro-app/.helmignore +10 -0
- package/templates/baselines/helm/charts/voltro-app/Chart.yaml +10 -0
- package/templates/baselines/helm/charts/voltro-app/templates/_helpers.tpl +36 -0
- package/templates/baselines/helm/charts/voltro-app/templates/configmap.yaml +13 -0
- package/templates/baselines/helm/charts/voltro-app/templates/deployment-api.yaml +120 -0
- package/templates/baselines/helm/charts/voltro-app/templates/deployment-web.yaml +45 -0
- package/templates/baselines/helm/charts/voltro-app/templates/ingress.yaml +37 -0
- package/templates/baselines/helm/charts/voltro-app/templates/postgres-service.yaml +19 -0
- package/templates/baselines/helm/charts/voltro-app/templates/postgres-statefulset.yaml +73 -0
- package/templates/baselines/helm/charts/voltro-app/templates/secret.yaml +33 -0
- package/templates/baselines/helm/charts/voltro-app/templates/service-api.yaml +19 -0
- package/templates/baselines/helm/charts/voltro-app/templates/service-web.yaml +19 -0
- package/templates/baselines/helm/charts/voltro-app/values-dev.yaml +21 -0
- package/templates/baselines/helm/charts/voltro-app/values-prod.yaml +58 -0
- package/templates/baselines/helm/charts/voltro-app/values-staging.yaml +25 -0
- package/templates/baselines/helm/charts/voltro-app/values.yaml +109 -0
- package/templates/baselines/helm/deploy/README.md +94 -0
- package/templates/patches/@effect__cluster@0.59.0.patch +262 -0
|
@@ -0,0 +1,655 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedFrom": "voltro-dev/apps/voltro-dev/docs/content/docs/en",
|
|
3
|
+
"modules": [
|
|
4
|
+
{
|
|
5
|
+
"id": "ai",
|
|
6
|
+
"title": "AI",
|
|
7
|
+
"section": "AI",
|
|
8
|
+
"group": null,
|
|
9
|
+
"description": "How Voltro treats AI — agents, tools, streaming, RAG — all primitives over the same WebSocket as the rest of the framework.",
|
|
10
|
+
"path": "agent-docs/ai.md",
|
|
11
|
+
"files": 9
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "authentication",
|
|
15
|
+
"title": "Authentication",
|
|
16
|
+
"section": "Authentication",
|
|
17
|
+
"group": null,
|
|
18
|
+
"description": "How @voltro/plugin-auth wires password + session-cookie auth across api + web, plus the pluggable identity-strategy protocol.",
|
|
19
|
+
"path": "agent-docs/authentication.md",
|
|
20
|
+
"files": 11
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "caching",
|
|
24
|
+
"title": "Caching",
|
|
25
|
+
"section": "Caching",
|
|
26
|
+
"group": null,
|
|
27
|
+
"description": "Voltro's caching layer (@voltro/cache) — an always-on memory default, swappable Redis-compatible backends, a low-level wrap primitive, and automatic query-result invalidation.",
|
|
28
|
+
"path": "agent-docs/caching.md",
|
|
29
|
+
"files": 8
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "cli",
|
|
33
|
+
"title": "CLI",
|
|
34
|
+
"section": "CLI",
|
|
35
|
+
"group": null,
|
|
36
|
+
"description": "The voltro CLI — every command, grouped by purpose, with the flags that actually matter.",
|
|
37
|
+
"path": "agent-docs/cli.md",
|
|
38
|
+
"files": 8
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "configuration",
|
|
42
|
+
"title": "Configuration",
|
|
43
|
+
"section": "Configuration",
|
|
44
|
+
"group": null,
|
|
45
|
+
"description": "Typed, schema-validated environment variables with a structural public/secret boundary. Declare once in app.config.ts; read public vars in the browser, secrets only on the server — and let the build fail loudly if you ever cross the line.",
|
|
46
|
+
"path": "agent-docs/configuration.md",
|
|
47
|
+
"files": 3
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "data",
|
|
51
|
+
"title": "Data",
|
|
52
|
+
"section": "Data",
|
|
53
|
+
"group": null,
|
|
54
|
+
"description": "How Voltro's reactive data layer works — queries, mutations, actions, streams, all over one WebSocket with typed errors and tracked dependencies.",
|
|
55
|
+
"path": "agent-docs/data.md",
|
|
56
|
+
"files": 13
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "database/advancedqueries",
|
|
60
|
+
"title": "database.advancedQueries",
|
|
61
|
+
"section": "Database",
|
|
62
|
+
"group": "database.advancedQueries",
|
|
63
|
+
"description": "Btree, GIN, GiST, BRIN, HNSW — when to use what, plus partial + expression + composite indexes.",
|
|
64
|
+
"path": "agent-docs/database/advancedqueries.md",
|
|
65
|
+
"files": 9
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "database/columntypes",
|
|
69
|
+
"title": "database.columnTypes",
|
|
70
|
+
"section": "Database",
|
|
71
|
+
"group": "database.columnTypes",
|
|
72
|
+
"description": "Postgres-native ENUM types via dbEnum() — cheap ADD VALUE migrations, full type-narrowing. Falls back to CHECK constraints on other dialects.",
|
|
73
|
+
"path": "agent-docs/database/columntypes.md",
|
|
74
|
+
"files": 6
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "database/hosting",
|
|
78
|
+
"title": "database.hosting",
|
|
79
|
+
"section": "Database",
|
|
80
|
+
"group": "database.hosting",
|
|
81
|
+
"description": "Run Voltro on any hosted Postgres, MySQL, MariaDB, or SQL Server — Supabase, Neon, Vercel Postgres, Railway, Render, Fly.io, AWS RDS, PlanetScale, Azure SQL, and more. Connection strings, pooling, gotchas.",
|
|
82
|
+
"path": "agent-docs/database/hosting.md",
|
|
83
|
+
"files": 13
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "database/migrations",
|
|
87
|
+
"title": "database.migrations",
|
|
88
|
+
"section": "Database",
|
|
89
|
+
"group": "database.migrations",
|
|
90
|
+
"description": "Voltro's planner-based migration system — diff your declared schema against the live DB, classify each change, refuse-to-apply anything risky without explicit intent. Dev auto-applies, prod refuses.",
|
|
91
|
+
"path": "agent-docs/database/migrations.md",
|
|
92
|
+
"files": 16
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "database/misc",
|
|
96
|
+
"title": "Database",
|
|
97
|
+
"section": "Database",
|
|
98
|
+
"group": null,
|
|
99
|
+
"description": "Spin up an isolated branch of a tenant's data — a namespace snapshot/restore by default (dialect-agnostic, no vendor lock) or a Neon copy-on-write fast-path on Postgres — then bind to it and tear it down. The basis for per-PR preview environments.",
|
|
100
|
+
"path": "agent-docs/database/misc.md",
|
|
101
|
+
"files": 2
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "database/overview",
|
|
105
|
+
"title": "Database",
|
|
106
|
+
"section": "Database",
|
|
107
|
+
"group": null,
|
|
108
|
+
"description": "How Voltro talks to Postgres — the schema DSL, the query builder, mixins, migrations, and the reactive engine's relationship to all of it.",
|
|
109
|
+
"path": "agent-docs/database/overview.md",
|
|
110
|
+
"files": 1
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "database/querying",
|
|
114
|
+
"title": "database.querying",
|
|
115
|
+
"section": "Database",
|
|
116
|
+
"group": "database.querying",
|
|
117
|
+
"description": "Three cardinalities, one DSL. Declaration via relations(), eager loading via .with(), reactive invalidation via the two-stage dependency-graph + per-field pre-filter.",
|
|
118
|
+
"path": "agent-docs/database/querying.md",
|
|
119
|
+
"files": 9
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "database/scaling",
|
|
123
|
+
"title": "database.scaling",
|
|
124
|
+
"section": "Database",
|
|
125
|
+
"group": "database.scaling",
|
|
126
|
+
"description": "Transparent read-replica routing with read-your-writes (RYW) consistency, multi-instance RYW via Redis, region-aware replica selection, and the per-dialect adapter surface.",
|
|
127
|
+
"path": "agent-docs/database/scaling.md",
|
|
128
|
+
"files": 2
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "database/schema",
|
|
132
|
+
"title": "database.schema",
|
|
133
|
+
"section": "Database",
|
|
134
|
+
"group": "database.schema",
|
|
135
|
+
"description": "Five generation schemes — TypeID (default), ULID, numeric, Snowflake, custom. Decision matrix, auto-injection lifecycle, cursor pagination, branded TypeScript types.",
|
|
136
|
+
"path": "agent-docs/database/schema.md",
|
|
137
|
+
"files": 8
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"id": "database/seedsdialects",
|
|
141
|
+
"title": "database.seedsDialects",
|
|
142
|
+
"section": "Database",
|
|
143
|
+
"group": "database.seedsDialects",
|
|
144
|
+
"description": "Six SQL backends, one schema DSL. Decision matrix, configuration, boot-log shape, and the cross-dialect feature parity table the framework hides for you.",
|
|
145
|
+
"path": "agent-docs/database/seedsdialects.md",
|
|
146
|
+
"files": 8
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "database/transactions",
|
|
150
|
+
"title": "database.transactions",
|
|
151
|
+
"section": "Database",
|
|
152
|
+
"group": "database.transactions",
|
|
153
|
+
"description": "How ctx.store behaves inside mutations, workflows, and explicit transaction blocks.",
|
|
154
|
+
"path": "agent-docs/database/transactions.md",
|
|
155
|
+
"files": 2
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "deployment",
|
|
159
|
+
"title": "Deployment",
|
|
160
|
+
"section": "Deployment",
|
|
161
|
+
"group": null,
|
|
162
|
+
"description": "Voltro Cloud (coming soon) — the managed runtime for your Voltro project. Today the Free control plane registers + observes your self-hosted apps.",
|
|
163
|
+
"path": "agent-docs/deployment.md",
|
|
164
|
+
"files": 6
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "internationalization",
|
|
168
|
+
"title": "Internationalization",
|
|
169
|
+
"section": "Internationalization",
|
|
170
|
+
"group": null,
|
|
171
|
+
"description": "Voltro's i18n layer (@voltro/i18n) — an opinionated wrap over react-intl, auto-wired from a single app.config.ts field, with cookie + Accept-Language locale resolution.",
|
|
172
|
+
"path": "agent-docs/internationalization.md",
|
|
173
|
+
"files": 3
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": "introduction",
|
|
177
|
+
"title": "Introduction",
|
|
178
|
+
"section": "Introduction",
|
|
179
|
+
"group": null,
|
|
180
|
+
"description": "Scaffold a Voltro project and boot it locally in under a minute.",
|
|
181
|
+
"path": "agent-docs/introduction.md",
|
|
182
|
+
"files": 5
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "multi-tenancy",
|
|
186
|
+
"title": "Multi-tenancy",
|
|
187
|
+
"section": "Multi-tenancy",
|
|
188
|
+
"group": null,
|
|
189
|
+
"description": "Multi-tenancy as a runtime primitive — the tenant() mixin, ctx.subject.tenantId, automatic read scoping, explicit write gates.",
|
|
190
|
+
"path": "agent-docs/multi-tenancy.md",
|
|
191
|
+
"files": 4
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"id": "observability",
|
|
195
|
+
"title": "Observability",
|
|
196
|
+
"section": "Observability",
|
|
197
|
+
"group": null,
|
|
198
|
+
"description": "OpenTelemetry tracing in Voltro — the auto-emitted spans for every primitive, span attributes and nesting, the three enabling modes (console / OTLP / buffer), and adding your own spans with Effect.withSpan.",
|
|
199
|
+
"path": "agent-docs/observability.md",
|
|
200
|
+
"files": 4
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "plugins",
|
|
204
|
+
"title": "Plugins",
|
|
205
|
+
"section": "Plugins",
|
|
206
|
+
"group": null,
|
|
207
|
+
"description": "How Voltro plugins compose into the runtime, what they can intercept, the catalogue, and writing your own.",
|
|
208
|
+
"path": "agent-docs/plugins.md",
|
|
209
|
+
"files": 3
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "reference",
|
|
213
|
+
"title": "Reference",
|
|
214
|
+
"section": "Reference",
|
|
215
|
+
"group": null,
|
|
216
|
+
"description": "The client-side hook surface, grouped by purpose.",
|
|
217
|
+
"path": "agent-docs/reference.md",
|
|
218
|
+
"files": 7
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "routing",
|
|
222
|
+
"title": "Routing",
|
|
223
|
+
"section": "Routing",
|
|
224
|
+
"group": null,
|
|
225
|
+
"description": "Voltro's file-based router — pages, layouts, render modes, loaders, navigation, islands. The web side of the framework.",
|
|
226
|
+
"path": "agent-docs/routing.md",
|
|
227
|
+
"files": 8
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"id": "scheduling",
|
|
231
|
+
"title": "Scheduling",
|
|
232
|
+
"section": "Scheduling",
|
|
233
|
+
"group": null,
|
|
234
|
+
"description": "Deployment-agnostic scheduled jobs in Voltro — one *.cron.tsx definition that runs unchanged on a single box, a multi-instance fleet, or an external scheduler.",
|
|
235
|
+
"path": "agent-docs/scheduling.md",
|
|
236
|
+
"files": 7
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"id": "schema-driven-ui",
|
|
240
|
+
"title": "Schema-driven UI",
|
|
241
|
+
"section": "Schema-driven UI",
|
|
242
|
+
"group": null,
|
|
243
|
+
"description": "Project the typed descriptor graph into UI — forms, tables, pickers, and reactive components, all bound to a descriptor with near-zero glue.",
|
|
244
|
+
"path": "agent-docs/schema-driven-ui.md",
|
|
245
|
+
"files": 13
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"id": "security",
|
|
249
|
+
"title": "Security",
|
|
250
|
+
"section": "Security",
|
|
251
|
+
"group": null,
|
|
252
|
+
"description": "How Voltro handles security — reporting a vulnerability, the supply-chain gates (dependency audit, inbound-license allowlist, SBOM), supported versions, and why self-hosting keeps your data yours.",
|
|
253
|
+
"path": "agent-docs/security.md",
|
|
254
|
+
"files": 1
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"id": "templates/apibackends",
|
|
258
|
+
"title": "templates.apiBackends",
|
|
259
|
+
"section": "Templates",
|
|
260
|
+
"group": "templates.apiBackends",
|
|
261
|
+
"description": "The minimal Voltro backend — app.config + schema + one streaming query + one tenant-guarded mutation. Tenant-aware out of the box.",
|
|
262
|
+
"path": "agent-docs/templates/apibackends.md",
|
|
263
|
+
"files": 21
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"id": "templates/appshells",
|
|
267
|
+
"title": "templates.appShells",
|
|
268
|
+
"section": "Templates",
|
|
269
|
+
"group": "templates.appShells",
|
|
270
|
+
"description": "A marketing landing page — hero, features, CTA. Static-rendered with zero JS on the wire by default.",
|
|
271
|
+
"path": "agent-docs/templates/appshells.md",
|
|
272
|
+
"files": 13
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"id": "templates/custom",
|
|
276
|
+
"title": "templates.custom",
|
|
277
|
+
"section": "Templates",
|
|
278
|
+
"group": "templates.custom",
|
|
279
|
+
"description": "Add a template the CLI can scaffold from — a directory under voltro-templates/apps/ with a manifest and the files to copy.",
|
|
280
|
+
"path": "agent-docs/templates/custom.md",
|
|
281
|
+
"files": 1
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"id": "templates/overview",
|
|
285
|
+
"title": "Templates",
|
|
286
|
+
"section": "Templates",
|
|
287
|
+
"group": null,
|
|
288
|
+
"description": "Thirty-four dogfooded starter templates ship with the framework — twenty backend shapes, thirteen frontend shapes, and a serverless function library. Scaffold any of them with one CLI call.",
|
|
289
|
+
"path": "agent-docs/templates/overview.md",
|
|
290
|
+
"files": 1
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "templates/serverless",
|
|
294
|
+
"title": "templates.serverless",
|
|
295
|
+
"section": "Templates",
|
|
296
|
+
"group": "templates.serverless",
|
|
297
|
+
"description": "A library of standalone *.serverless.ts functions — pure compute, request-header/geo, outbound HTTP, Web Crypto HMAC, an LLM call, status-controlled errors. Run with voltro serverless; ship to node / Cloudflare / Scaleway. No server, no port.",
|
|
298
|
+
"path": "agent-docs/templates/serverless.md",
|
|
299
|
+
"files": 1
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "testing",
|
|
303
|
+
"title": "Testing",
|
|
304
|
+
"section": "Testing",
|
|
305
|
+
"group": null,
|
|
306
|
+
"description": "Voltro's test story — the @voltro/testing package, the test pyramid (unit handlers/tools → workflow runner → e2e), and the voltro test / voltro e2e CLI commands.",
|
|
307
|
+
"path": "agent-docs/testing.md",
|
|
308
|
+
"files": 4
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"id": "workflows",
|
|
312
|
+
"title": "Workflows",
|
|
313
|
+
"section": "Workflows",
|
|
314
|
+
"group": null,
|
|
315
|
+
"description": "Durable Effect workflows in Voltro — what they are, when to use them, and the current runtime boundaries.",
|
|
316
|
+
"path": "agent-docs/workflows.md",
|
|
317
|
+
"files": 9
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
"plugins": [
|
|
321
|
+
{
|
|
322
|
+
"slug": "ai-flows",
|
|
323
|
+
"title": "AI Flows",
|
|
324
|
+
"description": "Durable multi-step AI pipelines — deterministic or agentic, with human-in-the-loop, chaining, and cadence. Author flows in code (defineFlow) or as data (visual-editor rows); one engine runs both.",
|
|
325
|
+
"pkg": "@voltro/plugin-ai-flows",
|
|
326
|
+
"doc": "plugins/ai-flows.md"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"slug": "analytics-postgres",
|
|
330
|
+
"title": "Postgres analytics",
|
|
331
|
+
"description": "First-party lite AnalyticsSink — stores events in the main DataStore, cross-dialect, zero external infra. ~10M events/day ceiling.",
|
|
332
|
+
"pkg": "@voltro/plugin-analytics-postgres",
|
|
333
|
+
"doc": "plugins/analytics-postgres.md"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"slug": "atlassian",
|
|
337
|
+
"title": "Atlassian",
|
|
338
|
+
"description": "JiraService + ConfluenceService over the Atlassian REST / Greenhopper / Agile APIs, with a per-subject PAT resolver, transient retry, SSRF guard, an avatar proxy, and per-tenant caching.",
|
|
339
|
+
"pkg": "@voltro/plugin-atlassian",
|
|
340
|
+
"doc": "plugins/atlassian.md"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"slug": "audit",
|
|
344
|
+
"title": "Audit",
|
|
345
|
+
"description": "Mutation audit log — sinks (console/memory/custom), include/exclude filters, the audit() mixin, testing with the memory buffer.",
|
|
346
|
+
"pkg": "@voltro/plugin-audit",
|
|
347
|
+
"doc": "plugins/audit.md"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"slug": "auth",
|
|
351
|
+
"title": "Auth",
|
|
352
|
+
"description": "Password + session-cookie auth — overview. Full docs in the Authentication section.",
|
|
353
|
+
"pkg": "@voltro/plugin-auth",
|
|
354
|
+
"doc": "plugins/auth.md"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"slug": "auth-auth0",
|
|
358
|
+
"title": "Auth0",
|
|
359
|
+
"description": "Auth0 AuthStrategy — verifies Auth0-issued JWTs via the tenant's JWKS (no client secret) and maps a namespaced custom claim → tenantId.",
|
|
360
|
+
"pkg": "@voltro/plugin-auth-auth0",
|
|
361
|
+
"doc": "plugins/auth-auth0.md"
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"slug": "auth-clerk",
|
|
365
|
+
"title": "Clerk",
|
|
366
|
+
"description": "Clerk AuthStrategy — verifies Clerk-issued __session JWTs via the Frontend API JWKS (no secret key) and maps org_id → tenantId.",
|
|
367
|
+
"pkg": "@voltro/plugin-auth-clerk",
|
|
368
|
+
"doc": "plugins/auth-clerk.md"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"slug": "auth-kinde",
|
|
372
|
+
"title": "Kinde",
|
|
373
|
+
"description": "Kinde AuthStrategy — verifies Kinde-issued JWTs via JWKS at the configured issuer (no client secret) and maps org_code → tenantId.",
|
|
374
|
+
"pkg": "@voltro/plugin-auth-kinde",
|
|
375
|
+
"doc": "plugins/auth-kinde.md"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"slug": "auth-oidc",
|
|
379
|
+
"title": "OIDC (generic)",
|
|
380
|
+
"description": "Generic OIDC AuthStrategy — verifies any OpenID-Connect IdP's JWTs via JWKS (Okta, Keycloak, Cognito, Azure AD, Google Workspace). Discovery or explicit JWKS URL; maps a claim → tenantId.",
|
|
381
|
+
"pkg": "@voltro/plugin-auth-oidc",
|
|
382
|
+
"doc": "plugins/auth-oidc.md"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"slug": "auth-supabase",
|
|
386
|
+
"title": "Supabase Auth",
|
|
387
|
+
"description": "Supabase Auth (GoTrue) AuthStrategy — verifies Supabase-issued JWTs via the project's JWKS and maps app_metadata.tenant_id → tenantId.",
|
|
388
|
+
"pkg": "@voltro/plugin-auth-supabase",
|
|
389
|
+
"doc": "plugins/auth-supabase.md"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"slug": "auth-workos",
|
|
393
|
+
"title": "WorkOS",
|
|
394
|
+
"description": "WorkOS AuthStrategy — verifies WorkOS AuthKit / SSO JWTs via JWKS (no API key) and maps org_id → tenantId.",
|
|
395
|
+
"pkg": "@voltro/plugin-auth-workos",
|
|
396
|
+
"doc": "plugins/auth-workos.md"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"slug": "billing",
|
|
400
|
+
"title": "Billing",
|
|
401
|
+
"description": "Subscriptions, plans, entitlements, and usage metering over a pluggable provider (Stripe + mock). Money is integer minor units.",
|
|
402
|
+
"pkg": "@voltro/plugin-billing",
|
|
403
|
+
"doc": "plugins/billing.md"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"slug": "broadcast",
|
|
407
|
+
"title": "Broadcast",
|
|
408
|
+
"description": "Cross-replica reactivity over a pub/sub bus (Redis / NATS) for non-postgres dialects — closes the single-instance gap so a write on one pod surfaces on another.",
|
|
409
|
+
"pkg": "@voltro/plugin-broadcast",
|
|
410
|
+
"doc": "plugins/broadcast.md"
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"slug": "cdc-out",
|
|
414
|
+
"title": "CDC-out (reverse-ETL)",
|
|
415
|
+
"description": "Declaratively mirror table changes outward to external sinks (webhook / Kafka / Snowflake / BigQuery) through a durable outbox — ordered per pipe, at-least-once from enqueue, retried with backoff, dead-lettered.",
|
|
416
|
+
"pkg": "@voltro/plugin-cdc-out",
|
|
417
|
+
"doc": "plugins/cdc-out.md"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"slug": "clickhouse",
|
|
421
|
+
"title": "ClickHouse",
|
|
422
|
+
"description": "Production-grade OLAP AnalyticsSink over ClickHouse — self-hosted or ClickHouse Cloud — for billions of events with millisecond aggregates.",
|
|
423
|
+
"pkg": "@voltro/plugin-clickhouse",
|
|
424
|
+
"doc": "plugins/clickhouse.md"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"slug": "datadog",
|
|
428
|
+
"title": "Datadog",
|
|
429
|
+
"description": "Agentless Datadog metrics exporter — pushes the unified Metrics-API to Datadog's /api/v2/series HTTP intake.",
|
|
430
|
+
"pkg": "@voltro/plugin-datadog",
|
|
431
|
+
"doc": "plugins/datadog.md"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"slug": "deactivation",
|
|
435
|
+
"title": "Deactivation",
|
|
436
|
+
"description": "A schema mixin that marks a subject as deactivated (can't log in) while keeping its data fully visible — the deliberate opposite of soft-delete.",
|
|
437
|
+
"pkg": "@voltro/plugin-deactivation",
|
|
438
|
+
"doc": "plugins/deactivation.md"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"slug": "duckdb",
|
|
442
|
+
"title": "DuckDB",
|
|
443
|
+
"description": "Embedded DuckDB AnalyticsSink — real column-store OLAP in-process, no external service to run.",
|
|
444
|
+
"pkg": "@voltro/plugin-duckdb",
|
|
445
|
+
"doc": "plugins/duckdb.md"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"slug": "flags",
|
|
449
|
+
"title": "Feature flags",
|
|
450
|
+
"description": "Feature flags — per-subject / per-tenant targeting, deterministic % rollouts, kill-switch, declarative rpc gating + client UI gating.",
|
|
451
|
+
"pkg": "@voltro/plugin-flags",
|
|
452
|
+
"doc": "plugins/flags.md"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"slug": "governance",
|
|
456
|
+
"title": "Governance",
|
|
457
|
+
"description": "Data governance — retention TTL sweep, GDPR export + erasure, consent ledger, and field-level encryption for .encrypted() columns. Builds on audit + soft-delete.",
|
|
458
|
+
"pkg": "@voltro/plugin-governance",
|
|
459
|
+
"doc": "plugins/governance.md"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"slug": "licensing",
|
|
463
|
+
"title": "Licensing",
|
|
464
|
+
"description": "Offline-verified EdDSA license keys + cloud-issued entitlement snapshots that feed plugin-billing; pricing decided server-side, never baked into a published version.",
|
|
465
|
+
"pkg": "@voltro/plugin-licensing",
|
|
466
|
+
"doc": "plugins/licensing.md"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"slug": "logship",
|
|
470
|
+
"title": "Log shipping",
|
|
471
|
+
"description": "Ship structured logs to Better Stack / Axiom / Loki / any HTTP sink — batched, redacted, fail-soft. Rides the framework log-sink hook.",
|
|
472
|
+
"pkg": "@voltro/plugin-logship",
|
|
473
|
+
"doc": "plugins/logship.md"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"slug": "mail",
|
|
477
|
+
"title": "Mail",
|
|
478
|
+
"description": "Transactional email — Resend / Postmark / SendGrid / SMTP, React-Email templates with auto-discovery, per-tenant suppression, bounce/complaint handling, durable delivery via workflows.",
|
|
479
|
+
"pkg": "@voltro/plugin-mail",
|
|
480
|
+
"doc": "plugins/mail.md"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"slug": "moderation",
|
|
484
|
+
"title": "Moderation",
|
|
485
|
+
"description": "Moderate user content before it commits — keyword denylist or AI provider, block or flag via rpc interceptor, plus an in-handler redact helper.",
|
|
486
|
+
"pkg": "@voltro/plugin-moderation",
|
|
487
|
+
"doc": "plugins/moderation.md"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"slug": "multitenancy",
|
|
491
|
+
"title": "Multi-tenancy",
|
|
492
|
+
"description": "The tenant() schema mixin (auto-scope reads + auto-fill writes), the assertOwnTenant write-guard, and the typed TenantMismatch error.",
|
|
493
|
+
"pkg": "@voltro/plugin-multitenancy",
|
|
494
|
+
"doc": "plugins/multitenancy.md"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"slug": "notifications",
|
|
498
|
+
"title": "Notifications",
|
|
499
|
+
"description": "Unified notifications — one send API across email / Slack / SMS / push / in-app, with per-user channel preferences, an in-app inbox, and delivery records.",
|
|
500
|
+
"pkg": "@voltro/plugin-notifications",
|
|
501
|
+
"doc": "plugins/notifications.md"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"slug": "openapi",
|
|
505
|
+
"title": "OpenAPI",
|
|
506
|
+
"description": "Generate an OpenAPI 3.1 spec + Swagger-UI docs from your defineRestRoute descriptors and (opt-in) your rpc procedures. Your routes ARE the API docs — nothing hand-maintained.",
|
|
507
|
+
"pkg": "@voltro/plugin-openapi",
|
|
508
|
+
"doc": "plugins/openapi.md"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"slug": "postgis",
|
|
512
|
+
"title": "PostGIS",
|
|
513
|
+
"description": "Postgres-native geography / geometry columns, geometry constructors (point/line/polygon/multi/GeoJSON), spatial predicates (ST_DWithin, ST_Within, ST_Contains, ST_Intersects, ST_Buffer, bbox &&), ST_Distance projection + <-> KNN ordering, and GiST indexes via expressionIndex. Postgres-only by design.",
|
|
514
|
+
"pkg": "@voltro/plugin-postgis",
|
|
515
|
+
"doc": "plugins/postgis.md"
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"slug": "posthog",
|
|
519
|
+
"title": "PostHog",
|
|
520
|
+
"description": "Track-only AnalyticsSink that forwards events to PostHog's /capture endpoint — compose it with a second sink that owns reads.",
|
|
521
|
+
"pkg": "@voltro/plugin-posthog",
|
|
522
|
+
"doc": "plugins/posthog.md"
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"slug": "presence",
|
|
526
|
+
"title": "Presence",
|
|
527
|
+
"description": "Ephemeral realtime presence — who's online in a channel, with heartbeat, live roster, and per-member metadata (status, cursor). Works cross-instance.",
|
|
528
|
+
"pkg": "@voltro/plugin-presence",
|
|
529
|
+
"doc": "plugins/presence.md"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"slug": "prometheus",
|
|
533
|
+
"title": "Prometheus",
|
|
534
|
+
"description": "Prometheus exporter — scrapes the unified Metrics-API at GET /metrics in text exposition format.",
|
|
535
|
+
"pkg": "@voltro/plugin-prometheus",
|
|
536
|
+
"doc": "plugins/prometheus.md"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"slug": "ratelimit",
|
|
540
|
+
"title": "Rate limiting",
|
|
541
|
+
"description": "Per-endpoint, per-subject and per-tenant request limits via the rpc interceptors. Sliding-window / fixed-window / token-bucket, memory / postgres / redis stores.",
|
|
542
|
+
"pkg": "@voltro/plugin-ratelimit",
|
|
543
|
+
"doc": "plugins/ratelimit.md"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"slug": "rbac",
|
|
547
|
+
"title": "RBAC",
|
|
548
|
+
"description": "Roles + permissions + the permission() handler guard. Roles compile to scopes.",
|
|
549
|
+
"pkg": "@voltro/plugin-rbac",
|
|
550
|
+
"doc": "plugins/rbac.md"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"slug": "scim",
|
|
554
|
+
"title": "SCIM",
|
|
555
|
+
"description": "SCIM 2.0 provisioning — Users + Groups REST endpoints so an enterprise IdP (Okta, Entra, OneLogin) can create / update / deactivate users in your app.",
|
|
556
|
+
"pkg": "@voltro/plugin-scim",
|
|
557
|
+
"doc": "plugins/scim.md"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"slug": "search",
|
|
561
|
+
"title": "Search",
|
|
562
|
+
"description": "Keep an external search index (Typesense / Meilisearch / Algolia) in sync with your tables via the ChangeEvent tap, query it tenant-scoped through a typed action + hook.",
|
|
563
|
+
"pkg": "@voltro/plugin-search",
|
|
564
|
+
"doc": "plugins/search.md"
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"slug": "sentry",
|
|
568
|
+
"title": "Sentry",
|
|
569
|
+
"description": "Deep Sentry integration — errors correlated to the distributed trace, breadcrumbs from the log sink, and opt-in performance traces.",
|
|
570
|
+
"pkg": "@voltro/plugin-sentry",
|
|
571
|
+
"doc": "plugins/sentry.md"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"slug": "soft-delete",
|
|
575
|
+
"title": "Soft delete",
|
|
576
|
+
"description": "The softDelete() schema mixin — deletedAt / deletedBy columns, delete() redirected to an UPDATE, default reads filtered, hardDelete() bypass.",
|
|
577
|
+
"pkg": "@voltro/plugin-soft-delete",
|
|
578
|
+
"doc": "plugins/soft-delete.md"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"slug": "sso-saml",
|
|
582
|
+
"title": "SAML SSO",
|
|
583
|
+
"description": "Enterprise SAML 2.0 SSO — SP-initiated login, ACS assertion consumer, SP metadata. Signature verification via @node-saml/node-saml; framework session minting built in.",
|
|
584
|
+
"pkg": "@voltro/plugin-sso-saml",
|
|
585
|
+
"doc": "plugins/sso-saml.md"
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"slug": "storage",
|
|
589
|
+
"title": "Storage",
|
|
590
|
+
"description": "File storage behind one StorageService — public objects served direct from the bucket/CDN, private objects gated by an access policy + per-object grants. S3 / R2 / GCS / MinIO / filesystem / memory providers, presigned URLs, a dashboard browser.",
|
|
591
|
+
"pkg": "@voltro/plugin-storage",
|
|
592
|
+
"doc": "plugins/storage.md"
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"slug": "tinybird",
|
|
596
|
+
"title": "Tinybird",
|
|
597
|
+
"description": "Hosted-ClickHouse AnalyticsSink over Tinybird's Events API + Pipes — pay-as-you-go OLAP without operating a cluster.",
|
|
598
|
+
"pkg": "@voltro/plugin-tinybird",
|
|
599
|
+
"doc": "plugins/tinybird.md"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"slug": "versioning",
|
|
603
|
+
"title": "Row versioning",
|
|
604
|
+
"description": "Full row history + time-travel. audit() records who/when; versioning records what-changed-to-what — a value snapshot of every row on every write, with as-of queries.",
|
|
605
|
+
"pkg": "@voltro/plugin-versioning",
|
|
606
|
+
"doc": "plugins/versioning.md"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"slug": "webhooks",
|
|
610
|
+
"title": "Webhooks",
|
|
611
|
+
"description": "First-class outgoing + incoming webhooks — defineOutgoingEvent / defineIncomingWebhook in *.webhook.tsx files, runtime subscriptions, durable delivery via @effect/workflow, HMAC signing, provider presets, and idempotency.",
|
|
612
|
+
"pkg": "@voltro/plugin-webhooks",
|
|
613
|
+
"doc": "plugins/webhooks.md"
|
|
614
|
+
}
|
|
615
|
+
],
|
|
616
|
+
"templates": {
|
|
617
|
+
"admin": "agent-docs/templates/appshells.md",
|
|
618
|
+
"api-ai": "agent-docs/templates/apibackends.md",
|
|
619
|
+
"api-auth": "agent-docs/templates/apibackends.md",
|
|
620
|
+
"api-backend-deactivation": "agent-docs/templates/apibackends.md",
|
|
621
|
+
"api-backend-mail": "agent-docs/templates/apibackends.md",
|
|
622
|
+
"api-backend-mariadb": "agent-docs/templates/apibackends.md",
|
|
623
|
+
"api-backend-storage": "agent-docs/templates/apibackends.md",
|
|
624
|
+
"api-backend": "agent-docs/templates/apibackends.md",
|
|
625
|
+
"api-data-advanced": "agent-docs/templates/apibackends.md",
|
|
626
|
+
"api-durable": "agent-docs/templates/apibackends.md",
|
|
627
|
+
"api-feature-flags": "agent-docs/templates/apibackends.md",
|
|
628
|
+
"api-governance": "agent-docs/templates/apibackends.md",
|
|
629
|
+
"api-kv": "agent-docs/templates/apibackends.md",
|
|
630
|
+
"api-moderation": "agent-docs/templates/apibackends.md",
|
|
631
|
+
"api-observability": "agent-docs/templates/apibackends.md",
|
|
632
|
+
"api-ratelimit": "agent-docs/templates/apibackends.md",
|
|
633
|
+
"api-rbac": "agent-docs/templates/apibackends.md",
|
|
634
|
+
"api-rest": "agent-docs/templates/apibackends.md",
|
|
635
|
+
"api-saas": "agent-docs/templates/apibackends.md",
|
|
636
|
+
"api-search": "agent-docs/templates/apibackends.md",
|
|
637
|
+
"api-versioning": "agent-docs/templates/apibackends.md",
|
|
638
|
+
"api-webhooks": "agent-docs/templates/apibackends.md",
|
|
639
|
+
"app": "agent-docs/templates/appshells.md",
|
|
640
|
+
"blank": "agent-docs/templates/appshells.md",
|
|
641
|
+
"changelog": "agent-docs/templates/appshells.md",
|
|
642
|
+
"contact": "agent-docs/templates/appshells.md",
|
|
643
|
+
"custom": "agent-docs/templates/custom.md",
|
|
644
|
+
"dashboard": "agent-docs/templates/appshells.md",
|
|
645
|
+
"docs": "agent-docs/templates/appshells.md",
|
|
646
|
+
"edge-functions": "agent-docs/templates/serverless.md",
|
|
647
|
+
"i18n": "agent-docs/templates/appshells.md",
|
|
648
|
+
"landing": "agent-docs/templates/appshells.md",
|
|
649
|
+
"overview": "agent-docs/templates/overview.md",
|
|
650
|
+
"spa": "agent-docs/templates/appshells.md",
|
|
651
|
+
"ssr-api": "agent-docs/templates/appshells.md",
|
|
652
|
+
"ssr": "agent-docs/templates/appshells.md",
|
|
653
|
+
"static-blog": "agent-docs/templates/appshells.md"
|
|
654
|
+
}
|
|
655
|
+
}
|