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
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
-- Spine v2 consolidated RLS and functions
|
|
2
|
+
-- Auth/RLS helper functions, foreign keys, and tenant-isolation policies.
|
|
3
|
+
|
|
4
|
+
CREATE OR REPLACE FUNCTION public.get_accessible_accounts(actor_id uuid)
|
|
5
|
+
RETURNS TABLE (account_id uuid) AS $$
|
|
6
|
+
BEGIN
|
|
7
|
+
IF EXISTS (
|
|
8
|
+
SELECT 1 FROM public.people p
|
|
9
|
+
JOIN public.roles r ON p.role_id = r.id
|
|
10
|
+
WHERE p.id = actor_id AND r.slug = 'system_admin'
|
|
11
|
+
) THEN
|
|
12
|
+
RETURN QUERY SELECT a.id FROM public.accounts a;
|
|
13
|
+
RETURN;
|
|
14
|
+
END IF;
|
|
15
|
+
RETURN QUERY
|
|
16
|
+
WITH RECURSIVE account_tree AS (
|
|
17
|
+
SELECT p.account_id as id FROM public.people p WHERE p.id = actor_id
|
|
18
|
+
UNION ALL
|
|
19
|
+
SELECT ap.descendant_id
|
|
20
|
+
FROM public.account_paths ap
|
|
21
|
+
JOIN account_tree at ON ap.ancestor_id = at.id
|
|
22
|
+
)
|
|
23
|
+
SELECT id FROM account_tree;
|
|
24
|
+
END;
|
|
25
|
+
$$ LANGUAGE plpgsql SECURITY DEFINER;
|
|
26
|
+
CREATE OR REPLACE FUNCTION public.current_actor_id()
|
|
27
|
+
RETURNS uuid AS $$
|
|
28
|
+
DECLARE
|
|
29
|
+
v_auth_id UUID;
|
|
30
|
+
v_person_id UUID;
|
|
31
|
+
BEGIN
|
|
32
|
+
v_auth_id := auth.uid();
|
|
33
|
+
|
|
34
|
+
SELECT p.id INTO v_person_id
|
|
35
|
+
FROM public.people p
|
|
36
|
+
WHERE p.auth_uid = v_auth_id AND p.is_active = true
|
|
37
|
+
LIMIT 1;
|
|
38
|
+
|
|
39
|
+
RETURN v_person_id;
|
|
40
|
+
END;
|
|
41
|
+
$$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
|
|
42
|
+
CREATE OR REPLACE FUNCTION public.person_is_system_admin(person_uuid uuid)
|
|
43
|
+
RETURNS boolean AS $$
|
|
44
|
+
BEGIN
|
|
45
|
+
RETURN EXISTS (
|
|
46
|
+
SELECT 1 FROM public.people p
|
|
47
|
+
JOIN public.roles r ON p.role_id = r.id
|
|
48
|
+
WHERE p.id = person_uuid AND r.slug = 'system_admin'
|
|
49
|
+
);
|
|
50
|
+
END;
|
|
51
|
+
$$ LANGUAGE plpgsql STABLE;
|
|
52
|
+
CREATE OR REPLACE FUNCTION public.update_account_paths()
|
|
53
|
+
RETURNS TRIGGER AS $$
|
|
54
|
+
BEGIN
|
|
55
|
+
IF TG_OP = 'INSERT' THEN
|
|
56
|
+
IF NEW.parent_id IS NOT NULL THEN
|
|
57
|
+
INSERT INTO public.account_paths (ancestor_id, descendant_id, depth)
|
|
58
|
+
SELECT ancestor_id, NEW.id, depth + 1 FROM public.account_paths WHERE descendant_id = NEW.parent_id;
|
|
59
|
+
INSERT INTO public.account_paths (ancestor_id, descendant_id, depth) VALUES (NEW.parent_id, NEW.id, 1);
|
|
60
|
+
END IF;
|
|
61
|
+
RETURN NEW;
|
|
62
|
+
END IF;
|
|
63
|
+
IF TG_OP = 'UPDATE' AND OLD.parent_id IS DISTINCT FROM NEW.parent_id THEN
|
|
64
|
+
DELETE FROM public.account_paths WHERE descendant_id = NEW.id;
|
|
65
|
+
IF NEW.parent_id IS NOT NULL THEN
|
|
66
|
+
INSERT INTO public.account_paths (ancestor_id, descendant_id, depth)
|
|
67
|
+
SELECT ancestor_id, NEW.id, depth + 1 FROM public.account_paths WHERE descendant_id = NEW.parent_id;
|
|
68
|
+
INSERT INTO public.account_paths (ancestor_id, descendant_id, depth) VALUES (NEW.parent_id, NEW.id, 1);
|
|
69
|
+
END IF;
|
|
70
|
+
RETURN NEW;
|
|
71
|
+
END IF;
|
|
72
|
+
IF TG_OP = 'DELETE' THEN
|
|
73
|
+
DELETE FROM public.account_paths WHERE descendant_id = OLD.id;
|
|
74
|
+
RETURN OLD;
|
|
75
|
+
END IF;
|
|
76
|
+
RETURN NULL;
|
|
77
|
+
END;
|
|
78
|
+
$$ LANGUAGE plpgsql;
|
|
79
|
+
DROP TRIGGER IF EXISTS account_paths_trigger ON public.accounts;
|
|
80
|
+
CREATE TRIGGER account_paths_trigger
|
|
81
|
+
AFTER INSERT OR UPDATE OR DELETE ON public.accounts
|
|
82
|
+
FOR EACH ROW EXECUTE FUNCTION public.update_account_paths();
|
|
83
|
+
CREATE OR REPLACE FUNCTION public.set_updated_at()
|
|
84
|
+
RETURNS TRIGGER AS $$
|
|
85
|
+
BEGIN
|
|
86
|
+
NEW.updated_at = now();
|
|
87
|
+
RETURN NEW;
|
|
88
|
+
END;
|
|
89
|
+
$$ LANGUAGE plpgsql;
|
|
90
|
+
ALTER TABLE public.accounts ADD CONSTRAINT fk_accounts_parent
|
|
91
|
+
FOREIGN KEY (parent_id) REFERENCES public.accounts(id) ON DELETE SET NULL;
|
|
92
|
+
ALTER TABLE public.accounts ADD CONSTRAINT fk_accounts_type
|
|
93
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
94
|
+
ALTER TABLE public.accounts ADD CONSTRAINT fk_accounts_app
|
|
95
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
96
|
+
ALTER TABLE public.accounts ADD CONSTRAINT fk_accounts_created_by
|
|
97
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
98
|
+
ALTER TABLE public.accounts ADD CONSTRAINT fk_accounts_updated_by
|
|
99
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
100
|
+
ALTER TABLE public.people ADD CONSTRAINT people_account_id_fkey
|
|
101
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
102
|
+
ALTER TABLE public.people ADD CONSTRAINT people_app_id_fkey
|
|
103
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
104
|
+
ALTER TABLE public.people ADD CONSTRAINT people_role_id_fkey
|
|
105
|
+
FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE SET NULL;
|
|
106
|
+
ALTER TABLE public.people ADD CONSTRAINT people_type_id_fkey
|
|
107
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
108
|
+
ALTER TABLE public.people ADD CONSTRAINT people_created_by_fkey
|
|
109
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
110
|
+
ALTER TABLE public.types ADD CONSTRAINT fk_types_app
|
|
111
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
112
|
+
ALTER TABLE public.apps ADD CONSTRAINT fk_apps_account
|
|
113
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE SET NULL;
|
|
114
|
+
ALTER TABLE public.apps ADD CONSTRAINT fk_apps_owner_account
|
|
115
|
+
FOREIGN KEY (owner_account_id) REFERENCES public.accounts(id) ON DELETE SET NULL;
|
|
116
|
+
ALTER TABLE public.roles ADD CONSTRAINT fk_roles_app
|
|
117
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE CASCADE;
|
|
118
|
+
ALTER TABLE public.roles ADD CONSTRAINT fk_roles_account
|
|
119
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
120
|
+
ALTER TABLE public.items ADD CONSTRAINT fk_items_type
|
|
121
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
122
|
+
ALTER TABLE public.items ADD CONSTRAINT fk_items_account
|
|
123
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
124
|
+
ALTER TABLE public.items ADD CONSTRAINT fk_items_app
|
|
125
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
126
|
+
ALTER TABLE public.items ADD CONSTRAINT fk_items_created_by
|
|
127
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
128
|
+
ALTER TABLE public.items ADD CONSTRAINT fk_items_updated_by
|
|
129
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
130
|
+
ALTER TABLE public.threads ADD CONSTRAINT fk_threads_type
|
|
131
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
132
|
+
ALTER TABLE public.threads ADD CONSTRAINT fk_threads_account
|
|
133
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
134
|
+
ALTER TABLE public.threads ADD CONSTRAINT fk_threads_created_by
|
|
135
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
136
|
+
ALTER TABLE public.threads ADD CONSTRAINT fk_threads_updated_by
|
|
137
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
138
|
+
ALTER TABLE public.messages ADD CONSTRAINT fk_messages_type
|
|
139
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
140
|
+
ALTER TABLE public.messages ADD CONSTRAINT fk_messages_account
|
|
141
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
142
|
+
ALTER TABLE public.messages ADD CONSTRAINT fk_messages_thread
|
|
143
|
+
FOREIGN KEY (thread_id) REFERENCES public.threads(id) ON DELETE CASCADE;
|
|
144
|
+
ALTER TABLE public.messages ADD CONSTRAINT fk_messages_created_by
|
|
145
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
146
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT fk_prompt_configs_type
|
|
147
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
148
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT fk_prompt_configs_account
|
|
149
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
150
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT fk_prompt_configs_app
|
|
151
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
152
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT fk_prompt_configs_created_by
|
|
153
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
154
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT fk_prompt_configs_updated_by
|
|
155
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
156
|
+
ALTER TABLE public.pipeline_executions ADD CONSTRAINT fk_pipeline_executions_pipeline
|
|
157
|
+
FOREIGN KEY (pipeline_id) REFERENCES public.pipelines(id) ON DELETE CASCADE;
|
|
158
|
+
ALTER TABLE public.pipeline_executions ADD CONSTRAINT fk_pipeline_executions_account
|
|
159
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
160
|
+
ALTER TABLE public.pipeline_executions ADD CONSTRAINT fk_pipeline_executions_app
|
|
161
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
162
|
+
ALTER TABLE public.pipeline_executions ADD CONSTRAINT fk_pipeline_executions_created_by
|
|
163
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
164
|
+
ALTER TABLE public.test_runs ADD CONSTRAINT fk_test_runs_pipeline_execution
|
|
165
|
+
FOREIGN KEY (pipeline_execution_id) REFERENCES public.pipeline_executions(id) ON DELETE CASCADE;
|
|
166
|
+
ALTER TABLE public.test_runs ADD CONSTRAINT fk_test_runs_account
|
|
167
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
168
|
+
ALTER TABLE public.test_runs ADD CONSTRAINT fk_test_runs_app
|
|
169
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
170
|
+
ALTER TABLE public.test_runs ADD CONSTRAINT fk_test_runs_created_by
|
|
171
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
172
|
+
ALTER TABLE public.invites ADD CONSTRAINT fk_invites_type
|
|
173
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
174
|
+
ALTER TABLE public.invites ADD CONSTRAINT fk_invites_account
|
|
175
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
176
|
+
ALTER TABLE public.invites ADD CONSTRAINT fk_invites_app
|
|
177
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
178
|
+
ALTER TABLE public.invites ADD CONSTRAINT fk_invites_created_by
|
|
179
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
180
|
+
ALTER TABLE public.api_keys ADD CONSTRAINT fk_api_keys_type
|
|
181
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
182
|
+
ALTER TABLE public.api_keys ADD CONSTRAINT fk_api_keys_account
|
|
183
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
184
|
+
ALTER TABLE public.api_keys ADD CONSTRAINT fk_api_keys_app
|
|
185
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
186
|
+
ALTER TABLE public.api_keys ADD CONSTRAINT fk_api_keys_created_by
|
|
187
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
188
|
+
ALTER TABLE public.integrations ADD CONSTRAINT fk_integrations_type
|
|
189
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
190
|
+
ALTER TABLE public.integrations ADD CONSTRAINT fk_integrations_account
|
|
191
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
192
|
+
ALTER TABLE public.integrations ADD CONSTRAINT fk_integrations_app
|
|
193
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
194
|
+
ALTER TABLE public.integrations ADD CONSTRAINT fk_integrations_created_by
|
|
195
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
196
|
+
ALTER TABLE public.ai_agents ADD CONSTRAINT fk_ai_agents_type
|
|
197
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
198
|
+
ALTER TABLE public.ai_agents ADD CONSTRAINT fk_ai_agents_account
|
|
199
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
200
|
+
ALTER TABLE public.ai_agents ADD CONSTRAINT fk_ai_agents_app
|
|
201
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
202
|
+
ALTER TABLE public.ai_agents ADD CONSTRAINT fk_ai_agents_created_by
|
|
203
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
204
|
+
ALTER TABLE public.item_progress ADD CONSTRAINT fk_item_progress_item
|
|
205
|
+
FOREIGN KEY (item_id) REFERENCES public.items(id) ON DELETE CASCADE;
|
|
206
|
+
ALTER TABLE public.item_progress ADD CONSTRAINT fk_item_progress_account
|
|
207
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
208
|
+
ALTER TABLE public.item_progress ADD CONSTRAINT fk_item_progress_app
|
|
209
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
210
|
+
ALTER TABLE public.item_progress ADD CONSTRAINT fk_item_progress_created_by
|
|
211
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
212
|
+
ALTER TABLE public.logs ADD CONSTRAINT fk_logs_type
|
|
213
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
214
|
+
ALTER TABLE public.logs ADD CONSTRAINT fk_logs_account
|
|
215
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
216
|
+
ALTER TABLE public.logs ADD CONSTRAINT fk_logs_app
|
|
217
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
218
|
+
ALTER TABLE public.logs ADD CONSTRAINT fk_logs_created_by
|
|
219
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
220
|
+
ALTER TABLE public.observability ADD CONSTRAINT fk_observability_type
|
|
221
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
222
|
+
ALTER TABLE public.observability ADD CONSTRAINT fk_observability_account
|
|
223
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
224
|
+
ALTER TABLE public.observability ADD CONSTRAINT fk_observability_app
|
|
225
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
226
|
+
ALTER TABLE public.observability ADD CONSTRAINT fk_observability_created_by
|
|
227
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
228
|
+
ALTER TABLE public.timers ADD CONSTRAINT fk_timers_type
|
|
229
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
230
|
+
ALTER TABLE public.timers ADD CONSTRAINT fk_timers_account
|
|
231
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
232
|
+
ALTER TABLE public.timers ADD CONSTRAINT fk_timers_app
|
|
233
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
234
|
+
ALTER TABLE public.timers ADD CONSTRAINT fk_timers_created_by
|
|
235
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
236
|
+
ALTER TABLE public.triggers ADD CONSTRAINT fk_triggers_type
|
|
237
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
238
|
+
ALTER TABLE public.triggers ADD CONSTRAINT fk_triggers_account
|
|
239
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
240
|
+
ALTER TABLE public.triggers ADD CONSTRAINT fk_triggers_app
|
|
241
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
242
|
+
ALTER TABLE public.triggers ADD CONSTRAINT fk_triggers_created_by
|
|
243
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
244
|
+
ALTER TABLE public.roles ADD CONSTRAINT fk_roles_type
|
|
245
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
246
|
+
ALTER TABLE public.roles ADD CONSTRAINT fk_roles_created_by
|
|
247
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
248
|
+
ALTER TABLE public.pipelines ADD CONSTRAINT fk_pipelines_type
|
|
249
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE RESTRICT;
|
|
250
|
+
ALTER TABLE public.pipelines ADD CONSTRAINT fk_pipelines_account
|
|
251
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE;
|
|
252
|
+
ALTER TABLE public.pipelines ADD CONSTRAINT fk_pipelines_app
|
|
253
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
254
|
+
ALTER TABLE public.pipelines ADD CONSTRAINT fk_pipelines_created_by
|
|
255
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
256
|
+
ALTER TABLE public.people ADD CONSTRAINT people_role_id_fkey
|
|
257
|
+
FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE SET NULL;
|
|
258
|
+
ALTER TABLE public.accounts ADD CONSTRAINT accounts_app_id_fkey
|
|
259
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
260
|
+
ALTER TABLE public.accounts ADD CONSTRAINT accounts_type_id_fkey
|
|
261
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE SET NULL;
|
|
262
|
+
ALTER TABLE public.people ADD CONSTRAINT people_app_id_fkey
|
|
263
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
264
|
+
ALTER TABLE public.people ADD CONSTRAINT people_type_id_fkey
|
|
265
|
+
FOREIGN KEY (type_id) REFERENCES public.types(id) ON DELETE SET NULL;
|
|
266
|
+
ALTER TABLE public.types ADD CONSTRAINT types_app_id_fkey
|
|
267
|
+
FOREIGN KEY (app_id) REFERENCES public.apps(id) ON DELETE SET NULL;
|
|
268
|
+
ALTER TABLE public.apps ADD CONSTRAINT apps_account_id_fkey
|
|
269
|
+
FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE SET NULL;
|
|
270
|
+
ALTER TABLE public.apps ADD CONSTRAINT apps_owner_account_id_fkey
|
|
271
|
+
FOREIGN KEY (owner_account_id) REFERENCES public.accounts(id) ON DELETE SET NULL;
|
|
272
|
+
ALTER TABLE public.items ADD CONSTRAINT items_created_by_fkey
|
|
273
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
274
|
+
ALTER TABLE public.items ADD CONSTRAINT items_updated_by_fkey
|
|
275
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
276
|
+
ALTER TABLE public.threads ADD CONSTRAINT threads_created_by_fkey
|
|
277
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
278
|
+
ALTER TABLE public.threads ADD CONSTRAINT threads_updated_by_fkey
|
|
279
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
280
|
+
ALTER TABLE public.messages ADD CONSTRAINT messages_created_by_fkey
|
|
281
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
282
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT prompt_configs_created_by_fkey
|
|
283
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
284
|
+
ALTER TABLE public.prompt_configs ADD CONSTRAINT prompt_configs_updated_by_fkey
|
|
285
|
+
FOREIGN KEY (updated_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
286
|
+
ALTER TABLE public.pipeline_executions ADD CONSTRAINT pipeline_executions_created_by_fkey
|
|
287
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
288
|
+
ALTER TABLE public.test_runs ADD CONSTRAINT test_runs_created_by_fkey
|
|
289
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
290
|
+
ALTER TABLE public.invites ADD CONSTRAINT invites_created_by_fkey
|
|
291
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
292
|
+
ALTER TABLE public.api_keys ADD CONSTRAINT api_keys_created_by_fkey
|
|
293
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
294
|
+
ALTER TABLE public.integrations ADD CONSTRAINT integrations_created_by_fkey
|
|
295
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
296
|
+
ALTER TABLE public.ai_agents ADD CONSTRAINT ai_agents_created_by_fkey
|
|
297
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
298
|
+
ALTER TABLE public.item_progress ADD CONSTRAINT item_progress_created_by_fkey
|
|
299
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
300
|
+
ALTER TABLE public.logs ADD CONSTRAINT logs_created_by_fkey
|
|
301
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
302
|
+
ALTER TABLE public.observability ADD CONSTRAINT observability_created_by_fkey
|
|
303
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
304
|
+
ALTER TABLE public.timers ADD CONSTRAINT timers_created_by_fkey
|
|
305
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
306
|
+
ALTER TABLE public.triggers ADD CONSTRAINT triggers_created_by_fkey
|
|
307
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
308
|
+
ALTER TABLE public.roles ADD CONSTRAINT roles_created_by_fkey
|
|
309
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
310
|
+
ALTER TABLE public.pipelines ADD CONSTRAINT pipelines_created_by_fkey
|
|
311
|
+
FOREIGN KEY (created_by) REFERENCES public.people(id) ON DELETE SET NULL;
|
|
312
|
+
DROP TRIGGER IF EXISTS set_updated_at_accounts ON public.accounts;
|
|
313
|
+
CREATE TRIGGER set_updated_at_accounts
|
|
314
|
+
BEFORE UPDATE ON public.accounts
|
|
315
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
316
|
+
|
|
317
|
+
DROP TRIGGER IF EXISTS set_updated_at_people ON public.people;
|
|
318
|
+
CREATE TRIGGER set_updated_at_people
|
|
319
|
+
BEFORE UPDATE ON public.people
|
|
320
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
321
|
+
|
|
322
|
+
DROP TRIGGER IF EXISTS set_updated_at_types ON public.types;
|
|
323
|
+
CREATE TRIGGER set_updated_at_types
|
|
324
|
+
BEFORE UPDATE ON public.types
|
|
325
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
326
|
+
|
|
327
|
+
DROP TRIGGER IF EXISTS set_updated_at_apps ON public.apps;
|
|
328
|
+
CREATE TRIGGER set_updated_at_apps
|
|
329
|
+
BEFORE UPDATE ON public.apps
|
|
330
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
331
|
+
|
|
332
|
+
DROP TRIGGER IF EXISTS set_updated_at_items ON public.items;
|
|
333
|
+
CREATE TRIGGER set_updated_at_items
|
|
334
|
+
BEFORE UPDATE ON public.items
|
|
335
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
336
|
+
|
|
337
|
+
DROP TRIGGER IF EXISTS set_updated_at_threads ON public.threads;
|
|
338
|
+
CREATE TRIGGER set_updated_at_threads
|
|
339
|
+
BEFORE UPDATE ON public.threads
|
|
340
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
341
|
+
|
|
342
|
+
DROP TRIGGER IF EXISTS set_updated_at_messages ON public.messages;
|
|
343
|
+
CREATE TRIGGER set_updated_at_messages
|
|
344
|
+
BEFORE UPDATE ON public.messages
|
|
345
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
346
|
+
|
|
347
|
+
DROP TRIGGER IF EXISTS set_updated_at_prompt_configs ON public.prompt_configs;
|
|
348
|
+
CREATE TRIGGER set_updated_at_prompt_configs
|
|
349
|
+
BEFORE UPDATE ON public.prompt_configs
|
|
350
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
351
|
+
|
|
352
|
+
DROP TRIGGER IF EXISTS set_updated_at_pipeline_executions ON public.pipeline_executions;
|
|
353
|
+
CREATE TRIGGER set_updated_at_pipeline_executions
|
|
354
|
+
BEFORE UPDATE ON public.pipeline_executions
|
|
355
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
356
|
+
|
|
357
|
+
DROP TRIGGER IF EXISTS set_updated_at_test_runs ON public.test_runs;
|
|
358
|
+
CREATE TRIGGER set_updated_at_test_runs
|
|
359
|
+
BEFORE UPDATE ON public.test_runs
|
|
360
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
361
|
+
|
|
362
|
+
DROP TRIGGER IF EXISTS set_updated_at_invites ON public.invites;
|
|
363
|
+
CREATE TRIGGER set_updated_at_invites
|
|
364
|
+
BEFORE UPDATE ON public.invites
|
|
365
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
366
|
+
|
|
367
|
+
DROP TRIGGER IF EXISTS set_updated_at_api_keys ON public.api_keys;
|
|
368
|
+
CREATE TRIGGER set_updated_at_api_keys
|
|
369
|
+
BEFORE UPDATE ON public.api_keys
|
|
370
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
371
|
+
|
|
372
|
+
DROP TRIGGER IF EXISTS set_updated_at_integrations ON public.integrations;
|
|
373
|
+
CREATE TRIGGER set_updated_at_integrations
|
|
374
|
+
BEFORE UPDATE ON public.integrations
|
|
375
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
376
|
+
|
|
377
|
+
DROP TRIGGER IF EXISTS set_updated_at_ai_agents ON public.ai_agents;
|
|
378
|
+
CREATE TRIGGER set_updated_at_ai_agents
|
|
379
|
+
BEFORE UPDATE ON public.ai_agents
|
|
380
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
381
|
+
|
|
382
|
+
DROP TRIGGER IF EXISTS set_updated_at_item_progress ON public.item_progress;
|
|
383
|
+
CREATE TRIGGER set_updated_at_item_progress
|
|
384
|
+
BEFORE UPDATE ON public.item_progress
|
|
385
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
386
|
+
|
|
387
|
+
DROP TRIGGER IF EXISTS set_updated_at_logs ON public.logs;
|
|
388
|
+
CREATE TRIGGER set_updated_at_logs
|
|
389
|
+
BEFORE UPDATE ON public.logs
|
|
390
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
391
|
+
|
|
392
|
+
DROP TRIGGER IF EXISTS set_updated_at_observability ON public.observability;
|
|
393
|
+
CREATE TRIGGER set_updated_at_observability
|
|
394
|
+
BEFORE UPDATE ON public.observability
|
|
395
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
396
|
+
|
|
397
|
+
DROP TRIGGER IF EXISTS set_updated_at_timers ON public.timers;
|
|
398
|
+
CREATE TRIGGER set_updated_at_timers
|
|
399
|
+
BEFORE UPDATE ON public.timers
|
|
400
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
401
|
+
|
|
402
|
+
DROP TRIGGER IF EXISTS set_updated_at_triggers ON public.triggers;
|
|
403
|
+
CREATE TRIGGER set_updated_at_triggers
|
|
404
|
+
BEFORE UPDATE ON public.triggers
|
|
405
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
406
|
+
|
|
407
|
+
DROP TRIGGER IF EXISTS set_updated_at_roles ON public.roles;
|
|
408
|
+
CREATE TRIGGER set_updated_at_roles
|
|
409
|
+
BEFORE UPDATE ON public.roles
|
|
410
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
411
|
+
|
|
412
|
+
DROP TRIGGER IF EXISTS set_updated_at_pipelines ON public.pipelines;
|
|
413
|
+
CREATE TRIGGER set_updated_at_pipelines
|
|
414
|
+
BEFORE UPDATE ON public.pipelines
|
|
415
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
416
|
+
|
|
417
|
+
DROP TRIGGER IF EXISTS set_updated_at_account_paths ON public.account_paths;
|
|
418
|
+
CREATE TRIGGER set_updated_at_account_paths
|
|
419
|
+
BEFORE UPDATE ON public.account_paths
|
|
420
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
421
|
+
|
|
422
|
+
DROP TRIGGER IF EXISTS set_updated_at_people_roles ON public.people_roles;
|
|
423
|
+
CREATE TRIGGER set_updated_at_people_roles
|
|
424
|
+
BEFORE UPDATE ON public.people_roles
|
|
425
|
+
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
|
426
|
+
|
|
427
|
+
-- RLS policies
|
|
428
|
+
|
|
429
|
+
CREATE POLICY accounts_access ON public.accounts FOR ALL
|
|
430
|
+
USING (id IN (SELECT public.get_accessible_accounts(public.current_actor_id()))
|
|
431
|
+
);
|
|
432
|
+
|
|
433
|
+
CREATE POLICY people_access ON public.people FOR ALL
|
|
434
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(public.current_actor_id()))
|
|
435
|
+
);
|
|
436
|
+
|
|
437
|
+
CREATE POLICY types_access ON public.types FOR ALL
|
|
438
|
+
USING (public.current_actor_id() IS NOT NULL OR true);
|
|
439
|
+
|
|
440
|
+
CREATE POLICY apps_access ON public.apps FOR ALL
|
|
441
|
+
USING (is_system = true OR owner_account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
442
|
+
);
|
|
443
|
+
|
|
444
|
+
CREATE POLICY roles_read ON public.roles FOR SELECT USING (true);
|
|
445
|
+
|
|
446
|
+
CREATE POLICY roles_modify ON public.roles FOR ALL
|
|
447
|
+
USING ((is_system = true AND public.person_is_system_admin(public.current_actor_id()))
|
|
448
|
+
OR is_system = false );
|
|
449
|
+
|
|
450
|
+
CREATE POLICY items_access ON public.items FOR ALL
|
|
451
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(public.current_actor_id()))
|
|
452
|
+
);
|
|
453
|
+
|
|
454
|
+
CREATE POLICY threads_access ON public.threads FOR ALL
|
|
455
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
456
|
+
);
|
|
457
|
+
|
|
458
|
+
CREATE POLICY messages_access ON public.messages FOR ALL
|
|
459
|
+
USING (EXISTS (SELECT 1 FROM public.threads t
|
|
460
|
+
WHERE t.id = messages.thread_id
|
|
461
|
+
AND t.account_id IN (SELECT public.get_accessible_accounts(auth.uid())))
|
|
462
|
+
);
|
|
463
|
+
|
|
464
|
+
CREATE POLICY links_access ON public.links FOR ALL
|
|
465
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
466
|
+
);
|
|
467
|
+
|
|
468
|
+
CREATE POLICY attachments_access ON public.attachments FOR ALL
|
|
469
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
470
|
+
);
|
|
471
|
+
|
|
472
|
+
CREATE POLICY watchers_access ON public.watchers FOR ALL
|
|
473
|
+
USING (auth.uid() IS NOT NULL OR true);
|
|
474
|
+
|
|
475
|
+
CREATE POLICY link_types_access ON public.link_types FOR ALL
|
|
476
|
+
USING (app_id IS NULL
|
|
477
|
+
OR EXISTS (SELECT 1 FROM public.apps a WHERE a.id = link_types.app_id
|
|
478
|
+
AND a.owner_account_id IN (SELECT public.get_accessible_accounts(auth.uid())))
|
|
479
|
+
);
|
|
480
|
+
|
|
481
|
+
CREATE POLICY pipelines_access ON public.pipelines FOR ALL
|
|
482
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
483
|
+
);
|
|
484
|
+
|
|
485
|
+
CREATE POLICY pe_access ON public.pipeline_executions FOR ALL
|
|
486
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
487
|
+
);
|
|
488
|
+
|
|
489
|
+
CREATE POLICY triggers_access ON public.triggers FOR ALL
|
|
490
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
491
|
+
);
|
|
492
|
+
|
|
493
|
+
CREATE POLICY te_access ON public.trigger_executions FOR ALL
|
|
494
|
+
USING (EXISTS (SELECT 1 FROM public.triggers t
|
|
495
|
+
WHERE t.id = trigger_executions.trigger_id
|
|
496
|
+
AND t.account_id IN (SELECT public.get_accessible_accounts(auth.uid())))
|
|
497
|
+
);
|
|
498
|
+
|
|
499
|
+
CREATE POLICY timers_access ON public.timers FOR ALL
|
|
500
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
501
|
+
);
|
|
502
|
+
|
|
503
|
+
CREATE POLICY ai_agents_access ON public.ai_agents FOR ALL
|
|
504
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
505
|
+
);
|
|
506
|
+
|
|
507
|
+
CREATE POLICY embeddings_access ON public.embeddings FOR ALL
|
|
508
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
509
|
+
);
|
|
510
|
+
|
|
511
|
+
CREATE POLICY integrations_access ON public.integrations FOR ALL
|
|
512
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
513
|
+
);
|
|
514
|
+
|
|
515
|
+
CREATE POLICY prompt_configs_access ON public.prompt_configs FOR ALL
|
|
516
|
+
USING ((app_id IS NULL OR EXISTS (SELECT 1 FROM public.apps a
|
|
517
|
+
WHERE a.id = prompt_configs.app_id
|
|
518
|
+
AND (a.is_system = true
|
|
519
|
+
OR a.owner_account_id IN (SELECT public.get_accessible_accounts(auth.uid())))))
|
|
520
|
+
);
|
|
521
|
+
|
|
522
|
+
CREATE POLICY api_keys_access ON public.api_keys FOR ALL
|
|
523
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
524
|
+
OR id = auth.uid() );
|
|
525
|
+
|
|
526
|
+
CREATE POLICY akul_access ON public.api_key_usage_logs FOR ALL
|
|
527
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
528
|
+
);
|
|
529
|
+
|
|
530
|
+
CREATE POLICY logs_access ON public.logs FOR ALL
|
|
531
|
+
USING (account_id IN (SELECT public.get_accessible_accounts(auth.uid()))
|
|
532
|
+
);
|