use super::RouteDefinition;
pub(super) const ROUTES: &[RouteDefinition] = &[
RouteDefinition {
path: "/",
methods: &["GET"],
summary: "API root and route listing",
},
RouteDefinition {
path: "/ping",
methods: &["GET"],
summary: "Health check",
},
RouteDefinition {
path: "/health",
methods: &["GET"],
summary: "Structured health check with local provisioning diagnostics",
},
RouteDefinition {
path: "/health/cluster",
methods: &["GET"],
summary: "Cluster mirror health and version checks",
},
RouteDefinition {
path: "/clients",
methods: &["GET"],
summary: "List Athena clients (protected)",
},
RouteDefinition {
path: "/chat/rooms",
methods: &["GET"],
summary: "List chat rooms",
},
RouteDefinition {
path: "/chat/rooms",
methods: &["POST"],
summary: "Create a chat room",
},
RouteDefinition {
path: "/chat/rooms/{room_id}",
methods: &["GET"],
summary: "Get one chat room",
},
RouteDefinition {
path: "/chat/rooms/{room_id}",
methods: &["PATCH"],
summary: "Update one chat room",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/archive",
methods: &["POST"],
summary: "Archive one chat room",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/messages",
methods: &["GET"],
summary: "List room messages",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/messages",
methods: &["POST"],
summary: "Send one chat message",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/messages/{message_id}",
methods: &["PATCH"],
summary: "Edit one chat message",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/messages/{message_id}",
methods: &["DELETE"],
summary: "Delete one chat message",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/read-cursor",
methods: &["POST"],
summary: "Advance one room read cursor",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/members",
methods: &["GET"],
summary: "List room members",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/members",
methods: &["POST"],
summary: "Add room members",
},
RouteDefinition {
path: "/chat/rooms/{room_id}/members/{user_id}",
methods: &["DELETE"],
summary: "Remove one room member",
},
RouteDefinition {
path: "/chat/messages/{message_id}/reactions",
methods: &["POST"],
summary: "Add one message reaction",
},
RouteDefinition {
path: "/chat/messages/{message_id}/reactions/{emoji}",
methods: &["DELETE"],
summary: "Remove one message reaction",
},
RouteDefinition {
path: "/chat/messages/search",
methods: &["POST"],
summary: "Search chat messages",
},
RouteDefinition {
path: "/schema/clients",
methods: &["GET"],
summary: "List Postgres-backed Athena clients",
},
RouteDefinition {
path: "/schema",
methods: &["GET"],
summary: "List full schema metadata for one schema (defaults to public)",
},
RouteDefinition {
path: "/schema/tables",
methods: &["GET"],
summary: "List tables",
},
RouteDefinition {
path: "/schema/columns",
methods: &["GET"],
summary: "List columns",
},
RouteDefinition {
path: "/schema/constraints",
methods: &["GET"],
summary: "List unique constraints",
},
RouteDefinition {
path: "/schema/migrations",
methods: &["GET"],
summary: "List schema migrations (graceful fallback when table absent)",
},
RouteDefinition {
path: "/debug/schema",
methods: &["GET"],
summary: "Inspect logging-schema expected-vs-observed diagnostics",
},
RouteDefinition {
path: "/debug/gateway",
methods: &["GET"],
summary: "Inspect live gateway tenant routing, upstream readiness, and control-plane diagnostics",
},
RouteDefinition {
path: "/debug/s3",
methods: &["GET"],
summary: "Inspect live S3 catalog resolution, bucket readiness, and metadata diagnostics",
},
RouteDefinition {
path: "/router/registry",
methods: &["GET"],
summary: "Athena router registry",
},
RouteDefinition {
path: "/registry",
methods: &["GET"],
summary: "API registry",
},
RouteDefinition {
path: "/metrics",
methods: &["GET"],
summary: "Prometheus metrics endpoint",
},
RouteDefinition {
path: "/gateway/fetch",
methods: &["POST"],
summary: "Fetch data",
},
RouteDefinition {
path: "/gateway/update",
methods: &["POST"],
summary: "Update data",
},
RouteDefinition {
path: "/gateway/insert",
methods: &["PUT"],
summary: "Insert data",
},
RouteDefinition {
path: "/gateway/delete",
methods: &["DELETE"],
summary: "Delete data",
},
RouteDefinition {
path: "/gateway/query",
methods: &["POST"],
summary: "Execute SQL",
},
RouteDefinition {
path: "/gateway/rpc",
methods: &["POST"],
summary: "Execute a Postgres function as an RPC call",
},
RouteDefinition {
path: "/rpc/{function_name}",
methods: &["GET", "POST"],
summary: "Compatibility RPC endpoint for Postgres functions",
},
RouteDefinition {
path: "/public/{route_key}/{op}",
methods: &["POST"],
summary: "Dispatch a public route alias to gateway operations",
},
RouteDefinition {
path: "/query/sql",
methods: &["POST"],
summary: "Execute SQL via driver",
},
RouteDefinition {
path: "/gateway/sql",
methods: &["POST"],
summary: "Execute SQL via driver (gateway alias)",
},
RouteDefinition {
path: "/gateway/sql/d1/migrate",
methods: &["POST"],
summary: "Preview or apply PostgreSQL -> D1 migration plans",
},
RouteDefinition {
path: "/gateway/deferred/flush",
methods: &["POST"],
summary: "Immediately flush all pending deferred writes",
},
RouteDefinition {
path: "/query/count",
methods: &["POST"],
summary: "Cached row count (COUNT query or table)",
},
RouteDefinition {
path: "/pipelines",
methods: &["POST"],
summary: "Run pipeline",
},
RouteDefinition {
path: "/management/capabilities",
methods: &["GET"],
summary: "List management API capabilities for a client",
},
RouteDefinition {
path: "/admin/public-routes",
methods: &["GET", "POST"],
summary: "List or create public route aliases (admin)",
},
RouteDefinition {
path: "/admin/public-routes/{route_key}",
methods: &["PATCH", "DELETE"],
summary: "Update or delete public route aliases (admin)",
},
RouteDefinition {
path: "/admin/service-routes",
methods: &["GET", "POST"],
summary: "List or create tenant service route bindings (admin)",
},
RouteDefinition {
path: "/admin/service-routes/{route_key}/{service_key}",
methods: &["PATCH", "DELETE"],
summary: "Update or delete tenant service route bindings (admin)",
},
RouteDefinition {
path: "/admin/tenant-hostnames/{tenant}",
methods: &["PUT"],
summary: "Create or update tenant wildcard hostname onboarding (admin)",
},
RouteDefinition {
path: "/management/tables",
methods: &["POST"],
summary: "Create a managed table",
},
RouteDefinition {
path: "/management/tables/{table_name}",
methods: &["PATCH", "DELETE"],
summary: "Edit or drop a managed table",
},
RouteDefinition {
path: "/management/tables/{table_name}/columns/{column_name}",
methods: &["DELETE"],
summary: "Drop a managed table column",
},
RouteDefinition {
path: "/management/indexes",
methods: &["POST"],
summary: "Create an index",
},
RouteDefinition {
path: "/management/indexes/{index_name}",
methods: &["DELETE"],
summary: "Drop an index",
},
RouteDefinition {
path: "/management/views",
methods: &["POST"],
summary: "Create a Postgres view",
},
RouteDefinition {
path: "/management/views/{view_name}",
methods: &["DELETE"],
summary: "Drop a Postgres view",
},
RouteDefinition {
path: "/management/provision/providers/neon",
methods: &["POST"],
summary: "Provision/register a Neon database via management API",
},
RouteDefinition {
path: "/management/provision/providers/railway",
methods: &["POST"],
summary: "Provision/register a Railway database via management API",
},
RouteDefinition {
path: "/management/provision/providers/render",
methods: &["POST"],
summary: "Provision/register a Render database via management API",
},
RouteDefinition {
path: "/management/functions",
methods: &["GET", "PUT", "DELETE"],
summary: "List, upsert, or drop managed Postgres functions",
},
RouteDefinition {
path: "/admin/api-keys",
methods: &["GET", "POST"],
summary: "Manage API keys",
},
RouteDefinition {
path: "/admin/api-keys/{id}",
methods: &["PATCH", "DELETE"],
summary: "Update or delete an API key",
},
RouteDefinition {
path: "/admin/webhooks",
methods: &["GET", "POST"],
summary: "List or upsert gateway webhooks",
},
RouteDefinition {
path: "/admin/webhooks/events",
methods: &["GET"],
summary: "List supported webhook trigger types (route_key catalog)",
},
RouteDefinition {
path: "/admin/webhooks/{id}",
methods: &["GET", "PATCH", "DELETE"],
summary: "Get, update, or delete a gateway webhook",
},
RouteDefinition {
path: "/admin/webhooks/{id}/deliveries",
methods: &["GET"],
summary: "List delivery attempts for a gateway webhook",
},
RouteDefinition {
path: "/admin/webhooks/{id}/test",
methods: &["POST"],
summary: "Send a test gateway webhook delivery",
},
RouteDefinition {
path: "/admin/api-key-rights",
methods: &["GET", "POST"],
summary: "Manage API key rights",
},
RouteDefinition {
path: "/admin/api-key-rights/{id}",
methods: &["PATCH", "DELETE"],
summary: "Update or delete an API key right",
},
RouteDefinition {
path: "/admin/api-key-config",
methods: &["GET", "PUT"],
summary: "Manage global API key enforcement",
},
RouteDefinition {
path: "/admin/api-key-clients",
methods: &["GET"],
summary: "List per-client API key enforcement",
},
RouteDefinition {
path: "/admin/api-key-clients/{client_name}",
methods: &["PUT", "DELETE"],
summary: "Manage per-client API key enforcement",
},
RouteDefinition {
path: "/admin/clients",
methods: &["GET", "POST"],
summary: "Manage Athena client catalog",
},
RouteDefinition {
path: "/admin/clients/{client_name}",
methods: &["PATCH", "DELETE"],
summary: "Update or delete an Athena client",
},
RouteDefinition {
path: "/admin/clients/{client_name}/freeze",
methods: &["PUT"],
summary: "Freeze or unfreeze an Athena client",
},
RouteDefinition {
path: "/admin/clients/statistics",
methods: &["GET"],
summary: "List Athena client statistics",
},
RouteDefinition {
path: "/admin/clients/statistics/refresh",
methods: &["POST"],
summary: "Rebuild Athena client statistics from logs",
},
RouteDefinition {
path: "/admin/clients/{client_name}/statistics",
methods: &["GET"],
summary: "Inspect Athena client statistics",
},
RouteDefinition {
path: "/admin/clients/pressure",
methods: &["GET"],
summary: "List latest Athena client pressure snapshots",
},
RouteDefinition {
path: "/admin/clients/pressure/backfill",
methods: &["POST"],
summary: "Queue a client pressure backfill request",
},
RouteDefinition {
path: "/admin/clients/{client_name}/pressure",
methods: &["GET"],
summary: "Inspect Athena client pressure detail",
},
RouteDefinition {
path: "/admin/clients/{client_name}/query-optimizations",
methods: &["GET"],
summary: "List query optimization recommendations for a client",
},
RouteDefinition {
path: "/admin/clients/{client_name}/query-optimizations/refresh",
methods: &["POST"],
summary: "Generate or refresh query optimization recommendations for a client",
},
RouteDefinition {
path: "/admin/clients/{client_name}/query-optimizations/runs",
methods: &["GET"],
summary: "List query optimization recommendation runs for a client",
},
RouteDefinition {
path: "/admin/clients/{client_name}/query-optimizations/{recommendation_id}/apply",
methods: &["POST"],
summary: "Apply a query optimization recommendation",
},
RouteDefinition {
path: "/admin/clients/{client_name}/table-row-estimates",
methods: &["GET"],
summary: "Approximate per-table row counts plus storage-pressure advisories",
},
RouteDefinition {
path: "/admin/client-configs",
methods: &["GET"],
summary: "List per-client configuration overrides",
},
RouteDefinition {
path: "/admin/client-configs/{client_name}",
methods: &["GET", "PUT", "DELETE"],
summary: "Get, upsert or delete a per-client configuration override",
},
RouteDefinition {
path: "/admin/client-configs/seed-from-config",
methods: &["POST"],
summary: "Seed client configs table from the local config.yaml bootstrap",
},
RouteDefinition {
path: "/admin/pools",
methods: &["GET"],
summary: "List runtime Postgres connection pool statistics and health",
},
RouteDefinition {
path: "/admin/vacuum-health",
methods: &["GET"],
summary: "List latest vacuum health snapshot per Postgres client",
},
RouteDefinition {
path: "/admin/vacuum-health/{client_name}",
methods: &["GET"],
summary: "Latest vacuum health snapshot and per-table stats for one client",
},
RouteDefinition {
path: "/admin/admission-events",
methods: &["GET"],
summary: "List admission limiter events with optional decision and client filters",
},
RouteDefinition {
path: "/admin/provision",
methods: &["POST"],
summary: "Provision a database with the Athena schema",
},
RouteDefinition {
path: "/admin/provision/clones",
methods: &["GET", "POST"],
summary: "List or create durable Postgres clone jobs",
},
RouteDefinition {
path: "/admin/provision/clones/{job_id}",
methods: &["GET"],
summary: "Inspect a durable Postgres clone job",
},
RouteDefinition {
path: "/admin/provision/clones/{job_id}/cancel",
methods: &["POST"],
summary: "Request cancellation for a durable Postgres clone job",
},
RouteDefinition {
path: "/admin/provision/clones/{job_id}/retry",
methods: &["POST"],
summary: "Retry a failed durable Postgres clone job",
},
RouteDefinition {
path: "/admin/provision/status",
methods: &["GET"],
summary: "Check database provisioning status",
},
RouteDefinition {
path: "/admin/provision/dependencies",
methods: &["GET"],
summary: "Inspect Docker and Postgres dependency status for local provisioning",
},
RouteDefinition {
path: "/admin/provision/dependencies/install",
methods: &["POST"],
summary: "Attempt to install Docker and Postgres dependencies for local provisioning",
},
RouteDefinition {
path: "/admin/provision/instances",
methods: &["GET", "POST"],
summary: "List or spin up managed Postgres instances",
},
RouteDefinition {
path: "/admin/provision/instances/{container_name}",
methods: &["GET", "DELETE"],
summary: "Inspect or delete a managed Postgres instance",
},
RouteDefinition {
path: "/admin/provision/instances/{container_name}/start",
methods: &["POST"],
summary: "Start a managed Postgres instance and optionally reconnect runtime client",
},
RouteDefinition {
path: "/admin/provision/instances/{container_name}/stop",
methods: &["POST"],
summary: "Stop a managed Postgres instance and optionally mark runtime client unavailable",
},
RouteDefinition {
path: "/admin/provision/instances/{container_name}/bindings",
methods: &["POST"],
summary: "Bind a managed Postgres instance host port to a named public route mapping",
},
RouteDefinition {
path: "/admin/provision/providers/neon",
methods: &["POST"],
summary: "Provision/register a Neon Postgres database",
},
RouteDefinition {
path: "/admin/provision/providers/railway",
methods: &["POST"],
summary: "Provision/register a Railway Postgres database",
},
RouteDefinition {
path: "/admin/provision/providers/render",
methods: &["POST"],
summary: "Provision/register a Render Postgres database",
},
RouteDefinition {
path: "/admin/provision/local/pipeline",
methods: &["POST"],
summary: "Run a local provisioning pipeline for a client database",
},
RouteDefinition {
path: "/admin/backups",
methods: &["GET", "POST"],
summary: "List or create database backups",
},
RouteDefinition {
path: "/admin/daemons",
methods: &["GET"],
summary: "List daemon registry inventory from the logging database",
},
RouteDefinition {
path: "/admin/backups/jobs/{id}/cancel",
methods: &["POST"],
summary: "Cancel a running or pending backup/restore job",
},
RouteDefinition {
path: "/admin/backups/jobs/{job_id}/s3-open",
methods: &["GET"],
summary: "Generate a presigned S3 URL for a completed backup job",
},
RouteDefinition {
path: "/admin/backups/{key}/restore",
methods: &["POST"],
summary: "Restore a database from an S3 backup",
},
RouteDefinition {
path: "/admin/backups/{key}/download",
methods: &["GET"],
summary: "Download a backup archive from S3",
},
RouteDefinition {
path: "/admin/backups/{key}",
methods: &["DELETE"],
summary: "Delete a backup from S3",
},
RouteDefinition {
path: "/typesense/backends/test",
methods: &["POST"],
summary: "Check a Typesense backend connection",
},
RouteDefinition {
path: "/typesense/collections/list",
methods: &["POST"],
summary: "List collections available on a Typesense backend",
},
RouteDefinition {
path: "/typesense/sync-jobs/{job_id}/run",
methods: &["POST"],
summary: "Run a configured Typesense sync job immediately",
},
RouteDefinition {
path: "/typesense/sync-jobs/{job_id}/cancel",
methods: &["POST"],
summary: "Cancel a running Typesense sync job",
},
RouteDefinition {
path: "/typesense/sync-runs/{run_id}/kill",
methods: &["POST"],
summary: "Force-kill a running Typesense sync run",
},
RouteDefinition {
path: "/typesense/search",
methods: &["POST"],
summary: "Search a Typesense collection through an Athena sync binding",
},
RouteDefinition {
path: "/openapi.yaml",
methods: &["GET"],
summary: "OpenAPI spec",
},
RouteDefinition {
path: "/openapi-wss.yaml",
methods: &["GET"],
summary: "WebSocket OpenAPI spec",
},
RouteDefinition {
path: "/wss/info",
methods: &["GET"],
summary: "WebSocket gateway contract",
},
RouteDefinition {
path: "/docs",
methods: &["GET"],
summary: "Documentation redirect",
},
];