teamcopilot 0.0.1
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/.env.example +10 -0
- package/LICENSE.md +21 -0
- package/README.md +131 -0
- package/bin/teamcopilot.js +281 -0
- package/dist/auth/index.js +189 -0
- package/dist/change-user-role.js +77 -0
- package/dist/chat/index.js +849 -0
- package/dist/constants.js +2 -0
- package/dist/create-user.js +98 -0
- package/dist/cronjob/index.js +16 -0
- package/dist/cronjob/resource-reconciliation.js +33 -0
- package/dist/delete-user.js +66 -0
- package/dist/frontend/assets/abap-CRCWOmpq.js +1 -0
- package/dist/frontend/assets/apex-DnsZk_dE.js +1 -0
- package/dist/frontend/assets/azcli-1IWB1ccx.js +1 -0
- package/dist/frontend/assets/bat-DPkNLes8.js +1 -0
- package/dist/frontend/assets/bicep-Corcdgou.js +2 -0
- package/dist/frontend/assets/cameligo-CGrWLZr3.js +1 -0
- package/dist/frontend/assets/clojure-D9WOWImG.js +1 -0
- package/dist/frontend/assets/codicon-DCmgc-ay.ttf +0 -0
- package/dist/frontend/assets/coffee-B7EJu28W.js +1 -0
- package/dist/frontend/assets/cpp-SEyurbux.js +1 -0
- package/dist/frontend/assets/csharp-BoL64M5l.js +1 -0
- package/dist/frontend/assets/csp-C46ZqvIl.js +1 -0
- package/dist/frontend/assets/css-DQU6DXDx.js +3 -0
- package/dist/frontend/assets/cssMode-BDT3WbVs.js +4 -0
- package/dist/frontend/assets/cypher-D84EuPTj.js +1 -0
- package/dist/frontend/assets/dart-D8lhlL1r.js +1 -0
- package/dist/frontend/assets/dockerfile-DLk6rpji.js +1 -0
- package/dist/frontend/assets/ecl-BO6FnfXk.js +1 -0
- package/dist/frontend/assets/editor.worker-B4pQIWZD.js +12 -0
- package/dist/frontend/assets/elixir-BRjLKONM.js +1 -0
- package/dist/frontend/assets/flow9-Cac8vKd7.js +1 -0
- package/dist/frontend/assets/freemarker2-C7-hEgID.js +3 -0
- package/dist/frontend/assets/fsharp-fd1GTHhf.js +1 -0
- package/dist/frontend/assets/go-O9LJTZXk.js +1 -0
- package/dist/frontend/assets/graphql-LQdxqEYJ.js +1 -0
- package/dist/frontend/assets/handlebars-4cwTkPir.js +1 -0
- package/dist/frontend/assets/hcl-DxDQ3s82.js +1 -0
- package/dist/frontend/assets/html-YNfE1Q0A.js +1 -0
- package/dist/frontend/assets/htmlMode-opTQ1HoB.js +4 -0
- package/dist/frontend/assets/index-DWyaVa1h.js +782 -0
- package/dist/frontend/assets/index-lXrsgeTF.css +1 -0
- package/dist/frontend/assets/ini-BvajGCUy.js +1 -0
- package/dist/frontend/assets/java-SYsfObOQ.js +1 -0
- package/dist/frontend/assets/javascript-BEwGzk7T.js +1 -0
- package/dist/frontend/assets/jsonMode-CGhIS5Al.js +10 -0
- package/dist/frontend/assets/julia-DQXNmw_w.js +1 -0
- package/dist/frontend/assets/kotlin-qQ0MG-9I.js +1 -0
- package/dist/frontend/assets/less-GGFNNJHn.js +2 -0
- package/dist/frontend/assets/lexon-Canl7DCW.js +1 -0
- package/dist/frontend/assets/liquid-QekTGCGJ.js +1 -0
- package/dist/frontend/assets/lua-D28Ae8-K.js +1 -0
- package/dist/frontend/assets/m3-DPitgjJI.js +1 -0
- package/dist/frontend/assets/markdown-B811l8j2.js +1 -0
- package/dist/frontend/assets/mdx-BAVDaB7v.js +1 -0
- package/dist/frontend/assets/mips-CdjsipkG.js +1 -0
- package/dist/frontend/assets/msdax-CYqgjx_P.js +1 -0
- package/dist/frontend/assets/mysql-BHd6q0vd.js +1 -0
- package/dist/frontend/assets/objective-c-B1aVtJYH.js +1 -0
- package/dist/frontend/assets/pascal-BhNW15KB.js +1 -0
- package/dist/frontend/assets/pascaligo-5jv8CcQD.js +1 -0
- package/dist/frontend/assets/perl-DlYyT36c.js +1 -0
- package/dist/frontend/assets/pgsql-Dy0bjov7.js +1 -0
- package/dist/frontend/assets/php-120yhfDK.js +1 -0
- package/dist/frontend/assets/pla-CjnFlu4u.js +1 -0
- package/dist/frontend/assets/postiats-CQpG440k.js +1 -0
- package/dist/frontend/assets/powerquery-DdJtto1Z.js +1 -0
- package/dist/frontend/assets/powershell-Bu_VLpJB.js +1 -0
- package/dist/frontend/assets/protobuf-IBS6jZEB.js +2 -0
- package/dist/frontend/assets/pug-kFxLfcjb.js +1 -0
- package/dist/frontend/assets/python-BQlHw7XO.js +1 -0
- package/dist/frontend/assets/qsharp-q7JyzKFN.js +1 -0
- package/dist/frontend/assets/r-BIFz-_sK.js +1 -0
- package/dist/frontend/assets/razor-Be3Wwc2E.js +1 -0
- package/dist/frontend/assets/redis-CHOsPHWR.js +1 -0
- package/dist/frontend/assets/redshift-CBifECDb.js +1 -0
- package/dist/frontend/assets/restructuredtext-CghPJEOS.js +1 -0
- package/dist/frontend/assets/ruby-CYWGW-b1.js +1 -0
- package/dist/frontend/assets/rust-DMDD0SHb.js +1 -0
- package/dist/frontend/assets/sb-BYAiYHFx.js +1 -0
- package/dist/frontend/assets/scala-Bqvq8jcR.js +1 -0
- package/dist/frontend/assets/scheme-Dhb-2j9p.js +1 -0
- package/dist/frontend/assets/scss-CTwUZ5N7.js +3 -0
- package/dist/frontend/assets/shell-CsDZo4DB.js +1 -0
- package/dist/frontend/assets/solidity-CME5AdoB.js +1 -0
- package/dist/frontend/assets/sophia-RYC1BQQz.js +1 -0
- package/dist/frontend/assets/sparql-KEyrF7De.js +1 -0
- package/dist/frontend/assets/sql-BdTr02Mf.js +1 -0
- package/dist/frontend/assets/st-C7iG7M4S.js +1 -0
- package/dist/frontend/assets/swift-D7IUmUK8.js +1 -0
- package/dist/frontend/assets/systemverilog-DgMryOEJ.js +1 -0
- package/dist/frontend/assets/tcl-PloMZuKG.js +1 -0
- package/dist/frontend/assets/tsMode-CIBFoN3z.js +11 -0
- package/dist/frontend/assets/twig-BfRIq3la.js +1 -0
- package/dist/frontend/assets/typescript-BuV9wEIE.js +1 -0
- package/dist/frontend/assets/typespec-CzxlYoT_.js +1 -0
- package/dist/frontend/assets/vb-BwAE3J76.js +1 -0
- package/dist/frontend/assets/wgsl-B_1kOXbF.js +298 -0
- package/dist/frontend/assets/xml-DcDKYaM4.js +1 -0
- package/dist/frontend/assets/yaml-CuBNmOuI.js +1 -0
- package/dist/frontend/index.html +14 -0
- package/dist/frontend/logo.svg +50 -0
- package/dist/index.js +169 -0
- package/dist/logging.js +30 -0
- package/dist/opencode-auth/index.js +122 -0
- package/dist/opencode-server.js +91 -0
- package/dist/prisma/client.js +38 -0
- package/dist/reset-password.js +73 -0
- package/dist/rotate-jwt-secret.js +20 -0
- package/dist/scripts/prisma-workspace.js +34 -0
- package/dist/skills/index.js +311 -0
- package/dist/types/permissions.js +2 -0
- package/dist/types/shared/permissions.js +17 -0
- package/dist/types/shared/skill.js +17 -0
- package/dist/types/shared/workflow-files.js +17 -0
- package/dist/types/shared/workflow.js +17 -0
- package/dist/types/skill.js +2 -0
- package/dist/types/workflow-files.js +2 -0
- package/dist/types/workflow.js +2 -0
- package/dist/users/index.js +22 -0
- package/dist/utils/approval-snapshot-common.js +596 -0
- package/dist/utils/assert.js +20 -0
- package/dist/utils/chat-session.js +44 -0
- package/dist/utils/cli-bootstrap.js +26 -0
- package/dist/utils/index.js +95 -0
- package/dist/utils/jwt-secret.js +63 -0
- package/dist/utils/opencode-auth.js +126 -0
- package/dist/utils/opencode-client.js +109 -0
- package/dist/utils/password-policy.js +12 -0
- package/dist/utils/permission-common.js +280 -0
- package/dist/utils/redact.js +108 -0
- package/dist/utils/resource-access.js +37 -0
- package/dist/utils/resource-file-routes.js +115 -0
- package/dist/utils/resource-files.js +572 -0
- package/dist/utils/runtime-paths.js +61 -0
- package/dist/utils/session-abort.js +52 -0
- package/dist/utils/skill-approval-snapshot.js +39 -0
- package/dist/utils/skill-files.js +17 -0
- package/dist/utils/skill-permissions.js +15 -0
- package/dist/utils/skill.js +217 -0
- package/dist/utils/user-role.js +14 -0
- package/dist/utils/workflow-approval-snapshot.js +38 -0
- package/dist/utils/workflow-files.js +17 -0
- package/dist/utils/workflow-interruption.js +50 -0
- package/dist/utils/workflow-permissions.js +27 -0
- package/dist/utils/workflow-runner.js +414 -0
- package/dist/utils/workflow.js +158 -0
- package/dist/utils/workspace-sync.js +204 -0
- package/dist/workflows/index.js +751 -0
- package/dist/workspace_files/.opencode/opencode.json +17 -0
- package/dist/workspace_files/.opencode/package.json +14 -0
- package/dist/workspace_files/.opencode/plugins/createSkill.ts +339 -0
- package/dist/workspace_files/.opencode/plugins/createWorkflow.ts +345 -0
- package/dist/workspace_files/.opencode/plugins/findSimilarWorkflow.ts +173 -0
- package/dist/workspace_files/.opencode/plugins/findSkill.ts +211 -0
- package/dist/workspace_files/.opencode/plugins/getSkillContent.ts +135 -0
- package/dist/workspace_files/.opencode/plugins/honeytoken-protection.ts +64 -0
- package/dist/workspace_files/.opencode/plugins/listAvailableSkills.ts +93 -0
- package/dist/workspace_files/.opencode/plugins/listAvailableWorkflows.ts +93 -0
- package/dist/workspace_files/.opencode/plugins/python-protection.ts +184 -0
- package/dist/workspace_files/.opencode/plugins/runWorkflow.ts +168 -0
- package/dist/workspace_files/.opencode/tsconfig.json +16 -0
- package/dist/workspace_files/AGENTS.md +483 -0
- package/dist/workspace_files/package-lock.json +167 -0
- package/dist/workspace_files/package.json +5 -0
- package/package.json +86 -0
- package/prisma/migrations/20260203040755_init/migration.sql +20 -0
- package/prisma/migrations/20260204034845_replace_google_auth_with_email_password/migration.sql +25 -0
- package/prisma/migrations/20260207022226_add_user_role/migration.sql +25 -0
- package/prisma/migrations/20260210161254_add_workflow_runs/migration.sql +16 -0
- package/prisma/migrations/20260211050606_adds_workflow_table/migration.sql +40 -0
- package/prisma/migrations/20260211050750_adds_fkey_constraint/migration.sql +21 -0
- package/prisma/migrations/20260211051912_removes_workflow_table/migration.sql +34 -0
- package/prisma/migrations/20260211052238_changes_workflow_id_to_slug/migration.sql +27 -0
- package/prisma/migrations/20260212051912_add_output_to_workflow_runs/migration.sql +2 -0
- package/prisma/migrations/20260213073006_add_chat_sessions/migration.sql +13 -0
- package/prisma/migrations/20260216053202_add_chat_sessions_opencode_session_id_idx/migration.sql +2 -0
- package/prisma/migrations/20260216053237_drop_redundant_chat_sessions_opencode_idx/migration.sql +2 -0
- package/prisma/migrations/20260219060705_makes/migration.sql +24 -0
- package/prisma/migrations/20260222040542_add_workflow_execution_permissions/migration.sql +18 -0
- package/prisma/migrations/20260222040815_remove_workflow_execution_permissions/migration.sql +10 -0
- package/prisma/migrations/20260222041348_add_workflow_execution_permissions_final/migration.sql +17 -0
- package/prisma/migrations/20260222041741_rename_to_tool_execution_permissions/migration.sql +30 -0
- package/prisma/migrations/20260222041826_simplify_tool_execution_permissions/migration.sql +29 -0
- package/prisma/migrations/20260222041950_add_fields_for_standalone_permissions/migration.sql +32 -0
- package/prisma/migrations/20260222042954_simplify_tool_permissions_table/migration.sql +27 -0
- package/prisma/migrations/20260223073902_add_workflow_run_permissions_tables/migration.sql +23 -0
- package/prisma/migrations/20260225025151_add_workflow_metadata/migration.sql +16 -0
- package/prisma/migrations/20260225031035_merge_workflow_permissions_into_metadata/migration.sql +44 -0
- package/prisma/migrations/20260225031752_removes_default_for_run_permission_mode/migration.sql +20 -0
- package/prisma/migrations/20260225033603_remove_workflow_metadata_user_fkeys/migration.sql +18 -0
- package/prisma/migrations/20260225043032_restore_workflow_metadata_user_fkeys/migration.sql +20 -0
- package/prisma/migrations/20260225091423_add_workflow_approved_snapshots/migration.sql +28 -0
- package/prisma/migrations/20260226032121_add_is_approved_to_workflow_metadata/migration.sql +21 -0
- package/prisma/migrations/20260226032444_undoes_last_db_change/migration.sql +26 -0
- package/prisma/migrations/20260227120000_remove_snapshot_hash_from_approved_snapshots/migration.sql +16 -0
- package/prisma/migrations/20260228071125_adds_workspace_path_to_snapshot_table/migration.sql +22 -0
- package/prisma/migrations/20260228071217_modifies_index_and_removes_default_value/migration.sql +22 -0
- package/prisma/migrations/20260228071710_undoes_previous/migration.sql +27 -0
- package/prisma/migrations/20260228105022_add_must_change_password_first_login/migration.sql +20 -0
- package/prisma/migrations/20260301115439_add_workflow_run_log_refs/migration.sql +8 -0
- package/prisma/migrations/20260301122557_add_workflow_aborted_sessions/migration.sql +5 -0
- package/prisma/migrations/20260302045545_move_workflow_run_log_refs_into_workflow_runs/migration.sql +17 -0
- package/prisma/migrations/20260303040318_add_skill_tables/migration.sql +61 -0
- package/prisma/migrations/20260303051533_unify_resource_permissions/migration.sql +97 -0
- package/prisma/migrations/20260303064255_unify_resource_metadata_and_snapshots/migration.sql +179 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +147 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_metadata" (
|
|
5
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"created_by_user_id" TEXT,
|
|
7
|
+
"approved_by_user_id" TEXT,
|
|
8
|
+
"run_permission_mode" TEXT NOT NULL,
|
|
9
|
+
"created_at" BIGINT NOT NULL,
|
|
10
|
+
"updated_at" BIGINT NOT NULL
|
|
11
|
+
);
|
|
12
|
+
INSERT INTO "new_workflow_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug" FROM "workflow_metadata";
|
|
13
|
+
DROP TABLE "workflow_metadata";
|
|
14
|
+
ALTER TABLE "new_workflow_metadata" RENAME TO "workflow_metadata";
|
|
15
|
+
CREATE INDEX "workflow_metadata_created_by_user_id_idx" ON "workflow_metadata"("created_by_user_id");
|
|
16
|
+
CREATE INDEX "workflow_metadata_approved_by_user_id_idx" ON "workflow_metadata"("approved_by_user_id");
|
|
17
|
+
PRAGMA foreign_keys=ON;
|
|
18
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_metadata" (
|
|
5
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"created_by_user_id" TEXT,
|
|
7
|
+
"approved_by_user_id" TEXT,
|
|
8
|
+
"run_permission_mode" TEXT NOT NULL,
|
|
9
|
+
"created_at" BIGINT NOT NULL,
|
|
10
|
+
"updated_at" BIGINT NOT NULL,
|
|
11
|
+
CONSTRAINT "workflow_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
12
|
+
CONSTRAINT "workflow_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
13
|
+
);
|
|
14
|
+
INSERT INTO "new_workflow_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug" FROM "workflow_metadata";
|
|
15
|
+
DROP TABLE "workflow_metadata";
|
|
16
|
+
ALTER TABLE "new_workflow_metadata" RENAME TO "workflow_metadata";
|
|
17
|
+
CREATE INDEX "workflow_metadata_created_by_user_id_idx" ON "workflow_metadata"("created_by_user_id");
|
|
18
|
+
CREATE INDEX "workflow_metadata_approved_by_user_id_idx" ON "workflow_metadata"("approved_by_user_id");
|
|
19
|
+
PRAGMA foreign_keys=ON;
|
|
20
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "workflow_approved_snapshots" (
|
|
3
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"snapshot_hash" TEXT NOT NULL,
|
|
5
|
+
"file_count" INTEGER NOT NULL,
|
|
6
|
+
"created_at" BIGINT NOT NULL,
|
|
7
|
+
"updated_at" BIGINT NOT NULL,
|
|
8
|
+
CONSTRAINT "workflow_approved_snapshots_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_metadata" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
-- CreateTable
|
|
12
|
+
CREATE TABLE "workflow_approved_snapshot_files" (
|
|
13
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
14
|
+
"workflow_slug" TEXT NOT NULL,
|
|
15
|
+
"relative_path" TEXT NOT NULL,
|
|
16
|
+
"content_kind" TEXT NOT NULL,
|
|
17
|
+
"text_content" TEXT,
|
|
18
|
+
"binary_content" BLOB,
|
|
19
|
+
"size_bytes" INTEGER NOT NULL,
|
|
20
|
+
"content_sha256" TEXT NOT NULL,
|
|
21
|
+
CONSTRAINT "workflow_approved_snapshot_files_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_approved_snapshots" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
-- CreateIndex
|
|
25
|
+
CREATE INDEX "workflow_approved_snapshot_files_workflow_slug_idx" ON "workflow_approved_snapshot_files"("workflow_slug");
|
|
26
|
+
|
|
27
|
+
-- CreateIndex
|
|
28
|
+
CREATE UNIQUE INDEX "workflow_approved_snapshot_files_workflow_slug_relative_path_key" ON "workflow_approved_snapshot_files"("workflow_slug", "relative_path");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_metadata" (
|
|
5
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"created_by_user_id" TEXT,
|
|
7
|
+
"approved_by_user_id" TEXT,
|
|
8
|
+
"is_approved" BOOLEAN NOT NULL DEFAULT false,
|
|
9
|
+
"run_permission_mode" TEXT NOT NULL,
|
|
10
|
+
"created_at" BIGINT NOT NULL,
|
|
11
|
+
"updated_at" BIGINT NOT NULL,
|
|
12
|
+
CONSTRAINT "workflow_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
13
|
+
CONSTRAINT "workflow_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
14
|
+
);
|
|
15
|
+
INSERT INTO "new_workflow_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug" FROM "workflow_metadata";
|
|
16
|
+
DROP TABLE "workflow_metadata";
|
|
17
|
+
ALTER TABLE "new_workflow_metadata" RENAME TO "workflow_metadata";
|
|
18
|
+
CREATE INDEX "workflow_metadata_created_by_user_id_idx" ON "workflow_metadata"("created_by_user_id");
|
|
19
|
+
CREATE INDEX "workflow_metadata_approved_by_user_id_idx" ON "workflow_metadata"("approved_by_user_id");
|
|
20
|
+
PRAGMA foreign_keys=ON;
|
|
21
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the column `is_approved` on the `workflow_metadata` table. All the data in the column will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- RedefineTables
|
|
8
|
+
PRAGMA defer_foreign_keys=ON;
|
|
9
|
+
PRAGMA foreign_keys=OFF;
|
|
10
|
+
CREATE TABLE "new_workflow_metadata" (
|
|
11
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
12
|
+
"created_by_user_id" TEXT,
|
|
13
|
+
"approved_by_user_id" TEXT,
|
|
14
|
+
"run_permission_mode" TEXT NOT NULL,
|
|
15
|
+
"created_at" BIGINT NOT NULL,
|
|
16
|
+
"updated_at" BIGINT NOT NULL,
|
|
17
|
+
CONSTRAINT "workflow_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
18
|
+
CONSTRAINT "workflow_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
19
|
+
);
|
|
20
|
+
INSERT INTO "new_workflow_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "run_permission_mode", "updated_at", "workflow_slug" FROM "workflow_metadata";
|
|
21
|
+
DROP TABLE "workflow_metadata";
|
|
22
|
+
ALTER TABLE "new_workflow_metadata" RENAME TO "workflow_metadata";
|
|
23
|
+
CREATE INDEX "workflow_metadata_created_by_user_id_idx" ON "workflow_metadata"("created_by_user_id");
|
|
24
|
+
CREATE INDEX "workflow_metadata_approved_by_user_id_idx" ON "workflow_metadata"("approved_by_user_id");
|
|
25
|
+
PRAGMA foreign_keys=ON;
|
|
26
|
+
PRAGMA defer_foreign_keys=OFF;
|
package/prisma/migrations/20260227120000_remove_snapshot_hash_from_approved_snapshots/migration.sql
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_approved_snapshots" (
|
|
5
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"file_count" INTEGER NOT NULL,
|
|
7
|
+
"created_at" BIGINT NOT NULL,
|
|
8
|
+
"updated_at" BIGINT NOT NULL,
|
|
9
|
+
CONSTRAINT "workflow_approved_snapshots_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_metadata" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
10
|
+
);
|
|
11
|
+
INSERT INTO "new_workflow_approved_snapshots" ("created_at", "file_count", "updated_at", "workflow_slug") SELECT "created_at", "file_count", "updated_at", "workflow_slug" FROM "workflow_approved_snapshots";
|
|
12
|
+
DROP TABLE "workflow_approved_snapshots";
|
|
13
|
+
ALTER TABLE "new_workflow_approved_snapshots" RENAME TO "workflow_approved_snapshots";
|
|
14
|
+
PRAGMA foreign_keys=ON;
|
|
15
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
16
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_approved_snapshot_files" (
|
|
5
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"workflow_slug" TEXT NOT NULL,
|
|
7
|
+
"workspace_path" TEXT NOT NULL DEFAULT '/Users/rishabhpoddar/Desktop/trythisapp/localtool/src/workspace_files',
|
|
8
|
+
"relative_path" TEXT NOT NULL,
|
|
9
|
+
"content_kind" TEXT NOT NULL,
|
|
10
|
+
"text_content" TEXT,
|
|
11
|
+
"binary_content" BLOB,
|
|
12
|
+
"size_bytes" INTEGER NOT NULL,
|
|
13
|
+
"content_sha256" TEXT NOT NULL,
|
|
14
|
+
CONSTRAINT "workflow_approved_snapshot_files_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_approved_snapshots" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
15
|
+
);
|
|
16
|
+
INSERT INTO "new_workflow_approved_snapshot_files" ("binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug") SELECT "binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug" FROM "workflow_approved_snapshot_files";
|
|
17
|
+
DROP TABLE "workflow_approved_snapshot_files";
|
|
18
|
+
ALTER TABLE "new_workflow_approved_snapshot_files" RENAME TO "workflow_approved_snapshot_files";
|
|
19
|
+
CREATE INDEX "workflow_approved_snapshot_files_workflow_slug_idx" ON "workflow_approved_snapshot_files"("workflow_slug");
|
|
20
|
+
CREATE UNIQUE INDEX "workflow_approved_snapshot_files_workflow_slug_workspace_path_relative_path_key" ON "workflow_approved_snapshot_files"("workflow_slug", "workspace_path", "relative_path");
|
|
21
|
+
PRAGMA foreign_keys=ON;
|
|
22
|
+
PRAGMA defer_foreign_keys=OFF;
|
package/prisma/migrations/20260228071217_modifies_index_and_removes_default_value/migration.sql
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_workflow_approved_snapshot_files" (
|
|
5
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"workflow_slug" TEXT NOT NULL,
|
|
7
|
+
"workspace_path" TEXT NOT NULL,
|
|
8
|
+
"relative_path" TEXT NOT NULL,
|
|
9
|
+
"content_kind" TEXT NOT NULL,
|
|
10
|
+
"text_content" TEXT,
|
|
11
|
+
"binary_content" BLOB,
|
|
12
|
+
"size_bytes" INTEGER NOT NULL,
|
|
13
|
+
"content_sha256" TEXT NOT NULL,
|
|
14
|
+
CONSTRAINT "workflow_approved_snapshot_files_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_approved_snapshots" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
15
|
+
);
|
|
16
|
+
INSERT INTO "new_workflow_approved_snapshot_files" ("binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug", "workspace_path") SELECT "binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug", "workspace_path" FROM "workflow_approved_snapshot_files";
|
|
17
|
+
DROP TABLE "workflow_approved_snapshot_files";
|
|
18
|
+
ALTER TABLE "new_workflow_approved_snapshot_files" RENAME TO "workflow_approved_snapshot_files";
|
|
19
|
+
CREATE INDEX "workflow_approved_snapshot_files_workspace_path_workflow_slug_idx" ON "workflow_approved_snapshot_files"("workspace_path", "workflow_slug");
|
|
20
|
+
CREATE UNIQUE INDEX "workflow_approved_snapshot_files_workflow_slug_workspace_path_relative_path_key" ON "workflow_approved_snapshot_files"("workflow_slug", "workspace_path", "relative_path");
|
|
21
|
+
PRAGMA foreign_keys=ON;
|
|
22
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the column `workspace_path` on the `workflow_approved_snapshot_files` table. All the data in the column will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- RedefineTables
|
|
8
|
+
PRAGMA defer_foreign_keys=ON;
|
|
9
|
+
PRAGMA foreign_keys=OFF;
|
|
10
|
+
CREATE TABLE "new_workflow_approved_snapshot_files" (
|
|
11
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
12
|
+
"workflow_slug" TEXT NOT NULL,
|
|
13
|
+
"relative_path" TEXT NOT NULL,
|
|
14
|
+
"content_kind" TEXT NOT NULL,
|
|
15
|
+
"text_content" TEXT,
|
|
16
|
+
"binary_content" BLOB,
|
|
17
|
+
"size_bytes" INTEGER NOT NULL,
|
|
18
|
+
"content_sha256" TEXT NOT NULL,
|
|
19
|
+
CONSTRAINT "workflow_approved_snapshot_files_workflow_slug_fkey" FOREIGN KEY ("workflow_slug") REFERENCES "workflow_approved_snapshots" ("workflow_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
20
|
+
);
|
|
21
|
+
INSERT INTO "new_workflow_approved_snapshot_files" ("binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug") SELECT "binary_content", "content_kind", "content_sha256", "id", "relative_path", "size_bytes", "text_content", "workflow_slug" FROM "workflow_approved_snapshot_files";
|
|
22
|
+
DROP TABLE "workflow_approved_snapshot_files";
|
|
23
|
+
ALTER TABLE "new_workflow_approved_snapshot_files" RENAME TO "workflow_approved_snapshot_files";
|
|
24
|
+
CREATE INDEX "workflow_approved_snapshot_files_workflow_slug_idx" ON "workflow_approved_snapshot_files"("workflow_slug");
|
|
25
|
+
CREATE UNIQUE INDEX "workflow_approved_snapshot_files_workflow_slug_relative_path_key" ON "workflow_approved_snapshot_files"("workflow_slug", "relative_path");
|
|
26
|
+
PRAGMA foreign_keys=ON;
|
|
27
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_users" (
|
|
5
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"email" TEXT NOT NULL,
|
|
7
|
+
"name" TEXT NOT NULL,
|
|
8
|
+
"role" TEXT NOT NULL,
|
|
9
|
+
"created_at" BIGINT NOT NULL,
|
|
10
|
+
"password_hash" TEXT NOT NULL,
|
|
11
|
+
"must_change_password" BOOLEAN NOT NULL DEFAULT false,
|
|
12
|
+
"reset_token" TEXT,
|
|
13
|
+
"reset_token_expires_at" BIGINT
|
|
14
|
+
);
|
|
15
|
+
INSERT INTO "new_users" ("created_at", "email", "id", "name", "password_hash", "reset_token", "reset_token_expires_at", "role") SELECT "created_at", "email", "id", "name", "password_hash", "reset_token", "reset_token_expires_at", "role" FROM "users";
|
|
16
|
+
DROP TABLE "users";
|
|
17
|
+
ALTER TABLE "new_users" RENAME TO "users";
|
|
18
|
+
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
19
|
+
PRAGMA foreign_keys=ON;
|
|
20
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "workflow_run_log_refs" (
|
|
3
|
+
"run_id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"session_id" TEXT NOT NULL,
|
|
5
|
+
"message_id" TEXT NOT NULL,
|
|
6
|
+
"created_at" BIGINT NOT NULL,
|
|
7
|
+
CONSTRAINT "workflow_run_log_refs_run_id_fkey" FOREIGN KEY ("run_id") REFERENCES "workflow_runs" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
8
|
+
);
|
package/prisma/migrations/20260302045545_move_workflow_run_log_refs_into_workflow_runs/migration.sql
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the `workflow_run_log_refs` table. If the table is not empty, all the data it contains will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- AlterTable
|
|
8
|
+
ALTER TABLE "workflow_runs" ADD COLUMN "message_id" TEXT;
|
|
9
|
+
ALTER TABLE "workflow_runs" ADD COLUMN "session_id" TEXT;
|
|
10
|
+
|
|
11
|
+
-- DropTable
|
|
12
|
+
PRAGMA foreign_keys=off;
|
|
13
|
+
DROP TABLE "workflow_run_log_refs";
|
|
14
|
+
PRAGMA foreign_keys=on;
|
|
15
|
+
|
|
16
|
+
-- CreateIndex
|
|
17
|
+
CREATE INDEX "workflow_runs_session_id_message_id_idx" ON "workflow_runs"("session_id", "message_id");
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "skill_access_permission_users" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"skill_slug" TEXT NOT NULL,
|
|
5
|
+
"user_id" TEXT NOT NULL,
|
|
6
|
+
"created_at" BIGINT NOT NULL,
|
|
7
|
+
CONSTRAINT "skill_access_permission_users_skill_slug_fkey" FOREIGN KEY ("skill_slug") REFERENCES "skill_metadata" ("skill_slug") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
8
|
+
CONSTRAINT "skill_access_permission_users_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
-- CreateTable
|
|
12
|
+
CREATE TABLE "skill_metadata" (
|
|
13
|
+
"skill_slug" TEXT NOT NULL PRIMARY KEY,
|
|
14
|
+
"created_by_user_id" TEXT,
|
|
15
|
+
"approved_by_user_id" TEXT,
|
|
16
|
+
"access_permission_mode" TEXT NOT NULL,
|
|
17
|
+
"created_at" BIGINT NOT NULL,
|
|
18
|
+
"updated_at" BIGINT NOT NULL,
|
|
19
|
+
CONSTRAINT "skill_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
20
|
+
CONSTRAINT "skill_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- CreateTable
|
|
24
|
+
CREATE TABLE "skill_approved_snapshots" (
|
|
25
|
+
"skill_slug" TEXT NOT NULL PRIMARY KEY,
|
|
26
|
+
"file_count" INTEGER NOT NULL,
|
|
27
|
+
"created_at" BIGINT NOT NULL,
|
|
28
|
+
"updated_at" BIGINT NOT NULL,
|
|
29
|
+
CONSTRAINT "skill_approved_snapshots_skill_slug_fkey" FOREIGN KEY ("skill_slug") REFERENCES "skill_metadata" ("skill_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- CreateTable
|
|
33
|
+
CREATE TABLE "skill_approved_snapshot_files" (
|
|
34
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
35
|
+
"skill_slug" TEXT NOT NULL,
|
|
36
|
+
"relative_path" TEXT NOT NULL,
|
|
37
|
+
"content_kind" TEXT NOT NULL,
|
|
38
|
+
"text_content" TEXT,
|
|
39
|
+
"binary_content" BLOB,
|
|
40
|
+
"size_bytes" INTEGER NOT NULL,
|
|
41
|
+
"content_sha256" TEXT NOT NULL,
|
|
42
|
+
CONSTRAINT "skill_approved_snapshot_files_skill_slug_fkey" FOREIGN KEY ("skill_slug") REFERENCES "skill_approved_snapshots" ("skill_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
-- CreateIndex
|
|
46
|
+
CREATE INDEX "skill_access_permission_users_skill_slug_idx" ON "skill_access_permission_users"("skill_slug");
|
|
47
|
+
|
|
48
|
+
-- CreateIndex
|
|
49
|
+
CREATE UNIQUE INDEX "skill_access_permission_users_skill_slug_user_id_key" ON "skill_access_permission_users"("skill_slug", "user_id");
|
|
50
|
+
|
|
51
|
+
-- CreateIndex
|
|
52
|
+
CREATE INDEX "skill_metadata_created_by_user_id_idx" ON "skill_metadata"("created_by_user_id");
|
|
53
|
+
|
|
54
|
+
-- CreateIndex
|
|
55
|
+
CREATE INDEX "skill_metadata_approved_by_user_id_idx" ON "skill_metadata"("approved_by_user_id");
|
|
56
|
+
|
|
57
|
+
-- CreateIndex
|
|
58
|
+
CREATE INDEX "skill_approved_snapshot_files_skill_slug_idx" ON "skill_approved_snapshot_files"("skill_slug");
|
|
59
|
+
|
|
60
|
+
-- CreateIndex
|
|
61
|
+
CREATE UNIQUE INDEX "skill_approved_snapshot_files_skill_slug_relative_path_key" ON "skill_approved_snapshot_files"("skill_slug", "relative_path");
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the `skill_access_permission_users` table. If the table is not empty, all the data it contains will be lost.
|
|
5
|
+
- You are about to drop the `workflow_run_permission_users` table. If the table is not empty, all the data it contains will be lost.
|
|
6
|
+
- You are about to drop the column `access_permission_mode` on the `skill_metadata` table. All the data in the column will be lost.
|
|
7
|
+
- You are about to drop the column `run_permission_mode` on the `workflow_metadata` table. All the data in the column will be lost.
|
|
8
|
+
|
|
9
|
+
*/
|
|
10
|
+
-- CreateTable
|
|
11
|
+
CREATE TABLE "resource_permissions" (
|
|
12
|
+
"resource_kind" TEXT NOT NULL,
|
|
13
|
+
"resource_slug" TEXT NOT NULL,
|
|
14
|
+
"permission_mode" TEXT NOT NULL,
|
|
15
|
+
"created_at" BIGINT NOT NULL,
|
|
16
|
+
"updated_at" BIGINT NOT NULL,
|
|
17
|
+
|
|
18
|
+
PRIMARY KEY ("resource_kind", "resource_slug")
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
-- CreateTable
|
|
22
|
+
CREATE TABLE "resource_permission_users" (
|
|
23
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
24
|
+
"resource_kind" TEXT NOT NULL,
|
|
25
|
+
"resource_slug" TEXT NOT NULL,
|
|
26
|
+
"user_id" TEXT NOT NULL,
|
|
27
|
+
"created_at" BIGINT NOT NULL,
|
|
28
|
+
CONSTRAINT "resource_permission_users_resource_kind_resource_slug_fkey" FOREIGN KEY ("resource_kind", "resource_slug") REFERENCES "resource_permissions" ("resource_kind", "resource_slug") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
29
|
+
CONSTRAINT "resource_permission_users_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- Backfill workflow permissions into unified tables
|
|
33
|
+
INSERT INTO "resource_permissions" ("resource_kind", "resource_slug", "permission_mode", "created_at", "updated_at")
|
|
34
|
+
SELECT "workflow", "workflow_slug", "run_permission_mode", "created_at", "updated_at"
|
|
35
|
+
FROM "workflow_metadata";
|
|
36
|
+
|
|
37
|
+
INSERT INTO "resource_permission_users" ("id", "resource_kind", "resource_slug", "user_id", "created_at")
|
|
38
|
+
SELECT "wf-" || "id", "workflow", "workflow_slug", "user_id", "created_at"
|
|
39
|
+
FROM "workflow_run_permission_users";
|
|
40
|
+
|
|
41
|
+
-- Backfill skill permissions into unified tables
|
|
42
|
+
INSERT INTO "resource_permissions" ("resource_kind", "resource_slug", "permission_mode", "created_at", "updated_at")
|
|
43
|
+
SELECT "skill", "skill_slug", "access_permission_mode", "created_at", "updated_at"
|
|
44
|
+
FROM "skill_metadata";
|
|
45
|
+
|
|
46
|
+
INSERT INTO "resource_permission_users" ("id", "resource_kind", "resource_slug", "user_id", "created_at")
|
|
47
|
+
SELECT "sk-" || "id", "skill", "skill_slug", "user_id", "created_at"
|
|
48
|
+
FROM "skill_access_permission_users";
|
|
49
|
+
|
|
50
|
+
-- RedefineTables
|
|
51
|
+
PRAGMA defer_foreign_keys=ON;
|
|
52
|
+
PRAGMA foreign_keys=OFF;
|
|
53
|
+
CREATE TABLE "new_skill_metadata" (
|
|
54
|
+
"skill_slug" TEXT NOT NULL PRIMARY KEY,
|
|
55
|
+
"created_by_user_id" TEXT,
|
|
56
|
+
"approved_by_user_id" TEXT,
|
|
57
|
+
"created_at" BIGINT NOT NULL,
|
|
58
|
+
"updated_at" BIGINT NOT NULL,
|
|
59
|
+
CONSTRAINT "skill_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
60
|
+
CONSTRAINT "skill_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
61
|
+
);
|
|
62
|
+
INSERT INTO "new_skill_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "skill_slug", "updated_at") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "skill_slug", "updated_at" FROM "skill_metadata";
|
|
63
|
+
DROP TABLE "skill_metadata";
|
|
64
|
+
ALTER TABLE "new_skill_metadata" RENAME TO "skill_metadata";
|
|
65
|
+
CREATE INDEX "skill_metadata_created_by_user_id_idx" ON "skill_metadata"("created_by_user_id");
|
|
66
|
+
CREATE INDEX "skill_metadata_approved_by_user_id_idx" ON "skill_metadata"("approved_by_user_id");
|
|
67
|
+
CREATE TABLE "new_workflow_metadata" (
|
|
68
|
+
"workflow_slug" TEXT NOT NULL PRIMARY KEY,
|
|
69
|
+
"created_by_user_id" TEXT,
|
|
70
|
+
"approved_by_user_id" TEXT,
|
|
71
|
+
"created_at" BIGINT NOT NULL,
|
|
72
|
+
"updated_at" BIGINT NOT NULL,
|
|
73
|
+
CONSTRAINT "workflow_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
74
|
+
CONSTRAINT "workflow_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
75
|
+
);
|
|
76
|
+
INSERT INTO "new_workflow_metadata" ("approved_by_user_id", "created_at", "created_by_user_id", "updated_at", "workflow_slug") SELECT "approved_by_user_id", "created_at", "created_by_user_id", "updated_at", "workflow_slug" FROM "workflow_metadata";
|
|
77
|
+
DROP TABLE "workflow_metadata";
|
|
78
|
+
ALTER TABLE "new_workflow_metadata" RENAME TO "workflow_metadata";
|
|
79
|
+
CREATE INDEX "workflow_metadata_created_by_user_id_idx" ON "workflow_metadata"("created_by_user_id");
|
|
80
|
+
CREATE INDEX "workflow_metadata_approved_by_user_id_idx" ON "workflow_metadata"("approved_by_user_id");
|
|
81
|
+
PRAGMA foreign_keys=ON;
|
|
82
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
83
|
+
|
|
84
|
+
-- Drop old permission tables after successful backfill
|
|
85
|
+
PRAGMA foreign_keys=off;
|
|
86
|
+
DROP TABLE "skill_access_permission_users";
|
|
87
|
+
DROP TABLE "workflow_run_permission_users";
|
|
88
|
+
PRAGMA foreign_keys=on;
|
|
89
|
+
|
|
90
|
+
-- CreateIndex
|
|
91
|
+
CREATE INDEX "resource_permissions_resource_slug_idx" ON "resource_permissions"("resource_slug");
|
|
92
|
+
|
|
93
|
+
-- CreateIndex
|
|
94
|
+
CREATE INDEX "resource_permission_users_resource_kind_resource_slug_idx" ON "resource_permission_users"("resource_kind", "resource_slug");
|
|
95
|
+
|
|
96
|
+
-- CreateIndex
|
|
97
|
+
CREATE UNIQUE INDEX "resource_permission_users_resource_kind_resource_slug_user_id_key" ON "resource_permission_users"("resource_kind", "resource_slug", "user_id");
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "resource_metadata" (
|
|
3
|
+
"resource_kind" TEXT NOT NULL,
|
|
4
|
+
"resource_slug" TEXT NOT NULL,
|
|
5
|
+
"created_by_user_id" TEXT,
|
|
6
|
+
"approved_by_user_id" TEXT,
|
|
7
|
+
"created_at" BIGINT NOT NULL,
|
|
8
|
+
"updated_at" BIGINT NOT NULL,
|
|
9
|
+
|
|
10
|
+
PRIMARY KEY ("resource_kind", "resource_slug"),
|
|
11
|
+
CONSTRAINT "resource_metadata_created_by_user_id_fkey" FOREIGN KEY ("created_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
|
|
12
|
+
CONSTRAINT "resource_metadata_approved_by_user_id_fkey" FOREIGN KEY ("approved_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
-- CreateTable
|
|
16
|
+
CREATE TABLE "resource_approved_snapshots" (
|
|
17
|
+
"resource_kind" TEXT NOT NULL,
|
|
18
|
+
"resource_slug" TEXT NOT NULL,
|
|
19
|
+
"file_count" INTEGER NOT NULL,
|
|
20
|
+
"created_at" BIGINT NOT NULL,
|
|
21
|
+
"updated_at" BIGINT NOT NULL,
|
|
22
|
+
|
|
23
|
+
PRIMARY KEY ("resource_kind", "resource_slug"),
|
|
24
|
+
CONSTRAINT "resource_approved_snapshots_resource_kind_resource_slug_fkey" FOREIGN KEY ("resource_kind", "resource_slug") REFERENCES "resource_metadata" ("resource_kind", "resource_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- CreateTable
|
|
28
|
+
CREATE TABLE "resource_approved_snapshot_files" (
|
|
29
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
30
|
+
"resource_kind" TEXT NOT NULL,
|
|
31
|
+
"resource_slug" TEXT NOT NULL,
|
|
32
|
+
"relative_path" TEXT NOT NULL,
|
|
33
|
+
"content_kind" TEXT NOT NULL,
|
|
34
|
+
"text_content" TEXT,
|
|
35
|
+
"binary_content" BLOB,
|
|
36
|
+
"size_bytes" INTEGER NOT NULL,
|
|
37
|
+
"content_sha256" TEXT NOT NULL,
|
|
38
|
+
CONSTRAINT "resource_approved_snapshot_files_resource_kind_resource_slug_fkey" FOREIGN KEY ("resource_kind", "resource_slug") REFERENCES "resource_approved_snapshots" ("resource_kind", "resource_slug") ON DELETE CASCADE ON UPDATE CASCADE
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
-- CreateIndex
|
|
42
|
+
CREATE INDEX "resource_metadata_resource_slug_idx" ON "resource_metadata"("resource_slug");
|
|
43
|
+
|
|
44
|
+
-- CreateIndex
|
|
45
|
+
CREATE INDEX "resource_metadata_created_by_user_id_idx" ON "resource_metadata"("created_by_user_id");
|
|
46
|
+
|
|
47
|
+
-- CreateIndex
|
|
48
|
+
CREATE INDEX "resource_metadata_approved_by_user_id_idx" ON "resource_metadata"("approved_by_user_id");
|
|
49
|
+
|
|
50
|
+
-- CreateIndex
|
|
51
|
+
CREATE INDEX "resource_approved_snapshots_resource_slug_idx" ON "resource_approved_snapshots"("resource_slug");
|
|
52
|
+
|
|
53
|
+
-- CreateIndex
|
|
54
|
+
CREATE INDEX "resource_approved_snapshot_files_resource_kind_resource_slug_idx" ON "resource_approved_snapshot_files"("resource_kind", "resource_slug");
|
|
55
|
+
|
|
56
|
+
-- CreateIndex
|
|
57
|
+
CREATE UNIQUE INDEX "resource_approved_snapshot_files_resource_kind_resource_slug_relative_path_key" ON "resource_approved_snapshot_files"("resource_kind", "resource_slug", "relative_path");
|
|
58
|
+
|
|
59
|
+
-- Migrate workflow metadata/snapshots into shared resource tables
|
|
60
|
+
INSERT OR IGNORE INTO "resource_metadata" (
|
|
61
|
+
"resource_kind",
|
|
62
|
+
"resource_slug",
|
|
63
|
+
"created_by_user_id",
|
|
64
|
+
"approved_by_user_id",
|
|
65
|
+
"created_at",
|
|
66
|
+
"updated_at"
|
|
67
|
+
)
|
|
68
|
+
SELECT
|
|
69
|
+
'workflow',
|
|
70
|
+
"workflow_slug",
|
|
71
|
+
"created_by_user_id",
|
|
72
|
+
"approved_by_user_id",
|
|
73
|
+
"created_at",
|
|
74
|
+
"updated_at"
|
|
75
|
+
FROM "workflow_metadata";
|
|
76
|
+
|
|
77
|
+
INSERT OR IGNORE INTO "resource_approved_snapshots" (
|
|
78
|
+
"resource_kind",
|
|
79
|
+
"resource_slug",
|
|
80
|
+
"file_count",
|
|
81
|
+
"created_at",
|
|
82
|
+
"updated_at"
|
|
83
|
+
)
|
|
84
|
+
SELECT
|
|
85
|
+
'workflow',
|
|
86
|
+
"workflow_slug",
|
|
87
|
+
"file_count",
|
|
88
|
+
"created_at",
|
|
89
|
+
"updated_at"
|
|
90
|
+
FROM "workflow_approved_snapshots";
|
|
91
|
+
|
|
92
|
+
INSERT OR IGNORE INTO "resource_approved_snapshot_files" (
|
|
93
|
+
"id",
|
|
94
|
+
"resource_kind",
|
|
95
|
+
"resource_slug",
|
|
96
|
+
"relative_path",
|
|
97
|
+
"content_kind",
|
|
98
|
+
"text_content",
|
|
99
|
+
"binary_content",
|
|
100
|
+
"size_bytes",
|
|
101
|
+
"content_sha256"
|
|
102
|
+
)
|
|
103
|
+
SELECT
|
|
104
|
+
"id",
|
|
105
|
+
'workflow',
|
|
106
|
+
"workflow_slug",
|
|
107
|
+
"relative_path",
|
|
108
|
+
"content_kind",
|
|
109
|
+
"text_content",
|
|
110
|
+
"binary_content",
|
|
111
|
+
"size_bytes",
|
|
112
|
+
"content_sha256"
|
|
113
|
+
FROM "workflow_approved_snapshot_files";
|
|
114
|
+
|
|
115
|
+
-- Migrate skill metadata/snapshots into shared resource tables
|
|
116
|
+
INSERT OR IGNORE INTO "resource_metadata" (
|
|
117
|
+
"resource_kind",
|
|
118
|
+
"resource_slug",
|
|
119
|
+
"created_by_user_id",
|
|
120
|
+
"approved_by_user_id",
|
|
121
|
+
"created_at",
|
|
122
|
+
"updated_at"
|
|
123
|
+
)
|
|
124
|
+
SELECT
|
|
125
|
+
'skill',
|
|
126
|
+
"skill_slug",
|
|
127
|
+
"created_by_user_id",
|
|
128
|
+
"approved_by_user_id",
|
|
129
|
+
"created_at",
|
|
130
|
+
"updated_at"
|
|
131
|
+
FROM "skill_metadata";
|
|
132
|
+
|
|
133
|
+
INSERT OR IGNORE INTO "resource_approved_snapshots" (
|
|
134
|
+
"resource_kind",
|
|
135
|
+
"resource_slug",
|
|
136
|
+
"file_count",
|
|
137
|
+
"created_at",
|
|
138
|
+
"updated_at"
|
|
139
|
+
)
|
|
140
|
+
SELECT
|
|
141
|
+
'skill',
|
|
142
|
+
"skill_slug",
|
|
143
|
+
"file_count",
|
|
144
|
+
"created_at",
|
|
145
|
+
"updated_at"
|
|
146
|
+
FROM "skill_approved_snapshots";
|
|
147
|
+
|
|
148
|
+
INSERT OR IGNORE INTO "resource_approved_snapshot_files" (
|
|
149
|
+
"id",
|
|
150
|
+
"resource_kind",
|
|
151
|
+
"resource_slug",
|
|
152
|
+
"relative_path",
|
|
153
|
+
"content_kind",
|
|
154
|
+
"text_content",
|
|
155
|
+
"binary_content",
|
|
156
|
+
"size_bytes",
|
|
157
|
+
"content_sha256"
|
|
158
|
+
)
|
|
159
|
+
SELECT
|
|
160
|
+
"id",
|
|
161
|
+
'skill',
|
|
162
|
+
"skill_slug",
|
|
163
|
+
"relative_path",
|
|
164
|
+
"content_kind",
|
|
165
|
+
"text_content",
|
|
166
|
+
"binary_content",
|
|
167
|
+
"size_bytes",
|
|
168
|
+
"content_sha256"
|
|
169
|
+
FROM "skill_approved_snapshot_files";
|
|
170
|
+
|
|
171
|
+
-- Drop legacy duplicated tables
|
|
172
|
+
PRAGMA foreign_keys=off;
|
|
173
|
+
DROP TABLE "skill_approved_snapshot_files";
|
|
174
|
+
DROP TABLE "skill_approved_snapshots";
|
|
175
|
+
DROP TABLE "skill_metadata";
|
|
176
|
+
DROP TABLE "workflow_approved_snapshot_files";
|
|
177
|
+
DROP TABLE "workflow_approved_snapshots";
|
|
178
|
+
DROP TABLE "workflow_metadata";
|
|
179
|
+
PRAGMA foreign_keys=on;
|