spine-framework 0.1.61 → 1.0.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.
Files changed (425) hide show
  1. package/LICENSE.md +223 -0
  2. package/README.md +327 -0
  3. package/package.json +107 -216
  4. package/src/cli/commands/init.ts +192 -0
  5. package/src/cli/commands/install.ts +25 -0
  6. package/src/cli/commands/list.ts +33 -0
  7. package/src/cli/commands/migrate.ts +24 -0
  8. package/src/cli/index.ts +46 -0
  9. package/src/components/AppLayout.tsx +21 -0
  10. package/src/components/AuthGuard.tsx +21 -0
  11. package/src/components/RoleGuard.tsx +23 -0
  12. package/src/components/index.ts +3 -0
  13. package/src/contexts/AppContext.tsx +122 -0
  14. package/src/contexts/AuthContext.tsx +87 -0
  15. package/src/contexts/SpineContext.tsx +46 -0
  16. package/src/contexts/index.ts +3 -0
  17. package/src/hooks/index.ts +4 -0
  18. package/src/hooks/useItems.ts +78 -0
  19. package/src/hooks/useThreads.ts +73 -0
  20. package/src/hooks/useWebSocket.ts +97 -0
  21. package/src/index.ts +22 -0
  22. package/src/types/index.ts +163 -0
  23. package/src/utils/api.ts +88 -0
  24. package/src/utils/client.ts +146 -0
  25. package/src/utils/config.ts +20 -0
  26. package/src/utils/index.ts +3 -0
  27. package/.framework/README.md +0 -129
  28. package/.framework/cli/bin.cjs +0 -14
  29. package/.framework/cli/commands/agents.ts +0 -153
  30. package/.framework/cli/commands/auth.ts +0 -94
  31. package/.framework/cli/commands/create-app.ts +0 -185
  32. package/.framework/cli/commands/dev.ts +0 -113
  33. package/.framework/cli/commands/doctor.ts +0 -442
  34. package/.framework/cli/commands/generate.ts +0 -332
  35. package/.framework/cli/commands/init.ts +0 -186
  36. package/.framework/cli/commands/install-app.ts +0 -565
  37. package/.framework/cli/commands/items.ts +0 -253
  38. package/.framework/cli/commands/migrate.ts +0 -139
  39. package/.framework/cli/commands/migrations.ts +0 -141
  40. package/.framework/cli/commands/pipelines.ts +0 -166
  41. package/.framework/cli/commands/status.ts +0 -197
  42. package/.framework/cli/commands/system.ts +0 -184
  43. package/.framework/cli/commands/test.ts +0 -227
  44. package/.framework/cli/commands/uninstall-app.ts +0 -166
  45. package/.framework/cli/context.ts +0 -268
  46. package/.framework/cli/env-loader.ts +0 -36
  47. package/.framework/cli/index.ts +0 -116
  48. package/.framework/cli/welcome.cjs +0 -45
  49. package/.framework/docs/API.md +0 -384
  50. package/.framework/docs/STABILITY.md +0 -52
  51. package/.framework/docs/admin-routes.md +0 -76
  52. package/.framework/docs/api-docs-progress.md +0 -38
  53. package/.framework/docs/api-governance.md +0 -146
  54. package/.framework/docs/api-testing-results.md +0 -212
  55. package/.framework/docs/apis/admin-configs.md +0 -567
  56. package/.framework/docs/apis/admin-data.md +0 -272
  57. package/.framework/docs/apis/index.md +0 -231
  58. package/.framework/docs/apis/internal.md +0 -295
  59. package/.framework/docs/apis/runtime.md +0 -537
  60. package/.framework/docs/assembly-launch-guide.md +0 -138
  61. package/.framework/docs/audit-results.md +0 -590
  62. package/.framework/docs/authorization-model.md +0 -170
  63. package/.framework/docs/db-api-inventory.md +0 -95
  64. package/.framework/docs/examples/custom-app/README.md +0 -77
  65. package/.framework/docs/examples/custom-function/README.md +0 -27
  66. package/.framework/docs/examples/custom-function/handler.ts +0 -48
  67. package/.framework/docs/examples/custom-webhook/README.md +0 -68
  68. package/.framework/docs/gap-remediation-backlog.md +0 -103
  69. package/.framework/docs/guides/cli-guide.md +0 -224
  70. package/.framework/docs/guides/getting-started.md +0 -103
  71. package/.framework/docs/guides/import-guide.md +0 -193
  72. package/.framework/docs/guides/testing-guide.md +0 -229
  73. package/.framework/docs/permission-examples.md +0 -326
  74. package/.framework/docs/ui-adoption-verification.md +0 -111
  75. package/.framework/docs/ui-api-coverage.md +0 -84
  76. package/.framework/docs/v2-compatibility-audit.md +0 -228
  77. package/.framework/functions/.gitkeep +0 -1
  78. package/.framework/functions/_shared/agent-runner.ts +0 -1097
  79. package/.framework/functions/_shared/app-manifest.ts +0 -184
  80. package/.framework/functions/_shared/audit.ts +0 -150
  81. package/.framework/functions/_shared/db.ts +0 -178
  82. package/.framework/functions/_shared/index.ts +0 -391
  83. package/.framework/functions/_shared/middleware.ts +0 -490
  84. package/.framework/functions/_shared/permissions.ts +0 -1325
  85. package/.framework/functions/_shared/pipeline-runner.ts +0 -731
  86. package/.framework/functions/_shared/principal.ts +0 -818
  87. package/.framework/functions/_shared/resolve-ids.ts +0 -106
  88. package/.framework/functions/_shared/schema-utils.ts +0 -967
  89. package/.framework/functions/_shared/testing.ts +0 -258
  90. package/.framework/functions/_shared/trigger-engine.ts +0 -425
  91. package/.framework/functions/_shared/webhook-registration.ts +0 -168
  92. package/.framework/functions/_shared/webhook-registry.ts +0 -129
  93. package/.framework/functions/account-nodes.ts +0 -111
  94. package/.framework/functions/admin-data.ts +0 -606
  95. package/.framework/functions/ai-agents.ts +0 -323
  96. package/.framework/functions/api-keys.ts +0 -376
  97. package/.framework/functions/apps.ts +0 -483
  98. package/.framework/functions/auth.ts +0 -196
  99. package/.framework/functions/debug-auth.ts +0 -107
  100. package/.framework/functions/embeddings.ts +0 -556
  101. package/.framework/functions/integration-routes.ts +0 -523
  102. package/.framework/functions/integrations.ts +0 -319
  103. package/.framework/functions/item-progress.ts +0 -272
  104. package/.framework/functions/logs.ts +0 -438
  105. package/.framework/functions/observability.ts +0 -275
  106. package/.framework/functions/pipeline-executions.ts +0 -494
  107. package/.framework/functions/pipelines.ts +0 -485
  108. package/.framework/functions/prompt-configs.ts +0 -339
  109. package/.framework/functions/roles.ts +0 -387
  110. package/.framework/functions/system-cron.ts +0 -742
  111. package/.framework/functions/system.ts +0 -323
  112. package/.framework/functions/tests.ts +0 -119
  113. package/.framework/functions/timers.ts +0 -357
  114. package/.framework/functions/triggers.ts +0 -563
  115. package/.framework/functions/types.ts +0 -604
  116. package/.framework/index.html +0 -16
  117. package/.framework/migrations/000_foundation.sql +0 -1266
  118. package/.framework/migrations/001_seed.sql +0 -163
  119. package/.framework/migrations/002_seed_constraints.sql +0 -19
  120. package/.framework/migrations/003_auth_user_trigger.sql +0 -67
  121. package/.framework/src/App.tsx +0 -126
  122. package/.framework/src/apps/admin/index.tsx +0 -173
  123. package/.framework/src/components/AppWrapper.tsx +0 -56
  124. package/.framework/src/components/CustomAppLoader.tsx +0 -116
  125. package/.framework/src/components/admin/AdminListPage.tsx +0 -151
  126. package/.framework/src/components/admin/AdminSidebar.tsx +0 -166
  127. package/.framework/src/components/admin/AdminStatsCard.tsx +0 -62
  128. package/.framework/src/components/admin/SortableTableHeader.tsx +0 -42
  129. package/.framework/src/components/app-shell/GenericAppShell.tsx +0 -181
  130. package/.framework/src/components/app-shell/GenericDetailPage.tsx +0 -200
  131. package/.framework/src/components/app-shell/GenericListPage.tsx +0 -116
  132. package/.framework/src/components/app-sidebar.tsx +0 -228
  133. package/.framework/src/components/auth/ProtectedRoute.tsx +0 -88
  134. package/.framework/src/components/layout/AppShell.tsx +0 -91
  135. package/.framework/src/components/layout/Header.tsx +0 -88
  136. package/.framework/src/components/layout/Layout.tsx +0 -95
  137. package/.framework/src/components/layout/Sidebar.tsx +0 -329
  138. package/.framework/src/components/runtime/DataDetailHeader.tsx +0 -77
  139. package/.framework/src/components/runtime/DataDetailPage.tsx +0 -171
  140. package/.framework/src/components/runtime/DataFilters.tsx +0 -91
  141. package/.framework/src/components/runtime/DataHeader.tsx +0 -68
  142. package/.framework/src/components/runtime/DataListPage.tsx +0 -124
  143. package/.framework/src/components/runtime/DataStats.tsx +0 -70
  144. package/.framework/src/components/runtime/DataTable.tsx +0 -174
  145. package/.framework/src/components/runtime/SchemaDetailForm.tsx +0 -134
  146. package/.framework/src/components/runtime/index.ts +0 -18
  147. package/.framework/src/components/search-form.tsx +0 -29
  148. package/.framework/src/components/shared/AgentView.tsx +0 -213
  149. package/.framework/src/components/shared/FieldRenderer.tsx +0 -478
  150. package/.framework/src/components/shared/SchemaFields.tsx +0 -226
  151. package/.framework/src/components/ui/DataTable.tsx +0 -343
  152. package/.framework/src/components/ui/Form.tsx +0 -281
  153. package/.framework/src/components/ui/ItemCard.tsx +0 -296
  154. package/.framework/src/components/ui/ItemListView.tsx +0 -308
  155. package/.framework/src/components/ui/LoadingSpinner.tsx +0 -52
  156. package/.framework/src/components/ui/Modal.tsx +0 -61
  157. package/.framework/src/components/ui/RichTextEditor.tsx +0 -210
  158. package/.framework/src/components/ui/accordion.tsx +0 -82
  159. package/.framework/src/components/ui/alert-dialog.tsx +0 -197
  160. package/.framework/src/components/ui/alert.tsx +0 -76
  161. package/.framework/src/components/ui/aspect-ratio.tsx +0 -11
  162. package/.framework/src/components/ui/avatar.tsx +0 -110
  163. package/.framework/src/components/ui/badge.tsx +0 -49
  164. package/.framework/src/components/ui/breadcrumb.tsx +0 -122
  165. package/.framework/src/components/ui/button-group.tsx +0 -83
  166. package/.framework/src/components/ui/button.tsx +0 -65
  167. package/.framework/src/components/ui/calendar.tsx +0 -222
  168. package/.framework/src/components/ui/card.tsx +0 -100
  169. package/.framework/src/components/ui/carousel.tsx +0 -240
  170. package/.framework/src/components/ui/chart.tsx +0 -368
  171. package/.framework/src/components/ui/checkbox.tsx +0 -31
  172. package/.framework/src/components/ui/collapsible.tsx +0 -33
  173. package/.framework/src/components/ui/combobox.tsx +0 -299
  174. package/.framework/src/components/ui/command.tsx +0 -193
  175. package/.framework/src/components/ui/context-menu.tsx +0 -261
  176. package/.framework/src/components/ui/dialog.tsx +0 -165
  177. package/.framework/src/components/ui/direction.tsx +0 -6
  178. package/.framework/src/components/ui/drawer.tsx +0 -132
  179. package/.framework/src/components/ui/dropdown-menu.tsx +0 -269
  180. package/.framework/src/components/ui/empty.tsx +0 -104
  181. package/.framework/src/components/ui/field.tsx +0 -238
  182. package/.framework/src/components/ui/hover-card.tsx +0 -42
  183. package/.framework/src/components/ui/input-group.tsx +0 -153
  184. package/.framework/src/components/ui/input-otp.tsx +0 -87
  185. package/.framework/src/components/ui/input.tsx +0 -19
  186. package/.framework/src/components/ui/item.tsx +0 -196
  187. package/.framework/src/components/ui/kbd.tsx +0 -26
  188. package/.framework/src/components/ui/label.tsx +0 -22
  189. package/.framework/src/components/ui/menubar.tsx +0 -277
  190. package/.framework/src/components/ui/native-select.tsx +0 -61
  191. package/.framework/src/components/ui/navigation-menu.tsx +0 -164
  192. package/.framework/src/components/ui/pagination.tsx +0 -129
  193. package/.framework/src/components/ui/popover.tsx +0 -87
  194. package/.framework/src/components/ui/progress.tsx +0 -31
  195. package/.framework/src/components/ui/radio-group.tsx +0 -42
  196. package/.framework/src/components/ui/resizable.tsx +0 -50
  197. package/.framework/src/components/ui/scroll-area.tsx +0 -53
  198. package/.framework/src/components/ui/select.tsx +0 -195
  199. package/.framework/src/components/ui/separator.tsx +0 -26
  200. package/.framework/src/components/ui/sheet.tsx +0 -145
  201. package/.framework/src/components/ui/sidebar.tsx +0 -706
  202. package/.framework/src/components/ui/skeleton.tsx +0 -13
  203. package/.framework/src/components/ui/slider.tsx +0 -59
  204. package/.framework/src/components/ui/sonner.tsx +0 -47
  205. package/.framework/src/components/ui/spinner.tsx +0 -10
  206. package/.framework/src/components/ui/switch.tsx +0 -33
  207. package/.framework/src/components/ui/table-primitives.tsx +0 -141
  208. package/.framework/src/components/ui/table.tsx +0 -114
  209. package/.framework/src/components/ui/tabs.tsx +0 -90
  210. package/.framework/src/components/ui/textarea.tsx +0 -18
  211. package/.framework/src/components/ui/toggle-group.tsx +0 -89
  212. package/.framework/src/components/ui/toggle.tsx +0 -45
  213. package/.framework/src/components/ui/tooltip.tsx +0 -57
  214. package/.framework/src/contexts/AppContext.tsx +0 -133
  215. package/.framework/src/contexts/AuthContext.tsx +0 -371
  216. package/.framework/src/hooks/use-mobile.ts +0 -19
  217. package/.framework/src/hooks/useApi.ts +0 -526
  218. package/.framework/src/hooks/useApps.ts +0 -114
  219. package/.framework/src/hooks/useEntityList.ts +0 -190
  220. package/.framework/src/hooks/useEntityRecord.ts +0 -308
  221. package/.framework/src/hooks/useForm.ts +0 -307
  222. package/.framework/src/hooks/useListSchema.ts +0 -264
  223. package/.framework/src/hooks/useSchemaRecord.ts +0 -223
  224. package/.framework/src/index.css +0 -128
  225. package/.framework/src/lib/api.ts +0 -156
  226. package/.framework/src/lib/supabase.ts +0 -94
  227. package/.framework/src/lib/utils.ts +0 -317
  228. package/.framework/src/main.tsx +0 -27
  229. package/.framework/src/pages/DashboardPage.tsx +0 -181
  230. package/.framework/src/pages/NotFoundPage.tsx +0 -39
  231. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +0 -161
  232. package/.framework/src/pages/admin/AIAgentsPage.tsx +0 -318
  233. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +0 -199
  234. package/.framework/src/pages/admin/APIKeysPage.tsx +0 -303
  235. package/.framework/src/pages/admin/AlertsConfigPage.tsx +0 -523
  236. package/.framework/src/pages/admin/AppDetailPage.tsx +0 -493
  237. package/.framework/src/pages/admin/AppsPage.tsx +0 -355
  238. package/.framework/src/pages/admin/DesignedPage.tsx +0 -491
  239. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +0 -534
  240. package/.framework/src/pages/admin/EmbeddingsPage.tsx +0 -424
  241. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +0 -176
  242. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +0 -109
  243. package/.framework/src/pages/admin/IntegratedDashboard.tsx +0 -402
  244. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +0 -187
  245. package/.framework/src/pages/admin/IntegrationsPage.tsx +0 -301
  246. package/.framework/src/pages/admin/LogsPage.tsx +0 -283
  247. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +0 -85
  248. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +0 -470
  249. package/.framework/src/pages/admin/PipelineDetailPage.tsx +0 -183
  250. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +0 -279
  251. package/.framework/src/pages/admin/PipelinesPage.tsx +0 -390
  252. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +0 -299
  253. package/.framework/src/pages/admin/PromptConfigsPage.tsx +0 -292
  254. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +0 -434
  255. package/.framework/src/pages/admin/RoleDetailPage.tsx +0 -273
  256. package/.framework/src/pages/admin/RolesPage.tsx +0 -292
  257. package/.framework/src/pages/admin/SelectTestPage.tsx +0 -61
  258. package/.framework/src/pages/admin/ShadcnTestPage.tsx +0 -588
  259. package/.framework/src/pages/admin/SimpleDashboard.tsx +0 -387
  260. package/.framework/src/pages/admin/TestRunDetailPage.tsx +0 -172
  261. package/.framework/src/pages/admin/TestingDashboard.tsx +0 -257
  262. package/.framework/src/pages/admin/TimerDetailPage.tsx +0 -151
  263. package/.framework/src/pages/admin/TimersPage.tsx +0 -376
  264. package/.framework/src/pages/admin/TriggerDetailPage.tsx +0 -149
  265. package/.framework/src/pages/admin/TriggersPage.tsx +0 -381
  266. package/.framework/src/pages/admin/TypeDetailPage.tsx +0 -694
  267. package/.framework/src/pages/admin/TypesPage.tsx +0 -295
  268. package/.framework/src/pages/auth/LoginPage.tsx +0 -187
  269. package/.framework/src/pages/auth/RegisterPage.tsx +0 -163
  270. package/.framework/src/pages/spine-framework/APIPage.tsx +0 -17
  271. package/.framework/src/pages/spine-framework/CLIPage.tsx +0 -25
  272. package/.framework/src/types/auth.ts +0 -125
  273. package/.framework/src/types/types.ts +0 -407
  274. package/STRUCTURE.md +0 -150
  275. package/bin/spine-framework.cjs +0 -62
  276. package/bin/welcome.cjs +0 -45
  277. package/bin/ws-shim.cjs +0 -8
  278. package/bin/ws-shim.ts +0 -10
  279. package/config/components.json +0 -25
  280. package/config/deno.lock +0 -108
  281. package/config/package-lock.json +0 -17183
  282. package/config/postcss.config.cjs +0 -10
  283. package/config/tailwind.config.cjs +0 -78
  284. package/config/tsconfig.build.json +0 -32
  285. package/config/tsconfig.cli.json +0 -18
  286. package/config/tsconfig.json +0 -41
  287. package/config/tsconfig.node.json +0 -17
  288. package/config/tsconfig.node.tsbuildinfo +0 -1
  289. package/config/tsconfig.tsbuildinfo +0 -1
  290. package/config/typedoc.json +0 -16
  291. package/config/vite.config.d.ts +0 -2
  292. package/config/vite.config.ts +0 -72
  293. package/dist/cli/commands/agents.d.ts +0 -39
  294. package/dist/cli/commands/agents.d.ts.map +0 -1
  295. package/dist/cli/commands/auth.d.ts +0 -36
  296. package/dist/cli/commands/auth.d.ts.map +0 -1
  297. package/dist/cli/commands/create-app.d.ts +0 -23
  298. package/dist/cli/commands/create-app.d.ts.map +0 -1
  299. package/dist/cli/commands/dev.d.ts +0 -24
  300. package/dist/cli/commands/dev.d.ts.map +0 -1
  301. package/dist/cli/commands/doctor.d.ts +0 -42
  302. package/dist/cli/commands/doctor.d.ts.map +0 -1
  303. package/dist/cli/commands/generate.d.ts +0 -36
  304. package/dist/cli/commands/generate.d.ts.map +0 -1
  305. package/dist/cli/commands/init.d.ts +0 -20
  306. package/dist/cli/commands/init.d.ts.map +0 -1
  307. package/dist/cli/commands/install-app.d.ts +0 -30
  308. package/dist/cli/commands/install-app.d.ts.map +0 -1
  309. package/dist/cli/commands/items.d.ts +0 -45
  310. package/dist/cli/commands/items.d.ts.map +0 -1
  311. package/dist/cli/commands/migrate.d.ts +0 -21
  312. package/dist/cli/commands/migrate.d.ts.map +0 -1
  313. package/dist/cli/commands/migrations.d.ts +0 -41
  314. package/dist/cli/commands/migrations.d.ts.map +0 -1
  315. package/dist/cli/commands/pipelines.d.ts +0 -40
  316. package/dist/cli/commands/pipelines.d.ts.map +0 -1
  317. package/dist/cli/commands/status.d.ts +0 -23
  318. package/dist/cli/commands/status.d.ts.map +0 -1
  319. package/dist/cli/commands/system.d.ts +0 -29
  320. package/dist/cli/commands/system.d.ts.map +0 -1
  321. package/dist/cli/commands/test.d.ts +0 -46
  322. package/dist/cli/commands/test.d.ts.map +0 -1
  323. package/dist/cli/commands/uninstall-app.d.ts +0 -23
  324. package/dist/cli/commands/uninstall-app.d.ts.map +0 -1
  325. package/dist/cli/context.d.ts +0 -88
  326. package/dist/cli/context.d.ts.map +0 -1
  327. package/dist/cli/env-loader.d.ts +0 -14
  328. package/dist/cli/env-loader.d.ts.map +0 -1
  329. package/dist/cli/index.d.ts +0 -41
  330. package/dist/cli/index.d.ts.map +0 -1
  331. package/dist/functions/_shared/agent-runner.d.ts +0 -156
  332. package/dist/functions/_shared/agent-runner.d.ts.map +0 -1
  333. package/dist/functions/_shared/app-manifest.d.ts +0 -68
  334. package/dist/functions/_shared/app-manifest.d.ts.map +0 -1
  335. package/dist/functions/_shared/audit.d.ts +0 -91
  336. package/dist/functions/_shared/audit.d.ts.map +0 -1
  337. package/dist/functions/_shared/db.d.ts +0 -125
  338. package/dist/functions/_shared/db.d.ts.map +0 -1
  339. package/dist/functions/_shared/index.d.ts +0 -299
  340. package/dist/functions/_shared/index.d.ts.map +0 -1
  341. package/dist/functions/_shared/middleware.d.ts +0 -315
  342. package/dist/functions/_shared/middleware.d.ts.map +0 -1
  343. package/dist/functions/_shared/permissions.d.ts +0 -626
  344. package/dist/functions/_shared/permissions.d.ts.map +0 -1
  345. package/dist/functions/_shared/pipeline-runner.d.ts +0 -124
  346. package/dist/functions/_shared/pipeline-runner.d.ts.map +0 -1
  347. package/dist/functions/_shared/principal.d.ts +0 -284
  348. package/dist/functions/_shared/principal.d.ts.map +0 -1
  349. package/dist/functions/_shared/resolve-ids.d.ts +0 -10
  350. package/dist/functions/_shared/resolve-ids.d.ts.map +0 -1
  351. package/dist/functions/_shared/schema-utils.d.ts +0 -181
  352. package/dist/functions/_shared/schema-utils.d.ts.map +0 -1
  353. package/dist/functions/_shared/testing.d.ts +0 -172
  354. package/dist/functions/_shared/testing.d.ts.map +0 -1
  355. package/dist/functions/_shared/trigger-engine.d.ts +0 -140
  356. package/dist/functions/_shared/trigger-engine.d.ts.map +0 -1
  357. package/dist/functions/_shared/webhook-registration.d.ts +0 -81
  358. package/dist/functions/_shared/webhook-registration.d.ts.map +0 -1
  359. package/dist/functions/_shared/webhook-registry.d.ts +0 -57
  360. package/dist/functions/_shared/webhook-registry.d.ts.map +0 -1
  361. package/dist/functions/account-nodes.d.ts +0 -48
  362. package/dist/functions/account-nodes.d.ts.map +0 -1
  363. package/dist/functions/admin-data.d.ts +0 -178
  364. package/dist/functions/admin-data.d.ts.map +0 -1
  365. package/dist/functions/ai-agents.d.ts +0 -125
  366. package/dist/functions/ai-agents.d.ts.map +0 -1
  367. package/dist/functions/api-keys.d.ts +0 -140
  368. package/dist/functions/api-keys.d.ts.map +0 -1
  369. package/dist/functions/apps.d.ts +0 -163
  370. package/dist/functions/apps.d.ts.map +0 -1
  371. package/dist/functions/auth.d.ts +0 -74
  372. package/dist/functions/auth.d.ts.map +0 -1
  373. package/dist/functions/debug-auth.d.ts +0 -33
  374. package/dist/functions/debug-auth.d.ts.map +0 -1
  375. package/dist/functions/embeddings.d.ts +0 -205
  376. package/dist/functions/embeddings.d.ts.map +0 -1
  377. package/dist/functions/integration-routes.d.ts +0 -45
  378. package/dist/functions/integration-routes.d.ts.map +0 -1
  379. package/dist/functions/integrations.d.ts +0 -124
  380. package/dist/functions/integrations.d.ts.map +0 -1
  381. package/dist/functions/item-progress.d.ts +0 -41
  382. package/dist/functions/item-progress.d.ts.map +0 -1
  383. package/dist/functions/logs.d.ts +0 -162
  384. package/dist/functions/logs.d.ts.map +0 -1
  385. package/dist/functions/observability.d.ts +0 -123
  386. package/dist/functions/observability.d.ts.map +0 -1
  387. package/dist/functions/pipeline-executions.d.ts +0 -190
  388. package/dist/functions/pipeline-executions.d.ts.map +0 -1
  389. package/dist/functions/pipelines.d.ts +0 -171
  390. package/dist/functions/pipelines.d.ts.map +0 -1
  391. package/dist/functions/prompt-configs.d.ts +0 -125
  392. package/dist/functions/prompt-configs.d.ts.map +0 -1
  393. package/dist/functions/roles.d.ts +0 -118
  394. package/dist/functions/roles.d.ts.map +0 -1
  395. package/dist/functions/system-cron.d.ts +0 -65
  396. package/dist/functions/system-cron.d.ts.map +0 -1
  397. package/dist/functions/system.d.ts +0 -29
  398. package/dist/functions/system.d.ts.map +0 -1
  399. package/dist/functions/tests.d.ts +0 -28
  400. package/dist/functions/tests.d.ts.map +0 -1
  401. package/dist/functions/timers.d.ts +0 -139
  402. package/dist/functions/timers.d.ts.map +0 -1
  403. package/dist/functions/triggers.d.ts +0 -203
  404. package/dist/functions/triggers.d.ts.map +0 -1
  405. package/dist/functions/types.d.ts +0 -151
  406. package/dist/functions/types.d.ts.map +0 -1
  407. package/dist/src/types/types.d.ts +0 -364
  408. package/dist/src/types/types.d.ts.map +0 -1
  409. package/index.html +0 -13
  410. package/netlify.toml +0 -36
  411. package/package-project.json +0 -64
  412. package/scripts/app-install-cli.ts +0 -286
  413. package/scripts/assemble-frontend.sh +0 -79
  414. package/scripts/assemble-functions.sh +0 -62
  415. package/scripts/assemble.sh +0 -41
  416. package/scripts/boundary-check.sh +0 -106
  417. package/scripts/build-manifest.sh +0 -80
  418. package/scripts/check-core-integrity.sh +0 -82
  419. package/scripts/ingest-chunks.cjs +0 -202
  420. package/scripts/kb-chunk-parser.cjs +0 -312
  421. package/scripts/kb-chunk-parser.ts +0 -330
  422. package/scripts/load-test-app-install.ts +0 -484
  423. package/scripts/netlify-dev-wrapper.sh +0 -22
  424. package/scripts/verify-integrity.sh +0 -69
  425. package/vitest.config.ts +0 -45
@@ -1,229 +0,0 @@
1
- # Testing Guide
2
-
3
- Spine's test suite covers four surfaces: **unit**, **integration**, **API**, and **UI (Playwright)**.
4
- All tests target the **public schema** (`DB_SCHEMA=public`). Results are persisted to
5
- `public.test_runs` / `public.test_results` and surfaced in the admin UI at `/admin/testing`.
6
-
7
- The primary purpose of running tests against the public schema is to discover **day-zero gaps** —
8
- missing seed data, structural issues, or RLS mismatches that must be resolved before production.
9
-
10
- ---
11
-
12
- ## Running Tests
13
-
14
- ```bash
15
- # All tests (unit + integration + api)
16
- npm test
17
-
18
- # Unit tests only (fast, no network)
19
- npm run test:unit
20
-
21
- # Integration tests (requires SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY + SPINE_TEST_ACCOUNT_ID)
22
- npm run test:integration
23
-
24
- # API tests (requires dev server running + SPINE_DEV_JWT)
25
- SPINE_DEV_JWT=<jwt> vitest run v2-core/tests/api
26
-
27
- # UI sweep (requires dev server + playwright)
28
- tsx v2-core/tests/ui/ui-sweep.ts
29
- ```
30
-
31
- See `.windsurf/workflows/run-tests.md` for the full step-by-step workflow.
32
-
33
- ---
34
-
35
- ## Environment Setup
36
-
37
- Integration, API, and UI tests need credentials in `v2-core/.xenv` or `v2-core/.xenv.test`:
38
-
39
- ```env
40
- SUPABASE_URL=https://uyokuiibztwfasdprsov.supabase.co
41
- SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
42
- SPINE_TEST_ACCOUNT_ID=<uuid>
43
- DB_SCHEMA=public
44
- # For API tests:
45
- SPINE_DEV_JWT=<user-jwt>
46
- SPINE_DEV_URL=http://localhost:8888
47
- ```
48
-
49
- ---
50
-
51
- ## Test Suites
52
-
53
- ### Unit Tests (`v2-core/tests/unit/`)
54
-
55
- Pure function tests — no network, no DB. Mock `db.ts` with `vi.mock`.
56
-
57
- ```ts
58
- // v2-core/tests/unit/pipeline-runner.test.ts
59
- import { describe, it, expect, vi, beforeEach } from 'vitest'
60
- import { runPipeline } from '../../functions/_shared/pipeline-runner.ts'
61
- import { SYSTEM_PRINCIPAL } from '../../functions/_shared/principal.ts'
62
- import type { CoreContext } from '../../functions/_shared/middleware.ts'
63
-
64
- // Mock adminDb
65
- vi.mock('../../functions/_shared/db.ts', () => ({
66
- adminDb: {
67
- from: vi.fn().mockReturnThis(),
68
- select: vi.fn().mockReturnThis(),
69
- insert: vi.fn().mockReturnThis(),
70
- update: vi.fn().mockReturnThis(),
71
- eq: vi.fn().mockReturnThis(),
72
- single: vi.fn()
73
- }
74
- }))
75
-
76
- function makeCtx(overrides: Partial<CoreContext> = {}): CoreContext {
77
- return {
78
- principal: SYSTEM_PRINCIPAL,
79
- accountId: 'test-account-id',
80
- db: {}, // mocked via vi.mock above
81
- requestId: 'test-request-id',
82
- ...overrides
83
- }
84
- }
85
- ```
86
-
87
- ### Example unit test
88
-
89
- ```ts
90
- describe('runPipeline', () => {
91
- it('throws when pipeline not found', async () => {
92
- const { adminDb } = await import('../../functions/_shared/db.ts')
93
- vi.mocked(adminDb.from('pipelines').select('*').eq('id', 'x').eq('is_active', true).single)
94
- .mockResolvedValue({ data: null, error: { message: 'Not found' } })
95
-
96
- await expect(
97
- runPipeline('nonexistent-id', {}, makeCtx())
98
- ).rejects.toThrow('Pipeline not found or inactive')
99
- })
100
- })
101
- ```
102
-
103
- ---
104
-
105
- ## Integration Tests (`v2-core/tests/integration/`)
106
-
107
- Run against the live Supabase public schema via `adminDb`. Failures are **day-zero gaps**.
108
-
109
- Key files:
110
- - `helpers.ts` — `adminDb`, `makeTestCtx()`, `TEST_ACCOUNT_ID`
111
- - `admin-data-accounts.test.ts` — accounts table shape + HTTP endpoint
112
- - `admin-data-people.test.ts` — people table shape + HTTP endpoint
113
- - `schema-validation.test.ts` — `design_schema` completeness across all types
114
- - `custom-integrity.test.ts` — public schema connectivity, RLS isolation, export surface
115
-
116
- Tests use `describe.skipIf(!TEST_ACCOUNT_ID)` to skip gracefully when env is not configured.
117
-
118
- ```ts
119
- describe.skipIf(!TEST_ACCOUNT_ID)('my integration test', () => {
120
- it('checks something in public schema', async () => {
121
- const { data, error } = await adminDb.from('types').select('*').limit(1)
122
- expect(error).toBeNull()
123
- // Gap warning pattern:
124
- if (!data?.length) console.warn('[gap] public.types is empty')
125
- })
126
- })
127
- ```
128
-
129
- ---
130
-
131
- ## API Tests (`v2-core/tests/api/`)
132
-
133
- HTTP fetch tests against the local dev server. Requires `SPINE_DEV_JWT`.
134
-
135
- - `api-surface.test.ts` — auth matrix, CRUD lifecycle, error handling across all entities
136
-
137
- ```bash
138
- SPINE_DEV_JWT=<jwt> vitest run v2-core/tests/api
139
- ```
140
-
141
- ---
142
-
143
- ## UI Tests (`v2-core/tests/ui/`)
144
-
145
- Playwright sweep over all admin routes. Checks for zero console errors per page.
146
-
147
- ```bash
148
- tsx v2-core/tests/ui/ui-sweep.ts
149
- ```
150
-
151
- Results written to `public.test_runs` with `suite='ui'`.
152
-
153
- ---
154
-
155
- ## Result Reporter
156
-
157
- `tests/reporter.ts` is a Vitest custom reporter that persists results to `public.test_runs`
158
- and `public.test_results` after every test run. Also exports `writeRunResults()` for use
159
- by non-Vitest runners (UI sweep, API tests).
160
-
161
- It is registered in `vitest.config.ts`:
162
- ```ts
163
- reporters: ['default', './v2-core/tests/reporter.ts']
164
- ```
165
-
166
- View results in the admin UI at `/admin/testing`.
167
-
168
- ---
169
-
170
- ## Fixtures
171
-
172
- ```bash
173
- # Seed test data into public schema (idempotent)
174
- tsx v2-core/tests/fixtures/seed.ts
175
-
176
- # Remove test-* rows from public schema
177
- tsx v2-core/tests/fixtures/teardown.ts
178
- ```
179
-
180
- ---
181
-
182
- ## Gap Report
183
-
184
- After running integration + API + UI tests, document every failure in
185
- `v2-core/docs/dayzero-gap-report.md`:
186
-
187
- ```markdown
188
- ## Gap: public.types is empty
189
- - **Test**: schema-validation.test.ts — "all active types have a non-empty design_schema"
190
- - **Root cause**: `migrations_dayzero/007_seeds.sql` not yet applied to public schema
191
- - **Fix**: Apply seeds or add missing type rows
192
- ```
193
-
194
- ---
195
-
196
- ## Testing Custom Code
197
-
198
- Import from the stable `_shared` index:
199
-
200
- ```ts
201
- import { runPipeline, adminDb, SYSTEM_PRINCIPAL, CoreContext } from '../../_shared/index.ts'
202
- ```
203
-
204
- ---
205
-
206
- ## Test File Structure
207
-
208
- ```
209
- v2-core/tests/
210
- unit/
211
- pipeline-runner.test.ts
212
- permissions.test.ts
213
- schema-utils.test.ts
214
- principal.test.ts
215
- integration/
216
- auth.test.ts
217
- isolation.test.ts
218
- permissions.test.ts
219
- pipeline.test.ts
220
- machine-principal.test.ts
221
- cli-smoke.test.ts
222
- helpers.ts
223
- ```
224
-
225
- ---
226
-
227
- ## CI Integration
228
-
229
- Tests run automatically in GitHub Actions via `.github/workflows/smoke-test.yml`. Unit tests run on every push; integration tests run on PRs against `main` using the Supabase staging branch credentials stored in GitHub Secrets.
@@ -1,326 +0,0 @@
1
- # Permission Examples
2
-
3
- ## Support Ticket Use Case
4
-
5
- ### Customer (user role)
6
- - Can create tickets in their own account
7
- - Can only see/update their own tickets
8
- - Cannot see ARR field
9
-
10
- ### Master Support Agent (master-support role)
11
- - Assigned to client accounts via v2.people_roles
12
- - Can read all client tickets
13
- - Can update most ticket fields
14
- - Cannot see ARR field (field override)
15
-
16
- ### Master CSM (master-csm role)
17
- - Assigned to client accounts via v2.people_roles
18
- - Can read all client tickets
19
- - Can update ARR field (field override)
20
- - Cannot delete tickets
21
-
22
- ## Schema Example
23
-
24
- ```json
25
- {
26
- "record_permissions": {
27
- "user": {
28
- "create": true,
29
- "read": "own",
30
- "update": "own",
31
- "delete": false
32
- },
33
- "master-support": {
34
- "create": false,
35
- "read": "all",
36
- "update": "all",
37
- "delete": false
38
- },
39
- "master-csm": {
40
- "create": false,
41
- "read": "all",
42
- "update": false,
43
- "delete": false
44
- }
45
- },
46
- "fields": {
47
- "arr": {
48
- "type": "number",
49
- "permissions": {
50
- "master-support": {
51
- "read": false,
52
- "write": false
53
- },
54
- "master-csm": {
55
- "read": true,
56
- "write": true
57
- }
58
- }
59
- }
60
- }
61
- }
62
- ```
63
-
64
- ## API Behavior Examples
65
-
66
- ### Creating a Ticket
67
-
68
- **Customer Request:**
69
- ```typescript
70
- POST /functions/items
71
- {
72
- "item_type": "support_ticket",
73
- "title": "Login issue",
74
- "data": {
75
- "description": "Cannot login to account",
76
- "priority": "high"
77
- }
78
- }
79
- ```
80
-
81
- **Permission Check:**
82
- - User has `user` role
83
- - `record_permissions.user.create` is `true`
84
- - **Result:** Ticket created successfully
85
-
86
- **Master Support Request:**
87
- ```typescript
88
- POST /functions/items
89
- {
90
- "item_type": "support_ticket",
91
- "title": "System maintenance",
92
- "data": {
93
- "description": "Scheduled maintenance",
94
- "priority": "low"
95
- }
96
- }
97
- ```
98
-
99
- **Permission Check:**
100
- - User has `master-support` role
101
- - `record_permissions.master-support.create` is `false`
102
- - **Result:** Permission denied
103
-
104
- ### Reading Tickets
105
-
106
- **Customer Reading Their Own Ticket:**
107
- ```typescript
108
- GET /functions/items?id=customer-ticket-123
109
- ```
110
-
111
- **Permission Check:**
112
- - User has `user` role
113
- - `record_permissions.user.read` is `"own"`
114
- - Ticket was created by this user
115
- - **Result:** Returns ticket with all fields visible to user
116
-
117
- **Customer Reading Another Customer's Ticket:**
118
- ```typescript
119
- GET /functions/items?id=other-customer-ticket-456
120
- ```
121
-
122
- **Permission Check:**
123
- - User has `user` role
124
- - `record_permissions.user.read` is `"own"`
125
- - Ticket was NOT created by this user
126
- - **Result:** Permission denied
127
-
128
- **Master Support Reading Any Client Ticket:**
129
- ```typescript
130
- GET /functions/items?id=client-ticket-789
131
- ```
132
-
133
- **Permission Check:**
134
- - User has `master-support` role
135
- - `record_permissions.master-support.read` is `"all"`
136
- - **Result:** Returns ticket, but ARR field is filtered out due to field override
137
-
138
- ### Updating Tickets
139
-
140
- **Customer Updating Their Own Ticket:**
141
- ```typescript
142
- PATCH /functions/items?id=customer-ticket-123
143
- {
144
- "data": {
145
- "description": "Updated description"
146
- }
147
- }
148
- ```
149
-
150
- **Permission Check:**
151
- - User has `user` role
152
- - `record_permissions.user.update` is `"own"`
153
- - Ticket was created by this user
154
- - Field has no specific override for `user` role
155
- - **Result:** Update successful
156
-
157
- **Customer Trying to Update ARR Field:**
158
- ```typescript
159
- PATCH /functions/items?id=customer-ticket-123
160
- {
161
- "data": {
162
- "arr": 50000
163
- }
164
- }
165
- ```
166
-
167
- **Permission Check:**
168
- - User has `user` role
169
- - `record_permissions.user.update` is `"own"`
170
- - Ticket was created by this user
171
- - Field `arr` has no permission override for `user` role
172
- - Falls back to record-level permission: `"own"` allows update
173
- - **Result:** Update successful (if this is desired behavior, add field override to prevent)
174
-
175
- **Master CSM Updating ARR Field:**
176
- ```typescript
177
- PATCH /functions/items?id=client-ticket-789
178
- {
179
- "data": {
180
- "arr": 75000
181
- }
182
- }
183
- ```
184
-
185
- **Permission Check:**
186
- - User has `master-csm` role
187
- - `record_permissions.master-csm.update` is `false`
188
- - Field `arr` has override: `permissions.master-csm.write` is `true`
189
- - **Result:** Update successful due to field override
190
-
191
- **Master Support Trying to Update ARR Field:**
192
- ```typescript
193
- PATCH /functions/items?id=client-ticket-789
194
- {
195
- "data": {
196
- "arr": 75000
197
- }
198
- }
199
- ```
200
-
201
- **Permission Check:**
202
- - User has `master-support` role
203
- - `record_permissions.master-support.update` is `"all"`
204
- - Field `arr` has override: `permissions.master-support.write` is `false`
205
- - **Result:** Permission denied due to field override
206
-
207
- ## List Endpoint Behavior
208
-
209
- **Customer Listing Tickets:**
210
- ```typescript
211
- GET /functions/items?item_type=support_ticket
212
- ```
213
-
214
- **Permission Check:**
215
- - Returns only tickets user can read
216
- - Filters out fields user cannot see
217
- - **Result:** List of user's own tickets with appropriate field filtering
218
-
219
- **Master Support Listing Tickets:**
220
- ```typescript
221
- GET /functions/items?item_type=support_ticket
222
- ```
223
-
224
- **Permission Check:**
225
- - Returns all tickets in account
226
- - Filters out ARR field for all tickets
227
- - **Result:** All client tickets with ARR field removed
228
-
229
- ## System Admin Behavior
230
-
231
- **System Admin Any Operation:**
232
- ```typescript
233
- // Any operation as system admin
234
- GET /functions/items?id=any-ticket
235
- PATCH /functions/items?id=any-ticket
236
- DELETE /functions/items?id=any-ticket
237
- ```
238
-
239
- **Permission Check:**
240
- - `systemRole === 'system_admin'`
241
- - **Result:** All operations succeed, no field filtering, full audit trail maintained
242
-
243
- ## Multi-Role User Behavior
244
-
245
- **User with Both user and master-support Roles:**
246
- ```typescript
247
- GET /functions/items?id=other-user-ticket
248
- ```
249
-
250
- **Permission Check:**
251
- - User has `user` role: `record_permissions.user.read` is `"own"` - denied
252
- - User has `master-support` role: `record_permissions.master-support.read` is `"all"` - allowed
253
- - **Result:** Access granted (highest effective permission wins)
254
-
255
- ## Error Messages
256
-
257
- ### Permission Denied Errors
258
- - `"Insufficient permissions to create this type of item"`
259
- - `"Insufficient permissions to update this item"`
260
- - `"Insufficient permissions to delete this item"`
261
- - `"Insufficient permissions to view this item"`
262
- - `"Insufficient permissions to update field 'field_name'"`
263
-
264
- ### Context Errors
265
- - `"Authentication required"`
266
- - `"Account context required"`
267
- - `"Item not found"`
268
-
269
- ## Debugging Permission Issues
270
-
271
- ### Step 1: Check Authentication
272
- ```sql
273
- -- Verify user is authenticated
274
- SELECT person_id, system_role FROM v2.people WHERE auth_uid = 'user_auth_uid';
275
- ```
276
-
277
- ### Step 2: Check Account Membership
278
- ```sql
279
- -- Verify user is member of account
280
- SELECT * FROM v2.people_accounts
281
- WHERE person_id = 'user_person_id' AND account_id = 'target_account_id' AND is_active = true;
282
- ```
283
-
284
- ### Step 3: Check Role Assignments
285
- ```sql
286
- -- Verify user has required roles
287
- SELECT pr.role_slug, r.name
288
- FROM v2.people_roles pr
289
- JOIN v2.roles r ON pr.role_id = r.id
290
- WHERE pr.person_id = 'user_person_id' AND pr.account_id = 'target_account_id' AND pr.is_active = true;
291
- ```
292
-
293
- ### Step 4: Check Type Schema
294
- ```sql
295
- -- Verify type schema has permissions for user's roles
296
- SELECT schema FROM v2.types
297
- WHERE slug = 'support_ticket' AND is_active = true;
298
- ```
299
-
300
- ### Step 5: Check System Admin Override
301
- ```sql
302
- -- Verify system admin status
303
- SELECT system_role FROM v2.people WHERE id = 'user_person_id';
304
- ```
305
-
306
- ## Common Pitfalls and Solutions
307
-
308
- ### Pitfall: Missing Role Assignment
309
- **Problem:** User cannot access records despite having correct schema
310
- **Solution:** Verify role assignment in v2.people_roles
311
-
312
- ### Pitfall: Incorrect Account Context
313
- **Problem:** Permission checks failing for cross-account operations
314
- **Solution:** Ensure correct account_id in request headers
315
-
316
- ### Pitfall: Field Override Missing
317
- **Problem:** Users can see fields they shouldn't
318
- **Solution:** Add field-level permission overrides
319
-
320
- ### Pitfall: Access Level Misconfiguration
321
- **Problem:** Users can't access their own records
322
- **Solution:** Ensure read access level is set to "own" or "all"
323
-
324
- ### Pitfall: System Admin Not Working
325
- **Problem:** System admin still getting permission denied
326
- **Solution:** Verify systemRole is set correctly in middleware
@@ -1,111 +0,0 @@
1
- # UI Adoption Verification Report
2
-
3
- ## Data Management UIs (admin/data/*)
4
-
5
- ### Accounts Management
6
- - **AccountsPage**: Uses `apiFetch('/.netlify/functions/accounts')` - ADOPTED
7
- - **AccountCreatePage**: Uses accounts API - ADOPTED
8
- - **AccountDetailPage**: Uses accounts API - ADOPTED
9
- - **Status**: Complete API adoption
10
-
11
- ### People Management
12
- - **PeoplePage**: Uses `apiFetch('/.netlify/functions/people')` - ADOPTED
13
- - **PersonCreatePage**: Uses people API - ADOPTED
14
- - **PersonDetailPage**: Uses people API - ADOPTED
15
- - **Status**: Complete API adoption
16
-
17
- ### Items Management
18
- - **ItemsPage**: Uses `apiFetch('/.netlify/functions/items')` - ADOPTED
19
- - **ItemCreatePage**: Uses items API - ADOPTED
20
- - **ItemDetailPage**: Uses items API - ADOPTED
21
- - **Status**: Complete API adoption
22
-
23
- ## Configuration Management UIs (admin/configs/*)
24
-
25
- ### Type Definitions
26
- - **TypesPage**: Uses `apiFetch('/.netlify/functions/types')` - ADOPTED
27
- - **TypeDetailPage**: Uses types API - ADOPTED
28
- - **AccountTypesPage**: Uses `apiFetch('/.netlify/functions/types')` - ADOPTED
29
- - **AccountTypeDetailPage**: Uses types API - ADOPTED
30
- - **PersonTypesPage**: Uses `apiFetch('/.netlify/functions/types')` - ADOPTED
31
- - **PersonTypeDetailPage**: Uses types API - ADOPTED
32
- - **Status**: Complete API adoption
33
-
34
- ### App Definitions
35
- - **AppsPage**: Uses `apiFetch('/.netlify/functions/apps')` - ADOPTED
36
- - **AppDetailPage**: Uses apps API - ADOPTED
37
- - **Status**: Complete API adoption
38
-
39
- ### Workflow Definitions
40
- - **PipelinesPage**: Uses `apiFetch('/.netlify/functions/pipelines')` - ADOPTED
41
- - **PipelineDetailPage**: Uses pipelines API - ADOPTED
42
- - **TriggersPage**: Uses `apiFetch('/.netlify/functions/triggers')` - ADOPTED
43
- - **TriggerDetailPage**: Uses triggers API - ADOPTED
44
- - **Status**: Complete API adoption
45
-
46
- ### AI & Integration Definitions
47
- - **AIAgentsPage**: Uses `apiFetch('/.netlify/functions/ai-agents')` - ADOPTED
48
- - **AIAgentDetailPage**: Uses ai-agents API - ADOPTED
49
- - **EmbeddingsPage**: Uses `apiFetch('/.netlify/functions/embeddings')` - ADOPTED
50
- - **EmbeddingDetailPage**: Uses embeddings API - ADOPTED
51
- - **IntegrationsPage**: Uses `apiFetch('/.netlify/functions/integrations')` - ADOPTED
52
- - **IntegrationDetailPage**: Uses integrations API - ADOPTED
53
- - **Status**: Complete API adoption
54
-
55
- ### Scheduling Definitions
56
- - **TimersPage**: Previously used mock data - NOW ADOPTED
57
- - **TimerDetailPage**: Uses timers API - ADOPTED
58
- - **Status**: Complete API adoption (FIXED)
59
-
60
- ## Legacy Routes (Removed)
61
-
62
- All legacy routes have been removed from routing and will now return 404:
63
- - ~~`/admin/accounts`~~ -> Use `/admin/data/accounts`
64
- - ~~`/admin/people`~~ -> Use `/admin/data/people`
65
- - ~~`/admin/types`~~ -> Use `/admin/configs/types`
66
- - ~~`/admin/apps`~~ -> Use `/admin/configs/apps`
67
- - ~~`/admin/pipelines`~~ -> Use `/admin/configs/pipelines`
68
- - ~~`/admin/triggers`~~ -> Use `/admin/configs/triggers`
69
- - ~~`/admin/ai-agents`~~ -> Use `/admin/configs/ai-agents`
70
- - ~~`/admin/embeddings`~~ -> Use `/admin/configs/embeddings`
71
- - ~~`/admin/timers`~~ -> Use `/admin/configs/timers`
72
-
73
- **Status**: All legacy routes removed - will return 404
74
-
75
- ## Issues Resolved
76
-
77
- ### Fixed: TimersPage Mock Data
78
- - **Issue**: TimersPage was using mock data instead of API
79
- - **Action**: Replaced mock data with `fetch('/.netlify/functions/timers')`
80
- - **Status**: RESOLVED
81
- - **Impact**: TimersPage now properly uses timers API
82
-
83
- ## Compliance Status
84
-
85
- ### Complete Adoption: 100%
86
- - All 25 active admin UI routes now use proper APIs
87
- - No remaining mock data usage
88
- - All CRUD operations go through API layer
89
- - Proper error handling implemented
90
-
91
- ### Security Status: Good
92
- - Config endpoints have admin-only role guards
93
- - Data endpoints respect account scoping
94
- - Auth middleware applied where needed
95
-
96
- ### Standards Compliance: Good
97
- - All endpoints use soft delete
98
- - Consistent response formats
99
- - Proper audit logging
100
- - v2 schema compliance verified
101
-
102
- ## Recommendations
103
-
104
- 1. **Redirect Legacy Routes**: Consider adding redirects from legacy to new routes
105
- 2. **Monitor API Usage**: Track which endpoints are actually used by UIs
106
- 3. **Performance Review**: Ensure API calls are properly cached/debounced
107
- 4. **Error Handling**: Verify consistent error handling across all UIs
108
-
109
- ## Summary
110
-
111
- All admin UIs are now properly adopting APIs with no mock data remaining. The critical issue with TimersPage has been resolved. The system is ready for production use with proper API-driven architecture.