spine-framework 0.3.124 → 0.3.126
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/cli/commands/agents.ts +35 -37
- package/.framework/cli/commands/auth.ts +35 -34
- package/.framework/cli/commands/create-app.ts +104 -40
- package/.framework/cli/commands/dev.ts +104 -69
- package/.framework/cli/commands/doctor.ts +179 -69
- package/.framework/cli/commands/generate.ts +83 -143
- package/.framework/cli/commands/init.ts +72 -34
- package/.framework/cli/commands/install-app.ts +260 -125
- package/.framework/cli/commands/items.ts +33 -44
- package/.framework/cli/commands/migrate.ts +122 -40
- package/.framework/cli/commands/migrations.ts +33 -40
- package/.framework/cli/commands/pipelines.ts +31 -39
- package/.framework/cli/commands/status.ts +47 -23
- package/.framework/cli/commands/system.ts +47 -37
- package/.framework/cli/commands/test.ts +112 -68
- package/.framework/cli/commands/validate-app.ts +215 -121
- package/.framework/cli/context.ts +112 -130
- package/.framework/cli/env-loader.ts +47 -18
- package/.framework/cli/index.ts +81 -42
- package/.framework/docs/runtime-types.md +1024 -0
- package/.framework/functions/_shared/agent-runner.ts +1296 -961
- package/.framework/functions/_shared/app-manifest.ts +82 -68
- package/.framework/functions/_shared/audit.ts +135 -83
- package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
- package/.framework/functions/_shared/db.ts +80 -126
- package/.framework/functions/_shared/hash-api-key.ts +63 -0
- package/.framework/functions/_shared/index.ts +224 -335
- package/.framework/functions/_shared/kb.ts +319 -0
- package/.framework/functions/_shared/llm.ts +92 -0
- package/.framework/functions/_shared/logging.ts +288 -0
- package/.framework/functions/_shared/middleware.ts +329 -365
- package/.framework/functions/_shared/outcomes.ts +36 -0
- package/.framework/functions/_shared/permissions.ts +359 -643
- package/.framework/functions/_shared/pipeline-runner.ts +243 -316
- package/.framework/functions/_shared/principal.ts +376 -468
- package/.framework/functions/_shared/resolve-credentials.ts +102 -0
- package/.framework/functions/_shared/resolve-ids.ts +188 -16
- package/.framework/functions/_shared/retry-deliveries.ts +104 -0
- package/.framework/functions/_shared/schema-utils.ts +611 -373
- package/.framework/functions/_shared/testing.ts +207 -137
- package/.framework/functions/_shared/tracing.ts +276 -0
- package/.framework/functions/_shared/trigger-engine.ts +159 -211
- package/.framework/functions/_shared/webhook-registration.ts +95 -81
- package/.framework/functions/_shared/webhook-registry.ts +153 -75
- package/.framework/functions/account-nodes.ts +31 -53
- package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
- package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
- package/.framework/functions/adapters/openai-outbound.ts +40 -0
- package/.framework/functions/admin-data.ts +685 -537
- package/.framework/functions/admin-funnel.ts +31 -20
- package/.framework/functions/admin-install-funnel.ts +47 -28
- package/.framework/functions/admin-signals.ts +47 -29
- package/.framework/functions/ai-agents.ts +122 -147
- package/.framework/functions/ai-interactions.ts +180 -90
- package/.framework/functions/api-keys.ts +250 -192
- package/.framework/functions/apps.ts +203 -197
- package/.framework/functions/auth.ts +98 -91
- package/.framework/functions/cil-agent-ingest.ts +773 -0
- package/.framework/functions/cil-agent.ts +592 -0
- package/.framework/functions/cil-callmap.ts +1227 -0
- package/.framework/functions/cil-config.ts +583 -0
- package/.framework/functions/cil-context.ts +445 -0
- package/.framework/functions/cil-doc.ts +1752 -0
- package/.framework/functions/cil-embeddings.ts +1202 -0
- package/.framework/functions/cil-graph.ts +585 -0
- package/.framework/functions/cil-ingest.ts +2416 -0
- package/.framework/functions/cil-pipeline.ts +318 -0
- package/.framework/functions/cil-project.ts +499 -0
- package/.framework/functions/cil-validate.ts +469 -0
- package/.framework/functions/debug-auth.ts +73 -53
- package/.framework/functions/deliveries.ts +117 -0
- package/.framework/functions/embeddings.ts +528 -516
- package/.framework/functions/eval-harness.ts +158 -106
- package/.framework/functions/integration-outbound.ts +311 -0
- package/.framework/functions/integration-routes.ts +240 -466
- package/.framework/functions/integrations.ts +132 -140
- package/.framework/functions/invites.ts +401 -201
- package/.framework/functions/item-progress.ts +113 -53
- package/.framework/functions/kb.ts +28 -0
- package/.framework/functions/logs.ts +239 -222
- package/.framework/functions/observability.ts +308 -259
- package/.framework/functions/pipeline-executions.ts +179 -235
- package/.framework/functions/pipelines.ts +163 -205
- package/.framework/functions/prompt-configs.ts +109 -156
- package/.framework/functions/roles.ts +97 -147
- package/.framework/functions/system-cron.ts +132 -218
- package/.framework/functions/system.ts +112 -52
- package/.framework/functions/tests.ts +32 -28
- package/.framework/functions/timers.ts +162 -210
- package/.framework/functions/triggers.ts +282 -346
- package/.framework/functions/types.ts +283 -400
- package/.framework/migrations/001_core_schema.sql +630 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
- package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
- package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
- package/.framework/migrations/005_core_observability.sql +598 -0
- package/.framework/migrations/006_security_hardening_rls.sql +97 -0
- package/.framework/migrations/007_kb_article_list.sql +237 -0
- package/.framework/migrations/008_items_target.sql +8 -0
- package/.framework/migrations/009_roles_slug_unique.sql +11 -0
- package/.framework/public/spine.config.json +91 -0
- package/.framework/scripts/app-install-cli.ts +112 -98
- package/.framework/src/App.tsx +67 -20
- package/.framework/src/apps/admin/index.tsx +97 -27
- package/.framework/src/components/AppWrapper.tsx +50 -11
- package/.framework/src/components/CustomAppLoader.tsx +131 -22
- package/.framework/src/components/admin/AdminListPage.tsx +75 -8
- package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
- package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
- package/.framework/src/components/admin/PageInstructions.tsx +49 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
- package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
- package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
- package/.framework/src/components/app-sidebar.tsx +50 -3
- package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
- package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
- package/.framework/src/components/kb/KBArticleList.tsx +557 -0
- package/.framework/src/components/layout/AppShell.tsx +54 -16
- package/.framework/src/components/layout/Header.tsx +50 -38
- package/.framework/src/components/layout/Layout.tsx +48 -32
- package/.framework/src/components/layout/Sidebar.tsx +167 -16
- package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
- package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
- package/.framework/src/components/runtime/DataFilters.tsx +78 -1
- package/.framework/src/components/runtime/DataHeader.tsx +32 -29
- package/.framework/src/components/runtime/DataListPage.tsx +161 -2
- package/.framework/src/components/runtime/DataStats.tsx +48 -1
- package/.framework/src/components/runtime/DataTable.tsx +153 -1
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
- package/.framework/src/components/runtime/index.ts +16 -9
- package/.framework/src/components/search-form.tsx +33 -1
- package/.framework/src/components/shared/AgentView.tsx +48 -51
- package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
- package/.framework/src/components/shared/InviteManager.tsx +113 -52
- package/.framework/src/components/shared/MemberList.tsx +182 -0
- package/.framework/src/components/shared/SchemaFields.tsx +96 -78
- package/.framework/src/components/ui/DataTable.tsx +86 -56
- package/.framework/src/components/ui/Form.tsx +188 -109
- package/.framework/src/components/ui/ItemCard.tsx +86 -58
- package/.framework/src/components/ui/ItemListView.tsx +88 -61
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
- package/.framework/src/components/ui/Modal.tsx +81 -4
- package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
- package/.framework/src/components/ui/accordion.tsx +97 -5
- package/.framework/src/components/ui/alert-dialog.tsx +225 -13
- package/.framework/src/components/ui/alert.tsx +113 -6
- package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
- package/.framework/src/components/ui/avatar.tsx +129 -7
- package/.framework/src/components/ui/badge.tsx +65 -3
- package/.framework/src/components/ui/breadcrumb.tsx +145 -8
- package/.framework/src/components/ui/button-group.tsx +81 -4
- package/.framework/src/components/ui/button.tsx +49 -2
- package/.framework/src/components/ui/calendar.tsx +65 -3
- package/.framework/src/components/ui/card.tsx +145 -8
- package/.framework/src/components/ui/carousel.tsx +129 -7
- package/.framework/src/components/ui/chart.tsx +161 -10
- package/.framework/src/components/ui/checkbox.tsx +49 -2
- package/.framework/src/components/ui/collapsible.tsx +81 -5
- package/.framework/src/components/ui/combobox.tsx +305 -20
- package/.framework/src/components/ui/command.tsx +177 -11
- package/.framework/src/components/ui/context-menu.tsx +273 -17
- package/.framework/src/components/ui/dialog.tsx +209 -27
- package/.framework/src/components/ui/direction.tsx +64 -4
- package/.framework/src/components/ui/drawer.tsx +193 -12
- package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
- package/.framework/src/components/ui/empty.tsx +145 -9
- package/.framework/src/components/ui/field.tsx +209 -14
- package/.framework/src/components/ui/hover-card.tsx +81 -4
- package/.framework/src/components/ui/input-group.tsx +162 -10
- package/.framework/src/components/ui/input-otp.tsx +98 -5
- package/.framework/src/components/ui/input.tsx +49 -2
- package/.framework/src/components/ui/item.tsx +225 -13
- package/.framework/src/components/ui/kbd.tsx +65 -3
- package/.framework/src/components/ui/label.tsx +49 -2
- package/.framework/src/components/ui/menubar.tsx +289 -17
- package/.framework/src/components/ui/native-select.tsx +97 -5
- package/.framework/src/components/ui/navigation-menu.tsx +177 -10
- package/.framework/src/components/ui/pagination.tsx +161 -9
- package/.framework/src/components/ui/popover.tsx +145 -8
- package/.framework/src/components/ui/progress.tsx +49 -2
- package/.framework/src/components/ui/radio-group.tsx +65 -3
- package/.framework/src/components/ui/resizable.tsx +82 -4
- package/.framework/src/components/ui/scroll-area.tsx +65 -3
- package/.framework/src/components/ui/select.tsx +193 -11
- package/.framework/src/components/ui/separator.tsx +49 -2
- package/.framework/src/components/ui/sheet.tsx +193 -11
- package/.framework/src/components/ui/sidebar.tsx +481 -38
- package/.framework/src/components/ui/skeleton.tsx +49 -2
- package/.framework/src/components/ui/slider.tsx +49 -2
- package/.framework/src/components/ui/sonner.tsx +49 -2
- package/.framework/src/components/ui/spinner.tsx +49 -2
- package/.framework/src/components/ui/switch.tsx +49 -2
- package/.framework/src/components/ui/table-primitives.tsx +160 -33
- package/.framework/src/components/ui/table.tsx +161 -9
- package/.framework/src/components/ui/tabs.tsx +113 -6
- package/.framework/src/components/ui/textarea.tsx +49 -2
- package/.framework/src/components/ui/toggle-group.tsx +81 -4
- package/.framework/src/components/ui/toggle.tsx +65 -3
- package/.framework/src/components/ui/tooltip.tsx +97 -5
- package/.framework/src/contexts/AppContext.tsx +129 -45
- package/.framework/src/contexts/AuthContext.tsx +187 -144
- package/.framework/src/hooks/use-mobile.ts +48 -2
- package/.framework/src/hooks/useApi.ts +208 -159
- package/.framework/src/hooks/useAppPath.ts +32 -23
- package/.framework/src/hooks/useApps.ts +51 -20
- package/.framework/src/hooks/useEntityList.ts +32 -78
- package/.framework/src/hooks/useEntityRecord.ts +35 -96
- package/.framework/src/hooks/useForm.ts +32 -92
- package/.framework/src/hooks/useListSchema.ts +49 -78
- package/.framework/src/hooks/useSchemaRecord.ts +114 -105
- package/.framework/src/lib/api.ts +195 -116
- package/.framework/src/lib/supabase.ts +98 -64
- package/.framework/src/lib/utils.ts +287 -151
- package/.framework/src/main.tsx +49 -3
- package/.framework/src/pages/DashboardPage.tsx +52 -29
- package/.framework/src/pages/NotFoundPage.tsx +32 -10
- package/.framework/src/pages/SetupPage.tsx +32 -12
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
- package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
- package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
- package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
- package/.framework/src/pages/admin/AppsPage.tsx +49 -2
- package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
- package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
- package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
- package/.framework/src/pages/admin/LogsPage.tsx +422 -75
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
- package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
- package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
- package/.framework/src/pages/admin/RolesPage.tsx +171 -18
- package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
- package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
- package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
- package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
- package/.framework/src/pages/admin/TimersPage.tsx +48 -20
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
- package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
- package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
- package/.framework/src/pages/admin/TypesPage.tsx +48 -20
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
- package/.framework/src/pages/auth/LoginPage.tsx +50 -23
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
- package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
- package/.framework/src/types/auth.ts +128 -71
- package/.framework/src/types/types.ts +373 -157
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
- package/docs/README.md +9 -130
- package/netlify.toml +5 -2
- package/package.json +13 -25
- package/scripts/kb-ingest-docs.ts +203 -0
- package/spine.config.json +65 -4
- package/.framework/migrations/001_schema.sql +0 -425
- package/.framework/migrations/002_rls_and_functions.sql +0 -763
- package/.framework/migrations/004_enhancements.sql +0 -43
- package/.framework/migrations/005_auth_user_trigger.sql +0 -105
- package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
- package/.framework/migrations/016_invites.sql +0 -27
- package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
- package/.framework/migrations/018_apps_required_roles.sql +0 -17
- package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
- package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
- package/.framework/migrations/021_app_domains.sql +0 -112
- package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
- package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
- package/.framework/migrations/024_messages_account_id.sql +0 -9
- package/.framework/migrations/025_retype_threads_messages.sql +0 -240
- package/.framework/migrations/026_fix_rls_policies.sql +0 -47
- package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
- package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
- package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
- package/.framework/migrations/030_messages_updated_by.sql +0 -6
- package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
- package/docs/APPS.md +0 -232
- package/docs/ARCHITECTURE.md +0 -246
- package/docs/INSTALL.md +0 -155
- package/docs/design-schema-spec.md +0 -1837
- package/docs/dev-guides/01-create-an-app.md +0 -183
- package/docs/dev-guides/02-create-a-function.md +0 -178
- package/docs/dev-guides/03-create-a-component.md +0 -178
- package/docs/dev-guides/04-webhook-handlers.md +0 -129
- package/docs/dev-guides/05-testing.md +0 -168
- package/docs/dev-guides/README.md +0 -40
- package/docs/npm-packages-plan.md +0 -288
- package/docs/spine-core--api-reference.md +0 -822
|
@@ -1,80 +1,43 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module pipeline-executions
|
|
3
|
-
* @audience core-contributor
|
|
4
|
-
* @layer api-handler
|
|
5
|
-
* @stability stable
|
|
6
|
-
*
|
|
7
|
-
* Lifecycle management API for the `pipeline_executions` table. Records
|
|
8
|
-
* track individual pipeline runs: status progression (pending → running →
|
|
9
|
-
* completed/failed/cancelled), timing, trigger data, and result payloads.
|
|
10
|
-
*
|
|
11
|
-
* **Routed by:** `GET/POST/PATCH /.netlify/functions/pipeline-executions`
|
|
12
|
-
*
|
|
13
|
-
* **Actions:**
|
|
14
|
-
* | method | ?action | handler |
|
|
15
|
-
* |--------|----------|------------|
|
|
16
|
-
* | GET | list | list |
|
|
17
|
-
* | GET | running | getRunning |
|
|
18
|
-
* | GET | stats | getStats |
|
|
19
|
-
* | POST | cleanup | cleanup |
|
|
20
|
-
* | GET | ?id | get |
|
|
21
|
-
* | GET | (default)| list |
|
|
22
|
-
* | POST | — | create |
|
|
23
|
-
* | PATCH | start | start |
|
|
24
|
-
* | PATCH | complete | complete |
|
|
25
|
-
* | PATCH | cancel | cancel |
|
|
26
|
-
*
|
|
27
|
-
* **Status FSM:** pending → running → completed | failed | cancelled
|
|
28
|
-
*
|
|
29
|
-
* **Authorization:** All operations use `ctx.db` (RLS-scoped to account).
|
|
30
|
-
* Account context required.
|
|
31
|
-
*
|
|
32
|
-
* **Column reference:**
|
|
33
|
-
* `id`, `pipeline_id`, `status`, `trigger_data`, `result`, `error_message`,
|
|
34
|
-
* `started_at`, `completed_at`, `duration_ms`, `created_by`, `account_id`, `created_at`
|
|
35
|
-
*
|
|
36
|
-
* @seeAlso pipelines.ts (pipeline_id FK source)
|
|
37
|
-
* @seeAlso pipeline-runner.ts (runPipeline — calls create/start/complete)
|
|
38
|
-
* @seeAlso audit.ts (emitLog for pipeline_execution.* events)
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
1
|
import { createHandler, json, error, parseBody } from './_shared/middleware'
|
|
42
2
|
import { emitLog } from './_shared/audit'
|
|
3
|
+
import { adminDb } from './_shared/db'
|
|
4
|
+
import { isSystemAdmin } from './_shared/principal'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
43
14
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
* @inputs ctx: CoreContext — Request context with principal and database
|
|
60
|
-
* @inputs body: any — Request body (unused for GET)
|
|
61
|
-
* @outputs Array of execution records with pipeline and person joins
|
|
62
|
-
* @depends-on [createHandler, SELECT_WITH_JOINS]
|
|
63
|
-
* @depended-by [Netlify function routing]
|
|
64
|
-
* @side-effects [DB queries with joins]
|
|
65
|
-
* @tags pipeline-executions, list, crud, pagination
|
|
66
|
-
*/
|
|
15
|
+
// CIL[BEGIN chunk_id="pipeline-executions_module_header_1783932909" type="module_header" identity="module_header" parent="none"]
|
|
16
|
+
// CIL[DOC-MACRO purpose="Lists pipeline executions with filtering and joins"]
|
|
17
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution listing with filters"]
|
|
18
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
19
|
+
// CIL[DOC-CONTRACT inputs="ctx, body" outputs="Array of execution records" errors="Throws on DB errors" side_effects="Database queries"]
|
|
20
|
+
// CIL[DOC-MICRO logic_summary="Filters executions, applies pagination, returns records" notable_decisions="[]"]
|
|
21
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
22
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
23
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
24
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, \."]
|
|
25
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
26
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
27
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
28
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
29
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
67
30
|
export const list = createHandler(async (ctx, body) => {
|
|
68
31
|
const { pipeline_id, status, limit = 100, offset = 0 } = ctx.query || {}
|
|
32
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
69
33
|
|
|
70
|
-
if (!ctx.accountId) {
|
|
34
|
+
if (!isSystemAdmin(ctx.principal) && !ctx.accountId) {
|
|
71
35
|
throw new Error('Account context required')
|
|
72
36
|
}
|
|
73
37
|
|
|
74
|
-
let query =
|
|
38
|
+
let query = db
|
|
75
39
|
.from('pipeline_executions')
|
|
76
|
-
.select(
|
|
77
|
-
.eq('account_id', ctx.accountId)
|
|
40
|
+
.select('*')
|
|
78
41
|
.order('created_at', { ascending: false })
|
|
79
42
|
|
|
80
43
|
if (pipeline_id) query = query.eq('pipeline_id', pipeline_id)
|
|
@@ -87,25 +50,23 @@ export const list = createHandler(async (ctx, body) => {
|
|
|
87
50
|
|
|
88
51
|
if (err) throw err
|
|
89
52
|
|
|
90
|
-
return data
|
|
53
|
+
return data || []
|
|
91
54
|
})
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
* @tags pipeline-executions, get, crud, single-record
|
|
108
|
-
*/
|
|
55
|
+
// CIL[END chunk_id="pipeline-executions_module_header_1783932909"]
|
|
56
|
+
// CIL[BEGIN chunk_id="pipeline-executions_get_1783932909" type="function" identity="get" parent="none"]
|
|
57
|
+
// CIL[DOC-MACRO purpose="Retrieves single pipeline execution by ID with joins"]
|
|
58
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle individual execution retrieval"]
|
|
59
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
60
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Single execution record" errors="Throws if ID missing or DB error" side_effects="Database query"]
|
|
61
|
+
// CIL[DOC-MICRO logic_summary="Fetches execution by ID with related data" notable_decisions="[]"]
|
|
62
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
63
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
64
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 3. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/layout/Sidebar.tsx, .framework/migrations/025_retype_threads_messages.sql, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
65
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 3. Total affected: 4."]
|
|
66
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
67
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
68
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
69
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
109
70
|
export const get = createHandler(async (ctx, body) => {
|
|
110
71
|
const { id } = ctx.query || {}
|
|
111
72
|
|
|
@@ -113,9 +74,11 @@ export const get = createHandler(async (ctx, body) => {
|
|
|
113
74
|
throw new Error('Execution ID is required')
|
|
114
75
|
}
|
|
115
76
|
|
|
116
|
-
const
|
|
77
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
78
|
+
|
|
79
|
+
const { data, error: err } = await db
|
|
117
80
|
.from('pipeline_executions')
|
|
118
|
-
.select(
|
|
81
|
+
.select('*')
|
|
119
82
|
.eq('id', id)
|
|
120
83
|
.single()
|
|
121
84
|
|
|
@@ -123,23 +86,21 @@ export const get = createHandler(async (ctx, body) => {
|
|
|
123
86
|
|
|
124
87
|
return data
|
|
125
88
|
})
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
* @tags pipeline-executions, create, crud, audit
|
|
142
|
-
*/
|
|
89
|
+
// CIL[END chunk_id="pipeline-executions_get_1783932909"]
|
|
90
|
+
// CIL[BEGIN chunk_id="pipeline-executions_create_1783932909" type="function" identity="create" parent="none"]
|
|
91
|
+
// CIL[DOC-MACRO purpose="Creates pipeline execution record in pending status"]
|
|
92
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution creation with audit logging"]
|
|
93
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
|
|
94
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{execution_id: string}" errors="Throws on validation or DB errors" side_effects="Database insert, audit logging"]
|
|
95
|
+
// CIL[DOC-MICRO logic_summary="Creates execution record, logs audit event" notable_decisions="[]"]
|
|
96
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
97
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
98
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, \."]
|
|
99
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
100
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
101
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
102
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
103
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
143
104
|
export const create = createHandler(async (ctx, body) => {
|
|
144
105
|
const { pipeline_id, trigger_data } = body
|
|
145
106
|
|
|
@@ -172,23 +133,21 @@ export const create = createHandler(async (ctx, body) => {
|
|
|
172
133
|
|
|
173
134
|
return { execution_id: data?.id }
|
|
174
135
|
})
|
|
175
|
-
//
|
|
176
|
-
|
|
177
|
-
//
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
* @tags pipeline-executions, start, state-transition, audit
|
|
191
|
-
*/
|
|
136
|
+
// CIL[END chunk_id="pipeline-executions_create_1783932909"]
|
|
137
|
+
// CIL[BEGIN chunk_id="pipeline-executions_start_1783932909" type="function" identity="start" parent="none"]
|
|
138
|
+
// CIL[DOC-MACRO purpose="Transitions execution from pending to running"]
|
|
139
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution start with timestamp"]
|
|
140
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
141
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
|
|
142
|
+
// CIL[DOC-MICRO logic_summary="Updates status to running, sets start timestamp" notable_decisions="[]"]
|
|
143
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
144
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
145
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
146
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
147
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
148
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
149
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
150
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
192
151
|
export const start = createHandler(async (ctx, body) => {
|
|
193
152
|
const { id } = body
|
|
194
153
|
|
|
@@ -212,23 +171,21 @@ export const start = createHandler(async (ctx, body) => {
|
|
|
212
171
|
|
|
213
172
|
return { success: true }
|
|
214
173
|
})
|
|
215
|
-
//
|
|
216
|
-
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
* @tags pipeline-executions, complete, state-transition, audit
|
|
231
|
-
*/
|
|
174
|
+
// CIL[END chunk_id="pipeline-executions_start_1783932909"]
|
|
175
|
+
// CIL[BEGIN chunk_id="pipeline-executions_complete_1783932909" type="function" identity="complete" parent="none"]
|
|
176
|
+
// CIL[DOC-MACRO purpose="Transitions execution to completed/failed with duration"]
|
|
177
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution completion with metrics"]
|
|
178
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
179
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
|
|
180
|
+
// CIL[DOC-MICRO logic_summary="Calculates duration, updates status, logs completion" notable_decisions="[]"]
|
|
181
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
182
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
183
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
184
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
185
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
186
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
187
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
188
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
232
189
|
export const complete = createHandler(async (ctx, body) => {
|
|
233
190
|
const { id, output_data, error_message } = body
|
|
234
191
|
|
|
@@ -239,7 +196,6 @@ export const complete = createHandler(async (ctx, body) => {
|
|
|
239
196
|
const now = new Date().toISOString()
|
|
240
197
|
const finalStatus = error_message ? 'failed' : 'completed'
|
|
241
198
|
|
|
242
|
-
// Fetch started_at to compute duration
|
|
243
199
|
const { data: existing } = await ctx.db
|
|
244
200
|
.from('pipeline_executions')
|
|
245
201
|
.select('started_at')
|
|
@@ -272,23 +228,21 @@ export const complete = createHandler(async (ctx, body) => {
|
|
|
272
228
|
|
|
273
229
|
return { success: true }
|
|
274
230
|
})
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
* @tags pipeline-executions, cancel, state-transition, audit
|
|
291
|
-
*/
|
|
231
|
+
// CIL[END chunk_id="pipeline-executions_complete_1783932909"]
|
|
232
|
+
// CIL[BEGIN chunk_id="pipeline-executions_cancel_1783932909" type="function" identity="cancel" parent="none"]
|
|
233
|
+
// CIL[DOC-MACRO purpose="Cancels execution by setting status to cancelled"]
|
|
234
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution cancellation with audit"]
|
|
235
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
|
|
236
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
|
|
237
|
+
// CIL[DOC-MICRO logic_summary="Sets status to cancelled, logs audit event" notable_decisions="[]"]
|
|
238
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
239
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
240
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
241
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
242
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
243
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
244
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
245
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
292
246
|
export const cancel = createHandler(async (ctx, body) => {
|
|
293
247
|
const { id } = body
|
|
294
248
|
|
|
@@ -312,34 +266,32 @@ export const cancel = createHandler(async (ctx, body) => {
|
|
|
312
266
|
|
|
313
267
|
return { success: true }
|
|
314
268
|
})
|
|
315
|
-
//
|
|
316
|
-
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
* @tags pipeline-executions, running, status-filter, monitoring
|
|
331
|
-
*/
|
|
269
|
+
// CIL[END chunk_id="pipeline-executions_cancel_1783932909"]
|
|
270
|
+
// CIL[BEGIN chunk_id="pipeline-executions_getrunning_1783932909" type="function" identity="getRunning" parent="none"]
|
|
271
|
+
// CIL[DOC-MACRO purpose="Returns currently running executions with filtering"]
|
|
272
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle running execution monitoring"]
|
|
273
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
274
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Array of running executions" errors="Throws on DB errors" side_effects="Database query"]
|
|
275
|
+
// CIL[DOC-MICRO logic_summary="Filters for running status, returns with joins" notable_decisions="[]"]
|
|
276
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
277
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
278
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
279
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
280
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
281
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
282
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
283
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
332
284
|
export const getRunning = createHandler(async (ctx, body) => {
|
|
333
285
|
const { pipeline_id } = ctx.query || {}
|
|
286
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
334
287
|
|
|
335
|
-
if (!ctx.accountId) {
|
|
288
|
+
if (!isSystemAdmin(ctx.principal) && !ctx.accountId) {
|
|
336
289
|
throw new Error('Account context required')
|
|
337
290
|
}
|
|
338
291
|
|
|
339
|
-
let query =
|
|
292
|
+
let query = db
|
|
340
293
|
.from('pipeline_executions')
|
|
341
|
-
.select(
|
|
342
|
-
.eq('account_id', ctx.accountId)
|
|
294
|
+
.select('*')
|
|
343
295
|
.eq('status', 'running')
|
|
344
296
|
.order('started_at', { ascending: false })
|
|
345
297
|
|
|
@@ -349,36 +301,34 @@ export const getRunning = createHandler(async (ctx, body) => {
|
|
|
349
301
|
|
|
350
302
|
if (err) throw err
|
|
351
303
|
|
|
352
|
-
return data
|
|
304
|
+
return data || []
|
|
353
305
|
})
|
|
354
|
-
//
|
|
355
|
-
|
|
356
|
-
//
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
* @tags pipeline-executions, stats, analytics, monitoring
|
|
370
|
-
*/
|
|
306
|
+
// CIL[END chunk_id="pipeline-executions_getrunning_1783932909"]
|
|
307
|
+
// CIL[BEGIN chunk_id="pipeline-executions_getstats_1783932909" type="function" identity="getStats" parent="none"]
|
|
308
|
+
// CIL[DOC-MACRO purpose="Returns execution statistics by status with filtering"]
|
|
309
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution analytics and monitoring"]
|
|
310
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\"]"]
|
|
311
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Status count statistics" errors="Throws on DB errors" side_effects="Database aggregation"]
|
|
312
|
+
// CIL[DOC-MICRO logic_summary="Counts executions by status with date filtering" notable_decisions="[]"]
|
|
313
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
314
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
315
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 1. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts."]
|
|
316
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 1. Total affected: 1."]
|
|
317
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
318
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
319
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
320
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
371
321
|
export const getStats = createHandler(async (ctx, body) => {
|
|
372
322
|
const { pipeline_id, date_from, date_to } = ctx.query || {}
|
|
323
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
373
324
|
|
|
374
|
-
if (!ctx.accountId) {
|
|
325
|
+
if (!isSystemAdmin(ctx.principal) && !ctx.accountId) {
|
|
375
326
|
throw new Error('Account context required')
|
|
376
327
|
}
|
|
377
328
|
|
|
378
|
-
let query =
|
|
329
|
+
let query = db
|
|
379
330
|
.from('pipeline_executions')
|
|
380
331
|
.select('id, status')
|
|
381
|
-
.eq('account_id', ctx.accountId)
|
|
382
332
|
|
|
383
333
|
if (pipeline_id) query = query.eq('pipeline_id', pipeline_id)
|
|
384
334
|
if (date_from) query = query.gte('created_at', date_from)
|
|
@@ -396,23 +346,21 @@ export const getStats = createHandler(async (ctx, body) => {
|
|
|
396
346
|
running: rows.filter((r: any) => r.status === 'running').length,
|
|
397
347
|
}
|
|
398
348
|
})
|
|
399
|
-
//
|
|
400
|
-
|
|
401
|
-
//
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
* @tags pipeline-executions, cleanup, retention, maintenance
|
|
415
|
-
*/
|
|
349
|
+
// CIL[END chunk_id="pipeline-executions_getstats_1783932909"]
|
|
350
|
+
// CIL[BEGIN chunk_id="pipeline-executions_cleanup_1783932909" type="function" identity="cleanup" parent="none"]
|
|
351
|
+
// CIL[DOC-MACRO purpose="Deletes old execution records beyond retention period"]
|
|
352
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle execution data retention management"]
|
|
353
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
|
|
354
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{deleted_count: number}" errors="Throws on DB errors" side_effects="Database delete, audit logging"]
|
|
355
|
+
// CIL[DOC-MICRO logic_summary="Deletes records older than retention period" notable_decisions="[]"]
|
|
356
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
357
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
358
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
359
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
360
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
361
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
362
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
363
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
416
364
|
export const cleanup = createHandler(async (ctx, body) => {
|
|
417
365
|
const { days_to_keep = 30, status_filter } = body
|
|
418
366
|
|
|
@@ -437,25 +385,21 @@ export const cleanup = createHandler(async (ctx, body) => {
|
|
|
437
385
|
|
|
438
386
|
return { deleted_count: (data || []).length }
|
|
439
387
|
})
|
|
440
|
-
//
|
|
441
|
-
|
|
442
|
-
//
|
|
443
|
-
|
|
444
|
-
//
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
* @depended-by [Netlify function routing, pipeline-runner.ts]
|
|
456
|
-
* @side-effects [Delegates to appropriate handler]
|
|
457
|
-
* @tags pipeline-executions, router, crud, netlify-function
|
|
458
|
-
*/
|
|
388
|
+
// CIL[END chunk_id="pipeline-executions_cleanup_1783932909"]
|
|
389
|
+
// CIL[BEGIN chunk_id="pipeline-executions_handler_1783932909" type="function" identity="handler" parent="none"]
|
|
390
|
+
// CIL[DOC-MACRO purpose="Routes HTTP methods and actions to execution handlers"]
|
|
391
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle request routing for execution operations"]
|
|
392
|
+
// CIL[DOC-CONTEXT module="pipeline-executions" layer="api-handler" related_files="[]"]
|
|
393
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Varies by handler" errors="Throws on unsupported methods" side_effects="Delegates to appropriate handler"]
|
|
394
|
+
// CIL[DOC-MICRO logic_summary="Routes based on action and method, delegates to handlers" notable_decisions="[]"]
|
|
395
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
396
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
397
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
398
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
399
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
400
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
401
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
402
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
459
403
|
export const handler = createHandler(async (ctx, body) => {
|
|
460
404
|
const { action } = ctx.query || {}
|
|
461
405
|
const method = ctx.query?.method || 'GET'
|
|
@@ -491,4 +435,4 @@ export const handler = createHandler(async (ctx, body) => {
|
|
|
491
435
|
|
|
492
436
|
throw new Error('Invalid action or method')
|
|
493
437
|
})
|
|
494
|
-
//
|
|
438
|
+
// CIL[END chunk_id="pipeline-executions_handler_1783932909"]
|