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,272 @@
|
|
|
1
|
+
# Admin Data APIs
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Admin Data APIs manage runtime records for accounts, people, and items. These endpoints support full CRUD operations with proper authentication and account scoping.
|
|
6
|
+
|
|
7
|
+
## Accounts API
|
|
8
|
+
|
|
9
|
+
**Endpoint:** `/.netlify/functions/accounts`
|
|
10
|
+
|
|
11
|
+
**Domain:** admin-data (runtime account records)
|
|
12
|
+
|
|
13
|
+
**Operations:**
|
|
14
|
+
- `GET /functions/accounts` - List all active accounts
|
|
15
|
+
- `GET /functions/accounts?id=uuid` - Get single account
|
|
16
|
+
- `POST /functions/accounts` - Create new account
|
|
17
|
+
- `PATCH /functions/accounts?id=uuid` - Update account
|
|
18
|
+
- `DELETE /functions/accounts?id=uuid` - Soft delete account
|
|
19
|
+
|
|
20
|
+
**Authentication:**
|
|
21
|
+
- Reads: Account-scoped with field-level permission filtering
|
|
22
|
+
- Mutations: Auth required with schema-driven permissions
|
|
23
|
+
|
|
24
|
+
**Authorization:**
|
|
25
|
+
- First Surface Operations: User permissions evaluated against type.schema
|
|
26
|
+
- Role-based access from v2.people_accounts + v2.people_roles
|
|
27
|
+
- Field-level permissions respected on reads and writes
|
|
28
|
+
- System admin bypasses all restrictions
|
|
29
|
+
|
|
30
|
+
**Examples:**
|
|
31
|
+
- Customer can only see their own items (read: "own")
|
|
32
|
+
- Master support can see all client items (read: "all")
|
|
33
|
+
- Field overrides control specific field access
|
|
34
|
+
|
|
35
|
+
**Request/Response:**
|
|
36
|
+
|
|
37
|
+
### List Accounts
|
|
38
|
+
```typescript
|
|
39
|
+
// Request
|
|
40
|
+
GET /functions/accounts?page=1&itemsPerPage=20&search=keyword&type_id=uuid
|
|
41
|
+
|
|
42
|
+
// Response
|
|
43
|
+
{
|
|
44
|
+
data: [
|
|
45
|
+
{
|
|
46
|
+
id: string,
|
|
47
|
+
type_id: string,
|
|
48
|
+
slug: string,
|
|
49
|
+
display_name: string,
|
|
50
|
+
description?: string,
|
|
51
|
+
metadata?: object,
|
|
52
|
+
parent_id?: string,
|
|
53
|
+
is_active: true,
|
|
54
|
+
created_at: string,
|
|
55
|
+
updated_at: string,
|
|
56
|
+
created_by: string,
|
|
57
|
+
account_id: string,
|
|
58
|
+
type: {
|
|
59
|
+
id: string,
|
|
60
|
+
slug: string,
|
|
61
|
+
name: string,
|
|
62
|
+
icon?: string,
|
|
63
|
+
color?: string
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Create Account
|
|
71
|
+
```typescript
|
|
72
|
+
// Request
|
|
73
|
+
POST /functions/accounts
|
|
74
|
+
{
|
|
75
|
+
type_id: string, // required
|
|
76
|
+
slug: string, // required
|
|
77
|
+
display_name: string, // required
|
|
78
|
+
description?: string,
|
|
79
|
+
metadata?: object,
|
|
80
|
+
parent_id?: string
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Response
|
|
84
|
+
{
|
|
85
|
+
data: { /* created account */ }
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## People API
|
|
90
|
+
|
|
91
|
+
**Endpoint:** `/.netlify/functions/people`
|
|
92
|
+
|
|
93
|
+
**Domain:** admin-data (runtime person records)
|
|
94
|
+
|
|
95
|
+
**Operations:**
|
|
96
|
+
- `GET /functions/people` - List all active people
|
|
97
|
+
- `GET /functions/people?id=uuid` - Get single person
|
|
98
|
+
- `POST /functions/people` - Create new person
|
|
99
|
+
- `PATCH /functions/people?id=uuid` - Update person
|
|
100
|
+
- `DELETE /functions/people?id=uuid` - Soft delete person
|
|
101
|
+
|
|
102
|
+
**Authentication:**
|
|
103
|
+
- Reads: Public (account-scoped)
|
|
104
|
+
- Mutations: Auth required
|
|
105
|
+
|
|
106
|
+
**Request/Response:**
|
|
107
|
+
|
|
108
|
+
### List People
|
|
109
|
+
```typescript
|
|
110
|
+
// Request
|
|
111
|
+
GET /functions/people?page=1&itemsPerPage=20&search=keyword&type_id=uuid
|
|
112
|
+
|
|
113
|
+
// Response
|
|
114
|
+
{
|
|
115
|
+
data: [
|
|
116
|
+
{
|
|
117
|
+
id: string,
|
|
118
|
+
type_id: string,
|
|
119
|
+
first_name: string,
|
|
120
|
+
last_name: string,
|
|
121
|
+
email?: string,
|
|
122
|
+
phone?: string,
|
|
123
|
+
metadata?: object,
|
|
124
|
+
is_active: true,
|
|
125
|
+
created_at: string,
|
|
126
|
+
updated_at: string,
|
|
127
|
+
created_by: string,
|
|
128
|
+
account_id: string,
|
|
129
|
+
type: {
|
|
130
|
+
id: string,
|
|
131
|
+
slug: string,
|
|
132
|
+
name: string,
|
|
133
|
+
icon?: string,
|
|
134
|
+
color?: string
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Create Person
|
|
142
|
+
```typescript
|
|
143
|
+
// Request
|
|
144
|
+
POST /functions/people
|
|
145
|
+
{
|
|
146
|
+
type_id: string, // required
|
|
147
|
+
first_name: string, // required
|
|
148
|
+
last_name: string, // required
|
|
149
|
+
email?: string,
|
|
150
|
+
phone?: string,
|
|
151
|
+
metadata?: object
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Response
|
|
155
|
+
{
|
|
156
|
+
data: { /* created person */ }
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Items API
|
|
161
|
+
|
|
162
|
+
**Endpoint:** `/.netlify/functions/items`
|
|
163
|
+
|
|
164
|
+
**Domain:** admin-data (runtime item records)
|
|
165
|
+
|
|
166
|
+
**Operations:**
|
|
167
|
+
- `GET /functions/items` - List all active items
|
|
168
|
+
- `GET /functions/items?id=uuid` - Get single item
|
|
169
|
+
- `POST /functions/items` - Create new item
|
|
170
|
+
- `PATCH /functions/items?id=uuid` - Update item
|
|
171
|
+
- `DELETE /functions/items?id=uuid` - Soft delete item
|
|
172
|
+
|
|
173
|
+
**Authentication:**
|
|
174
|
+
- Reads: Public (account-scoped)
|
|
175
|
+
- Mutations: Auth required
|
|
176
|
+
|
|
177
|
+
**Request/Response:**
|
|
178
|
+
|
|
179
|
+
### List Items
|
|
180
|
+
```typescript
|
|
181
|
+
// Request
|
|
182
|
+
GET /functions/items?page=1&itemsPerPage=20&search=keyword&type_id=uuid
|
|
183
|
+
|
|
184
|
+
// Response
|
|
185
|
+
{
|
|
186
|
+
data: [
|
|
187
|
+
{
|
|
188
|
+
id: string,
|
|
189
|
+
type_id: string,
|
|
190
|
+
name: string,
|
|
191
|
+
description?: string,
|
|
192
|
+
metadata?: object,
|
|
193
|
+
is_active: true,
|
|
194
|
+
created_at: string,
|
|
195
|
+
updated_at: string,
|
|
196
|
+
created_by: string,
|
|
197
|
+
account_id: string,
|
|
198
|
+
type: {
|
|
199
|
+
id: string,
|
|
200
|
+
slug: string,
|
|
201
|
+
name: string,
|
|
202
|
+
icon?: string,
|
|
203
|
+
color?: string
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Create Item
|
|
211
|
+
```typescript
|
|
212
|
+
// Request
|
|
213
|
+
POST /functions/items
|
|
214
|
+
{
|
|
215
|
+
type_id: string, // required
|
|
216
|
+
name: string, // required
|
|
217
|
+
description?: string,
|
|
218
|
+
metadata?: object
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Response
|
|
222
|
+
{
|
|
223
|
+
data: { /* created item */ }
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Common Features
|
|
228
|
+
|
|
229
|
+
### Soft Delete
|
|
230
|
+
All DELETE operations use soft delete:
|
|
231
|
+
- Sets `is_active = false`
|
|
232
|
+
- Updates `updated_at` timestamp
|
|
233
|
+
- Preserves audit trail
|
|
234
|
+
- Never hard deletes records
|
|
235
|
+
|
|
236
|
+
### Account Scoping
|
|
237
|
+
- System admin can bypass account scoping
|
|
238
|
+
- Regular users only see records from their account
|
|
239
|
+
- Account context via `X-Account-Id` header
|
|
240
|
+
|
|
241
|
+
### Audit Logging
|
|
242
|
+
All mutations emit audit logs:
|
|
243
|
+
- `entity.created` - On create
|
|
244
|
+
- `entity.updated` - On update
|
|
245
|
+
- `entity.deleted` - On soft delete
|
|
246
|
+
|
|
247
|
+
### Error Handling
|
|
248
|
+
```typescript
|
|
249
|
+
// Success Response
|
|
250
|
+
{
|
|
251
|
+
data: T
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Error Response
|
|
255
|
+
{
|
|
256
|
+
error: "Human readable message",
|
|
257
|
+
code?: "ERROR_CODE"
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Validation Error
|
|
261
|
+
{
|
|
262
|
+
errors: {
|
|
263
|
+
field: "field-specific error"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Pagination
|
|
269
|
+
- Default: `page=1`, `itemsPerPage=20`
|
|
270
|
+
- Supports `search` parameter
|
|
271
|
+
- Supports filtering by `type_id`
|
|
272
|
+
- Returns array of records
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Spine v2 API Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This directory contains comprehensive API documentation for Spine v2, organized by domain and use case. All APIs follow the Spine v2 governance standards with consistent authentication, error handling, and data contracts.
|
|
6
|
+
|
|
7
|
+
## API Domains
|
|
8
|
+
|
|
9
|
+
### [Admin Data APIs](./admin-data.md)
|
|
10
|
+
Runtime record management for accounts, people, and items.
|
|
11
|
+
- **Accounts** - Account record management
|
|
12
|
+
- **People** - Person record management
|
|
13
|
+
- **Items** - Item record management
|
|
14
|
+
|
|
15
|
+
### [Admin Configuration APIs](./admin-configs.md)
|
|
16
|
+
System configuration and definition management.
|
|
17
|
+
- **Types** - Type definitions (item/account/person)
|
|
18
|
+
- **Apps** - Application definitions
|
|
19
|
+
- **Pipelines** - Workflow automation
|
|
20
|
+
- **Triggers** - Event triggers
|
|
21
|
+
- **AI Agents** - AI agent configurations
|
|
22
|
+
- **Embeddings** - Embedding vector definitions
|
|
23
|
+
- **Timers** - Scheduled task definitions
|
|
24
|
+
- **Integrations** - External integrations
|
|
25
|
+
- **Roles** - Role and permission definitions
|
|
26
|
+
- **Prompt Configs** - AI prompt configurations
|
|
27
|
+
|
|
28
|
+
### [Runtime APIs](./runtime.md)
|
|
29
|
+
Application runtime operations.
|
|
30
|
+
- **Threads** - Conversation threads
|
|
31
|
+
- **Messages** - Thread messages
|
|
32
|
+
- **Attachments** - File attachments
|
|
33
|
+
- **Watchers** - Entity subscriptions
|
|
34
|
+
- **Links** - Polymorphic relationships
|
|
35
|
+
- **Link Types** - Relationship type definitions
|
|
36
|
+
- **Access Control** - People-accounts, people-roles
|
|
37
|
+
- **Account Nodes** - Account hierarchy traversal
|
|
38
|
+
- **System** - Logs, pipeline executions
|
|
39
|
+
|
|
40
|
+
### [Internal APIs](./internal.md)
|
|
41
|
+
System-level and service-to-service operations.
|
|
42
|
+
- **System Operations** - Logs, monitoring
|
|
43
|
+
- **Quarantined Endpoints** - v2-incompatible APIs
|
|
44
|
+
- **Service Patterns** - Background processing, maintenance
|
|
45
|
+
|
|
46
|
+
## API Standards
|
|
47
|
+
|
|
48
|
+
### Authentication
|
|
49
|
+
- **Public Reads**: Admin data and config endpoints allow public reads
|
|
50
|
+
- **Authenticated Mutations**: All write operations require valid session
|
|
51
|
+
- **Admin Guards**: Configuration mutations require admin role
|
|
52
|
+
- **Account Scoping**: Runtime endpoints respect account boundaries
|
|
53
|
+
|
|
54
|
+
### Response Format
|
|
55
|
+
```typescript
|
|
56
|
+
// Success Response
|
|
57
|
+
{
|
|
58
|
+
data: T | T[]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Error Response
|
|
62
|
+
{
|
|
63
|
+
error: "Human readable message",
|
|
64
|
+
code?: "ERROR_CODE"
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Validation Error
|
|
68
|
+
{
|
|
69
|
+
errors: {
|
|
70
|
+
field: "field-specific error"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Common Features
|
|
76
|
+
- **Soft Delete**: All DELETE operations use `is_active=false`
|
|
77
|
+
- **Audit Logging**: Mutations emit audit logs with context
|
|
78
|
+
- **Pagination**: Default `page=1`, `itemsPerPage=20`
|
|
79
|
+
- **Search & Filter**: Text search and field filtering support
|
|
80
|
+
- **v2 Schema**: All endpoints use v2 schema exclusively
|
|
81
|
+
|
|
82
|
+
## Quick Reference
|
|
83
|
+
|
|
84
|
+
### Base URL
|
|
85
|
+
```
|
|
86
|
+
https://your-domain.netlify.app
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Endpoint Pattern
|
|
90
|
+
```
|
|
91
|
+
/.netlify/functions/{endpoint}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Common Query Parameters
|
|
95
|
+
- `page` - Pagination page number
|
|
96
|
+
- `itemsPerPage` - Items per page
|
|
97
|
+
- `search` - Text search
|
|
98
|
+
- `id` - Single record ID
|
|
99
|
+
- Domain-specific filters (e.g., `type_id`, `app_id`)
|
|
100
|
+
|
|
101
|
+
### Authentication Headers
|
|
102
|
+
```typescript
|
|
103
|
+
// User Session
|
|
104
|
+
Authorization: Bearer {session_token}
|
|
105
|
+
X-Account-Id: {account_id}
|
|
106
|
+
|
|
107
|
+
// Service-to-Service
|
|
108
|
+
Authorization: Bearer {service_token}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Error Codes
|
|
112
|
+
|
|
113
|
+
| Code | Description |
|
|
114
|
+
|------|-------------|
|
|
115
|
+
| `UNAUTHORIZED` | Invalid or missing authentication |
|
|
116
|
+
| `FORBIDDEN` | Insufficient permissions |
|
|
117
|
+
| `NOT_FOUND` | Resource not found |
|
|
118
|
+
| `VALIDATION_ERROR` | Invalid request data |
|
|
119
|
+
| `SYSTEM_ERROR` | Internal server error |
|
|
120
|
+
| `MAINTENANCE` | System under maintenance |
|
|
121
|
+
|
|
122
|
+
## Rate Limits
|
|
123
|
+
|
|
124
|
+
| Endpoint Type | Limit |
|
|
125
|
+
|---------------|-------|
|
|
126
|
+
| Public Reads | 100 requests/minute |
|
|
127
|
+
| Authenticated | 500 requests/minute |
|
|
128
|
+
| Admin Operations | 200 requests/minute |
|
|
129
|
+
| Service-to-Service | 1000 requests/minute |
|
|
130
|
+
|
|
131
|
+
## SDK Integration
|
|
132
|
+
|
|
133
|
+
### JavaScript/TypeScript
|
|
134
|
+
```typescript
|
|
135
|
+
import { SpineAPI } from '@spine/sdk'
|
|
136
|
+
|
|
137
|
+
const api = new SpineAPI({
|
|
138
|
+
baseURL: 'https://your-domain.netlify.app',
|
|
139
|
+
token: 'your-session-token'
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
// List accounts
|
|
143
|
+
const accounts = await api.accounts.list()
|
|
144
|
+
|
|
145
|
+
// Create item
|
|
146
|
+
const item = await api.items.create({
|
|
147
|
+
type_id: 'uuid',
|
|
148
|
+
name: 'New Item'
|
|
149
|
+
})
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Python
|
|
153
|
+
```python
|
|
154
|
+
from spine_api import SpineClient
|
|
155
|
+
|
|
156
|
+
client = SpineClient(
|
|
157
|
+
base_url='https://your-domain.netlify.app',
|
|
158
|
+
token='your-session-token'
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# List people
|
|
162
|
+
people = client.people.list()
|
|
163
|
+
|
|
164
|
+
# Create thread
|
|
165
|
+
thread = client.threads.create({
|
|
166
|
+
'person_id': 'uuid',
|
|
167
|
+
'title': 'New Thread',
|
|
168
|
+
'thread_type': 'discussion'
|
|
169
|
+
})
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Development Tools
|
|
173
|
+
|
|
174
|
+
### API Testing
|
|
175
|
+
- Use Postman collection for endpoint testing
|
|
176
|
+
- Mock server available for development
|
|
177
|
+
- OpenAPI specification available
|
|
178
|
+
|
|
179
|
+
### Monitoring
|
|
180
|
+
- Real-time API metrics dashboard
|
|
181
|
+
- Error tracking and alerting
|
|
182
|
+
- Performance monitoring
|
|
183
|
+
|
|
184
|
+
### Debugging
|
|
185
|
+
- Request/response logging
|
|
186
|
+
- Stack trace capture
|
|
187
|
+
- Debug mode for detailed errors
|
|
188
|
+
|
|
189
|
+
## Migration Guide
|
|
190
|
+
|
|
191
|
+
### From v1 to v2
|
|
192
|
+
1. Update base URLs to use new endpoint patterns
|
|
193
|
+
2. Migrate authentication to new token format
|
|
194
|
+
3. Update request/response handling for new formats
|
|
195
|
+
4. Implement soft delete handling
|
|
196
|
+
5. Add account context headers
|
|
197
|
+
|
|
198
|
+
### Breaking Changes
|
|
199
|
+
- All endpoints now use v2 schema
|
|
200
|
+
- Soft delete semantics applied universally
|
|
201
|
+
- Authentication headers updated
|
|
202
|
+
- Response format standardized
|
|
203
|
+
|
|
204
|
+
## Support
|
|
205
|
+
|
|
206
|
+
### Documentation
|
|
207
|
+
- [API Governance Checklist](../api-governance.md)
|
|
208
|
+
- [Admin Route Inventory](../admin-routes.md)
|
|
209
|
+
- [UI-to-API Coverage Matrix](../ui-api-coverage.md)
|
|
210
|
+
- [DB Compatibility Audit](../v2-compatibility-audit.md)
|
|
211
|
+
|
|
212
|
+
### Getting Help
|
|
213
|
+
- Review error messages for specific guidance
|
|
214
|
+
- Check audit logs for operation details
|
|
215
|
+
- Contact support for system issues
|
|
216
|
+
- Community forums for development questions
|
|
217
|
+
|
|
218
|
+
## Changelog
|
|
219
|
+
|
|
220
|
+
### v2.0.0
|
|
221
|
+
- Complete API restructure for v2 schema
|
|
222
|
+
- Standardized response formats
|
|
223
|
+
- Added comprehensive documentation
|
|
224
|
+
- Implemented soft delete semantics
|
|
225
|
+
- Enhanced authentication and authorization
|
|
226
|
+
|
|
227
|
+
### v1.x.x
|
|
228
|
+
- Legacy API structure
|
|
229
|
+
- Mixed response formats
|
|
230
|
+
- Limited documentation
|
|
231
|
+
- Hard delete operations
|