@trycompai/db 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/index.d.mts +9 -0
  2. package/dist/index.d.ts +9 -0
  3. package/dist/index.js +39 -0
  4. package/dist/index.mjs +14 -0
  5. package/dist/prisma/functionDefinition.sql +18 -0
  6. package/dist/prisma/migrations/20250403163138_init/migration.sql +611 -0
  7. package/dist/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +29 -0
  8. package/dist/prisma/migrations/20250403194504_risk_assignee/migration.sql +18 -0
  9. package/dist/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +16 -0
  10. package/dist/prisma/migrations/20250403205655_vendor_assignee/migration.sql +22 -0
  11. package/dist/prisma/migrations/20250403205840_oops_optional/migration.sql +2 -0
  12. package/dist/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +8 -0
  13. package/dist/prisma/migrations/20250404004853_stripecustomerid/migration.sql +2 -0
  14. package/dist/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +20 -0
  15. package/dist/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +30 -0
  16. package/dist/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +12 -0
  17. package/dist/prisma/migrations/20250414191353_onboarding_experience/migration.sql +25 -0
  18. package/dist/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +2 -0
  19. package/dist/prisma/migrations/20250417205622_add_global_vendors/migration.sql +26 -0
  20. package/dist/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +86 -0
  21. package/dist/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +109 -0
  22. package/dist/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +2 -0
  23. package/dist/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +8 -0
  24. package/dist/prisma/migrations/20250423154259_make_role_string/migration.sql +9 -0
  25. package/dist/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +9 -0
  26. package/dist/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +14 -0
  27. package/dist/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +2 -0
  28. package/dist/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +2 -0
  29. package/dist/prisma/migrations/20250509160401_added_framework_editor/migration.sql +8 -0
  30. package/dist/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +122 -0
  31. package/dist/prisma/migrations/20250509172401_drop_slug/migration.sql +11 -0
  32. package/dist/prisma/migrations/20250509232122_trust_portal/migration.sql +24 -0
  33. package/dist/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +2 -0
  34. package/dist/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +2 -0
  35. package/dist/prisma/migrations/20250512004633_added_identifier/migration.sql +5 -0
  36. package/dist/prisma/migrations/20250512115717_added_framework_status/migration.sql +7 -0
  37. package/dist/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +2 -0
  38. package/dist/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +2 -0
  39. package/dist/prisma/migrations/20250514144228_add_vercel_check/migration.sql +2 -0
  40. package/dist/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +2 -0
  41. package/dist/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +23 -0
  42. package/dist/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +21 -0
  43. package/dist/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +11 -0
  44. package/dist/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +6 -0
  45. package/dist/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +69 -0
  46. package/dist/prisma/migrations/20250516142234_make_entity_optional/migration.sql +3 -0
  47. package/dist/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +16 -0
  48. package/dist/prisma/migrations/20250516150558_drop_task_type/migration.sql +2 -0
  49. package/dist/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +37 -0
  50. package/dist/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +5 -0
  51. package/dist/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +31 -0
  52. package/dist/prisma/migrations/20250516162730_convert_framework_id/migration.sql +5 -0
  53. package/dist/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +5 -0
  54. package/dist/prisma/migrations/20250516164307_drop_enums/migration.sql +5 -0
  55. package/dist/prisma/migrations/20250516194123_add_cal_option/migration.sql +2 -0
  56. package/dist/prisma/migrations/20250518133218_add_booking_details/migration.sql +2 -0
  57. package/dist/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +3 -0
  58. package/dist/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +2 -0
  59. package/dist/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +17 -0
  60. package/dist/prisma/migrations/20250519172353_drop_artifacts/migration.sql +56 -0
  61. package/dist/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +14 -0
  62. package/dist/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +2 -0
  63. package/dist/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +5 -0
  64. package/dist/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +2 -0
  65. package/dist/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +8 -0
  66. package/dist/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +9 -0
  67. package/dist/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +36 -0
  68. package/dist/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +2 -0
  69. package/dist/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +2 -0
  70. package/dist/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +29 -0
  71. package/dist/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +18 -0
  72. package/dist/prisma/migrations/20250609130129_add_not_relevant/migration.sql +2 -0
  73. package/dist/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +2 -0
  74. package/dist/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +2 -0
  75. package/dist/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +10 -0
  76. package/dist/prisma/migrations/20250618001304_add_default_slug/migration.sql +3 -0
  77. package/dist/prisma/migrations/20250623184529_add_subscription_type/migration.sql +12 -0
  78. package/dist/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +27 -0
  79. package/dist/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +2 -0
  80. package/dist/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +5 -0
  81. package/dist/prisma/migrations/20250627180828_rename_completed_col/migration.sql +15 -0
  82. package/dist/prisma/migrations/20250708152414_add_had_call_col/migration.sql +2 -0
  83. package/dist/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +7 -0
  84. package/dist/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +8 -0
  85. package/dist/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +31 -0
  86. package/dist/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +7 -0
  87. package/dist/prisma/migrations/migration_lock.toml +3 -0
  88. package/dist/prisma/randomSecret.sql +12 -0
  89. package/dist/prisma/schema/attachments.prisma +35 -0
  90. package/dist/prisma/schema/auth.prisma +122 -0
  91. package/dist/prisma/schema/comment.prisma +27 -0
  92. package/dist/prisma/schema/context.prisma +18 -0
  93. package/dist/prisma/schema/control.prisma +21 -0
  94. package/dist/prisma/schema/framework-editor.prisma +96 -0
  95. package/dist/prisma/schema/framework.prisma +14 -0
  96. package/dist/prisma/schema/integration.prisma +32 -0
  97. package/dist/prisma/schema/onboarding.prisma +18 -0
  98. package/dist/prisma/schema/organization.prisma +34 -0
  99. package/dist/prisma/schema/policy.prisma +32 -0
  100. package/dist/prisma/schema/requirement.prisma +15 -0
  101. package/dist/prisma/schema/risk.prisma +57 -0
  102. package/dist/prisma/schema/shared.prisma +104 -0
  103. package/dist/prisma/schema/task.prisma +41 -0
  104. package/dist/prisma/schema/trust.prisma +37 -0
  105. package/dist/prisma/schema/vendor.prisma +56 -0
  106. package/dist/prisma/schema.prisma +12 -0
  107. package/dist/prisma/seed/frameworkEditorSchemas.js +136 -0
  108. package/dist/prisma/seed/frameworkEditorSchemas.ts +178 -0
  109. package/dist/prisma/seed/primitives/FrameworkEditorControlTemplate.json +296 -0
  110. package/dist/prisma/seed/primitives/FrameworkEditorFramework.json +101 -0
  111. package/dist/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +6057 -0
  112. package/dist/prisma/seed/primitives/FrameworkEditorRequirement.json +7841 -0
  113. package/dist/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +308 -0
  114. package/dist/prisma/seed/primitives/FrameworkEditorVideo.json +47 -0
  115. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +178 -0
  116. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +470 -0
  117. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +142 -0
  118. package/dist/prisma/seed/seed.js +160 -0
  119. package/dist/prisma/seed/seed.ts +192 -0
  120. package/dist/types.d.mts +1 -0
  121. package/dist/types.d.ts +1 -0
  122. package/dist/types.js +24 -0
  123. package/dist/types.mjs +2 -0
  124. package/package.json +75 -0
  125. package/prisma/functionDefinition.sql +18 -0
  126. package/prisma/migrations/20250403163138_init/migration.sql +611 -0
  127. package/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +29 -0
  128. package/prisma/migrations/20250403194504_risk_assignee/migration.sql +18 -0
  129. package/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +16 -0
  130. package/prisma/migrations/20250403205655_vendor_assignee/migration.sql +22 -0
  131. package/prisma/migrations/20250403205840_oops_optional/migration.sql +2 -0
  132. package/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +8 -0
  133. package/prisma/migrations/20250404004853_stripecustomerid/migration.sql +2 -0
  134. package/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +20 -0
  135. package/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +30 -0
  136. package/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +12 -0
  137. package/prisma/migrations/20250414191353_onboarding_experience/migration.sql +25 -0
  138. package/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +2 -0
  139. package/prisma/migrations/20250417205622_add_global_vendors/migration.sql +26 -0
  140. package/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +86 -0
  141. package/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +109 -0
  142. package/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +2 -0
  143. package/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +8 -0
  144. package/prisma/migrations/20250423154259_make_role_string/migration.sql +9 -0
  145. package/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +9 -0
  146. package/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +14 -0
  147. package/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +2 -0
  148. package/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +2 -0
  149. package/prisma/migrations/20250509160401_added_framework_editor/migration.sql +8 -0
  150. package/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +122 -0
  151. package/prisma/migrations/20250509172401_drop_slug/migration.sql +11 -0
  152. package/prisma/migrations/20250509232122_trust_portal/migration.sql +24 -0
  153. package/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +2 -0
  154. package/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +2 -0
  155. package/prisma/migrations/20250512004633_added_identifier/migration.sql +5 -0
  156. package/prisma/migrations/20250512115717_added_framework_status/migration.sql +7 -0
  157. package/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +2 -0
  158. package/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +2 -0
  159. package/prisma/migrations/20250514144228_add_vercel_check/migration.sql +2 -0
  160. package/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +2 -0
  161. package/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +23 -0
  162. package/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +21 -0
  163. package/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +11 -0
  164. package/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +6 -0
  165. package/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +69 -0
  166. package/prisma/migrations/20250516142234_make_entity_optional/migration.sql +3 -0
  167. package/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +16 -0
  168. package/prisma/migrations/20250516150558_drop_task_type/migration.sql +2 -0
  169. package/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +37 -0
  170. package/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +5 -0
  171. package/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +31 -0
  172. package/prisma/migrations/20250516162730_convert_framework_id/migration.sql +5 -0
  173. package/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +5 -0
  174. package/prisma/migrations/20250516164307_drop_enums/migration.sql +5 -0
  175. package/prisma/migrations/20250516194123_add_cal_option/migration.sql +2 -0
  176. package/prisma/migrations/20250518133218_add_booking_details/migration.sql +2 -0
  177. package/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +3 -0
  178. package/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +2 -0
  179. package/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +17 -0
  180. package/prisma/migrations/20250519172353_drop_artifacts/migration.sql +56 -0
  181. package/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +14 -0
  182. package/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +2 -0
  183. package/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +5 -0
  184. package/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +2 -0
  185. package/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +8 -0
  186. package/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +9 -0
  187. package/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +36 -0
  188. package/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +2 -0
  189. package/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +2 -0
  190. package/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +29 -0
  191. package/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +18 -0
  192. package/prisma/migrations/20250609130129_add_not_relevant/migration.sql +2 -0
  193. package/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +2 -0
  194. package/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +2 -0
  195. package/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +10 -0
  196. package/prisma/migrations/20250618001304_add_default_slug/migration.sql +3 -0
  197. package/prisma/migrations/20250623184529_add_subscription_type/migration.sql +12 -0
  198. package/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +27 -0
  199. package/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +2 -0
  200. package/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +5 -0
  201. package/prisma/migrations/20250627180828_rename_completed_col/migration.sql +15 -0
  202. package/prisma/migrations/20250708152414_add_had_call_col/migration.sql +2 -0
  203. package/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +7 -0
  204. package/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +8 -0
  205. package/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +31 -0
  206. package/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +7 -0
  207. package/prisma/migrations/migration_lock.toml +3 -0
  208. package/prisma/randomSecret.sql +12 -0
  209. package/prisma/schema/attachments.prisma +35 -0
  210. package/prisma/schema/auth.prisma +122 -0
  211. package/prisma/schema/comment.prisma +27 -0
  212. package/prisma/schema/context.prisma +18 -0
  213. package/prisma/schema/control.prisma +21 -0
  214. package/prisma/schema/framework-editor.prisma +96 -0
  215. package/prisma/schema/framework.prisma +14 -0
  216. package/prisma/schema/integration.prisma +32 -0
  217. package/prisma/schema/onboarding.prisma +18 -0
  218. package/prisma/schema/organization.prisma +34 -0
  219. package/prisma/schema/policy.prisma +32 -0
  220. package/prisma/schema/requirement.prisma +15 -0
  221. package/prisma/schema/risk.prisma +57 -0
  222. package/prisma/schema/shared.prisma +104 -0
  223. package/prisma/schema/task.prisma +41 -0
  224. package/prisma/schema/trust.prisma +37 -0
  225. package/prisma/schema/vendor.prisma +56 -0
  226. package/prisma/schema.prisma +12 -0
  227. package/prisma/seed/frameworkEditorSchemas.js +136 -0
  228. package/prisma/seed/frameworkEditorSchemas.ts +178 -0
  229. package/prisma/seed/primitives/FrameworkEditorControlTemplate.json +296 -0
  230. package/prisma/seed/primitives/FrameworkEditorFramework.json +101 -0
  231. package/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +6057 -0
  232. package/prisma/seed/primitives/FrameworkEditorRequirement.json +7841 -0
  233. package/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +308 -0
  234. package/prisma/seed/primitives/FrameworkEditorVideo.json +47 -0
  235. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +178 -0
  236. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +470 -0
  237. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +142 -0
  238. package/prisma/seed/seed.js +160 -0
  239. package/prisma/seed/seed.ts +192 -0
@@ -0,0 +1,611 @@
1
+ -- CreateExtension
2
+ CREATE EXTENSION IF NOT EXISTS "pgcrypto";
3
+
4
+ -- Create function to generate prefixed CUID with sortable timestamp (compact)
5
+ CREATE OR REPLACE FUNCTION generate_prefixed_cuid(prefix text)
6
+ RETURNS text AS $$
7
+ DECLARE
8
+ timestamp_hex text;
9
+ random_hex text;
10
+ BEGIN
11
+ -- Generate timestamp component (seconds since epoch) as hex
12
+ timestamp_hex = LOWER(TO_HEX(EXTRACT(EPOCH FROM NOW())::BIGINT));
13
+
14
+ -- Generate 8 random bytes and encode as hex (16 characters)
15
+ -- Ensure we call the function from the correct schema if pgcrypto is installed elsewhere
16
+ random_hex = encode(gen_random_bytes(8), 'hex');
17
+
18
+ -- Combine prefix, timestamp, and random hex string
19
+ RETURN prefix || '_' || timestamp_hex || random_hex;
20
+ END;
21
+ $$ LANGUAGE plpgsql;
22
+
23
+
24
+ -- CreateEnum
25
+ CREATE TYPE "ArtifactType" AS ENUM ('policy', 'evidence', 'procedure', 'training');
26
+
27
+ -- CreateEnum
28
+ CREATE TYPE "Role" AS ENUM ('owner', 'admin', 'auditor', 'employee');
29
+
30
+ -- CreateEnum
31
+ CREATE TYPE "EvidenceStatus" AS ENUM ('draft', 'published', 'not_relevant');
32
+
33
+ -- CreateEnum
34
+ CREATE TYPE "FrameworkId" AS ENUM ('soc2');
35
+
36
+ -- CreateEnum
37
+ CREATE TYPE "PolicyStatus" AS ENUM ('draft', 'published', 'needs_review', 'archived');
38
+
39
+ -- CreateEnum
40
+ CREATE TYPE "RequirementId" AS ENUM ('soc2_CC1', 'soc2_CC2', 'soc2_CC3', 'soc2_CC4', 'soc2_CC5', 'soc2_CC6', 'soc2_CC7', 'soc2_CC8', 'soc2_CC9', 'soc2_A1', 'soc2_C1', 'soc2_PI1', 'soc2_P1');
41
+
42
+ -- CreateEnum
43
+ CREATE TYPE "RiskTreatmentType" AS ENUM ('accept', 'avoid', 'mitigate', 'transfer');
44
+
45
+ -- CreateEnum
46
+ CREATE TYPE "RiskCategory" AS ENUM ('customer', 'governance', 'operations', 'other', 'people', 'regulatory', 'reporting', 'resilience', 'technology', 'vendor_management');
47
+
48
+ -- CreateEnum
49
+ CREATE TYPE "RiskStatus" AS ENUM ('open', 'pending', 'closed', 'archived');
50
+
51
+ -- CreateEnum
52
+ CREATE TYPE "Departments" AS ENUM ('none', 'admin', 'gov', 'hr', 'it', 'itsm', 'qms');
53
+
54
+ -- CreateEnum
55
+ CREATE TYPE "Frequency" AS ENUM ('monthly', 'quarterly', 'yearly');
56
+
57
+ -- CreateEnum
58
+ CREATE TYPE "Likelihood" AS ENUM ('very_unlikely', 'unlikely', 'possible', 'likely', 'very_likely');
59
+
60
+ -- CreateEnum
61
+ CREATE TYPE "Impact" AS ENUM ('insignificant', 'minor', 'moderate', 'major', 'severe');
62
+
63
+ -- CreateEnum
64
+ CREATE TYPE "TaskStatus" AS ENUM ('open', 'closed');
65
+
66
+ -- CreateEnum
67
+ CREATE TYPE "TaskType" AS ENUM ('vendor', 'risk');
68
+
69
+ -- CreateEnum
70
+ CREATE TYPE "VendorCategory" AS ENUM ('cloud', 'infrastructure', 'software_as_a_service', 'finance', 'marketing', 'sales', 'hr', 'other');
71
+
72
+ -- CreateEnum
73
+ CREATE TYPE "VendorStatus" AS ENUM ('not_assessed', 'in_progress', 'assessed');
74
+
75
+ -- CreateTable
76
+ CREATE TABLE "Artifact" (
77
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('art'::text),
78
+ "type" "ArtifactType" NOT NULL,
79
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
80
+ "updatedAt" TIMESTAMP(3) NOT NULL,
81
+ "organizationId" TEXT NOT NULL,
82
+ "evidenceId" TEXT,
83
+ "policyId" TEXT,
84
+
85
+ CONSTRAINT "Artifact_pkey" PRIMARY KEY ("id")
86
+ );
87
+
88
+ -- CreateTable
89
+ CREATE TABLE "User" (
90
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('usr'::text),
91
+ "name" TEXT NOT NULL,
92
+ "email" TEXT NOT NULL,
93
+ "emailVerified" BOOLEAN NOT NULL,
94
+ "image" TEXT,
95
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
96
+ "updatedAt" TIMESTAMP(3) NOT NULL,
97
+ "lastLogin" TIMESTAMP(3),
98
+
99
+ CONSTRAINT "User_pkey" PRIMARY KEY ("id")
100
+ );
101
+
102
+ -- CreateTable
103
+ CREATE TABLE "EmployeeTrainingVideoCompletion" (
104
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('evc'::text),
105
+ "completedAt" TIMESTAMP(3),
106
+ "videoId" TEXT NOT NULL,
107
+ "memberId" TEXT NOT NULL,
108
+
109
+ CONSTRAINT "EmployeeTrainingVideoCompletion_pkey" PRIMARY KEY ("id")
110
+ );
111
+
112
+ -- CreateTable
113
+ CREATE TABLE "Session" (
114
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('ses'::text),
115
+ "expiresAt" TIMESTAMP(3) NOT NULL,
116
+ "token" TEXT NOT NULL,
117
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
118
+ "updatedAt" TIMESTAMP(3) NOT NULL,
119
+ "ipAddress" TEXT,
120
+ "userAgent" TEXT,
121
+ "userId" TEXT NOT NULL,
122
+ "activeOrganizationId" TEXT,
123
+
124
+ CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
125
+ );
126
+
127
+ -- CreateTable
128
+ CREATE TABLE "Account" (
129
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('acc'::text),
130
+ "accountId" TEXT NOT NULL,
131
+ "providerId" TEXT NOT NULL,
132
+ "userId" TEXT NOT NULL,
133
+ "accessToken" TEXT,
134
+ "refreshToken" TEXT,
135
+ "idToken" TEXT,
136
+ "accessTokenExpiresAt" TIMESTAMP(3),
137
+ "refreshTokenExpiresAt" TIMESTAMP(3),
138
+ "scope" TEXT,
139
+ "password" TEXT,
140
+ "createdAt" TIMESTAMP(3) NOT NULL,
141
+ "updatedAt" TIMESTAMP(3) NOT NULL,
142
+
143
+ CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
144
+ );
145
+
146
+ -- CreateTable
147
+ CREATE TABLE "Verification" (
148
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('ver'::text),
149
+ "identifier" TEXT NOT NULL,
150
+ "value" TEXT NOT NULL,
151
+ "expiresAt" TIMESTAMP(3) NOT NULL,
152
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
153
+ "updatedAt" TIMESTAMP(3) NOT NULL,
154
+
155
+ CONSTRAINT "Verification_pkey" PRIMARY KEY ("id")
156
+ );
157
+
158
+ -- CreateTable
159
+ CREATE TABLE "Member" (
160
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('mem'::text),
161
+ "organizationId" TEXT NOT NULL,
162
+ "userId" TEXT NOT NULL,
163
+ "role" "Role" NOT NULL,
164
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
165
+ "department" "Departments" NOT NULL DEFAULT 'none',
166
+ "isActive" BOOLEAN NOT NULL DEFAULT true,
167
+
168
+ CONSTRAINT "Member_pkey" PRIMARY KEY ("id")
169
+ );
170
+
171
+ -- CreateTable
172
+ CREATE TABLE "Invitation" (
173
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('inv'::text),
174
+ "organizationId" TEXT NOT NULL,
175
+ "email" TEXT NOT NULL,
176
+ "role" "Role",
177
+ "status" TEXT NOT NULL,
178
+ "expiresAt" TIMESTAMP(3) NOT NULL,
179
+ "inviterId" TEXT NOT NULL,
180
+
181
+ CONSTRAINT "Invitation_pkey" PRIMARY KEY ("id")
182
+ );
183
+
184
+ -- CreateTable
185
+ CREATE TABLE "Control" (
186
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('ctl'::text),
187
+ "name" TEXT NOT NULL,
188
+ "description" TEXT NOT NULL,
189
+ "lastReviewDate" TIMESTAMP(3),
190
+ "nextReviewDate" TIMESTAMP(3),
191
+ "organizationId" TEXT NOT NULL,
192
+
193
+ CONSTRAINT "Control_pkey" PRIMARY KEY ("id")
194
+ );
195
+
196
+ -- CreateTable
197
+ CREATE TABLE "Evidence" (
198
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('evd'::text),
199
+ "name" TEXT NOT NULL,
200
+ "description" TEXT NOT NULL,
201
+ "published" BOOLEAN NOT NULL DEFAULT false,
202
+ "isNotRelevant" BOOLEAN NOT NULL DEFAULT false,
203
+ "additionalUrls" TEXT[],
204
+ "fileUrls" TEXT[],
205
+ "frequency" "Frequency",
206
+ "department" "Departments" NOT NULL DEFAULT 'none',
207
+ "status" "EvidenceStatus" DEFAULT 'draft',
208
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
209
+ "updatedAt" TIMESTAMP(3) NOT NULL,
210
+ "lastPublishedAt" TIMESTAMP(3),
211
+ "assigneeId" TEXT,
212
+ "organizationId" TEXT NOT NULL,
213
+
214
+ CONSTRAINT "Evidence_pkey" PRIMARY KEY ("id")
215
+ );
216
+
217
+ -- CreateTable
218
+ CREATE TABLE "FrameworkInstance" (
219
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('frm'::text),
220
+ "organizationId" TEXT NOT NULL,
221
+ "frameworkId" "FrameworkId" NOT NULL,
222
+
223
+ CONSTRAINT "FrameworkInstance_pkey" PRIMARY KEY ("id")
224
+ );
225
+
226
+ -- CreateTable
227
+ CREATE TABLE "Integration" (
228
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('int'::text),
229
+ "name" TEXT NOT NULL,
230
+ "integrationId" TEXT NOT NULL,
231
+ "settings" JSONB NOT NULL,
232
+ "userSettings" JSONB NOT NULL,
233
+ "organizationId" TEXT NOT NULL,
234
+ "lastRunAt" TIMESTAMP(3),
235
+
236
+ CONSTRAINT "Integration_pkey" PRIMARY KEY ("id")
237
+ );
238
+
239
+ -- CreateTable
240
+ CREATE TABLE "IntegrationResult" (
241
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('itr'::text),
242
+ "title" TEXT,
243
+ "description" TEXT,
244
+ "remediation" TEXT,
245
+ "status" TEXT,
246
+ "severity" TEXT,
247
+ "resultDetails" JSONB,
248
+ "completedAt" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
249
+ "integrationId" TEXT NOT NULL,
250
+ "organizationId" TEXT NOT NULL,
251
+ "assignedUserId" TEXT,
252
+
253
+ CONSTRAINT "IntegrationResult_pkey" PRIMARY KEY ("id")
254
+ );
255
+
256
+ -- CreateTable
257
+ CREATE TABLE "Organization" (
258
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('org'::text),
259
+ "name" TEXT NOT NULL,
260
+ "slug" TEXT NOT NULL,
261
+ "logo" TEXT,
262
+ "createdAt" TIMESTAMP(3) NOT NULL,
263
+ "metadata" TEXT,
264
+
265
+ CONSTRAINT "Organization_pkey" PRIMARY KEY ("id")
266
+ );
267
+
268
+ -- CreateTable
269
+ CREATE TABLE "Policy" (
270
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('pol'::text),
271
+ "name" TEXT NOT NULL,
272
+ "description" TEXT,
273
+ "organizationId" TEXT NOT NULL,
274
+ "status" "PolicyStatus" NOT NULL DEFAULT 'draft',
275
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
276
+ "updatedAt" TIMESTAMP(3) NOT NULL,
277
+ "content" JSONB[],
278
+ "frequency" "Frequency",
279
+ "lastPublishedAt" TIMESTAMP(3),
280
+ "isRequiredToSign" BOOLEAN NOT NULL DEFAULT false,
281
+ "signedBy" TEXT[] DEFAULT ARRAY[]::TEXT[],
282
+ "ownerId" TEXT,
283
+ "department" "Departments",
284
+ "reviewDate" TIMESTAMP(3),
285
+
286
+ CONSTRAINT "Policy_pkey" PRIMARY KEY ("id")
287
+ );
288
+
289
+ -- CreateTable
290
+ CREATE TABLE "RequirementMap" (
291
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('req'::text),
292
+ "requirementId" "RequirementId" NOT NULL,
293
+ "controlId" TEXT NOT NULL,
294
+ "frameworkInstanceId" TEXT NOT NULL,
295
+
296
+ CONSTRAINT "RequirementMap_pkey" PRIMARY KEY ("id")
297
+ );
298
+
299
+ -- CreateTable
300
+ CREATE TABLE "Risk" (
301
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('rsk'::text),
302
+ "title" TEXT NOT NULL,
303
+ "description" TEXT NOT NULL,
304
+ "category" "RiskCategory" NOT NULL,
305
+ "department" "Departments",
306
+ "status" "RiskStatus" NOT NULL DEFAULT 'open',
307
+ "likelihood" "Likelihood" NOT NULL DEFAULT 'very_unlikely',
308
+ "impact" "Impact" NOT NULL DEFAULT 'insignificant',
309
+ "residualLikelihood" "Likelihood" NOT NULL DEFAULT 'very_unlikely',
310
+ "residualImpact" "Impact" NOT NULL DEFAULT 'insignificant',
311
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
312
+ "updatedAt" TIMESTAMP(3) NOT NULL,
313
+ "treatmentStrategyDescription" TEXT,
314
+ "treatmentStrategy" "RiskTreatmentType" NOT NULL DEFAULT 'accept',
315
+ "organizationId" TEXT NOT NULL,
316
+ "ownerId" TEXT,
317
+
318
+ CONSTRAINT "Risk_pkey" PRIMARY KEY ("id")
319
+ );
320
+
321
+ -- CreateTable
322
+ CREATE TABLE "ApiKey" (
323
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('apk'::text),
324
+ "name" TEXT NOT NULL,
325
+ "key" TEXT NOT NULL,
326
+ "salt" TEXT,
327
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
328
+ "expiresAt" TIMESTAMP(3),
329
+ "lastUsedAt" TIMESTAMP(3),
330
+ "isActive" BOOLEAN NOT NULL DEFAULT true,
331
+ "organizationId" TEXT NOT NULL,
332
+
333
+ CONSTRAINT "ApiKey_pkey" PRIMARY KEY ("id")
334
+ );
335
+
336
+ -- CreateTable
337
+ CREATE TABLE "AuditLog" (
338
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('aud'::text),
339
+ "timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
340
+ "userId" TEXT NOT NULL,
341
+ "organizationId" TEXT NOT NULL,
342
+ "data" JSONB NOT NULL,
343
+
344
+ CONSTRAINT "AuditLog_pkey" PRIMARY KEY ("id")
345
+ );
346
+
347
+ -- CreateTable
348
+ CREATE TABLE "Task" (
349
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('tsk'::text),
350
+ "title" TEXT NOT NULL,
351
+ "description" TEXT NOT NULL,
352
+ "dueDate" TIMESTAMP(3) NOT NULL,
353
+ "status" "TaskStatus" NOT NULL DEFAULT 'open',
354
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
355
+ "updatedAt" TIMESTAMP(3) NOT NULL,
356
+ "relatedId" TEXT NOT NULL,
357
+ "relatedType" "TaskType" NOT NULL,
358
+ "userId" TEXT NOT NULL,
359
+ "organizationId" TEXT NOT NULL,
360
+
361
+ CONSTRAINT "Task_pkey" PRIMARY KEY ("id")
362
+ );
363
+
364
+ -- CreateTable
365
+ CREATE TABLE "Vendor" (
366
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('vnd'::text),
367
+ "name" TEXT NOT NULL,
368
+ "description" TEXT NOT NULL,
369
+ "category" "VendorCategory" NOT NULL DEFAULT 'other',
370
+ "status" "VendorStatus" NOT NULL DEFAULT 'not_assessed',
371
+ "inherentProbability" "Likelihood" NOT NULL DEFAULT 'very_unlikely',
372
+ "inherentImpact" "Impact" NOT NULL DEFAULT 'insignificant',
373
+ "residualProbability" "Likelihood" NOT NULL DEFAULT 'very_unlikely',
374
+ "residualImpact" "Impact" NOT NULL DEFAULT 'insignificant',
375
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
376
+ "updatedAt" TIMESTAMP(3) NOT NULL,
377
+ "organizationId" TEXT NOT NULL,
378
+ "ownerId" TEXT,
379
+
380
+ CONSTRAINT "Vendor_pkey" PRIMARY KEY ("id")
381
+ );
382
+
383
+ -- CreateTable
384
+ CREATE TABLE "VendorContact" (
385
+ "id" TEXT NOT NULL DEFAULT generate_prefixed_cuid('vct'::text),
386
+ "vendorId" TEXT NOT NULL,
387
+ "name" TEXT NOT NULL,
388
+ "email" TEXT NOT NULL,
389
+ "phone" TEXT NOT NULL,
390
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
391
+ "updatedAt" TIMESTAMP(3) NOT NULL,
392
+
393
+ CONSTRAINT "VendorContact_pkey" PRIMARY KEY ("id")
394
+ );
395
+
396
+ -- CreateTable
397
+ CREATE TABLE "_ArtifactToControl" (
398
+ "A" TEXT NOT NULL,
399
+ "B" TEXT NOT NULL,
400
+
401
+ CONSTRAINT "_ArtifactToControl_AB_pkey" PRIMARY KEY ("A","B")
402
+ );
403
+
404
+ -- CreateTable
405
+ CREATE TABLE "_ControlToFrameworkInstance" (
406
+ "A" TEXT NOT NULL,
407
+ "B" TEXT NOT NULL,
408
+
409
+ CONSTRAINT "_ControlToFrameworkInstance_AB_pkey" PRIMARY KEY ("A","B")
410
+ );
411
+
412
+ -- CreateIndex
413
+ CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
414
+
415
+ -- CreateIndex
416
+ CREATE INDEX "EmployeeTrainingVideoCompletion_memberId_idx" ON "EmployeeTrainingVideoCompletion"("memberId");
417
+
418
+ -- CreateIndex
419
+ CREATE UNIQUE INDEX "EmployeeTrainingVideoCompletion_memberId_videoId_key" ON "EmployeeTrainingVideoCompletion"("memberId", "videoId");
420
+
421
+ -- CreateIndex
422
+ CREATE UNIQUE INDEX "Session_token_key" ON "Session"("token");
423
+
424
+ -- CreateIndex
425
+ CREATE INDEX "Control_organizationId_idx" ON "Control"("organizationId");
426
+
427
+ -- CreateIndex
428
+ CREATE INDEX "Evidence_organizationId_idx" ON "Evidence"("organizationId");
429
+
430
+ -- CreateIndex
431
+ CREATE UNIQUE INDEX "FrameworkInstance_organizationId_frameworkId_key" ON "FrameworkInstance"("organizationId", "frameworkId");
432
+
433
+ -- CreateIndex
434
+ CREATE UNIQUE INDEX "Integration_name_key" ON "Integration"("name");
435
+
436
+ -- CreateIndex
437
+ CREATE INDEX "Integration_organizationId_idx" ON "Integration"("organizationId");
438
+
439
+ -- CreateIndex
440
+ CREATE INDEX "IntegrationResult_integrationId_idx" ON "IntegrationResult"("integrationId");
441
+
442
+ -- CreateIndex
443
+ CREATE UNIQUE INDEX "Organization_slug_key" ON "Organization"("slug");
444
+
445
+ -- CreateIndex
446
+ CREATE INDEX "Organization_slug_idx" ON "Organization"("slug");
447
+
448
+ -- CreateIndex
449
+ CREATE INDEX "Policy_organizationId_idx" ON "Policy"("organizationId");
450
+
451
+ -- CreateIndex
452
+ CREATE INDEX "RequirementMap_requirementId_frameworkInstanceId_idx" ON "RequirementMap"("requirementId", "frameworkInstanceId");
453
+
454
+ -- CreateIndex
455
+ CREATE UNIQUE INDEX "RequirementMap_controlId_frameworkInstanceId_requirementId_key" ON "RequirementMap"("controlId", "frameworkInstanceId", "requirementId");
456
+
457
+ -- CreateIndex
458
+ CREATE INDEX "Risk_organizationId_idx" ON "Risk"("organizationId");
459
+
460
+ -- CreateIndex
461
+ CREATE INDEX "Risk_ownerId_idx" ON "Risk"("ownerId");
462
+
463
+ -- CreateIndex
464
+ CREATE INDEX "Risk_category_idx" ON "Risk"("category");
465
+
466
+ -- CreateIndex
467
+ CREATE INDEX "Risk_status_idx" ON "Risk"("status");
468
+
469
+ -- CreateIndex
470
+ CREATE UNIQUE INDEX "ApiKey_key_key" ON "ApiKey"("key");
471
+
472
+ -- CreateIndex
473
+ CREATE INDEX "ApiKey_organizationId_idx" ON "ApiKey"("organizationId");
474
+
475
+ -- CreateIndex
476
+ CREATE INDEX "ApiKey_key_idx" ON "ApiKey"("key");
477
+
478
+ -- CreateIndex
479
+ CREATE INDEX "AuditLog_userId_idx" ON "AuditLog"("userId");
480
+
481
+ -- CreateIndex
482
+ CREATE INDEX "AuditLog_organizationId_idx" ON "AuditLog"("organizationId");
483
+
484
+ -- CreateIndex
485
+ CREATE INDEX "Task_relatedId_idx" ON "Task"("relatedId");
486
+
487
+ -- CreateIndex
488
+ CREATE INDEX "Task_relatedId_organizationId_idx" ON "Task"("relatedId", "organizationId");
489
+
490
+ -- CreateIndex
491
+ CREATE INDEX "Vendor_organizationId_idx" ON "Vendor"("organizationId");
492
+
493
+ -- CreateIndex
494
+ CREATE INDEX "Vendor_ownerId_idx" ON "Vendor"("ownerId");
495
+
496
+ -- CreateIndex
497
+ CREATE INDEX "Vendor_category_idx" ON "Vendor"("category");
498
+
499
+ -- CreateIndex
500
+ CREATE INDEX "VendorContact_vendorId_idx" ON "VendorContact"("vendorId");
501
+
502
+ -- CreateIndex
503
+ CREATE INDEX "_ArtifactToControl_B_index" ON "_ArtifactToControl"("B");
504
+
505
+ -- CreateIndex
506
+ CREATE INDEX "_ControlToFrameworkInstance_B_index" ON "_ControlToFrameworkInstance"("B");
507
+
508
+ -- AddForeignKey
509
+ ALTER TABLE "Artifact" ADD CONSTRAINT "Artifact_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
510
+
511
+ -- AddForeignKey
512
+ ALTER TABLE "Artifact" ADD CONSTRAINT "Artifact_evidenceId_fkey" FOREIGN KEY ("evidenceId") REFERENCES "Evidence"("id") ON DELETE CASCADE ON UPDATE CASCADE;
513
+
514
+ -- AddForeignKey
515
+ ALTER TABLE "Artifact" ADD CONSTRAINT "Artifact_policyId_fkey" FOREIGN KEY ("policyId") REFERENCES "Policy"("id") ON DELETE CASCADE ON UPDATE CASCADE;
516
+
517
+ -- AddForeignKey
518
+ ALTER TABLE "EmployeeTrainingVideoCompletion" ADD CONSTRAINT "EmployeeTrainingVideoCompletion_memberId_fkey" FOREIGN KEY ("memberId") REFERENCES "Member"("id") ON DELETE CASCADE ON UPDATE CASCADE;
519
+
520
+ -- AddForeignKey
521
+ ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
522
+
523
+ -- AddForeignKey
524
+ ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
525
+
526
+ -- AddForeignKey
527
+ ALTER TABLE "Member" ADD CONSTRAINT "Member_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
528
+
529
+ -- AddForeignKey
530
+ ALTER TABLE "Member" ADD CONSTRAINT "Member_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
531
+
532
+ -- AddForeignKey
533
+ ALTER TABLE "Invitation" ADD CONSTRAINT "Invitation_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
534
+
535
+ -- AddForeignKey
536
+ ALTER TABLE "Invitation" ADD CONSTRAINT "Invitation_inviterId_fkey" FOREIGN KEY ("inviterId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
537
+
538
+ -- AddForeignKey
539
+ ALTER TABLE "Control" ADD CONSTRAINT "Control_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
540
+
541
+ -- AddForeignKey
542
+ ALTER TABLE "Evidence" ADD CONSTRAINT "Evidence_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "Member"("id") ON DELETE SET NULL ON UPDATE CASCADE;
543
+
544
+ -- AddForeignKey
545
+ ALTER TABLE "Evidence" ADD CONSTRAINT "Evidence_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
546
+
547
+ -- AddForeignKey
548
+ ALTER TABLE "FrameworkInstance" ADD CONSTRAINT "FrameworkInstance_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
549
+
550
+ -- AddForeignKey
551
+ ALTER TABLE "Integration" ADD CONSTRAINT "Integration_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
552
+
553
+ -- AddForeignKey
554
+ ALTER TABLE "IntegrationResult" ADD CONSTRAINT "IntegrationResult_assignedUserId_fkey" FOREIGN KEY ("assignedUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
555
+
556
+ -- AddForeignKey
557
+ ALTER TABLE "IntegrationResult" ADD CONSTRAINT "IntegrationResult_integrationId_fkey" FOREIGN KEY ("integrationId") REFERENCES "Integration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
558
+
559
+ -- AddForeignKey
560
+ ALTER TABLE "Policy" ADD CONSTRAINT "Policy_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
561
+
562
+ -- AddForeignKey
563
+ ALTER TABLE "Policy" ADD CONSTRAINT "Policy_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
564
+
565
+ -- AddForeignKey
566
+ ALTER TABLE "RequirementMap" ADD CONSTRAINT "RequirementMap_controlId_fkey" FOREIGN KEY ("controlId") REFERENCES "Control"("id") ON DELETE CASCADE ON UPDATE CASCADE;
567
+
568
+ -- AddForeignKey
569
+ ALTER TABLE "RequirementMap" ADD CONSTRAINT "RequirementMap_frameworkInstanceId_fkey" FOREIGN KEY ("frameworkInstanceId") REFERENCES "FrameworkInstance"("id") ON DELETE CASCADE ON UPDATE CASCADE;
570
+
571
+ -- AddForeignKey
572
+ ALTER TABLE "Risk" ADD CONSTRAINT "Risk_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
573
+
574
+ -- AddForeignKey
575
+ ALTER TABLE "Risk" ADD CONSTRAINT "Risk_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
576
+
577
+ -- AddForeignKey
578
+ ALTER TABLE "ApiKey" ADD CONSTRAINT "ApiKey_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
579
+
580
+ -- AddForeignKey
581
+ ALTER TABLE "AuditLog" ADD CONSTRAINT "AuditLog_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
582
+
583
+ -- AddForeignKey
584
+ ALTER TABLE "AuditLog" ADD CONSTRAINT "AuditLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
585
+
586
+ -- AddForeignKey
587
+ ALTER TABLE "Task" ADD CONSTRAINT "Task_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
588
+
589
+ -- AddForeignKey
590
+ ALTER TABLE "Task" ADD CONSTRAINT "Task_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
591
+
592
+ -- AddForeignKey
593
+ ALTER TABLE "Vendor" ADD CONSTRAINT "Vendor_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
594
+
595
+ -- AddForeignKey
596
+ ALTER TABLE "Vendor" ADD CONSTRAINT "Vendor_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
597
+
598
+ -- AddForeignKey
599
+ ALTER TABLE "VendorContact" ADD CONSTRAINT "VendorContact_vendorId_fkey" FOREIGN KEY ("vendorId") REFERENCES "Vendor"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
600
+
601
+ -- AddForeignKey
602
+ ALTER TABLE "_ArtifactToControl" ADD CONSTRAINT "_ArtifactToControl_A_fkey" FOREIGN KEY ("A") REFERENCES "Artifact"("id") ON DELETE CASCADE ON UPDATE CASCADE;
603
+
604
+ -- AddForeignKey
605
+ ALTER TABLE "_ArtifactToControl" ADD CONSTRAINT "_ArtifactToControl_B_fkey" FOREIGN KEY ("B") REFERENCES "Control"("id") ON DELETE CASCADE ON UPDATE CASCADE;
606
+
607
+ -- AddForeignKey
608
+ ALTER TABLE "_ControlToFrameworkInstance" ADD CONSTRAINT "_ControlToFrameworkInstance_A_fkey" FOREIGN KEY ("A") REFERENCES "Control"("id") ON DELETE CASCADE ON UPDATE CASCADE;
609
+
610
+ -- AddForeignKey
611
+ ALTER TABLE "_ControlToFrameworkInstance" ADD CONSTRAINT "_ControlToFrameworkInstance_B_fkey" FOREIGN KEY ("B") REFERENCES "FrameworkInstance"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,29 @@
1
+ /*
2
+ Warnings:
3
+
4
+ - The values [archived] on the enum `PolicyStatus` will be removed. If these variants are still used in the database, this will fail.
5
+ - You are about to drop the column `ownerId` on the `Policy` table. All the data in the column will be lost.
6
+
7
+ */
8
+ -- AlterEnum
9
+ BEGIN;
10
+ CREATE TYPE "PolicyStatus_new" AS ENUM ('draft', 'published', 'needs_review');
11
+ ALTER TABLE "Policy" ALTER COLUMN "status" DROP DEFAULT;
12
+ ALTER TABLE "Policy" ALTER COLUMN "status" TYPE "PolicyStatus_new" USING ("status"::text::"PolicyStatus_new");
13
+ ALTER TYPE "PolicyStatus" RENAME TO "PolicyStatus_old";
14
+ ALTER TYPE "PolicyStatus_new" RENAME TO "PolicyStatus";
15
+ DROP TYPE "PolicyStatus_old";
16
+ ALTER TABLE "Policy" ALTER COLUMN "status" SET DEFAULT 'draft';
17
+ COMMIT;
18
+
19
+ -- DropForeignKey
20
+ ALTER TABLE "Policy" DROP CONSTRAINT "Policy_ownerId_fkey";
21
+
22
+ -- AlterTable
23
+ ALTER TABLE "Policy" DROP COLUMN "ownerId",
24
+ ADD COLUMN "assigneeId" TEXT,
25
+ ADD COLUMN "isArchived" BOOLEAN NOT NULL DEFAULT false,
26
+ ADD COLUMN "lastArchivedAt" TIMESTAMP(3);
27
+
28
+ -- AddForeignKey
29
+ ALTER TABLE "Policy" ADD CONSTRAINT "Policy_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "Member"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,18 @@
1
+ /*
2
+ Warnings:
3
+
4
+ - You are about to drop the column `ownerId` on the `Risk` table. All the data in the column will be lost.
5
+
6
+ */
7
+ -- DropForeignKey
8
+ ALTER TABLE "Risk" DROP CONSTRAINT "Risk_ownerId_fkey";
9
+
10
+ -- DropIndex
11
+ DROP INDEX "Risk_ownerId_idx";
12
+
13
+ -- AlterTable
14
+ ALTER TABLE "Risk" DROP COLUMN "ownerId",
15
+ ADD COLUMN "assigneeId" TEXT;
16
+
17
+ -- AddForeignKey
18
+ ALTER TABLE "Risk" ADD CONSTRAINT "Risk_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "Member"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,16 @@
1
+ /*
2
+ Warnings:
3
+
4
+ - You are about to drop the column `userId` on the `Task` table. All the data in the column will be lost.
5
+ - Added the required column `assigneeId` to the `Task` table without a default value. This is not possible if the table is not empty.
6
+
7
+ */
8
+ -- DropForeignKey
9
+ ALTER TABLE "Task" DROP CONSTRAINT "Task_userId_fkey";
10
+
11
+ -- AlterTable
12
+ ALTER TABLE "Task" DROP COLUMN "userId",
13
+ ADD COLUMN "assigneeId" TEXT NOT NULL;
14
+
15
+ -- AddForeignKey
16
+ ALTER TABLE "Task" ADD CONSTRAINT "Task_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "Member"("id") ON DELETE RESTRICT ON UPDATE CASCADE;