@wraps.dev/cli 2.30.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +5 -8
  2. package/dist/cli.js +942 -2211
  3. package/dist/cli.js.map +1 -1
  4. package/dist/console/assets/{index-P0x5JCC4.js → index--39O8UcT.js} +3 -3
  5. package/dist/console/assets/index-D6au_OkL.css +1 -0
  6. package/dist/console/index.html +2 -2
  7. package/dist/lambda/agent-enforcer/.bundled +1 -1
  8. package/dist/lambda/event-processor/.bundled +1 -1
  9. package/dist/lambda/inbound-processor/.bundled +1 -1
  10. package/dist/lambda/sms-event-processor/.bundled +1 -1
  11. package/package.json +4 -5
  12. package/dist/api-lambda.zip +0 -0
  13. package/dist/console/assets/index-BP4FpEpn.css +0 -1
  14. package/dist/selfhost-migrations/0000_absent_rogue.sql +0 -203
  15. package/dist/selfhost-migrations/0001_polite_maverick.sql +0 -17
  16. package/dist/selfhost-migrations/0002_perpetual_scorpion.sql +0 -1
  17. package/dist/selfhost-migrations/0003_wealthy_absorbing_man.sql +0 -1
  18. package/dist/selfhost-migrations/0004_opposite_blur.sql +0 -1
  19. package/dist/selfhost-migrations/0005_clear_terror.sql +0 -4
  20. package/dist/selfhost-migrations/0006_soft_black_widow.sql +0 -20
  21. package/dist/selfhost-migrations/0007_dazzling_saracen.sql +0 -124
  22. package/dist/selfhost-migrations/0008_broad_hannibal_king.sql +0 -33
  23. package/dist/selfhost-migrations/0009_bouncy_mystique.sql +0 -73
  24. package/dist/selfhost-migrations/0010_cheerful_valeria_richards.sql +0 -18
  25. package/dist/selfhost-migrations/0011_absent_thunderbolts.sql +0 -2
  26. package/dist/selfhost-migrations/0012_demonic_donald_blake.sql +0 -1
  27. package/dist/selfhost-migrations/0013_nifty_preak.sql +0 -143
  28. package/dist/selfhost-migrations/0014_hesitant_beast.sql +0 -2
  29. package/dist/selfhost-migrations/0015_blue_giant_girl.sql +0 -1
  30. package/dist/selfhost-migrations/0016_cooing_overlord.sql +0 -1
  31. package/dist/selfhost-migrations/0017_tranquil_ender_wiggin.sql +0 -11
  32. package/dist/selfhost-migrations/0018_talented_groot.sql +0 -8
  33. package/dist/selfhost-migrations/0019_ambitious_devos.sql +0 -3
  34. package/dist/selfhost-migrations/0020_misty_master_mold.sql +0 -95
  35. package/dist/selfhost-migrations/0021_regular_harrier.sql +0 -14
  36. package/dist/selfhost-migrations/0022_sour_blizzard.sql +0 -10
  37. package/dist/selfhost-migrations/0023_flawless_psynapse.sql +0 -1
  38. package/dist/selfhost-migrations/0024_premium_blindfold.sql +0 -1
  39. package/dist/selfhost-migrations/0025_unusual_santa_claus.sql +0 -1
  40. package/dist/selfhost-migrations/0026_volatile_pandemic.sql +0 -2
  41. package/dist/selfhost-migrations/0027_workable_logan.sql +0 -4
  42. package/dist/selfhost-migrations/0028_familiar_prodigy.sql +0 -1
  43. package/dist/selfhost-migrations/0029_cute_maddog.sql +0 -13
  44. package/dist/selfhost-migrations/0030_adorable_scarecrow.sql +0 -1
  45. package/dist/selfhost-migrations/0031_material_slapstick.sql +0 -10
  46. package/dist/selfhost-migrations/0032_hot_dust.sql +0 -11
  47. package/dist/selfhost-migrations/0033_slow_deathbird.sql +0 -1
  48. package/dist/selfhost-migrations/0034_lush_rafael_vega.sql +0 -12
  49. package/dist/selfhost-migrations/0035_normal_red_hulk.sql +0 -8
  50. package/dist/selfhost-migrations/0036_marvelous_ezekiel.sql +0 -1
  51. package/dist/selfhost-migrations/0037_swift_talisman.sql +0 -8
  52. package/dist/selfhost-migrations/0038_first_mandroid.sql +0 -1
  53. package/dist/selfhost-migrations/0039_fixed_stryfe.sql +0 -1
  54. package/dist/selfhost-migrations/0040_add_channel_check_constraints.sql +0 -2
  55. package/dist/selfhost-migrations/0041_black_spencer_smythe.sql +0 -1
  56. package/dist/selfhost-migrations/0042_plain_marvel_zombies.sql +0 -2
  57. package/dist/selfhost-migrations/0043_curved_champions.sql +0 -1
  58. package/dist/selfhost-migrations/0044_clean_iceman.sql +0 -1
  59. package/dist/selfhost-migrations/0045_condemned_steel_serpent.sql +0 -1
  60. package/dist/selfhost-migrations/0046_steep_ultimo.sql +0 -2
  61. package/dist/selfhost-migrations/0047_empty_sleepwalker.sql +0 -2
  62. package/dist/selfhost-migrations/0048_cheerful_multiple_man.sql +0 -1
  63. package/dist/selfhost-migrations/0049_nostalgic_loki.sql +0 -3
  64. package/dist/selfhost-migrations/0050_add_engagement_metadata.sql +0 -4
  65. package/dist/selfhost-migrations/0051_odd_marrow.sql +0 -2
  66. package/dist/selfhost-migrations/0052_redundant_siren.sql +0 -5
  67. package/dist/selfhost-migrations/0053_soft_carnage.sql +0 -31
  68. package/dist/selfhost-migrations/0054_blushing_vin_gonzales.sql +0 -1
  69. package/dist/selfhost-migrations/0055_broadcast_resume_columns.sql +0 -12
  70. package/dist/selfhost-migrations/0056_broadcast_resume_dedup_cleanup.sql +0 -31
  71. package/dist/selfhost-migrations/0057_audit_log_actoremail_jsonb.sql +0 -5
  72. package/dist/selfhost-migrations/0058_email_log_sent_at_idx.sql +0 -1
  73. package/dist/selfhost-migrations/0059_message_send_claimed_at.sql +0 -1
  74. package/dist/selfhost-migrations/0060_harsh_nehzno.sql +0 -1
  75. package/dist/selfhost-migrations/0061_flashy_spirit.sql +0 -1
  76. package/dist/selfhost-migrations/0062_next_timeslip.sql +0 -2
  77. package/dist/selfhost-migrations/0063_greedy_legion.sql +0 -17
  78. package/dist/selfhost-migrations/0064_wise_brood.sql +0 -42
  79. package/dist/selfhost-migrations/0065_public_the_fallen.sql +0 -2
  80. package/dist/selfhost-migrations/0066_odd_yellow_claw.sql +0 -3
  81. package/dist/selfhost-migrations/0067_empty_ultimo.sql +0 -1
  82. package/dist/selfhost-migrations/0068_abandoned_mephisto.sql +0 -1
  83. package/dist/selfhost-migrations/0069_abnormal_zuras.sql +0 -1
  84. package/dist/selfhost-migrations/CLAUDE.md +0 -49
  85. package/dist/selfhost-migrations/meta/0000_snapshot.json +0 -1311
  86. package/dist/selfhost-migrations/meta/0001_snapshot.json +0 -1454
  87. package/dist/selfhost-migrations/meta/0002_snapshot.json +0 -1460
  88. package/dist/selfhost-migrations/meta/0003_snapshot.json +0 -1467
  89. package/dist/selfhost-migrations/meta/0004_snapshot.json +0 -1473
  90. package/dist/selfhost-migrations/meta/0005_snapshot.json +0 -1499
  91. package/dist/selfhost-migrations/meta/0006_snapshot.json +0 -1617
  92. package/dist/selfhost-migrations/meta/0007_snapshot.json +0 -2581
  93. package/dist/selfhost-migrations/meta/0008_snapshot.json +0 -2861
  94. package/dist/selfhost-migrations/meta/0009_snapshot.json +0 -3447
  95. package/dist/selfhost-migrations/meta/0010_snapshot.json +0 -3586
  96. package/dist/selfhost-migrations/meta/0011_snapshot.json +0 -3600
  97. package/dist/selfhost-migrations/meta/0012_snapshot.json +0 -3607
  98. package/dist/selfhost-migrations/meta/0013_snapshot.json +0 -4697
  99. package/dist/selfhost-migrations/meta/0014_snapshot.json +0 -4704
  100. package/dist/selfhost-migrations/meta/0015_snapshot.json +0 -4697
  101. package/dist/selfhost-migrations/meta/0016_snapshot.json +0 -4703
  102. package/dist/selfhost-migrations/meta/0017_snapshot.json +0 -4769
  103. package/dist/selfhost-migrations/meta/0018_snapshot.json +0 -4821
  104. package/dist/selfhost-migrations/meta/0019_snapshot.json +0 -4840
  105. package/dist/selfhost-migrations/meta/0020_snapshot.json +0 -5602
  106. package/dist/selfhost-migrations/meta/0021_snapshot.json +0 -5729
  107. package/dist/selfhost-migrations/meta/0022_snapshot.json +0 -5792
  108. package/dist/selfhost-migrations/meta/0023_snapshot.json +0 -5799
  109. package/dist/selfhost-migrations/meta/0024_snapshot.json +0 -5821
  110. package/dist/selfhost-migrations/meta/0025_snapshot.json +0 -5831
  111. package/dist/selfhost-migrations/meta/0026_snapshot.json +0 -5844
  112. package/dist/selfhost-migrations/meta/0027_snapshot.json +0 -5864
  113. package/dist/selfhost-migrations/meta/0028_snapshot.json +0 -5871
  114. package/dist/selfhost-migrations/meta/0029_snapshot.json +0 -5984
  115. package/dist/selfhost-migrations/meta/0030_snapshot.json +0 -5990
  116. package/dist/selfhost-migrations/meta/0031_snapshot.json +0 -5950
  117. package/dist/selfhost-migrations/meta/0032_snapshot.json +0 -6042
  118. package/dist/selfhost-migrations/meta/0033_snapshot.json +0 -6057
  119. package/dist/selfhost-migrations/meta/0034_snapshot.json +0 -6130
  120. package/dist/selfhost-migrations/meta/0035_snapshot.json +0 -6195
  121. package/dist/selfhost-migrations/meta/0036_snapshot.json +0 -6201
  122. package/dist/selfhost-migrations/meta/0037_snapshot.json +0 -6265
  123. package/dist/selfhost-migrations/meta/0038_snapshot.json +0 -6271
  124. package/dist/selfhost-migrations/meta/0039_snapshot.json +0 -6278
  125. package/dist/selfhost-migrations/meta/0041_snapshot.json +0 -6284
  126. package/dist/selfhost-migrations/meta/0042_snapshot.json +0 -6297
  127. package/dist/selfhost-migrations/meta/0043_snapshot.json +0 -6297
  128. package/dist/selfhost-migrations/meta/0044_snapshot.json +0 -6297
  129. package/dist/selfhost-migrations/meta/0045_snapshot.json +0 -6303
  130. package/dist/selfhost-migrations/meta/0046_snapshot.json +0 -6315
  131. package/dist/selfhost-migrations/meta/0047_snapshot.json +0 -6330
  132. package/dist/selfhost-migrations/meta/0048_snapshot.json +0 -6336
  133. package/dist/selfhost-migrations/meta/0049_snapshot.json +0 -6366
  134. package/dist/selfhost-migrations/meta/0050_snapshot.json +0 -6390
  135. package/dist/selfhost-migrations/meta/0051_snapshot.json +0 -6403
  136. package/dist/selfhost-migrations/meta/0052_snapshot.json +0 -6470
  137. package/dist/selfhost-migrations/meta/0053_snapshot.json +0 -6470
  138. package/dist/selfhost-migrations/meta/0054_snapshot.json +0 -6646
  139. package/dist/selfhost-migrations/meta/0055_snapshot.json +0 -6713
  140. package/dist/selfhost-migrations/meta/0056_snapshot.json +0 -6713
  141. package/dist/selfhost-migrations/meta/0057_snapshot.json +0 -6731
  142. package/dist/selfhost-migrations/meta/0059_snapshot.json +0 -6764
  143. package/dist/selfhost-migrations/meta/0060_snapshot.json +0 -7125
  144. package/dist/selfhost-migrations/meta/0061_snapshot.json +0 -7131
  145. package/dist/selfhost-migrations/meta/0062_snapshot.json +0 -7143
  146. package/dist/selfhost-migrations/meta/0063_snapshot.json +0 -7282
  147. package/dist/selfhost-migrations/meta/0064_snapshot.json +0 -7626
  148. package/dist/selfhost-migrations/meta/0065_snapshot.json +0 -7662
  149. package/dist/selfhost-migrations/meta/0066_snapshot.json +0 -7682
  150. package/dist/selfhost-migrations/meta/0067_snapshot.json +0 -7688
  151. package/dist/selfhost-migrations/meta/0068_snapshot.json +0 -7694
  152. package/dist/selfhost-migrations/meta/0069_snapshot.json +0 -7700
  153. package/dist/selfhost-migrations/meta/_journal.json +0 -496
@@ -1,10 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "email_enabled" boolean DEFAULT false NOT NULL;--> statement-breakpoint
2
- ALTER TABLE "aws_account" ADD COLUMN "features" json;--> statement-breakpoint
3
- ALTER TABLE "aws_account" DROP COLUMN "archiving_enabled";--> statement-breakpoint
4
- ALTER TABLE "aws_account" DROP COLUMN "archive_arn";--> statement-breakpoint
5
- ALTER TABLE "aws_account" DROP COLUMN "event_history_enabled";--> statement-breakpoint
6
- ALTER TABLE "aws_account" DROP COLUMN "event_tracking_enabled";--> statement-breakpoint
7
- ALTER TABLE "aws_account" DROP COLUMN "config_set_name";--> statement-breakpoint
8
- ALTER TABLE "aws_account" DROP COLUMN "custom_tracking_domain";--> statement-breakpoint
9
- ALTER TABLE "aws_account" DROP COLUMN "sms_phone_number_count";--> statement-breakpoint
10
- ALTER TABLE "aws_account" DROP COLUMN "sms_event_history_enabled";
@@ -1,11 +0,0 @@
1
- CREATE TABLE "message_usage_monthly" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "organization_id" text NOT NULL,
4
- "period_key" text NOT NULL,
5
- "message_count" integer DEFAULT 0 NOT NULL,
6
- "updated_at" timestamp DEFAULT now() NOT NULL
7
- );
8
- --> statement-breakpoint
9
- ALTER TABLE "message_usage_monthly" ADD CONSTRAINT "message_usage_monthly_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
10
- CREATE UNIQUE INDEX "message_usage_monthly_org_period_idx" ON "message_usage_monthly" USING btree ("organization_id","period_key");--> statement-breakpoint
11
- CREATE INDEX "message_usage_monthly_period_idx" ON "message_usage_monthly" USING btree ("period_key");
@@ -1 +0,0 @@
1
- CREATE UNIQUE INDEX "api_key_key_hash_idx" ON "api_key" USING btree ("key_hash");
@@ -1,12 +0,0 @@
1
- CREATE TABLE "device_code" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "device_code" text NOT NULL,
4
- "user_code" text NOT NULL,
5
- "user_id" text,
6
- "expires_at" timestamp NOT NULL,
7
- "status" text NOT NULL,
8
- "last_polled_at" timestamp,
9
- "polling_interval" integer,
10
- "client_id" text,
11
- "scope" text
12
- );
@@ -1,8 +0,0 @@
1
- ALTER TABLE "template" ADD COLUMN "slug" text;--> statement-breakpoint
2
- ALTER TABLE "template" ADD COLUMN "source" text;--> statement-breakpoint
3
- ALTER TABLE "template" ADD COLUMN "source_format" text DEFAULT 'tiptap' NOT NULL;--> statement-breakpoint
4
- ALTER TABLE "template" ADD COLUMN "source_hash" text;--> statement-breakpoint
5
- ALTER TABLE "template" ADD COLUMN "pushed_from_cli" boolean DEFAULT false NOT NULL;--> statement-breakpoint
6
- ALTER TABLE "template" ADD COLUMN "last_pushed_at" timestamp;--> statement-breakpoint
7
- ALTER TABLE "template" ADD COLUMN "cli_project_path" text;--> statement-breakpoint
8
- CREATE UNIQUE INDEX "template_org_slug_idx" ON "template" USING btree ("organization_id","slug");
@@ -1 +0,0 @@
1
- ALTER TABLE "template" ADD COLUMN "last_edited_from" text;
@@ -1,8 +0,0 @@
1
- ALTER TABLE "workflow" ADD COLUMN "slug" text;--> statement-breakpoint
2
- ALTER TABLE "workflow" ADD COLUMN "source_ts" text;--> statement-breakpoint
3
- ALTER TABLE "workflow" ADD COLUMN "source_hash" text;--> statement-breakpoint
4
- ALTER TABLE "workflow" ADD COLUMN "pushed_from_cli" boolean DEFAULT false;--> statement-breakpoint
5
- ALTER TABLE "workflow" ADD COLUMN "last_pushed_at" timestamp;--> statement-breakpoint
6
- ALTER TABLE "workflow" ADD COLUMN "cli_project_path" text;--> statement-breakpoint
7
- ALTER TABLE "workflow" ADD COLUMN "last_edited_from" text;--> statement-breakpoint
8
- CREATE UNIQUE INDEX "workflow_org_slug_idx" ON "workflow" USING btree ("organization_id","slug");
@@ -1 +0,0 @@
1
- ALTER TABLE "contact" ADD COLUMN "preferred_channel" text;
@@ -1 +0,0 @@
1
- ALTER TABLE "template" ADD COLUMN "channel" text DEFAULT 'email' NOT NULL;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "contact" ADD CONSTRAINT "contact_preferred_channel_check" CHECK ("preferred_channel" IN ('email', 'sms'));
2
- ALTER TABLE "template" ADD CONSTRAINT "template_channel_check" CHECK ("channel" IN ('email', 'sms'));
@@ -1 +0,0 @@
1
- ALTER TABLE "batch_send" ADD COLUMN "variable_mappings" json;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "workflow" ADD COLUMN "version" integer DEFAULT 1 NOT NULL;--> statement-breakpoint
2
- ALTER TABLE "workflow_execution" ADD COLUMN "definition_snapshot" jsonb;
@@ -1 +0,0 @@
1
- ALTER TABLE "template" ALTER COLUMN "created_by" DROP NOT NULL;
@@ -1 +0,0 @@
1
- ALTER TABLE "template" ALTER COLUMN "source_format" SET DEFAULT 'react-email';
@@ -1 +0,0 @@
1
- ALTER TABLE "template" ADD COLUMN "preview_text" text;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "template_version" ADD COLUMN "source" text;--> statement-breakpoint
2
- ALTER TABLE "template_version" ADD COLUMN "compiled_html" text;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "template" ADD COLUMN "brand_kit_id" text;--> statement-breakpoint
2
- ALTER TABLE "template" ADD CONSTRAINT "template_brand_kit_id_brand_kit_id_fk" FOREIGN KEY ("brand_kit_id") REFERENCES "public"."brand_kit"("id") ON DELETE set null ON UPDATE no action;
@@ -1 +0,0 @@
1
- ALTER TABLE "message_send" ADD COLUMN "clicked_url" text;
@@ -1,3 +0,0 @@
1
- ALTER TABLE "message_send" ADD COLUMN "workflow_execution_id" text;--> statement-breakpoint
2
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_workflow_execution_id_workflow_execution_id_fk" FOREIGN KEY ("workflow_execution_id") REFERENCES "public"."workflow_execution"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
3
- CREATE INDEX "message_send_workflow_execution_idx" ON "message_send" USING btree ("workflow_execution_id");
@@ -1,4 +0,0 @@
1
- ALTER TABLE "message_send" ADD COLUMN "open_user_agent" text;--> statement-breakpoint
2
- ALTER TABLE "message_send" ADD COLUMN "open_ip_address" text;--> statement-breakpoint
3
- ALTER TABLE "message_send" ADD COLUMN "click_user_agent" text;--> statement-breakpoint
4
- ALTER TABLE "message_send" ADD COLUMN "click_ip_address" text;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "organization_extension" ADD COLUMN "onboarding_path" text;--> statement-breakpoint
2
- ALTER TABLE "organization_extension" ADD COLUMN "activation_score" integer DEFAULT 0 NOT NULL;
@@ -1,5 +0,0 @@
1
- DROP INDEX "aws_account_permission_unique_idx";--> statement-breakpoint
2
- ALTER TABLE "template_version" ALTER COLUMN "created_by" DROP NOT NULL;--> statement-breakpoint
3
- ALTER TABLE "contact" ADD COLUMN "external_id" text;--> statement-breakpoint
4
- CREATE UNIQUE INDEX "contact_unique_org_external_id_idx" ON "contact" USING btree ("organization_id","external_id") WHERE external_id IS NOT NULL;--> statement-breakpoint
5
- CREATE UNIQUE INDEX "aws_account_permission_unique_idx" ON "aws_account_permission" USING btree ("user_id","aws_account_id");
@@ -1,31 +0,0 @@
1
- CREATE TABLE "scim_provider" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "provider_id" text NOT NULL,
4
- "scim_token" text NOT NULL,
5
- "organization_id" text,
6
- "user_id" text,
7
- "created_at" timestamp DEFAULT now() NOT NULL,
8
- "updated_at" timestamp DEFAULT now() NOT NULL
9
- );
10
- --> statement-breakpoint
11
- CREATE TABLE "sso_provider" (
12
- "id" text PRIMARY KEY NOT NULL,
13
- "provider_id" text NOT NULL,
14
- "issuer" text NOT NULL,
15
- "domain" text NOT NULL,
16
- "oidc_config" text,
17
- "saml_config" text,
18
- "user_id" text,
19
- "organization_id" text NOT NULL,
20
- "domain_verified" boolean DEFAULT false NOT NULL,
21
- "created_at" timestamp DEFAULT now() NOT NULL,
22
- "updated_at" timestamp DEFAULT now() NOT NULL,
23
- CONSTRAINT "sso_provider_provider_id_unique" UNIQUE("provider_id")
24
- );
25
- --> statement-breakpoint
26
- ALTER TABLE "scim_provider" ADD CONSTRAINT "scim_provider_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
27
- ALTER TABLE "scim_provider" ADD CONSTRAINT "scim_provider_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
28
- ALTER TABLE "sso_provider" ADD CONSTRAINT "sso_provider_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
29
- ALTER TABLE "sso_provider" ADD CONSTRAINT "sso_provider_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
30
- CREATE INDEX "scim_provider_org_idx" ON "scim_provider" USING btree ("organization_id");--> statement-breakpoint
31
- CREATE INDEX "sso_provider_org_idx" ON "sso_provider" USING btree ("organization_id");
@@ -1 +0,0 @@
1
- ALTER TABLE "scim_provider" ALTER COLUMN "organization_id" SET NOT NULL;
@@ -1,12 +0,0 @@
1
- DROP INDEX "aws_account_permission_unique_idx";--> statement-breakpoint
2
- ALTER TABLE "template_version" ALTER COLUMN "created_by" DROP NOT NULL;--> statement-breakpoint
3
- ALTER TABLE "batch_send" ADD COLUMN "last_chunk_at" timestamp;--> statement-breakpoint
4
- ALTER TABLE "batch_send" ADD COLUMN "last_chunk_index" integer;--> statement-breakpoint
5
- ALTER TABLE "batch_send" ADD COLUMN "last_cursor" json;--> statement-breakpoint
6
- -- NOTE: "message_send_dedup_idx" and "contact_keyset_idx" are declared in the
7
- -- Drizzle schema but are created out-of-band via
8
- -- packages/db/scripts/create-broadcast-resume-indexes.ts (CREATE INDEX
9
- -- CONCURRENTLY). drizzle-kit cannot run CONCURRENTLY inside a txn block.
10
- -- Run that script AFTER this migration applies but BEFORE shipping the DLQ
11
- -- consumer or worker resume columns are used in production.
12
- CREATE UNIQUE INDEX "aws_account_permission_unique_idx" ON "aws_account_permission" USING btree ("user_id","aws_account_id");
@@ -1,31 +0,0 @@
1
- -- Broadcast Resume: message_send dedup cleanup
2
- --
3
- -- Before the CONCURRENT unique-index script can run, any existing
4
- -- duplicate (batch_send_id, contact_id) tuples on message_send must be
5
- -- removed. Keeps the oldest row per (batch_send_id, contact_id) group.
6
- --
7
- -- Pre-flight guard: abort if the duplicate-candidate set is unexpectedly
8
- -- large. If you hit this guard, run the DELETE manually with chunking
9
- -- and then retry the migration.
10
-
11
- DO $$
12
- BEGIN
13
- IF (SELECT COUNT(*) FROM message_send WHERE contact_id IS NOT NULL) > 5000000 THEN
14
- RAISE EXCEPTION 'Too many message_send rows (>5M); run dedup cleanup manually in chunks before re-running this migration';
15
- END IF;
16
- END $$;
17
- --> statement-breakpoint
18
- DELETE FROM message_send
19
- WHERE id IN (
20
- SELECT id FROM (
21
- SELECT
22
- id,
23
- ROW_NUMBER() OVER (
24
- PARTITION BY batch_send_id, contact_id
25
- ORDER BY created_at, id
26
- ) AS rn
27
- FROM message_send
28
- WHERE contact_id IS NOT NULL
29
- ) x
30
- WHERE rn > 1
31
- );
@@ -1,5 +0,0 @@
1
- ALTER TABLE "audit_log" ADD COLUMN "actor_email" text;--> statement-breakpoint
2
- ALTER TABLE "audit_log" ALTER COLUMN "metadata" SET DATA TYPE jsonb USING metadata::text::jsonb;--> statement-breakpoint
3
- DROP INDEX IF EXISTS "audit_log_org_idx";--> statement-breakpoint
4
- DROP INDEX IF EXISTS "audit_log_timestamp_idx";--> statement-breakpoint
5
- CREATE INDEX "audit_log_org_created_idx" ON "audit_log" ("organization_id","created_at");
@@ -1 +0,0 @@
1
- CREATE INDEX IF NOT EXISTS "message_send_org_channel_sent_at_idx" ON "message_send" ("organization_id","channel","sent_at");
@@ -1 +0,0 @@
1
- ALTER TABLE "message_send" ADD COLUMN "claimed_at" timestamp;
@@ -1 +0,0 @@
1
- ALTER TABLE "organization_extension" ADD COLUMN "activation_first_email_tracked_at" timestamp;
@@ -1 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "last_event_received_at" timestamp;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "event_feed_stale_since" timestamp;--> statement-breakpoint
2
- ALTER TABLE "aws_account" ADD COLUMN "event_feed_alerted_at" timestamp;
@@ -1,17 +0,0 @@
1
- CREATE TABLE "notification" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "user_id" text NOT NULL,
4
- "organization_id" text,
5
- "type" text NOT NULL,
6
- "title" text NOT NULL,
7
- "body" text,
8
- "href" text,
9
- "data" jsonb,
10
- "read" boolean DEFAULT false NOT NULL,
11
- "created_at" timestamp DEFAULT now() NOT NULL
12
- );
13
- --> statement-breakpoint
14
- ALTER TABLE "notification" ADD CONSTRAINT "notification_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
15
- ALTER TABLE "notification" ADD CONSTRAINT "notification_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
- CREATE INDEX "notification_org_idx" ON "notification" USING btree ("organization_id");--> statement-breakpoint
17
- CREATE INDEX "notification_user_read_idx" ON "notification" USING btree ("user_id","read");
@@ -1,42 +0,0 @@
1
- CREATE TYPE "public"."agent_approval_status" AS ENUM('PENDING', 'APPROVED', 'REJECTED', 'SENT', 'FAILED');--> statement-breakpoint
2
- CREATE TYPE "public"."agent_status" AS ENUM('ACTIVE', 'KILLED');--> statement-breakpoint
3
- CREATE TABLE "agent" (
4
- "id" text PRIMARY KEY NOT NULL,
5
- "organization_id" text NOT NULL,
6
- "name" text NOT NULL,
7
- "email_address" text NOT NULL,
8
- "domain" text NOT NULL,
9
- "status" "agent_status" DEFAULT 'ACTIVE' NOT NULL,
10
- "policy" jsonb NOT NULL,
11
- "credential_user_arn" text,
12
- "enforcer_function_arn" text,
13
- "aws_account_id" text,
14
- "created_by" text,
15
- "created_at" timestamp DEFAULT now() NOT NULL,
16
- "updated_at" timestamp DEFAULT now() NOT NULL
17
- );
18
- --> statement-breakpoint
19
- CREATE TABLE "agent_approval_queue" (
20
- "id" text PRIMARY KEY NOT NULL,
21
- "organization_id" text NOT NULL,
22
- "agent_id" text NOT NULL,
23
- "payload" jsonb NOT NULL,
24
- "reason" text,
25
- "status" "agent_approval_status" DEFAULT 'PENDING' NOT NULL,
26
- "decided_by" text,
27
- "decided_at" timestamp,
28
- "message_id" text,
29
- "error_message" text,
30
- "created_at" timestamp DEFAULT now() NOT NULL,
31
- "updated_at" timestamp DEFAULT now() NOT NULL
32
- );
33
- --> statement-breakpoint
34
- ALTER TABLE "agent" ADD CONSTRAINT "agent_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
35
- ALTER TABLE "agent" ADD CONSTRAINT "agent_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
36
- ALTER TABLE "agent_approval_queue" ADD CONSTRAINT "agent_approval_queue_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
37
- ALTER TABLE "agent_approval_queue" ADD CONSTRAINT "agent_approval_queue_agent_id_agent_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agent"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
38
- ALTER TABLE "agent_approval_queue" ADD CONSTRAINT "agent_approval_queue_decided_by_user_id_fk" FOREIGN KEY ("decided_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
39
- CREATE INDEX "agent_org_idx" ON "agent" USING btree ("organization_id");--> statement-breakpoint
40
- CREATE UNIQUE INDEX "agent_unique_org_name_idx" ON "agent" USING btree ("organization_id","name");--> statement-breakpoint
41
- CREATE INDEX "agent_approval_queue_org_idx" ON "agent_approval_queue" USING btree ("organization_id");--> statement-breakpoint
42
- CREATE INDEX "agent_approval_queue_org_status_idx" ON "agent_approval_queue" USING btree ("organization_id","status");
@@ -1,2 +0,0 @@
1
- CREATE UNIQUE INDEX "agent_unique_org_email_idx" ON "agent" USING btree ("organization_id","email_address");--> statement-breakpoint
2
- CREATE INDEX "agent_approval_queue_agent_idx" ON "agent_approval_queue" USING btree ("agent_id");
@@ -1,3 +0,0 @@
1
- ALTER TABLE "two_factor" ADD COLUMN "verified" boolean DEFAULT true;--> statement-breakpoint
2
- ALTER TABLE "two_factor" ADD COLUMN "failed_verification_count" integer DEFAULT 0;--> statement-breakpoint
3
- ALTER TABLE "two_factor" ADD COLUMN "locked_until" timestamp;
@@ -1 +0,0 @@
1
- ALTER TABLE "ai_usage_log" ADD COLUMN "cached_input_tokens" integer;
@@ -1 +0,0 @@
1
- ALTER TABLE "topic_settings" ADD COLUMN "preference_center_theme" jsonb;
@@ -1 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "daily_quota_reserve" integer;
@@ -1,49 +0,0 @@
1
- # Migrations — Rules for Agents
2
-
3
- Everything in this directory is owned by drizzle-kit. Read this before
4
- editing anything here.
5
-
6
- ## Hard rules
7
-
8
- 1. **Never hand-edit or hand-create files under `meta/`** (`*_snapshot.json`,
9
- `_journal.json`). They are machine-generated. Hand-edited snapshots broke
10
- `db:generate` repo-wide for migrations 0055–0059 (see
11
- `plans/018-repair-drizzle-snapshot-chain.md`): index `columns` were
12
- encoded as strings where drizzle's v7 schema requires objects, and every
13
- later migration had to be hand-written as a workaround.
14
- 2. **Never hand-write migration SQL plus journal entries to bypass a broken
15
- `db:generate`.** Fix the generator instead (playbook below).
16
- 3. **Do not run formatters here.** `meta/` is excluded from Biome
17
- (`biome.jsonc`); drizzle-kit's raw output is canonical. Snapshots
18
- 0000–0059 predate the exclusion and are Biome-styled — leave them as
19
- they are.
20
- 4. **Snapshot gaps are normal.** 0040 and 0058 have journal+SQL but no
21
- snapshot; drizzle tolerates gaps. Never backfill a missing snapshot.
22
-
23
- ## If `db:generate` fails with "data is malformed"
24
-
25
- 1. Probe (offline, read-only, no DB needed):
26
- `cd packages/db && npx drizzle-kit check`
27
- Healthy: `Everything's fine 🐶🔥`. Broken: one `data is malformed` line
28
- per bad snapshot.
29
- 2. The usual cause is hand-edited snapshot JSON that fails drizzle's zod
30
- schema — e.g. index `columns` entries as `"col"` strings instead of
31
- `{ "expression": "col", "isExpression": false, "asc": true, "nulls": "last" }`
32
- objects.
33
- 3. Repair the encoding in the named files — change nothing else (not `id`,
34
- not `prevId`) — and re-run the probe.
35
- `plans/018-repair-drizzle-snapshot-chain.md` is the worked example of a
36
- full repair, including how to regenerate a tip snapshot safely.
37
-
38
- ## Manual SQL (e.g. CREATE INDEX CONCURRENTLY)
39
-
40
- Do not bypass drizzle. Follow the out-of-band pattern in
41
- `packages/db/CLAUDE.md` → "CONCURRENT Indexes": declare the index in
42
- `schema/*.ts` as the source of truth, strip the statement from the generated
43
- migration SQL, and create the index via a script under
44
- `packages/db/scripts/`.
45
-
46
- ## Normal workflow
47
-
48
- Edit `packages/db/src/schema/*.ts` → `pnpm --filter @wraps/db db:generate`
49
- → review the generated SQL → commit schema + SQL + meta together.