@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.
- package/dist/index.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +39 -0
- package/dist/index.mjs +14 -0
- package/dist/prisma/functionDefinition.sql +18 -0
- package/dist/prisma/migrations/20250403163138_init/migration.sql +611 -0
- package/dist/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +29 -0
- package/dist/prisma/migrations/20250403194504_risk_assignee/migration.sql +18 -0
- package/dist/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +16 -0
- package/dist/prisma/migrations/20250403205655_vendor_assignee/migration.sql +22 -0
- package/dist/prisma/migrations/20250403205840_oops_optional/migration.sql +2 -0
- package/dist/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +8 -0
- package/dist/prisma/migrations/20250404004853_stripecustomerid/migration.sql +2 -0
- package/dist/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +20 -0
- package/dist/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +30 -0
- package/dist/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +12 -0
- package/dist/prisma/migrations/20250414191353_onboarding_experience/migration.sql +25 -0
- package/dist/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +2 -0
- package/dist/prisma/migrations/20250417205622_add_global_vendors/migration.sql +26 -0
- package/dist/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +86 -0
- package/dist/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +109 -0
- package/dist/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +2 -0
- package/dist/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +8 -0
- package/dist/prisma/migrations/20250423154259_make_role_string/migration.sql +9 -0
- package/dist/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +9 -0
- package/dist/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +14 -0
- package/dist/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +2 -0
- package/dist/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +2 -0
- package/dist/prisma/migrations/20250509160401_added_framework_editor/migration.sql +8 -0
- package/dist/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +122 -0
- package/dist/prisma/migrations/20250509172401_drop_slug/migration.sql +11 -0
- package/dist/prisma/migrations/20250509232122_trust_portal/migration.sql +24 -0
- package/dist/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +2 -0
- package/dist/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +2 -0
- package/dist/prisma/migrations/20250512004633_added_identifier/migration.sql +5 -0
- package/dist/prisma/migrations/20250512115717_added_framework_status/migration.sql +7 -0
- package/dist/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +2 -0
- package/dist/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +2 -0
- package/dist/prisma/migrations/20250514144228_add_vercel_check/migration.sql +2 -0
- package/dist/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +2 -0
- package/dist/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +23 -0
- package/dist/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +21 -0
- package/dist/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +11 -0
- package/dist/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +6 -0
- package/dist/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +69 -0
- package/dist/prisma/migrations/20250516142234_make_entity_optional/migration.sql +3 -0
- package/dist/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +16 -0
- package/dist/prisma/migrations/20250516150558_drop_task_type/migration.sql +2 -0
- package/dist/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +37 -0
- package/dist/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +5 -0
- package/dist/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +31 -0
- package/dist/prisma/migrations/20250516162730_convert_framework_id/migration.sql +5 -0
- package/dist/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +5 -0
- package/dist/prisma/migrations/20250516164307_drop_enums/migration.sql +5 -0
- package/dist/prisma/migrations/20250516194123_add_cal_option/migration.sql +2 -0
- package/dist/prisma/migrations/20250518133218_add_booking_details/migration.sql +2 -0
- package/dist/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +3 -0
- package/dist/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +2 -0
- package/dist/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +17 -0
- package/dist/prisma/migrations/20250519172353_drop_artifacts/migration.sql +56 -0
- package/dist/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +14 -0
- package/dist/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +2 -0
- package/dist/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +5 -0
- package/dist/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +2 -0
- package/dist/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +8 -0
- package/dist/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +9 -0
- package/dist/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +36 -0
- package/dist/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +2 -0
- package/dist/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +2 -0
- package/dist/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +29 -0
- package/dist/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +18 -0
- package/dist/prisma/migrations/20250609130129_add_not_relevant/migration.sql +2 -0
- package/dist/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +2 -0
- package/dist/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +2 -0
- package/dist/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +10 -0
- package/dist/prisma/migrations/20250618001304_add_default_slug/migration.sql +3 -0
- package/dist/prisma/migrations/20250623184529_add_subscription_type/migration.sql +12 -0
- package/dist/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +27 -0
- package/dist/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +2 -0
- package/dist/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +5 -0
- package/dist/prisma/migrations/20250627180828_rename_completed_col/migration.sql +15 -0
- package/dist/prisma/migrations/20250708152414_add_had_call_col/migration.sql +2 -0
- package/dist/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +7 -0
- package/dist/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +8 -0
- package/dist/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +31 -0
- package/dist/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +7 -0
- package/dist/prisma/migrations/migration_lock.toml +3 -0
- package/dist/prisma/randomSecret.sql +12 -0
- package/dist/prisma/schema/attachments.prisma +35 -0
- package/dist/prisma/schema/auth.prisma +122 -0
- package/dist/prisma/schema/comment.prisma +27 -0
- package/dist/prisma/schema/context.prisma +18 -0
- package/dist/prisma/schema/control.prisma +21 -0
- package/dist/prisma/schema/framework-editor.prisma +96 -0
- package/dist/prisma/schema/framework.prisma +14 -0
- package/dist/prisma/schema/integration.prisma +32 -0
- package/dist/prisma/schema/onboarding.prisma +18 -0
- package/dist/prisma/schema/organization.prisma +34 -0
- package/dist/prisma/schema/policy.prisma +32 -0
- package/dist/prisma/schema/requirement.prisma +15 -0
- package/dist/prisma/schema/risk.prisma +57 -0
- package/dist/prisma/schema/shared.prisma +104 -0
- package/dist/prisma/schema/task.prisma +41 -0
- package/dist/prisma/schema/trust.prisma +37 -0
- package/dist/prisma/schema/vendor.prisma +56 -0
- package/dist/prisma/schema.prisma +12 -0
- package/dist/prisma/seed/frameworkEditorSchemas.js +136 -0
- package/dist/prisma/seed/frameworkEditorSchemas.ts +178 -0
- package/dist/prisma/seed/primitives/FrameworkEditorControlTemplate.json +296 -0
- package/dist/prisma/seed/primitives/FrameworkEditorFramework.json +101 -0
- package/dist/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +6057 -0
- package/dist/prisma/seed/primitives/FrameworkEditorRequirement.json +7841 -0
- package/dist/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +308 -0
- package/dist/prisma/seed/primitives/FrameworkEditorVideo.json +47 -0
- package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +178 -0
- package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +470 -0
- package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +142 -0
- package/dist/prisma/seed/seed.js +160 -0
- package/dist/prisma/seed/seed.ts +192 -0
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +24 -0
- package/dist/types.mjs +2 -0
- package/package.json +75 -0
- package/prisma/functionDefinition.sql +18 -0
- package/prisma/migrations/20250403163138_init/migration.sql +611 -0
- package/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +29 -0
- package/prisma/migrations/20250403194504_risk_assignee/migration.sql +18 -0
- package/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +16 -0
- package/prisma/migrations/20250403205655_vendor_assignee/migration.sql +22 -0
- package/prisma/migrations/20250403205840_oops_optional/migration.sql +2 -0
- package/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +8 -0
- package/prisma/migrations/20250404004853_stripecustomerid/migration.sql +2 -0
- package/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +20 -0
- package/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +30 -0
- package/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +12 -0
- package/prisma/migrations/20250414191353_onboarding_experience/migration.sql +25 -0
- package/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +2 -0
- package/prisma/migrations/20250417205622_add_global_vendors/migration.sql +26 -0
- package/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +86 -0
- package/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +109 -0
- package/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +2 -0
- package/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +8 -0
- package/prisma/migrations/20250423154259_make_role_string/migration.sql +9 -0
- package/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +9 -0
- package/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +14 -0
- package/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +2 -0
- package/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +2 -0
- package/prisma/migrations/20250509160401_added_framework_editor/migration.sql +8 -0
- package/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +122 -0
- package/prisma/migrations/20250509172401_drop_slug/migration.sql +11 -0
- package/prisma/migrations/20250509232122_trust_portal/migration.sql +24 -0
- package/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +2 -0
- package/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +2 -0
- package/prisma/migrations/20250512004633_added_identifier/migration.sql +5 -0
- package/prisma/migrations/20250512115717_added_framework_status/migration.sql +7 -0
- package/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +2 -0
- package/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +2 -0
- package/prisma/migrations/20250514144228_add_vercel_check/migration.sql +2 -0
- package/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +2 -0
- package/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +23 -0
- package/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +21 -0
- package/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +11 -0
- package/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +6 -0
- package/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +69 -0
- package/prisma/migrations/20250516142234_make_entity_optional/migration.sql +3 -0
- package/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +16 -0
- package/prisma/migrations/20250516150558_drop_task_type/migration.sql +2 -0
- package/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +37 -0
- package/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +5 -0
- package/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +31 -0
- package/prisma/migrations/20250516162730_convert_framework_id/migration.sql +5 -0
- package/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +5 -0
- package/prisma/migrations/20250516164307_drop_enums/migration.sql +5 -0
- package/prisma/migrations/20250516194123_add_cal_option/migration.sql +2 -0
- package/prisma/migrations/20250518133218_add_booking_details/migration.sql +2 -0
- package/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +3 -0
- package/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +2 -0
- package/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +17 -0
- package/prisma/migrations/20250519172353_drop_artifacts/migration.sql +56 -0
- package/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +14 -0
- package/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +2 -0
- package/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +5 -0
- package/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +2 -0
- package/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +8 -0
- package/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +9 -0
- package/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +36 -0
- package/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +2 -0
- package/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +2 -0
- package/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +29 -0
- package/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +18 -0
- package/prisma/migrations/20250609130129_add_not_relevant/migration.sql +2 -0
- package/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +2 -0
- package/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +2 -0
- package/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +10 -0
- package/prisma/migrations/20250618001304_add_default_slug/migration.sql +3 -0
- package/prisma/migrations/20250623184529_add_subscription_type/migration.sql +12 -0
- package/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +27 -0
- package/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +2 -0
- package/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +5 -0
- package/prisma/migrations/20250627180828_rename_completed_col/migration.sql +15 -0
- package/prisma/migrations/20250708152414_add_had_call_col/migration.sql +2 -0
- package/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +7 -0
- package/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +8 -0
- package/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +31 -0
- package/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +7 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/randomSecret.sql +12 -0
- package/prisma/schema/attachments.prisma +35 -0
- package/prisma/schema/auth.prisma +122 -0
- package/prisma/schema/comment.prisma +27 -0
- package/prisma/schema/context.prisma +18 -0
- package/prisma/schema/control.prisma +21 -0
- package/prisma/schema/framework-editor.prisma +96 -0
- package/prisma/schema/framework.prisma +14 -0
- package/prisma/schema/integration.prisma +32 -0
- package/prisma/schema/onboarding.prisma +18 -0
- package/prisma/schema/organization.prisma +34 -0
- package/prisma/schema/policy.prisma +32 -0
- package/prisma/schema/requirement.prisma +15 -0
- package/prisma/schema/risk.prisma +57 -0
- package/prisma/schema/shared.prisma +104 -0
- package/prisma/schema/task.prisma +41 -0
- package/prisma/schema/trust.prisma +37 -0
- package/prisma/schema/vendor.prisma +56 -0
- package/prisma/schema.prisma +12 -0
- package/prisma/seed/frameworkEditorSchemas.js +136 -0
- package/prisma/seed/frameworkEditorSchemas.ts +178 -0
- package/prisma/seed/primitives/FrameworkEditorControlTemplate.json +296 -0
- package/prisma/seed/primitives/FrameworkEditorFramework.json +101 -0
- package/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +6057 -0
- package/prisma/seed/primitives/FrameworkEditorRequirement.json +7841 -0
- package/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +308 -0
- package/prisma/seed/primitives/FrameworkEditorVideo.json +47 -0
- package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +178 -0
- package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +470 -0
- package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +142 -0
- package/prisma/seed/seed.js +160 -0
- 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;
|