{
  "generatedFrom": "voltro-dev/apps/voltro-dev/docs/content/docs/en",
  "modules": [
    {
      "id": "ai",
      "title": "AI",
      "section": "AI",
      "group": null,
      "description": "How Voltro treats AI — agents, tools, streaming, RAG — all primitives over the same WebSocket as the rest of the framework.",
      "path": "agent-docs/ai.md",
      "files": 11
    },
    {
      "id": "authentication",
      "title": "Authentication",
      "section": "Authentication",
      "group": null,
      "description": "How @voltro/plugin-auth wires password + session-cookie auth across api + web, plus the pluggable identity-strategy protocol.",
      "path": "agent-docs/authentication.md",
      "files": 12
    },
    {
      "id": "caching",
      "title": "Caching",
      "section": "Caching",
      "group": null,
      "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.",
      "path": "agent-docs/caching.md",
      "files": 8
    },
    {
      "id": "cli",
      "title": "CLI",
      "section": "CLI",
      "group": null,
      "description": "The voltro CLI — every command, grouped by purpose, with the flags that actually matter.",
      "path": "agent-docs/cli.md",
      "files": 10
    },
    {
      "id": "configuration",
      "title": "Configuration",
      "section": "Configuration",
      "group": null,
      "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.",
      "path": "agent-docs/configuration.md",
      "files": 3
    },
    {
      "id": "data",
      "title": "Data",
      "section": "Data",
      "group": null,
      "description": "How Voltro's reactive data layer works — queries, mutations, actions, streams, all over one WebSocket with typed errors and tracked dependencies.",
      "path": "agent-docs/data.md",
      "files": 19
    },
    {
      "id": "database/advancedqueries",
      "title": "database.advancedQueries",
      "section": "Database",
      "group": "database.advancedQueries",
      "description": "Btree, GIN, GiST, BRIN, HNSW — when to use what, plus partial + expression + composite indexes.",
      "path": "agent-docs/database/advancedqueries.md",
      "files": 9
    },
    {
      "id": "database/columntypes",
      "title": "database.columnTypes",
      "section": "Database",
      "group": "database.columnTypes",
      "description": "Postgres-native ENUM types via dbEnum() — cheap ADD VALUE migrations, full type-narrowing. Falls back to CHECK constraints on other dialects.",
      "path": "agent-docs/database/columntypes.md",
      "files": 6
    },
    {
      "id": "database/hosting",
      "title": "database.hosting",
      "section": "Database",
      "group": "database.hosting",
      "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.",
      "path": "agent-docs/database/hosting.md",
      "files": 13
    },
    {
      "id": "database/migrations",
      "title": "database.migrations",
      "section": "Database",
      "group": "database.migrations",
      "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.",
      "path": "agent-docs/database/migrations.md",
      "files": 17
    },
    {
      "id": "database/misc",
      "title": "Database",
      "section": "Database",
      "group": null,
      "description": "Branch the live schema and REHEARSE your migration on it — apply the plan to a throwaway copy, flag every lossy operation, prove it converges, drop the branch. Plus the branch primitive itself (namespace snapshot on Postgres, Neon copy-on-write fast-path).",
      "path": "agent-docs/database/misc.md",
      "files": 2
    },
    {
      "id": "database/overview",
      "title": "Database",
      "section": "Database",
      "group": null,
      "description": "How Voltro talks to Postgres — the schema DSL, the query builder, mixins, migrations, and the reactive engine's relationship to all of it.",
      "path": "agent-docs/database/overview.md",
      "files": 1
    },
    {
      "id": "database/querying",
      "title": "database.querying",
      "section": "Database",
      "group": "database.querying",
      "description": "Three cardinalities, one DSL. Declaration via relations(), eager loading via .with(), reactive invalidation via the two-stage dependency-graph + per-field pre-filter.",
      "path": "agent-docs/database/querying.md",
      "files": 9
    },
    {
      "id": "database/scaling",
      "title": "database.scaling",
      "section": "Database",
      "group": "database.scaling",
      "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.",
      "path": "agent-docs/database/scaling.md",
      "files": 2
    },
    {
      "id": "database/schema",
      "title": "database.schema",
      "section": "Database",
      "group": "database.schema",
      "description": "Five generation schemes — TypeID (default), ULID, numeric, Snowflake, custom. Decision matrix, auto-injection lifecycle, cursor pagination, branded TypeScript types.",
      "path": "agent-docs/database/schema.md",
      "files": 9
    },
    {
      "id": "database/seedsdialects",
      "title": "database.seedsDialects",
      "section": "Database",
      "group": "database.seedsDialects",
      "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.",
      "path": "agent-docs/database/seedsdialects.md",
      "files": 8
    },
    {
      "id": "database/transactions",
      "title": "database.transactions",
      "section": "Database",
      "group": "database.transactions",
      "description": "How ctx.store behaves inside mutations, workflows, and explicit transaction blocks.",
      "path": "agent-docs/database/transactions.md",
      "files": 2
    },
    {
      "id": "deployment",
      "title": "Deployment",
      "section": "Deployment",
      "group": null,
      "description": "Voltro Cloud (coming soon) — the managed runtime for your Voltro project. Today the Free control plane registers + observes your self-hosted apps.",
      "path": "agent-docs/deployment.md",
      "files": 8
    },
    {
      "id": "internationalization",
      "title": "Internationalization",
      "section": "Internationalization",
      "group": null,
      "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.",
      "path": "agent-docs/internationalization.md",
      "files": 5
    },
    {
      "id": "introduction",
      "title": "Introduction",
      "section": "Introduction",
      "group": null,
      "description": "Scaffold a Voltro project and boot it locally in under a minute.",
      "path": "agent-docs/introduction.md",
      "files": 6
    },
    {
      "id": "local-first-mobile",
      "title": "Local-first & Mobile",
      "section": "Local-first & Mobile",
      "group": null,
      "description": "\"@voltro/local-first — CRDT text merge (crdtText/mergeCrdtStates), the offline sync-queue + SyncClient wire, presence/awareness, durable persistence, and the localFirst table mixin. Pure and browser-safe; the React hooks live behind a subpath.\"",
      "path": "agent-docs/local-first-mobile.md",
      "files": 2
    },
    {
      "id": "multi-tenancy",
      "title": "Multi-tenancy",
      "section": "Multi-tenancy",
      "group": null,
      "description": "Multi-tenancy as a runtime primitive — the tenant() mixin, ctx.subject.tenantId, automatic read scoping, explicit write gates.",
      "path": "agent-docs/multi-tenancy.md",
      "files": 4
    },
    {
      "id": "observability",
      "title": "Observability",
      "section": "Observability",
      "group": null,
      "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.",
      "path": "agent-docs/observability.md",
      "files": 4
    },
    {
      "id": "plugins",
      "title": "Plugins",
      "section": "Plugins",
      "group": null,
      "description": "How Voltro plugins compose into the runtime, what they can intercept, the catalogue, and writing your own.",
      "path": "agent-docs/plugins.md",
      "files": 3
    },
    {
      "id": "reference",
      "title": "Reference",
      "section": "Reference",
      "group": null,
      "description": "The client-side hook surface, grouped by purpose.",
      "path": "agent-docs/reference.md",
      "files": 7
    },
    {
      "id": "releases",
      "title": "Releases",
      "section": "Releases",
      "group": null,
      "description": "0.35 through 0.38 in one pass — the boot-breaking access declarations, the stricter input handling, and the runtime behaviour that moved underneath you.",
      "path": "agent-docs/releases.md",
      "files": 2
    },
    {
      "id": "routing",
      "title": "Routing",
      "section": "Routing",
      "group": null,
      "description": "Voltro's file-based router — pages, layouts, render modes, loaders, navigation, islands. The web side of the framework.",
      "path": "agent-docs/routing.md",
      "files": 9
    },
    {
      "id": "scheduling",
      "title": "Scheduling",
      "section": "Scheduling",
      "group": null,
      "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.",
      "path": "agent-docs/scheduling.md",
      "files": 7
    },
    {
      "id": "schema-driven-ui",
      "title": "Schema-driven UI",
      "section": "Schema-driven UI",
      "group": null,
      "description": "Project the typed descriptor graph into UI — forms, tables, pickers, and reactive components, all bound to a descriptor with near-zero glue.",
      "path": "agent-docs/schema-driven-ui.md",
      "files": 23
    },
    {
      "id": "security",
      "title": "Security",
      "section": "Security",
      "group": null,
      "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.",
      "path": "agent-docs/security.md",
      "files": 1
    },
    {
      "id": "templates/apibackends",
      "title": "templates.apiBackends",
      "section": "Templates",
      "group": "templates.apiBackends",
      "description": "The minimal Voltro backend — app.config + schema + one streaming query + one tenant-guarded mutation. Tenant-aware out of the box.",
      "path": "agent-docs/templates/apibackends.md",
      "files": 22
    },
    {
      "id": "templates/appshells",
      "title": "templates.appShells",
      "section": "Templates",
      "group": "templates.appShells",
      "description": "A marketing landing page — hero, features, CTA. Static-rendered with zero JS on the wire by default.",
      "path": "agent-docs/templates/appshells.md",
      "files": 14
    },
    {
      "id": "templates/custom",
      "title": "templates.custom",
      "section": "Templates",
      "group": "templates.custom",
      "description": "Add a template the CLI can scaffold from — a directory under voltro-templates/apps/ with a manifest and the files to copy.",
      "path": "agent-docs/templates/custom.md",
      "files": 1
    },
    {
      "id": "templates/mobile",
      "title": "templates.mobile",
      "section": "Templates",
      "group": "templates.mobile",
      "description": "An Expo (React Native) app that is the third consumer of your api — the same typed hooks (useSubscription / useMutation), offline-first by default, typed deep links, and device registration for push. Expo owns Metro; voltro dev runs the sibling api.",
      "path": "agent-docs/templates/mobile.md",
      "files": 1
    },
    {
      "id": "templates/overview",
      "title": "Templates",
      "section": "Templates",
      "group": null,
      "description": "Dozens of dogfooded starter templates ship with the framework — backend shapes, frontend shapes, a serverless function library, and an Expo mobile app. voltro list-templates is the authority; scaffold any of them with one CLI call.",
      "path": "agent-docs/templates/overview.md",
      "files": 1
    },
    {
      "id": "templates/serverless",
      "title": "templates.serverless",
      "section": "Templates",
      "group": "templates.serverless",
      "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.",
      "path": "agent-docs/templates/serverless.md",
      "files": 1
    },
    {
      "id": "testing",
      "title": "Testing",
      "section": "Testing",
      "group": null,
      "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.",
      "path": "agent-docs/testing.md",
      "files": 5
    },
    {
      "id": "workflows",
      "title": "Workflows",
      "section": "Workflows",
      "group": null,
      "description": "Durable Effect workflows in Voltro — what they are, when to use them, and the current runtime boundaries.",
      "path": "agent-docs/workflows.md",
      "files": 10
    }
  ],
  "plugins": [
    {
      "slug": "ai-flows",
      "title": "AI Flows",
      "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.",
      "pkg": "@voltro/plugin-ai-flows",
      "doc": "plugins/ai-flows.md",
      "module": "agent-docs/plugins/ai-flows.md"
    },
    {
      "slug": "analytics-postgres",
      "title": "Postgres analytics",
      "description": "First-party lite AnalyticsSink — stores events in the main DataStore, cross-dialect, zero external infra. ~10M events/day ceiling.",
      "pkg": "@voltro/plugin-analytics-postgres",
      "doc": "plugins/analytics-postgres.md",
      "module": "agent-docs/plugins/analytics-postgres.md"
    },
    {
      "slug": "atlassian",
      "title": "Atlassian",
      "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.",
      "pkg": "@voltro/plugin-atlassian",
      "doc": "plugins/atlassian.md",
      "module": "agent-docs/plugins/atlassian.md"
    },
    {
      "slug": "audit",
      "title": "Audit",
      "description": "Mutation audit log — sinks (console/memory/custom), include/exclude filters, the audit() mixin, testing with the memory buffer.",
      "pkg": "@voltro/plugin-audit",
      "doc": "plugins/audit.md",
      "module": "agent-docs/plugins/audit.md"
    },
    {
      "slug": "auth",
      "title": "Auth",
      "description": "Password + session-cookie auth — overview. Full docs in the Authentication section.",
      "pkg": "@voltro/plugin-auth",
      "doc": "plugins/auth.md",
      "module": "agent-docs/plugins/auth.md"
    },
    {
      "slug": "auth-auth0",
      "title": "Auth0",
      "description": "Auth0 AuthStrategy — verifies Auth0-issued JWTs via the tenant's JWKS (no client secret) and maps a namespaced custom claim → tenantId.",
      "pkg": "@voltro/plugin-auth-auth0",
      "doc": "plugins/auth-auth0.md",
      "module": "agent-docs/plugins/auth-auth0.md"
    },
    {
      "slug": "auth-clerk",
      "title": "Clerk",
      "description": "Clerk AuthStrategy — verifies Clerk-issued __session JWTs via the Frontend API JWKS (no secret key) and maps org_id → tenantId.",
      "pkg": "@voltro/plugin-auth-clerk",
      "doc": "plugins/auth-clerk.md",
      "module": "agent-docs/plugins/auth-clerk.md"
    },
    {
      "slug": "auth-kinde",
      "title": "Kinde",
      "description": "Kinde AuthStrategy — verifies Kinde-issued JWTs via JWKS at the configured issuer (no client secret) and maps org_code → tenantId.",
      "pkg": "@voltro/plugin-auth-kinde",
      "doc": "plugins/auth-kinde.md",
      "module": "agent-docs/plugins/auth-kinde.md"
    },
    {
      "slug": "auth-oidc",
      "title": "OIDC (generic)",
      "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.",
      "pkg": "@voltro/plugin-auth-oidc",
      "doc": "plugins/auth-oidc.md",
      "module": "agent-docs/plugins/auth-oidc.md"
    },
    {
      "slug": "auth-social",
      "title": "Social login (Google / GitHub / Apple)",
      "description": "First-party Sign in with Google / GitHub / Apple — mandatory PKCE + state, JWKS-verified ID tokens, a deliberate account-linking policy, no identity vendor.",
      "pkg": "@voltro/plugin-auth-social",
      "doc": "plugins/auth-social.md",
      "module": "agent-docs/plugins/auth-social.md"
    },
    {
      "slug": "auth-supabase",
      "title": "Supabase Auth",
      "description": "Supabase Auth (GoTrue) AuthStrategy — verifies Supabase-issued JWTs via the project's JWKS and maps app_metadata.tenant_id → tenantId.",
      "pkg": "@voltro/plugin-auth-supabase",
      "doc": "plugins/auth-supabase.md",
      "module": "agent-docs/plugins/auth-supabase.md"
    },
    {
      "slug": "auth-workos",
      "title": "WorkOS",
      "description": "WorkOS AuthStrategy — verifies WorkOS AuthKit / SSO JWTs via JWKS (no API key) and maps org_id → tenantId.",
      "pkg": "@voltro/plugin-auth-workos",
      "doc": "plugins/auth-workos.md",
      "module": "agent-docs/plugins/auth-workos.md"
    },
    {
      "slug": "billing",
      "title": "Billing",
      "description": "Subscriptions, plans, entitlements, and usage metering over a pluggable provider (Stripe + mock). Money is integer minor units.",
      "pkg": "@voltro/plugin-billing",
      "doc": "plugins/billing.md",
      "module": "agent-docs/plugins/billing.md"
    },
    {
      "slug": "broadcast",
      "title": "Broadcast",
      "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.",
      "pkg": "@voltro/plugin-broadcast",
      "doc": "plugins/broadcast.md",
      "module": "agent-docs/plugins/broadcast.md"
    },
    {
      "slug": "cdc-out",
      "title": "CDC-out (reverse-ETL)",
      "description": "Declaratively mirror table changes outward to external sinks (webhook, plus a CdcSink interface for custom sinks) through a durable outbox — ordered per pipe, at-least-once from enqueue, retried with backoff, dead-lettered.",
      "pkg": "@voltro/plugin-cdc-out",
      "doc": "plugins/cdc-out.md",
      "module": "agent-docs/plugins/cdc-out.md"
    },
    {
      "slug": "clickhouse",
      "title": "ClickHouse",
      "description": "Production-grade OLAP AnalyticsSink over ClickHouse — self-hosted or ClickHouse Cloud — for billions of events with millisecond aggregates.",
      "pkg": "@voltro/plugin-clickhouse",
      "doc": "plugins/clickhouse.md",
      "module": "agent-docs/plugins/clickhouse.md"
    },
    {
      "slug": "datadog",
      "title": "Datadog",
      "description": "Agentless Datadog metrics exporter — pushes the unified Metrics-API to Datadog's /api/v2/series HTTP intake.",
      "pkg": "@voltro/plugin-datadog",
      "doc": "plugins/datadog.md",
      "module": "agent-docs/plugins/datadog.md"
    },
    {
      "slug": "deactivation",
      "title": "Deactivation",
      "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.",
      "pkg": "@voltro/plugin-deactivation",
      "doc": "plugins/deactivation.md",
      "module": "agent-docs/plugins/deactivation.md"
    },
    {
      "slug": "duckdb",
      "title": "DuckDB",
      "description": "Embedded DuckDB AnalyticsSink — real column-store OLAP in-process, no external service to run.",
      "pkg": "@voltro/plugin-duckdb",
      "doc": "plugins/duckdb.md",
      "module": "agent-docs/plugins/duckdb.md"
    },
    {
      "slug": "flags",
      "title": "Feature flags",
      "description": "Feature flags — per-subject / per-tenant targeting, deterministic % rollouts, kill-switch, declarative rpc gating + client UI gating.",
      "pkg": "@voltro/plugin-flags",
      "doc": "plugins/flags.md",
      "module": "agent-docs/plugins/flags.md"
    },
    {
      "slug": "governance",
      "title": "Governance",
      "description": "Data governance — retention TTL sweep, GDPR export + erasure, consent ledger, and field-level encryption for .encrypted() columns. Builds on audit + soft-delete.",
      "pkg": "@voltro/plugin-governance",
      "doc": "plugins/governance.md",
      "module": "agent-docs/plugins/governance.md"
    },
    {
      "slug": "licensing",
      "title": "Licensing",
      "description": "Offline-verified EdDSA license keys + cloud-issued entitlement snapshots that feed plugin-billing; pricing decided server-side, never baked into a published version.",
      "pkg": "@voltro/plugin-licensing",
      "doc": "plugins/licensing.md",
      "module": "agent-docs/plugins/licensing.md"
    },
    {
      "slug": "logship",
      "title": "Log shipping",
      "description": "Ship structured logs to Better Stack / Axiom / Loki / any HTTP sink — batched, redacted, fail-soft. Rides the framework log-sink hook.",
      "pkg": "@voltro/plugin-logship",
      "doc": "plugins/logship.md",
      "module": "agent-docs/plugins/logship.md"
    },
    {
      "slug": "mail",
      "title": "Mail",
      "description": "Transactional email — Resend / Postmark / SendGrid / SMTP, React-Email templates with auto-discovery, per-tenant suppression, bounce/complaint handling, durable delivery via workflows.",
      "pkg": "@voltro/plugin-mail",
      "doc": "plugins/mail.md",
      "module": "agent-docs/plugins/mail.md"
    },
    {
      "slug": "moderation",
      "title": "Moderation",
      "description": "Moderate user content before it commits — keyword denylist or AI provider, block or flag via rpc interceptor, plus an in-handler redact helper.",
      "pkg": "@voltro/plugin-moderation",
      "doc": "plugins/moderation.md",
      "module": "agent-docs/plugins/moderation.md"
    },
    {
      "slug": "multitenancy",
      "title": "Multi-tenancy",
      "description": "The tenant() schema mixin (auto-scoped reads, auto-filled inserts, tenant-resolved keyed writes), the assertOwnTenant write-guard, and the typed TenantMismatch error.",
      "pkg": "@voltro/plugin-multitenancy",
      "doc": "plugins/multitenancy.md",
      "module": "agent-docs/plugins/multitenancy.md"
    },
    {
      "slug": "notifications",
      "title": "Notifications",
      "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.",
      "pkg": "@voltro/plugin-notifications",
      "doc": "plugins/notifications.md",
      "module": "agent-docs/plugins/notifications.md"
    },
    {
      "slug": "openapi",
      "title": "OpenAPI",
      "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.",
      "pkg": "@voltro/plugin-openapi",
      "doc": "plugins/openapi.md",
      "module": "agent-docs/plugins/openapi.md"
    },
    {
      "slug": "postgis",
      "title": "PostGIS",
      "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.",
      "pkg": "@voltro/plugin-postgis",
      "doc": "plugins/postgis.md",
      "module": "agent-docs/plugins/postgis.md"
    },
    {
      "slug": "posthog",
      "title": "PostHog",
      "description": "Track-only AnalyticsSink that forwards events to PostHog's /capture endpoint — compose it with a second sink that owns reads.",
      "pkg": "@voltro/plugin-posthog",
      "doc": "plugins/posthog.md",
      "module": "agent-docs/plugins/posthog.md"
    },
    {
      "slug": "presence",
      "title": "Presence",
      "description": "Ephemeral realtime presence — who's online in a channel, with heartbeat, live roster, and per-member metadata (status, cursor). Works cross-instance.",
      "pkg": "@voltro/plugin-presence",
      "doc": "plugins/presence.md",
      "module": "agent-docs/plugins/presence.md"
    },
    {
      "slug": "prometheus",
      "title": "Prometheus",
      "description": "Prometheus exporter — scrapes the unified Metrics-API at GET /metrics in text exposition format.",
      "pkg": "@voltro/plugin-prometheus",
      "doc": "plugins/prometheus.md",
      "module": "agent-docs/plugins/prometheus.md"
    },
    {
      "slug": "ratelimit",
      "title": "Rate limiting",
      "description": "Per-endpoint, per-subject and per-tenant request limits via the rpc interceptors. Sliding-window / fixed-window / token-bucket, memory / postgres / redis stores.",
      "pkg": "@voltro/plugin-ratelimit",
      "doc": "plugins/ratelimit.md",
      "module": "agent-docs/plugins/ratelimit.md"
    },
    {
      "slug": "rbac",
      "title": "RBAC",
      "description": "Roles + permissions + the permission() handler guard. Roles compile to scopes.",
      "pkg": "@voltro/plugin-rbac",
      "doc": "plugins/rbac.md",
      "module": "agent-docs/plugins/rbac.md"
    },
    {
      "slug": "row-history",
      "title": "Row history",
      "description": "Full row history + time-travel. audit() records who/when; row-history records what-changed-to-what — a value snapshot of every row on every write, with as-of queries.",
      "pkg": "@voltro/plugin-row-history",
      "doc": "plugins/row-history.md",
      "module": "agent-docs/plugins/row-history.md"
    },
    {
      "slug": "scim",
      "title": "SCIM",
      "description": "SCIM 2.0 provisioning — Users + Groups REST endpoints so an enterprise IdP (Okta, Entra, OneLogin) can create / update / deactivate users in your app.",
      "pkg": "@voltro/plugin-scim",
      "doc": "plugins/scim.md",
      "module": "agent-docs/plugins/scim.md"
    },
    {
      "slug": "search",
      "title": "Search",
      "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.",
      "pkg": "@voltro/plugin-search",
      "doc": "plugins/search.md",
      "module": "agent-docs/plugins/search.md"
    },
    {
      "slug": "sentry",
      "title": "Sentry",
      "description": "Deep Sentry integration — errors correlated to the distributed trace, breadcrumbs from the log sink, and opt-in performance traces.",
      "pkg": "@voltro/plugin-sentry",
      "doc": "plugins/sentry.md",
      "module": "agent-docs/plugins/sentry.md"
    },
    {
      "slug": "soft-delete",
      "title": "Soft delete",
      "description": "The softDelete() schema mixin — deletedAt / deletedBy columns, delete() redirected to an UPDATE, default reads filtered, hardDelete() bypass.",
      "pkg": "@voltro/plugin-soft-delete",
      "doc": "plugins/soft-delete.md",
      "module": "agent-docs/plugins/soft-delete.md"
    },
    {
      "slug": "sso-saml",
      "title": "SAML SSO",
      "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.",
      "pkg": "@voltro/plugin-sso-saml",
      "doc": "plugins/sso-saml.md",
      "module": "agent-docs/plugins/sso-saml.md"
    },
    {
      "slug": "storage",
      "title": "Storage",
      "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 / MinIO (R2 and GCS via their S3 interop) / Azure / database / filesystem / memory providers, presigned URLs, a dashboard browser.",
      "pkg": "@voltro/plugin-storage",
      "doc": "plugins/storage.md",
      "module": "agent-docs/plugins/storage.md"
    },
    {
      "slug": "tinybird",
      "title": "Tinybird",
      "description": "Hosted-ClickHouse AnalyticsSink over Tinybird's Events API + Pipes — pay-as-you-go OLAP without operating a cluster.",
      "pkg": "@voltro/plugin-tinybird",
      "doc": "plugins/tinybird.md",
      "module": "agent-docs/plugins/tinybird.md"
    },
    {
      "slug": "webhooks",
      "title": "Webhooks",
      "description": "First-class outgoing + incoming webhooks — declared events with a webhook: block, defineIncomingWebhook in *.webhook.tsx files, runtime subscriptions, durable delivery via @effect/workflow, HMAC signing, provider presets, and idempotency.",
      "pkg": "@voltro/plugin-webhooks",
      "doc": "plugins/webhooks.md",
      "module": "agent-docs/plugins/webhooks.md"
    }
  ],
  "templates": {
    "admin": "agent-docs/templates/appshells.md",
    "api-ai": "agent-docs/templates/apibackends.md",
    "api-auth": "agent-docs/templates/apibackends.md",
    "api-backend-deactivation": "agent-docs/templates/apibackends.md",
    "api-backend-mail": "agent-docs/templates/apibackends.md",
    "api-backend-mariadb": "agent-docs/templates/apibackends.md",
    "api-backend-storage": "agent-docs/templates/apibackends.md",
    "api-backend": "agent-docs/templates/apibackends.md",
    "api-collab": "agent-docs/templates/apibackends.md",
    "api-data-advanced": "agent-docs/templates/apibackends.md",
    "api-durable": "agent-docs/templates/apibackends.md",
    "api-feature-flags": "agent-docs/templates/apibackends.md",
    "api-governance": "agent-docs/templates/apibackends.md",
    "api-kv": "agent-docs/templates/apibackends.md",
    "api-moderation": "agent-docs/templates/apibackends.md",
    "api-observability": "agent-docs/templates/apibackends.md",
    "api-ratelimit": "agent-docs/templates/apibackends.md",
    "api-rbac": "agent-docs/templates/apibackends.md",
    "api-rest": "agent-docs/templates/apibackends.md",
    "api-row-history": "agent-docs/templates/apibackends.md",
    "api-saas": "agent-docs/templates/apibackends.md",
    "api-search": "agent-docs/templates/apibackends.md",
    "api-webhooks": "agent-docs/templates/apibackends.md",
    "app": "agent-docs/templates/appshells.md",
    "blank": "agent-docs/templates/appshells.md",
    "changelog": "agent-docs/templates/appshells.md",
    "collab": "agent-docs/templates/appshells.md",
    "contact": "agent-docs/templates/appshells.md",
    "custom": "agent-docs/templates/custom.md",
    "dashboard": "agent-docs/templates/appshells.md",
    "docs": "agent-docs/templates/appshells.md",
    "edge-functions": "agent-docs/templates/serverless.md",
    "i18n": "agent-docs/templates/appshells.md",
    "landing": "agent-docs/templates/appshells.md",
    "mobile-app": "agent-docs/templates/mobile.md",
    "overview": "agent-docs/templates/overview.md",
    "spa": "agent-docs/templates/appshells.md",
    "ssr-api": "agent-docs/templates/appshells.md",
    "ssr": "agent-docs/templates/appshells.md",
    "static-blog": "agent-docs/templates/appshells.md"
  }
}
