spine-framework 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/.framework/README.md +129 -0
- package/.framework/cli/bin.cjs +14 -0
- package/.framework/cli/commands/agents.ts +153 -0
- package/.framework/cli/commands/auth.ts +94 -0
- package/.framework/cli/commands/create-app.ts +185 -0
- package/.framework/cli/commands/dev.ts +295 -0
- package/.framework/cli/commands/doctor.ts +442 -0
- package/.framework/cli/commands/generate.ts +332 -0
- package/.framework/cli/commands/init.ts +272 -0
- package/.framework/cli/commands/install-app.ts +391 -0
- package/.framework/cli/commands/items.ts +253 -0
- package/.framework/cli/commands/migrations.ts +141 -0
- package/.framework/cli/commands/pipelines.ts +166 -0
- package/.framework/cli/commands/status.ts +197 -0
- package/.framework/cli/commands/system.ts +184 -0
- package/.framework/cli/commands/test.ts +227 -0
- package/.framework/cli/commands/uninstall-app.ts +166 -0
- package/.framework/cli/context.ts +268 -0
- package/.framework/cli/env-loader.ts +36 -0
- package/.framework/cli/index.ts +106 -0
- package/.framework/cli/welcome.cjs +45 -0
- package/.framework/docs/API.md +384 -0
- package/.framework/docs/STABILITY.md +52 -0
- package/.framework/docs/admin-routes.md +76 -0
- package/.framework/docs/api-docs-progress.md +38 -0
- package/.framework/docs/api-governance.md +146 -0
- package/.framework/docs/api-testing-results.md +212 -0
- package/.framework/docs/apis/admin-configs.md +567 -0
- package/.framework/docs/apis/admin-data.md +272 -0
- package/.framework/docs/apis/index.md +231 -0
- package/.framework/docs/apis/internal.md +295 -0
- package/.framework/docs/apis/runtime.md +537 -0
- package/.framework/docs/assembly-launch-guide.md +138 -0
- package/.framework/docs/audit-results.md +590 -0
- package/.framework/docs/authorization-model.md +170 -0
- package/.framework/docs/db-api-inventory.md +95 -0
- package/.framework/docs/examples/custom-app/README.md +77 -0
- package/.framework/docs/examples/custom-function/README.md +27 -0
- package/.framework/docs/examples/custom-function/handler.ts +48 -0
- package/.framework/docs/examples/custom-webhook/README.md +68 -0
- package/.framework/docs/gap-remediation-backlog.md +103 -0
- package/.framework/docs/guides/cli-guide.md +224 -0
- package/.framework/docs/guides/getting-started.md +103 -0
- package/.framework/docs/guides/import-guide.md +193 -0
- package/.framework/docs/guides/testing-guide.md +229 -0
- package/.framework/docs/permission-examples.md +326 -0
- package/.framework/docs/ui-adoption-verification.md +111 -0
- package/.framework/docs/ui-api-coverage.md +84 -0
- package/.framework/docs/v2-compatibility-audit.md +228 -0
- package/.framework/functions/.gitkeep +1 -0
- package/.framework/functions/_shared/agent-runner.ts +1097 -0
- package/.framework/functions/_shared/app-manifest.ts +184 -0
- package/.framework/functions/_shared/audit.ts +150 -0
- package/.framework/functions/_shared/db.ts +174 -0
- package/.framework/functions/_shared/index.ts +382 -0
- package/.framework/functions/_shared/middleware.ts +490 -0
- package/.framework/functions/_shared/permissions.ts +1325 -0
- package/.framework/functions/_shared/pipeline-runner.ts +731 -0
- package/.framework/functions/_shared/principal.ts +760 -0
- package/.framework/functions/_shared/schema-utils.ts +967 -0
- package/.framework/functions/_shared/testing.ts +258 -0
- package/.framework/functions/_shared/trigger-engine.ts +425 -0
- package/.framework/functions/_shared/webhook-registration.ts +168 -0
- package/.framework/functions/_shared/webhook-registry.ts +129 -0
- package/.framework/functions/account-nodes.ts +111 -0
- package/.framework/functions/admin-data.ts +606 -0
- package/.framework/functions/ai-agents.ts +323 -0
- package/.framework/functions/api-keys.ts +376 -0
- package/.framework/functions/apps.ts +483 -0
- package/.framework/functions/auth.ts +196 -0
- package/.framework/functions/debug-auth.ts +107 -0
- package/.framework/functions/embeddings.ts +556 -0
- package/.framework/functions/integration-routes.ts +523 -0
- package/.framework/functions/integrations.ts +319 -0
- package/.framework/functions/item-progress.ts +272 -0
- package/.framework/functions/logs.ts +438 -0
- package/.framework/functions/observability.ts +275 -0
- package/.framework/functions/pipeline-executions.ts +494 -0
- package/.framework/functions/pipelines.ts +485 -0
- package/.framework/functions/prompt-configs.ts +339 -0
- package/.framework/functions/roles.ts +387 -0
- package/.framework/functions/system-cron.ts +742 -0
- package/.framework/functions/system.ts +323 -0
- package/.framework/functions/tests.ts +119 -0
- package/.framework/functions/timers.ts +357 -0
- package/.framework/functions/triggers.ts +563 -0
- package/.framework/functions/types.ts +604 -0
- package/.framework/migrations/000_foundation.sql +1256 -0
- package/.framework/migrations/001_seed.sql +92 -0
- package/.framework/migrations/002_seed_constraints.sql +13 -0
- package/.framework/migrations/003_auth_user_trigger.sql +59 -0
- package/.framework/src/App.tsx +126 -0
- package/.framework/src/apps/admin/index.tsx +173 -0
- package/.framework/src/components/AppWrapper.tsx +56 -0
- package/.framework/src/components/CustomAppLoader.tsx +116 -0
- package/.framework/src/components/admin/AdminListPage.tsx +151 -0
- package/.framework/src/components/admin/AdminSidebar.tsx +166 -0
- package/.framework/src/components/admin/AdminStatsCard.tsx +62 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +42 -0
- package/.framework/src/components/app-shell/GenericAppShell.tsx +181 -0
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +200 -0
- package/.framework/src/components/app-shell/GenericListPage.tsx +116 -0
- package/.framework/src/components/app-sidebar.tsx +228 -0
- package/.framework/src/components/auth/ProtectedRoute.tsx +88 -0
- package/.framework/src/components/layout/AppShell.tsx +91 -0
- package/.framework/src/components/layout/Header.tsx +88 -0
- package/.framework/src/components/layout/Layout.tsx +95 -0
- package/.framework/src/components/layout/Sidebar.tsx +329 -0
- package/.framework/src/components/runtime/DataDetailHeader.tsx +77 -0
- package/.framework/src/components/runtime/DataDetailPage.tsx +171 -0
- package/.framework/src/components/runtime/DataFilters.tsx +91 -0
- package/.framework/src/components/runtime/DataHeader.tsx +68 -0
- package/.framework/src/components/runtime/DataListPage.tsx +124 -0
- package/.framework/src/components/runtime/DataStats.tsx +70 -0
- package/.framework/src/components/runtime/DataTable.tsx +174 -0
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +134 -0
- package/.framework/src/components/runtime/index.ts +18 -0
- package/.framework/src/components/search-form.tsx +29 -0
- package/.framework/src/components/shared/AgentView.tsx +213 -0
- package/.framework/src/components/shared/FieldRenderer.tsx +478 -0
- package/.framework/src/components/shared/SchemaFields.tsx +226 -0
- package/.framework/src/components/ui/DataTable.tsx +343 -0
- package/.framework/src/components/ui/Form.tsx +281 -0
- package/.framework/src/components/ui/ItemCard.tsx +296 -0
- package/.framework/src/components/ui/ItemListView.tsx +308 -0
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -0
- package/.framework/src/components/ui/Modal.tsx +61 -0
- package/.framework/src/components/ui/RichTextEditor.tsx +210 -0
- package/.framework/src/components/ui/accordion.tsx +82 -0
- package/.framework/src/components/ui/alert-dialog.tsx +197 -0
- package/.framework/src/components/ui/alert.tsx +76 -0
- package/.framework/src/components/ui/aspect-ratio.tsx +11 -0
- package/.framework/src/components/ui/avatar.tsx +110 -0
- package/.framework/src/components/ui/badge.tsx +49 -0
- package/.framework/src/components/ui/breadcrumb.tsx +122 -0
- package/.framework/src/components/ui/button-group.tsx +83 -0
- package/.framework/src/components/ui/button.tsx +65 -0
- package/.framework/src/components/ui/calendar.tsx +222 -0
- package/.framework/src/components/ui/card.tsx +100 -0
- package/.framework/src/components/ui/carousel.tsx +240 -0
- package/.framework/src/components/ui/chart.tsx +373 -0
- package/.framework/src/components/ui/checkbox.tsx +31 -0
- package/.framework/src/components/ui/collapsible.tsx +33 -0
- package/.framework/src/components/ui/combobox.tsx +299 -0
- package/.framework/src/components/ui/command.tsx +193 -0
- package/.framework/src/components/ui/context-menu.tsx +261 -0
- package/.framework/src/components/ui/dialog.tsx +165 -0
- package/.framework/src/components/ui/direction.tsx +22 -0
- package/.framework/src/components/ui/drawer.tsx +132 -0
- package/.framework/src/components/ui/dropdown-menu.tsx +269 -0
- package/.framework/src/components/ui/empty.tsx +104 -0
- package/.framework/src/components/ui/field.tsx +238 -0
- package/.framework/src/components/ui/hover-card.tsx +42 -0
- package/.framework/src/components/ui/input-group.tsx +153 -0
- package/.framework/src/components/ui/input-otp.tsx +87 -0
- package/.framework/src/components/ui/input.tsx +19 -0
- package/.framework/src/components/ui/item.tsx +196 -0
- package/.framework/src/components/ui/kbd.tsx +26 -0
- package/.framework/src/components/ui/label.tsx +22 -0
- package/.framework/src/components/ui/menubar.tsx +277 -0
- package/.framework/src/components/ui/native-select.tsx +61 -0
- package/.framework/src/components/ui/navigation-menu.tsx +164 -0
- package/.framework/src/components/ui/pagination.tsx +129 -0
- package/.framework/src/components/ui/popover.tsx +87 -0
- package/.framework/src/components/ui/progress.tsx +31 -0
- package/.framework/src/components/ui/radio-group.tsx +42 -0
- package/.framework/src/components/ui/resizable.tsx +50 -0
- package/.framework/src/components/ui/scroll-area.tsx +53 -0
- package/.framework/src/components/ui/select.tsx +195 -0
- package/.framework/src/components/ui/separator.tsx +26 -0
- package/.framework/src/components/ui/sheet.tsx +145 -0
- package/.framework/src/components/ui/sidebar.tsx +706 -0
- package/.framework/src/components/ui/skeleton.tsx +13 -0
- package/.framework/src/components/ui/slider.tsx +59 -0
- package/.framework/src/components/ui/sonner.tsx +47 -0
- package/.framework/src/components/ui/spinner.tsx +10 -0
- package/.framework/src/components/ui/switch.tsx +33 -0
- package/.framework/src/components/ui/table-primitives.tsx +141 -0
- package/.framework/src/components/ui/table.tsx +114 -0
- package/.framework/src/components/ui/tabs.tsx +90 -0
- package/.framework/src/components/ui/textarea.tsx +18 -0
- package/.framework/src/components/ui/toggle-group.tsx +89 -0
- package/.framework/src/components/ui/toggle.tsx +45 -0
- package/.framework/src/components/ui/tooltip.tsx +57 -0
- package/.framework/src/contexts/AppContext.tsx +133 -0
- package/.framework/src/contexts/AuthContext.tsx +371 -0
- package/.framework/src/hooks/use-mobile.ts +19 -0
- package/.framework/src/hooks/useApi.ts +526 -0
- package/.framework/src/hooks/useApps.ts +114 -0
- package/.framework/src/hooks/useEntityList.ts +190 -0
- package/.framework/src/hooks/useEntityRecord.ts +308 -0
- package/.framework/src/hooks/useForm.ts +307 -0
- package/.framework/src/hooks/useListSchema.ts +264 -0
- package/.framework/src/hooks/useSchemaRecord.ts +223 -0
- package/.framework/src/index.css +128 -0
- package/.framework/src/lib/api.ts +156 -0
- package/.framework/src/lib/supabase.ts +94 -0
- package/.framework/src/lib/utils.ts +317 -0
- package/.framework/src/main.tsx +27 -0
- package/.framework/src/pages/DashboardPage.tsx +181 -0
- package/.framework/src/pages/NotFoundPage.tsx +39 -0
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +161 -0
- package/.framework/src/pages/admin/AIAgentsPage.tsx +318 -0
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +199 -0
- package/.framework/src/pages/admin/APIKeysPage.tsx +303 -0
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +523 -0
- package/.framework/src/pages/admin/AppDetailPage.tsx +493 -0
- package/.framework/src/pages/admin/AppsPage.tsx +355 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +491 -0
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +534 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +424 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +176 -0
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +109 -0
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +402 -0
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +187 -0
- package/.framework/src/pages/admin/IntegrationsPage.tsx +301 -0
- package/.framework/src/pages/admin/LogsPage.tsx +283 -0
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +85 -0
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +470 -0
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +183 -0
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +279 -0
- package/.framework/src/pages/admin/PipelinesPage.tsx +390 -0
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +299 -0
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +292 -0
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +434 -0
- package/.framework/src/pages/admin/RoleDetailPage.tsx +273 -0
- package/.framework/src/pages/admin/RolesPage.tsx +292 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +61 -0
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +588 -0
- package/.framework/src/pages/admin/SimpleDashboard.tsx +387 -0
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +172 -0
- package/.framework/src/pages/admin/TestingDashboard.tsx +257 -0
- package/.framework/src/pages/admin/TimerDetailPage.tsx +151 -0
- package/.framework/src/pages/admin/TimersPage.tsx +376 -0
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +149 -0
- package/.framework/src/pages/admin/TriggersPage.tsx +381 -0
- package/.framework/src/pages/admin/TypeDetailPage.tsx +694 -0
- package/.framework/src/pages/admin/TypesPage.tsx +295 -0
- package/.framework/src/pages/auth/LoginPage.tsx +188 -0
- package/.framework/src/pages/auth/RegisterPage.tsx +163 -0
- package/.framework/src/pages/spine-framework/APIPage.tsx +17 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +25 -0
- package/.framework/src/types/auth.ts +125 -0
- package/.framework/src/types/types.ts +407 -0
- package/STRUCTURE.md +150 -0
- package/config/components.json +25 -0
- package/config/deno.lock +108 -0
- package/config/package-lock.json +17183 -0
- package/config/postcss.config.cjs +10 -0
- package/config/tailwind.config.cjs +78 -0
- package/config/tsconfig.build.json +32 -0
- package/config/tsconfig.cli.json +18 -0
- package/config/tsconfig.json +41 -0
- package/config/tsconfig.node.json +17 -0
- package/config/tsconfig.node.tsbuildinfo +1 -0
- package/config/tsconfig.tsbuildinfo +1 -0
- package/config/typedoc.json +16 -0
- package/config/vite.config.d.ts +2 -0
- package/config/vite.config.ts +72 -0
- package/dist/cli/commands/agents.d.ts +39 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/auth.d.ts +36 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/create-app.d.ts +23 -0
- package/dist/cli/commands/create-app.d.ts.map +1 -0
- package/dist/cli/commands/dev.d.ts +39 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +42 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/generate.d.ts +36 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +30 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/install-app.d.ts +30 -0
- package/dist/cli/commands/install-app.d.ts.map +1 -0
- package/dist/cli/commands/items.d.ts +45 -0
- package/dist/cli/commands/items.d.ts.map +1 -0
- package/dist/cli/commands/migrations.d.ts +41 -0
- package/dist/cli/commands/migrations.d.ts.map +1 -0
- package/dist/cli/commands/pipelines.d.ts +40 -0
- package/dist/cli/commands/pipelines.d.ts.map +1 -0
- package/dist/cli/commands/status.d.ts +23 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/system.d.ts +29 -0
- package/dist/cli/commands/system.d.ts.map +1 -0
- package/dist/cli/commands/test.d.ts +46 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/uninstall-app.d.ts +23 -0
- package/dist/cli/commands/uninstall-app.d.ts.map +1 -0
- package/dist/cli/context.d.ts +88 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/env-loader.d.ts +14 -0
- package/dist/cli/env-loader.d.ts.map +1 -0
- package/dist/cli/index.d.ts +41 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/functions/_shared/agent-runner.d.ts +156 -0
- package/dist/functions/_shared/agent-runner.d.ts.map +1 -0
- package/dist/functions/_shared/app-manifest.d.ts +68 -0
- package/dist/functions/_shared/app-manifest.d.ts.map +1 -0
- package/dist/functions/_shared/audit.d.ts +91 -0
- package/dist/functions/_shared/audit.d.ts.map +1 -0
- package/dist/functions/_shared/db.d.ts +125 -0
- package/dist/functions/_shared/db.d.ts.map +1 -0
- package/dist/functions/_shared/index.d.ts +298 -0
- package/dist/functions/_shared/index.d.ts.map +1 -0
- package/dist/functions/_shared/middleware.d.ts +315 -0
- package/dist/functions/_shared/middleware.d.ts.map +1 -0
- package/dist/functions/_shared/permissions.d.ts +626 -0
- package/dist/functions/_shared/permissions.d.ts.map +1 -0
- package/dist/functions/_shared/pipeline-runner.d.ts +124 -0
- package/dist/functions/_shared/pipeline-runner.d.ts.map +1 -0
- package/dist/functions/_shared/principal.d.ts +284 -0
- package/dist/functions/_shared/principal.d.ts.map +1 -0
- package/dist/functions/_shared/schema-utils.d.ts +181 -0
- package/dist/functions/_shared/schema-utils.d.ts.map +1 -0
- package/dist/functions/_shared/testing.d.ts +172 -0
- package/dist/functions/_shared/testing.d.ts.map +1 -0
- package/dist/functions/_shared/trigger-engine.d.ts +140 -0
- package/dist/functions/_shared/trigger-engine.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registration.d.ts +81 -0
- package/dist/functions/_shared/webhook-registration.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registry.d.ts +57 -0
- package/dist/functions/_shared/webhook-registry.d.ts.map +1 -0
- package/dist/functions/account-nodes.d.ts +48 -0
- package/dist/functions/account-nodes.d.ts.map +1 -0
- package/dist/functions/admin-data.d.ts +178 -0
- package/dist/functions/admin-data.d.ts.map +1 -0
- package/dist/functions/ai-agents.d.ts +125 -0
- package/dist/functions/ai-agents.d.ts.map +1 -0
- package/dist/functions/api-keys.d.ts +140 -0
- package/dist/functions/api-keys.d.ts.map +1 -0
- package/dist/functions/apps.d.ts +163 -0
- package/dist/functions/apps.d.ts.map +1 -0
- package/dist/functions/auth.d.ts +74 -0
- package/dist/functions/auth.d.ts.map +1 -0
- package/dist/functions/debug-auth.d.ts +33 -0
- package/dist/functions/debug-auth.d.ts.map +1 -0
- package/dist/functions/embeddings.d.ts +205 -0
- package/dist/functions/embeddings.d.ts.map +1 -0
- package/dist/functions/integration-routes.d.ts +45 -0
- package/dist/functions/integration-routes.d.ts.map +1 -0
- package/dist/functions/integrations.d.ts +124 -0
- package/dist/functions/integrations.d.ts.map +1 -0
- package/dist/functions/item-progress.d.ts +41 -0
- package/dist/functions/item-progress.d.ts.map +1 -0
- package/dist/functions/logs.d.ts +162 -0
- package/dist/functions/logs.d.ts.map +1 -0
- package/dist/functions/observability.d.ts +123 -0
- package/dist/functions/observability.d.ts.map +1 -0
- package/dist/functions/pipeline-executions.d.ts +190 -0
- package/dist/functions/pipeline-executions.d.ts.map +1 -0
- package/dist/functions/pipelines.d.ts +171 -0
- package/dist/functions/pipelines.d.ts.map +1 -0
- package/dist/functions/prompt-configs.d.ts +125 -0
- package/dist/functions/prompt-configs.d.ts.map +1 -0
- package/dist/functions/roles.d.ts +118 -0
- package/dist/functions/roles.d.ts.map +1 -0
- package/dist/functions/system-cron.d.ts +65 -0
- package/dist/functions/system-cron.d.ts.map +1 -0
- package/dist/functions/system.d.ts +29 -0
- package/dist/functions/system.d.ts.map +1 -0
- package/dist/functions/tests.d.ts +28 -0
- package/dist/functions/tests.d.ts.map +1 -0
- package/dist/functions/timers.d.ts +139 -0
- package/dist/functions/timers.d.ts.map +1 -0
- package/dist/functions/triggers.d.ts +203 -0
- package/dist/functions/triggers.d.ts.map +1 -0
- package/dist/functions/types.d.ts +151 -0
- package/dist/functions/types.d.ts.map +1 -0
- package/dist/src/types/types.d.ts +364 -0
- package/dist/src/types/types.d.ts.map +1 -0
- package/package.json +192 -0
- package/scripts/app-install-cli.ts +286 -0
- package/scripts/assemble-frontend.sh +79 -0
- package/scripts/assemble-functions.sh +62 -0
- package/scripts/assemble.sh +35 -0
- package/scripts/boundary-check.sh +106 -0
- package/scripts/build-manifest.sh +80 -0
- package/scripts/check-core-integrity.sh +82 -0
- package/scripts/ingest-chunks.cjs +202 -0
- package/scripts/kb-chunk-parser.cjs +312 -0
- package/scripts/kb-chunk-parser.ts +330 -0
- package/scripts/load-test-app-install.ts +484 -0
- package/scripts/netlify-dev-wrapper.sh +22 -0
- package/scripts/verify-integrity.sh +69 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module admin-data
|
|
3
|
+
* @audience both
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Generic CRUD API for all runtime entities. Provides list, get, create,
|
|
8
|
+
* update, delete, and stats operations over a validated set of entity tables.
|
|
9
|
+
*
|
|
10
|
+
* **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/admin-data`
|
|
11
|
+
*
|
|
12
|
+
* **Dispatch table (query params → handler):**
|
|
13
|
+
* | method | ?action | ?id present | Handler |
|
|
14
|
+
* |--------|---------|-------------|---------|
|
|
15
|
+
* | GET | list | any | `list` |
|
|
16
|
+
* | GET | get | any | `get` |
|
|
17
|
+
* | GET | stats | any | `stats` |
|
|
18
|
+
* | GET | — | yes | `get` |
|
|
19
|
+
* | GET | — | no | `list` |
|
|
20
|
+
* | POST | — | — | `create`|
|
|
21
|
+
* | PATCH | — | — | `update`|
|
|
22
|
+
* | DELETE | — | — | `remove`|
|
|
23
|
+
*
|
|
24
|
+
* **Authorization:** All DB reads/writes use `ctx.db` (RLS-scoped client).
|
|
25
|
+
* RLS policies on each table enforce account hierarchy access automatically.
|
|
26
|
+
* `adminDb` is used only for lookups that need bypass (type resolution).
|
|
27
|
+
*
|
|
28
|
+
* **Valid entities:** `accounts`, `people`, `items`, `threads`, `messages`,
|
|
29
|
+
* `links`, `attachments`, `watchers`.
|
|
30
|
+
*
|
|
31
|
+
* INVARIANT: every `create` call requires `type_id` in the body — all runtime
|
|
32
|
+
* records must reference a type.
|
|
33
|
+
* INVARIANT: trigger dispatch (create/update/delete) is fire-and-forget —
|
|
34
|
+
* trigger failures are logged but never surface to the caller.
|
|
35
|
+
* INVARIANT: all returned records are passed through `sanitizeRecordData`
|
|
36
|
+
* before being returned — field-level permission stripping is always applied.
|
|
37
|
+
*
|
|
38
|
+
* @seeAlso middleware.ts (createHandler, CoreContext)
|
|
39
|
+
* @seeAlso permissions.ts (sanitizeRecordData)
|
|
40
|
+
* @seeAlso trigger-engine.ts (fire*Triggers)
|
|
41
|
+
* @seeAlso types.ts (types table, design_schema, validation_schema)
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* @chunk-id ADMIN_DATA_LIST_1_0_0
|
|
45
|
+
* @version 1.0.0
|
|
46
|
+
* @hash 780f1f0c81ea3bff78d40970ba4b03e3211d892bb883e6a099c6e0a55ee53b0c
|
|
47
|
+
* @macro Entity List Handler
|
|
48
|
+
* @micro Lists records with filtering, search, sorting, and pagination
|
|
49
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
50
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
51
|
+
* @outputs Array of sanitized records or {data, schema, view} with view config
|
|
52
|
+
* @depends-on [createHandler, sanitizeRecordData, adminDb, getSearchField]
|
|
53
|
+
* @depended-by [Netlify function routing]
|
|
54
|
+
* @side-effects [DB queries, permission sanitization]
|
|
55
|
+
* @tags admin, crud, list, pagination, search
|
|
56
|
+
*/
|
|
57
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
58
|
+
/**
|
|
59
|
+
* @chunk-id ADMIN_DATA_GET_1_0_0
|
|
60
|
+
* @version 1.0.0
|
|
61
|
+
* @hash 7ee27702615d7ebd144e065d399635ddf7664845685345d8a8f316449f11a7cf
|
|
62
|
+
* @macro Entity Get Handler
|
|
63
|
+
* @micro Returns a single record by ID with optional view configuration
|
|
64
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
65
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
66
|
+
* @outputs Sanitized record or {data, schema, view} with view config
|
|
67
|
+
* @depends-on [createHandler, sanitizeRecordData]
|
|
68
|
+
* @depended-by [Netlify function routing]
|
|
69
|
+
* @side-effects [DB single row query, permission sanitization]
|
|
70
|
+
* @tags admin, crud, get, single-record
|
|
71
|
+
*/
|
|
72
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
73
|
+
/**
|
|
74
|
+
* Creates a new record for an entity. Stamps `design_schema`,
|
|
75
|
+
* `validation_schema`, audit fields, and `account_id` from the resolved type.
|
|
76
|
+
* Fires `*_created` triggers asynchronously after DB insert.
|
|
77
|
+
*
|
|
78
|
+
* Body params:
|
|
79
|
+
* - `entity` (required) — one of VALID_ENTITIES
|
|
80
|
+
* - `type_id` (required) — UUID of an active type record
|
|
81
|
+
* - all other fields are passed through to the insert
|
|
82
|
+
*
|
|
83
|
+
* @returns Sanitized created record
|
|
84
|
+
* @throws Error('Valid entity parameter is required')
|
|
85
|
+
* @throws Error('type_id is required')
|
|
86
|
+
* @throws Error('type_id not found') — if type UUID doesn't exist
|
|
87
|
+
* @throws Error('type_id references an inactive type')
|
|
88
|
+
* @throws PostgREST error on RLS INSERT denial
|
|
89
|
+
* @inputSpec type_id: string — valid UUID of active type record
|
|
90
|
+
* @inputSpec body fields: Record<string, any> — record field values
|
|
91
|
+
* @outputSpec sanitized created record
|
|
92
|
+
* @sideEffects DB write: entity table (INSERT)
|
|
93
|
+
* @sideEffects DB read: types table (type resolution)
|
|
94
|
+
* @sideEffects fire-and-forget: fireCreateTriggers
|
|
95
|
+
* @calledBy handler (POST)
|
|
96
|
+
* @calls sanitizeRecordData, adminDb (type lookup), fireCreateTriggers
|
|
97
|
+
* @testUnit tests/unit/admin-data.test.ts — 'create'
|
|
98
|
+
* @testIntegration tests/integration/admin-data.test.ts — 'create'
|
|
99
|
+
*/
|
|
100
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
101
|
+
/**
|
|
102
|
+
* Updates an existing record by ID. Stamps `updated_by` and `updated_at`.
|
|
103
|
+
* Fires `*_updated` triggers asynchronously after DB update.
|
|
104
|
+
*
|
|
105
|
+
* Query params: `entity` (required), `id` (required)
|
|
106
|
+
* Body: partial record fields to update (no schema re-stamping on update)
|
|
107
|
+
*
|
|
108
|
+
* @returns Sanitized updated record
|
|
109
|
+
* @throws Error('Valid entity parameter is required')
|
|
110
|
+
* @throws Error('ID is required for update')
|
|
111
|
+
* @throws PostgREST error on RLS UPDATE denial
|
|
112
|
+
* @inputSpec id: string — valid UUID of existing record
|
|
113
|
+
* @inputSpec body: Partial<Record> — fields to patch
|
|
114
|
+
* @outputSpec sanitized updated record
|
|
115
|
+
* @sideEffects DB write: entity table (UPDATE)
|
|
116
|
+
* @sideEffects fire-and-forget: fireUpdateTriggers
|
|
117
|
+
* @calledBy handler (PATCH)
|
|
118
|
+
* @calls sanitizeRecordData, fireUpdateTriggers
|
|
119
|
+
* @testUnit tests/unit/admin-data.test.ts — 'update'
|
|
120
|
+
*/
|
|
121
|
+
export declare const update: (event: any, context: any) => Promise<any>;
|
|
122
|
+
/**
|
|
123
|
+
* Deletes a record by ID. Defaults to soft delete (`is_active = false`) for
|
|
124
|
+
* entities that support it; falls back to hard delete otherwise.
|
|
125
|
+
*
|
|
126
|
+
* Query params:
|
|
127
|
+
* - `entity` (required) — one of VALID_ENTITIES
|
|
128
|
+
* - `id` (required) — UUID of the record
|
|
129
|
+
* - `soft` (default: 'true') — set to 'false' to force hard delete
|
|
130
|
+
*
|
|
131
|
+
* Soft-delete-capable entities: `accounts`, `people`, `items`, `threads`,
|
|
132
|
+
* `messages`, `watchers`. All others always receive a hard delete.
|
|
133
|
+
*
|
|
134
|
+
* @returns `{ deleted: true, soft: true, data }` (soft) or `{ deleted: true, soft: false }` (hard)
|
|
135
|
+
* @throws Error('Valid entity parameter is required')
|
|
136
|
+
* @throws Error('ID is required for delete')
|
|
137
|
+
* @throws PostgREST error on RLS DELETE denial
|
|
138
|
+
* @inputSpec id: string — valid UUID
|
|
139
|
+
* @inputSpec soft: 'true' | 'false'
|
|
140
|
+
* @outputSpec { deleted: boolean, soft: boolean, data?: sanitizedRecord }
|
|
141
|
+
* @sideEffects DB write: UPDATE is_active=false (soft) or DELETE (hard)
|
|
142
|
+
* @sideEffects fire-and-forget: fireDeleteTriggers
|
|
143
|
+
* @calledBy handler (DELETE)
|
|
144
|
+
* @calls sanitizeRecordData, entitySupportsSoftDelete, fireDeleteTriggers
|
|
145
|
+
* @testUnit tests/unit/admin-data.test.ts — 'remove'
|
|
146
|
+
*/
|
|
147
|
+
export declare const remove: (event: any, context: any) => Promise<any>;
|
|
148
|
+
/**
|
|
149
|
+
* @chunk-id ADMIN_DATA_STATS_1_0_0
|
|
150
|
+
* @version 1.0.0
|
|
151
|
+
* @hash 0bed523a260ab3959cb4e7150cca044f4e97ce91d7ae3386ab14b5f4182d74d7
|
|
152
|
+
* @macro Entity Stats Handler
|
|
153
|
+
* @micro Returns total record count for an entity scoped by account
|
|
154
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
155
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
156
|
+
* @outputs {entity: string, count: number} — Entity name and record count
|
|
157
|
+
* @depends-on [createHandler]
|
|
158
|
+
* @depended-by [Netlify function routing]
|
|
159
|
+
* @side-effects [DB count query with RLS filtering]
|
|
160
|
+
* @tags admin, stats, count, entity
|
|
161
|
+
*/
|
|
162
|
+
export declare const stats: (event: any, context: any) => Promise<any>;
|
|
163
|
+
/**
|
|
164
|
+
* @chunk-id ADMIN_DATA_HANDLER_1_0_0
|
|
165
|
+
* @version 1.0.0
|
|
166
|
+
* @hash edceffa0d5c8b3c05b1a89188a274a586b6ebe8793ede427e2326876d7090df9
|
|
167
|
+
* @macro Admin Data Router
|
|
168
|
+
* @micro Routes HTTP methods and actions to appropriate CRUD handlers
|
|
169
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
170
|
+
* @inputs body: any — Request body for POST/PATCH operations
|
|
171
|
+
* @outputs Varies — Depends on routed handler (list/get/create/update/remove/stats)
|
|
172
|
+
* @depends-on [createHandler, list, get, create, update, remove, stats]
|
|
173
|
+
* @depended-by [Netlify function routing]
|
|
174
|
+
* @side-effects [Delegates to appropriate handler]
|
|
175
|
+
* @tags admin, router, crud, netlify-function
|
|
176
|
+
*/
|
|
177
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
178
|
+
//# sourceMappingURL=admin-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-data.d.ts","sourceRoot":"","sources":["../../.framework/functions/admin-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAuBH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CA2Ff,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAiCd,CAAA;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM,4CAyFjB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM,4CAkCjB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,MAAM,4CAsCjB,CAAA;AA6DF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,4CAchB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAmClB,CAAA"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ai-agents
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* CRUD API for the `ai_agents` table. AI agent records define the configuration
|
|
8
|
+
* for agentic inference workloads: model settings, system prompts, available
|
|
9
|
+
* tools, capabilities, and constraints. The runtime execution is handled by
|
|
10
|
+
* `_shared/agent-runner.ts`.
|
|
11
|
+
*
|
|
12
|
+
* **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/ai-agents`
|
|
13
|
+
*
|
|
14
|
+
* **Actions (standard CRUD only):**
|
|
15
|
+
* | method | condition | handler |
|
|
16
|
+
* |--------|-----------|---------|
|
|
17
|
+
* | GET | ?id | get |
|
|
18
|
+
* | GET | (default) | list |
|
|
19
|
+
* | POST | — | create |
|
|
20
|
+
* | PATCH | — | update |
|
|
21
|
+
* | DELETE | — | remove |
|
|
22
|
+
*
|
|
23
|
+
* **Authorization:** All operations use `ctx.db` (RLS-scoped). Authenticated
|
|
24
|
+
* principal required for writes.
|
|
25
|
+
*
|
|
26
|
+
* INVARIANT: `remove` is a hard delete.
|
|
27
|
+
* INVARIANT: `update` only patches allowed fields: name, description,
|
|
28
|
+
* model_config, system_prompt, tools, capabilities, constraints, metadata,
|
|
29
|
+
* is_active.
|
|
30
|
+
*
|
|
31
|
+
* @seeAlso agent-runner.ts (runAgent — runtime execution using these configs)
|
|
32
|
+
* @seeAlso prompt-configs.ts (prompt_configs referenced by agent configs)
|
|
33
|
+
* @seeAlso audit.ts (emitLog for ai_agent.* events)
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* @chunk-id AI_AGENTS_LIST_1_0_0
|
|
37
|
+
* @version 1.0.0
|
|
38
|
+
* @hash 237972d65e86f5d432f55b602ac5e6f2dcfaefa83c662c10b7d3437ac906ff0d
|
|
39
|
+
* @macro AI Agents List Handler
|
|
40
|
+
* @micro Lists AI agents with filtering and pagination
|
|
41
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
42
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
43
|
+
* @outputs Array of sanitized AI agent records
|
|
44
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
45
|
+
* @depended-by [Netlify function routing]
|
|
46
|
+
* @side-effects [DB queries, permission sanitization]
|
|
47
|
+
* @tags ai-agents, list, crud, pagination
|
|
48
|
+
*/
|
|
49
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
50
|
+
/**
|
|
51
|
+
* @chunk-id AI_AGENTS_GET_1_0_0
|
|
52
|
+
* @version 1.0.0
|
|
53
|
+
* @hash 62f283668d9a90ff81e2cbf8c437298206b355d2dd96fb559b2848fc4ffbc5cd
|
|
54
|
+
* @macro AI Agent Get Handler
|
|
55
|
+
* @micro Returns a single AI agent by UUID with joins
|
|
56
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
57
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
58
|
+
* @outputs Sanitized AI agent record with app and createdBy joins
|
|
59
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
60
|
+
* @depended-by [Netlify function routing]
|
|
61
|
+
* @side-effects [DB single row query, permission sanitization]
|
|
62
|
+
* @tags ai-agents, get, crud, single-record
|
|
63
|
+
*/
|
|
64
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
65
|
+
/**
|
|
66
|
+
* @chunk-id AI_AGENTS_CREATE_1_0_0
|
|
67
|
+
* @version 1.0.0
|
|
68
|
+
* @hash 355c8ceb1f33e033616480827141a2f33cde8e18fa4e9f9d94f4866af6fe66f6
|
|
69
|
+
* @macro AI Agent Create Handler
|
|
70
|
+
* @micro Creates new AI agent configuration with validation and audit logging
|
|
71
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
72
|
+
* @inputs body: object — Agent configuration data
|
|
73
|
+
* @outputs Inserted AI agent record
|
|
74
|
+
* @depends-on [createHandler, emitLog]
|
|
75
|
+
* @depended-by [Netlify function routing]
|
|
76
|
+
* @side-effects [DB insert, audit logging]
|
|
77
|
+
* @tags ai-agents, create, crud, audit
|
|
78
|
+
*/
|
|
79
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
80
|
+
/**
|
|
81
|
+
* @chunk-id AI_AGENTS_UPDATE_1_0_0
|
|
82
|
+
* @version 1.0.0
|
|
83
|
+
* @hash 07e173626958a0ef032cc4c80719c49df5990756e08ecdb70a4168ab73544f10
|
|
84
|
+
* @macro AI Agent Update Handler
|
|
85
|
+
* @micro Updates AI agent with field validation and audit logging
|
|
86
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
87
|
+
* @inputs body: object — Agent updates including id
|
|
88
|
+
* @outputs Updated AI agent record
|
|
89
|
+
* @depends-on [createHandler, emitLog]
|
|
90
|
+
* @depended-by [Netlify function routing]
|
|
91
|
+
* @side-effects [DB update, audit logging]
|
|
92
|
+
* @tags ai-agents, update, crud, audit
|
|
93
|
+
*/
|
|
94
|
+
export declare const update: (event: any, context: any) => Promise<any>;
|
|
95
|
+
/**
|
|
96
|
+
* @chunk-id AI_AGENTS_REMOVE_1_0_0
|
|
97
|
+
* @version 1.0.0
|
|
98
|
+
* @hash 7d990350b55b85945cc2148908618d6cd1dad27d1fc8343eab6966bedd9d84fa
|
|
99
|
+
* @macro AI Agent Remove Handler
|
|
100
|
+
* @micro Hard-deletes AI agent with validation and audit logging
|
|
101
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
102
|
+
* @inputs _body: any — Request body (unused for DELETE)
|
|
103
|
+
* @outputs {success: true} — Success confirmation
|
|
104
|
+
* @depends-on [createHandler, emitLog]
|
|
105
|
+
* @depended-by [Netlify function routing]
|
|
106
|
+
* @side-effects [DB delete, audit logging]
|
|
107
|
+
* @tags ai-agents, remove, crud, audit
|
|
108
|
+
*/
|
|
109
|
+
export declare const remove: (event: any, context: any) => Promise<any>;
|
|
110
|
+
/**
|
|
111
|
+
* @chunk-id AI_AGENTS_HANDLER_1_0_0
|
|
112
|
+
* @version 1.0.0
|
|
113
|
+
* @hash a49f4917dd07295e0ba9815bf929cccc5cffcbe4dcf6852aa4bd84d6cba1b690
|
|
114
|
+
* @macro AI Agents Router
|
|
115
|
+
* @micro Routes HTTP methods to appropriate CRUD handlers
|
|
116
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
117
|
+
* @inputs body: any — Request body for POST/PATCH operations
|
|
118
|
+
* @outputs Varies — Depends on routed handler (list/get/create/update/remove)
|
|
119
|
+
* @depends-on [createHandler, list, get, create, update, remove]
|
|
120
|
+
* @depended-by [Netlify function routing]
|
|
121
|
+
* @side-effects [Delegates to appropriate handler]
|
|
122
|
+
* @tags ai-agents, router, crud, netlify-function
|
|
123
|
+
*/
|
|
124
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
125
|
+
//# sourceMappingURL=ai-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-agents.d.ts","sourceRoot":"","sources":["../../.framework/functions/ai-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAYH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CAiCf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAgBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAsCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAiCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA4BjB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAsBlB,CAAA"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module api-keys
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Management and validation API for the `api_keys` table. API keys are
|
|
8
|
+
* issued per-integration and optionally scoped to specific permissions.
|
|
9
|
+
* Key material is generated and stored by the `create_api_key` Postgres
|
|
10
|
+
* RPC, which handles hashing internally. Validation also delegates to the
|
|
11
|
+
* `validate_api_key` RPC.
|
|
12
|
+
*
|
|
13
|
+
* **Routed by:** `GET/POST /.netlify/functions/api-keys`
|
|
14
|
+
*
|
|
15
|
+
* **Actions:**
|
|
16
|
+
* | method | ?action | handler |
|
|
17
|
+
* |--------|------------|---------------|
|
|
18
|
+
* | POST | validate | validate |
|
|
19
|
+
* | POST | revoke | revoke |
|
|
20
|
+
* | GET | usage-logs | listUsageLogs |
|
|
21
|
+
* | GET | ?id | get |
|
|
22
|
+
* | GET | (default) | list |
|
|
23
|
+
* | POST | — | create |
|
|
24
|
+
*
|
|
25
|
+
* **Authorization:** All operations use `ctx.db` (RLS-scoped). Account context
|
|
26
|
+
* required for creates. No PATCH/DELETE — use `revoke` for deactivation.
|
|
27
|
+
*
|
|
28
|
+
* INVARIANT: Raw key material is never stored. Only the hash is persisted.
|
|
29
|
+
* `create` returns the plaintext key once via RPC response.
|
|
30
|
+
* INVARIANT: `revoke` soft-deactivates by setting `is_active = false`.
|
|
31
|
+
*
|
|
32
|
+
* @seeAlso integrations.ts (integration_id FK on api_keys)
|
|
33
|
+
* @seeAlso audit.ts (emitLog for api_key.* events)
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* @chunk-id API_KEYS_LIST_1_0_0
|
|
37
|
+
* @version 1.0.0
|
|
38
|
+
* @hash f825d8f4bbabe21071b61fe41e5e4e1b87482d501bf4078fab70906b7a5f5e78
|
|
39
|
+
* @macro API Keys List Handler
|
|
40
|
+
* @micro Lists API keys with filtering, pagination, and joins
|
|
41
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
42
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
43
|
+
* @outputs Array of sanitized API key records with integration joins
|
|
44
|
+
* @depends-on [createHandler, sanitizeRecordData]
|
|
45
|
+
* @depended-by [Netlify function routing]
|
|
46
|
+
* @side-effects [DB queries, permission sanitization]
|
|
47
|
+
* @tags api-keys, list, crud, pagination
|
|
48
|
+
*/
|
|
49
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
50
|
+
/**
|
|
51
|
+
* @chunk-id API_KEYS_GET_1_0_0
|
|
52
|
+
* @version 1.0.0
|
|
53
|
+
* @hash 357f926aeb833ad0ca755e48350534771f491890645134a1b43d2f2a8e4be037
|
|
54
|
+
* @macro API Key Get Handler
|
|
55
|
+
* @micro Returns a single API key record with joins (no raw key material)
|
|
56
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
57
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
58
|
+
* @outputs Sanitized API key record with integration and createdBy joins
|
|
59
|
+
* @depends-on [createHandler, sanitizeRecordData]
|
|
60
|
+
* @depended-by [Netlify function routing]
|
|
61
|
+
* @side-effects [DB single row query, permission sanitization]
|
|
62
|
+
* @tags api-keys, get, crud, single-record
|
|
63
|
+
*/
|
|
64
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
65
|
+
/**
|
|
66
|
+
* @chunk-id API_KEYS_CREATE_1_0_0
|
|
67
|
+
* @version 1.0.0
|
|
68
|
+
* @hash 8d00c97111cddebc2b3821a1fee3e6cf4c6b7c55fc20cd19d70865d728c3387c
|
|
69
|
+
* @macro API Key Create Handler
|
|
70
|
+
* @micro Creates new API key via RPC with validation and audit logging
|
|
71
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
72
|
+
* @inputs body: object — API key configuration data
|
|
73
|
+
* @outputs RPC result containing api_key_id and plaintext key_value
|
|
74
|
+
* @depends-on [createHandler, emitLog]
|
|
75
|
+
* @depended-by [Netlify function routing]
|
|
76
|
+
* @side-effects [RPC call, audit logging]
|
|
77
|
+
* @tags api-keys, create, crud, rpc, audit
|
|
78
|
+
*/
|
|
79
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
80
|
+
/**
|
|
81
|
+
* @chunk-id API_KEYS_VALIDATE_1_0_0
|
|
82
|
+
* @version 1.0.0
|
|
83
|
+
* @hash 05791f9b2c23bfebed01dffaa1430e896b89d311c5a51409704d731200eb621a
|
|
84
|
+
* @macro API Key Validation Handler
|
|
85
|
+
* @micro Validates API key and checks permissions via RPC
|
|
86
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
87
|
+
* @inputs body: object — key_value and optional required_permissions
|
|
88
|
+
* @outputs RPC validation result with is_valid, account_id, permissions
|
|
89
|
+
* @depends-on [createHandler]
|
|
90
|
+
* @depended-by [Netlify function routing, middleware]
|
|
91
|
+
* @side-effects [RPC validation call]
|
|
92
|
+
* @tags api-keys, validate, rpc, authentication
|
|
93
|
+
*/
|
|
94
|
+
export declare const validate: (event: any, context: any) => Promise<any>;
|
|
95
|
+
/**
|
|
96
|
+
* @chunk-id API_KEYS_REVOKE_1_0_0
|
|
97
|
+
* @version 1.0.0
|
|
98
|
+
* @hash 3302286a12c1315616470fcfbd3cbdc8dcf63dd00211a71159f3325bab95607a
|
|
99
|
+
* @macro API Key Revoke Handler
|
|
100
|
+
* @micro Soft-deactivates API key with validation and audit logging
|
|
101
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
102
|
+
* @inputs body: object — API key ID to revoke
|
|
103
|
+
* @outputs Updated API key record with is_active: false
|
|
104
|
+
* @depends-on [createHandler, emitLog]
|
|
105
|
+
* @depended-by [Netlify function routing]
|
|
106
|
+
* @side-effects [DB update, audit logging]
|
|
107
|
+
* @tags api-keys, revoke, crud, audit
|
|
108
|
+
*/
|
|
109
|
+
export declare const revoke: (event: any, context: any) => Promise<any>;
|
|
110
|
+
/**
|
|
111
|
+
* @chunk-id API_KEYS_LIST_USAGE_LOGS_1_0_0
|
|
112
|
+
* @version 1.0.0
|
|
113
|
+
* @hash f21e004490dd983c8f20dc1d1f4db33e158334d19e38a4ace5e99389a8a96ded
|
|
114
|
+
* @macro API Key Usage Logs Handler
|
|
115
|
+
* @micro Lists paginated API key usage logs with filtering and joins
|
|
116
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
117
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
118
|
+
* @outputs Array of usage log records with api_key joins
|
|
119
|
+
* @depends-on [createHandler]
|
|
120
|
+
* @depended-by [Netlify function routing]
|
|
121
|
+
* @side-effects [DB queries with filtering]
|
|
122
|
+
* @tags api-keys, usage-logs, pagination, monitoring
|
|
123
|
+
*/
|
|
124
|
+
export declare const listUsageLogs: (event: any, context: any) => Promise<any>;
|
|
125
|
+
/**
|
|
126
|
+
* @chunk-id API_KEYS_HANDLER_1_0_0
|
|
127
|
+
* @version 1.0.0
|
|
128
|
+
* @hash 6c2da419bea6f12b0fe654e2aad6c5ebac3d5993c2547a47d239f44197d90a68
|
|
129
|
+
* @macro API Keys Router
|
|
130
|
+
* @micro Routes HTTP methods and actions to appropriate handlers
|
|
131
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
132
|
+
* @inputs body: any — Request body for POST operations
|
|
133
|
+
* @outputs Varies — Depends on routed handler (list/get/create/validate/revoke/usage-logs)
|
|
134
|
+
* @depends-on [createHandler, list, get, create, validate, revoke, listUsageLogs]
|
|
135
|
+
* @depended-by [Netlify function routing]
|
|
136
|
+
* @side-effects [Delegates to appropriate handler]
|
|
137
|
+
* @tags api-keys, router, crud, netlify-function
|
|
138
|
+
*/
|
|
139
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
140
|
+
//# sourceMappingURL=api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../.framework/functions/api-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CA6Cf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAoBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAiCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,4CAgBnB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAsBjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,4CAuCxB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAiClB,CAAA"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module apps
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* CRUD API for the `apps` table. Apps are the installable units of functionality
|
|
8
|
+
* in Spine v2. They group types, roles, integrations, and nav configuration.
|
|
9
|
+
*
|
|
10
|
+
* **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/apps`
|
|
11
|
+
*
|
|
12
|
+
* **Authorization model:**
|
|
13
|
+
* - `list` / `get` / `getSchema` / `checkAvailability`: any authenticated principal
|
|
14
|
+
* (RLS-scoped via `ctx.db`). Returns sanitized records.
|
|
15
|
+
* - `create`: requires `isSystemAdmin` or first-surface `canCreate` permission.
|
|
16
|
+
* - `update` / `remove`: requires authenticated principal + field-level permission
|
|
17
|
+
* check via `validateUpdatePermissions`.
|
|
18
|
+
* - `updateVersion`: authenticated principal via RPC.
|
|
19
|
+
*
|
|
20
|
+
* INVARIANT: app slugs are globally unique across the `apps` table.
|
|
21
|
+
* INVARIANT: `is_system` apps can only be manipulated by system admins.
|
|
22
|
+
*
|
|
23
|
+
* @seeAlso middleware.ts (createHandler)
|
|
24
|
+
* @seeAlso permissions.ts (PermissionEngine, sanitizeRecordData)
|
|
25
|
+
* @seeAlso audit.ts (emitLog for app.created / app.updated / app.deleted)
|
|
26
|
+
* @seeAlso types.ts (types reference apps via app_id)
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* @chunk-id APPS_LIST_1_0_0
|
|
30
|
+
* @version 1.0.0
|
|
31
|
+
* @hash 8eaac3c01786fadeb3c4acb34c9725378f2055766213493859835cadf2bb3963
|
|
32
|
+
* @macro Apps List Handler
|
|
33
|
+
* @micro Lists accessible apps via RPC with filtering and sanitization
|
|
34
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
35
|
+
* @inputs body: any — Request body (unused for GET)
|
|
36
|
+
* @outputs Array of sanitized app records
|
|
37
|
+
* @depends-on [createHandler, sanitizeRecordData]
|
|
38
|
+
* @depended-by [Netlify function routing]
|
|
39
|
+
* @side-effects [RPC call, permission sanitization]
|
|
40
|
+
* @tags apps, list, crud, rpc
|
|
41
|
+
*/
|
|
42
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* @chunk-id APPS_GET_1_0_0
|
|
45
|
+
* @version 1.0.0
|
|
46
|
+
* @hash 5449bb3ac8726775412df541e1f2abf2400fb18751e3c9aad5f0aafb09cc7f60
|
|
47
|
+
* @macro App Get Handler
|
|
48
|
+
* @micro Returns single app by ID or slug with owner account join
|
|
49
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
50
|
+
* @inputs body: any — Request body (unused for GET)
|
|
51
|
+
* @outputs Sanitized app record with ownerAccount join
|
|
52
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
53
|
+
* @depended-by [Netlify function routing]
|
|
54
|
+
* @side-effects [DB single row query, permission sanitization]
|
|
55
|
+
* @tags apps, get, crud, single-record
|
|
56
|
+
*/
|
|
57
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
58
|
+
/**
|
|
59
|
+
* @chunk-id APPS_GET_SCHEMA_1_0_0
|
|
60
|
+
* @version 1.0.0
|
|
61
|
+
* @hash 8b6b7bb419114cbb699ad841dc4ba760ff36a626e8a9513de24715229e5a064b
|
|
62
|
+
* @macro App Schema Handler
|
|
63
|
+
* @micro Returns full app schema via RPC with types, roles, views, integrations
|
|
64
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
65
|
+
* @inputs body: any — Request body (unused for GET)
|
|
66
|
+
* @outputs App schema object with complete configuration
|
|
67
|
+
* @depends-on [createHandler]
|
|
68
|
+
* @depended-by [Netlify function routing]
|
|
69
|
+
* @side-effects [RPC call for schema retrieval]
|
|
70
|
+
* @tags apps, schema, rpc, configuration
|
|
71
|
+
*/
|
|
72
|
+
export declare const getSchema: (event: any, context: any) => Promise<any>;
|
|
73
|
+
/**
|
|
74
|
+
* @chunk-id APPS_CREATE_1_0_0
|
|
75
|
+
* @version 1.0.0
|
|
76
|
+
* @hash f440efbf4a020b2d0d21ed7d90c5995538dd76d631f1b16fc53c1f2e9a1e4f91
|
|
77
|
+
* @macro App Create Handler
|
|
78
|
+
* @micro Creates new app with permission validation and audit logging
|
|
79
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
80
|
+
* @inputs body: object — App configuration data including slug and name
|
|
81
|
+
* @outputs Inserted app record
|
|
82
|
+
* @depends-on [createHandler, permissions, emitLog]
|
|
83
|
+
* @depended-by [Netlify function routing]
|
|
84
|
+
* @side-effects [DB insert, permission checks, audit logging]
|
|
85
|
+
* @tags apps, create, crud, permissions, audit
|
|
86
|
+
*/
|
|
87
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
88
|
+
/**
|
|
89
|
+
* @chunk-id APPS_UPDATE_1_0_0
|
|
90
|
+
* @version 1.0.0
|
|
91
|
+
* @hash 77029f18737fee801ff5ebdde199d6b52454fd9fe3842694b072181fc713b937
|
|
92
|
+
* @macro App Update Handler
|
|
93
|
+
* @micro Updates app with field-level permission validation and audit logging
|
|
94
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
95
|
+
* @inputs body: object — App updates including id
|
|
96
|
+
* @outputs Updated app record
|
|
97
|
+
* @depends-on [createHandler, permissions, emitLog]
|
|
98
|
+
* @depended-by [Netlify function routing]
|
|
99
|
+
* @side-effects [DB update, permission validation, audit logging]
|
|
100
|
+
* @tags apps, update, crud, permissions, audit
|
|
101
|
+
*/
|
|
102
|
+
export declare const update: (event: any, context: any) => Promise<any>;
|
|
103
|
+
/**
|
|
104
|
+
* @chunk-id APPS_REMOVE_1_0_0
|
|
105
|
+
* @version 1.0.0
|
|
106
|
+
* @hash b2c79779820861406f1adabc2279e332727b936abab4c6f5e5762a62d1373169
|
|
107
|
+
* @macro App Remove Handler
|
|
108
|
+
* @micro Soft-deletes app with validation and audit logging
|
|
109
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
110
|
+
* @inputs body: any — Request body with app ID
|
|
111
|
+
* @outputs Updated app record with is_active: false
|
|
112
|
+
* @depends-on [createHandler, emitLog]
|
|
113
|
+
* @depended-by [Netlify function routing]
|
|
114
|
+
* @side-effects [DB soft delete, audit logging]
|
|
115
|
+
* @tags apps, remove, crud, audit
|
|
116
|
+
*/
|
|
117
|
+
export declare const remove: (event: any, context: any) => Promise<any>;
|
|
118
|
+
/**
|
|
119
|
+
* @chunk-id APPS_CHECK_AVAILABILITY_1_0_0
|
|
120
|
+
* @version 1.0.0
|
|
121
|
+
* @hash db7d52bcb1002d923dac039a99e6f6fb0eb9889e9b4a44994bf7bb75477ac9a4
|
|
122
|
+
* @macro App Availability Checker
|
|
123
|
+
* @micro Checks if app is available for account via RPC
|
|
124
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
125
|
+
* @inputs body: any — Request body (unused for GET)
|
|
126
|
+
* @outputs {available: boolean} — Availability status
|
|
127
|
+
* @depends-on [createHandler]
|
|
128
|
+
* @depended-by [Netlify function routing]
|
|
129
|
+
* @side-effects [RPC call for availability check]
|
|
130
|
+
* @tags apps, availability, rpc, check
|
|
131
|
+
*/
|
|
132
|
+
export declare const checkAvailability: (event: any, context: any) => Promise<any>;
|
|
133
|
+
/**
|
|
134
|
+
* @chunk-id APPS_UPDATE_VERSION_1_0_0
|
|
135
|
+
* @version 1.0.0
|
|
136
|
+
* @hash 04a1a3367e4b8ca0f58e0719e73b0ccda378e84b4b874f3f7e07ee0faa423bfd
|
|
137
|
+
* @macro App Version Update Handler
|
|
138
|
+
* @micro Updates app version string via RPC with audit logging
|
|
139
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
140
|
+
* @inputs body: object — App ID and new version string
|
|
141
|
+
* @outputs {success: true} — Success confirmation
|
|
142
|
+
* @depends-on [createHandler, emitLog]
|
|
143
|
+
* @depended-by [Netlify function routing]
|
|
144
|
+
* @side-effects [RPC call, audit logging]
|
|
145
|
+
* @tags apps, version, update, rpc, audit
|
|
146
|
+
*/
|
|
147
|
+
export declare const updateVersion: (event: any, context: any) => Promise<any>;
|
|
148
|
+
/**
|
|
149
|
+
* @chunk-id APPS_HANDLER_1_0_0
|
|
150
|
+
* @version 1.0.0
|
|
151
|
+
* @hash 361e1ba86b38a4611f3170526e4ff7f456d58b929c1d39bf847135afdebf3867
|
|
152
|
+
* @macro Apps Router
|
|
153
|
+
* @micro Routes HTTP methods and actions to appropriate handlers
|
|
154
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
155
|
+
* @inputs body: any — Request body for POST/PATCH operations
|
|
156
|
+
* @outputs Varies — Depends on routed handler (list/get/create/update/remove/schema/available/version)
|
|
157
|
+
* @depends-on [createHandler, list, get, getSchema, checkAvailability, create, update, remove, updateVersion]
|
|
158
|
+
* @depended-by [Netlify function routing]
|
|
159
|
+
* @side-effects [Delegates to appropriate handler]
|
|
160
|
+
* @tags apps, router, crud, netlify-function
|
|
161
|
+
*/
|
|
162
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
163
|
+
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../.framework/functions/apps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CA0Bf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAwBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,4CAapB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAkEjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAkDjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAqCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,4CAoB5B,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,4CAkBxB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CA6BlB,CAAA"}
|