@trycompai/db 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/INTEGRATION_GUIDE.md +360 -0
  2. package/README.md +5 -1
  3. package/dist/prisma/schema.prisma +810 -0
  4. package/package.json +18 -18
  5. package/scripts/setup-consumer.sh +1 -1
  6. package/dist/prisma/migrations/20250403163138_init/migration.sql +0 -611
  7. package/dist/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +0 -29
  8. package/dist/prisma/migrations/20250403194504_risk_assignee/migration.sql +0 -18
  9. package/dist/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +0 -16
  10. package/dist/prisma/migrations/20250403205655_vendor_assignee/migration.sql +0 -22
  11. package/dist/prisma/migrations/20250403205840_oops_optional/migration.sql +0 -2
  12. package/dist/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +0 -8
  13. package/dist/prisma/migrations/20250404004853_stripecustomerid/migration.sql +0 -2
  14. package/dist/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +0 -20
  15. package/dist/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +0 -30
  16. package/dist/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +0 -12
  17. package/dist/prisma/migrations/20250414191353_onboarding_experience/migration.sql +0 -25
  18. package/dist/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +0 -2
  19. package/dist/prisma/migrations/20250417205622_add_global_vendors/migration.sql +0 -26
  20. package/dist/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +0 -86
  21. package/dist/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +0 -109
  22. package/dist/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +0 -2
  23. package/dist/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +0 -8
  24. package/dist/prisma/migrations/20250423154259_make_role_string/migration.sql +0 -9
  25. package/dist/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +0 -9
  26. package/dist/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +0 -14
  27. package/dist/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +0 -2
  28. package/dist/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +0 -2
  29. package/dist/prisma/migrations/20250509160401_added_framework_editor/migration.sql +0 -8
  30. package/dist/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +0 -122
  31. package/dist/prisma/migrations/20250509172401_drop_slug/migration.sql +0 -11
  32. package/dist/prisma/migrations/20250509232122_trust_portal/migration.sql +0 -24
  33. package/dist/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +0 -2
  34. package/dist/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +0 -2
  35. package/dist/prisma/migrations/20250512004633_added_identifier/migration.sql +0 -5
  36. package/dist/prisma/migrations/20250512115717_added_framework_status/migration.sql +0 -7
  37. package/dist/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +0 -2
  38. package/dist/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +0 -2
  39. package/dist/prisma/migrations/20250514144228_add_vercel_check/migration.sql +0 -2
  40. package/dist/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +0 -2
  41. package/dist/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +0 -23
  42. package/dist/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +0 -21
  43. package/dist/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +0 -11
  44. package/dist/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +0 -6
  45. package/dist/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +0 -69
  46. package/dist/prisma/migrations/20250516142234_make_entity_optional/migration.sql +0 -3
  47. package/dist/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +0 -16
  48. package/dist/prisma/migrations/20250516150558_drop_task_type/migration.sql +0 -2
  49. package/dist/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +0 -37
  50. package/dist/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +0 -5
  51. package/dist/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +0 -31
  52. package/dist/prisma/migrations/20250516162730_convert_framework_id/migration.sql +0 -5
  53. package/dist/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +0 -5
  54. package/dist/prisma/migrations/20250516164307_drop_enums/migration.sql +0 -5
  55. package/dist/prisma/migrations/20250516194123_add_cal_option/migration.sql +0 -2
  56. package/dist/prisma/migrations/20250518133218_add_booking_details/migration.sql +0 -2
  57. package/dist/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +0 -3
  58. package/dist/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +0 -2
  59. package/dist/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +0 -17
  60. package/dist/prisma/migrations/20250519172353_drop_artifacts/migration.sql +0 -56
  61. package/dist/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +0 -14
  62. package/dist/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +0 -2
  63. package/dist/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +0 -5
  64. package/dist/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +0 -2
  65. package/dist/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +0 -8
  66. package/dist/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +0 -9
  67. package/dist/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +0 -36
  68. package/dist/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +0 -2
  69. package/dist/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +0 -2
  70. package/dist/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +0 -29
  71. package/dist/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +0 -18
  72. package/dist/prisma/migrations/20250609130129_add_not_relevant/migration.sql +0 -2
  73. package/dist/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +0 -2
  74. package/dist/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +0 -2
  75. package/dist/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +0 -10
  76. package/dist/prisma/migrations/20250618001304_add_default_slug/migration.sql +0 -3
  77. package/dist/prisma/migrations/20250623184529_add_subscription_type/migration.sql +0 -12
  78. package/dist/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +0 -27
  79. package/dist/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +0 -2
  80. package/dist/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +0 -5
  81. package/dist/prisma/migrations/20250627180828_rename_completed_col/migration.sql +0 -15
  82. package/dist/prisma/migrations/20250708152414_add_had_call_col/migration.sql +0 -2
  83. package/dist/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +0 -7
  84. package/dist/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +0 -8
  85. package/dist/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +0 -31
  86. package/dist/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +0 -7
  87. package/dist/prisma/migrations/migration_lock.toml +0 -3
  88. package/dist/prisma/schema/attachments.prisma +0 -35
  89. package/dist/prisma/schema/auth.prisma +0 -122
  90. package/dist/prisma/schema/comment.prisma +0 -27
  91. package/dist/prisma/schema/context.prisma +0 -18
  92. package/dist/prisma/schema/control.prisma +0 -21
  93. package/dist/prisma/schema/framework-editor.prisma +0 -96
  94. package/dist/prisma/schema/framework.prisma +0 -14
  95. package/dist/prisma/schema/integration.prisma +0 -32
  96. package/dist/prisma/schema/onboarding.prisma +0 -18
  97. package/dist/prisma/schema/organization.prisma +0 -34
  98. package/dist/prisma/schema/policy.prisma +0 -32
  99. package/dist/prisma/schema/requirement.prisma +0 -15
  100. package/dist/prisma/schema/risk.prisma +0 -57
  101. package/dist/prisma/schema/shared.prisma +0 -104
  102. package/dist/prisma/schema/task.prisma +0 -41
  103. package/dist/prisma/schema/trust.prisma +0 -37
  104. package/dist/prisma/schema/vendor.prisma +0 -56
  105. package/dist/prisma/seed/frameworkEditorSchemas.js +0 -136
  106. package/dist/prisma/seed/frameworkEditorSchemas.ts +0 -178
  107. package/dist/prisma/seed/primitives/FrameworkEditorControlTemplate.json +0 -296
  108. package/dist/prisma/seed/primitives/FrameworkEditorFramework.json +0 -101
  109. package/dist/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +0 -6057
  110. package/dist/prisma/seed/primitives/FrameworkEditorRequirement.json +0 -7841
  111. package/dist/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +0 -308
  112. package/dist/prisma/seed/primitives/FrameworkEditorVideo.json +0 -47
  113. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +0 -178
  114. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +0 -470
  115. package/dist/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +0 -142
  116. package/dist/prisma/seed/seed.js +0 -160
  117. package/dist/prisma/seed/seed.ts +0 -192
  118. package/prisma/functionDefinition.sql +0 -18
  119. package/prisma/migrations/20250403163138_init/migration.sql +0 -611
  120. package/prisma/migrations/20250403165218_archived_on_its_own/migration.sql +0 -29
  121. package/prisma/migrations/20250403194504_risk_assignee/migration.sql +0 -18
  122. package/prisma/migrations/20250403201319_tasks_use_asignee/migration.sql +0 -16
  123. package/prisma/migrations/20250403205655_vendor_assignee/migration.sql +0 -22
  124. package/prisma/migrations/20250403205840_oops_optional/migration.sql +0 -2
  125. package/prisma/migrations/20250403210049_task_assignee_optional_too/migration.sql +0 -8
  126. package/prisma/migrations/20250404004853_stripecustomerid/migration.sql +0 -2
  127. package/prisma/migrations/20250406004306_added_common_comment_table/migration.sql +0 -20
  128. package/prisma/migrations/20250410193847_add_unique_constraint_to_artifact_t_table/migration.sql +0 -30
  129. package/prisma/migrations/20250410193857_remove_published_field_from_evidence/migration.sql +0 -12
  130. package/prisma/migrations/20250414191353_onboarding_experience/migration.sql +0 -25
  131. package/prisma/migrations/20250414203443_added_evidence_to_onboarding/migration.sql +0 -2
  132. package/prisma/migrations/20250417205622_add_global_vendors/migration.sql +0 -26
  133. package/prisma/migrations/20250417205625_update_task_table_and_comments_and_attachments/migration.sql +0 -86
  134. package/prisma/migrations/20250417205627_remove_evidence_table/migration.sql +0 -109
  135. package/prisma/migrations/20250417205629_frequency_task_is_optional/migration.sql +0 -2
  136. package/prisma/migrations/20250418151856_add_comment_relationship_to_attachment_and_vice_versa/migration.sql +0 -8
  137. package/prisma/migrations/20250423154259_make_role_string/migration.sql +0 -9
  138. package/prisma/migrations/20250424165055_update_onboarding_to_use_tasks/migration.sql +0 -9
  139. package/prisma/migrations/20250424170518_remove_evidence_artifact_type/migration.sql +0 -14
  140. package/prisma/migrations/20250428202144_add_website_to_organization/migration.sql +0 -2
  141. package/prisma/migrations/20250429155419_add_company_details_to_onboarding/migration.sql +0 -2
  142. package/prisma/migrations/20250509160401_added_framework_editor/migration.sql +0 -8
  143. package/prisma/migrations/20250509162708_init_framework_editor_tables/migration.sql +0 -122
  144. package/prisma/migrations/20250509172401_drop_slug/migration.sql +0 -11
  145. package/prisma/migrations/20250509232122_trust_portal/migration.sql +0 -24
  146. package/prisma/migrations/20250511040043_add_custom_domain_to_trust_portal/migration.sql +0 -2
  147. package/prisma/migrations/20250511042943_trust_portal_domain_verified/migration.sql +0 -2
  148. package/prisma/migrations/20250512004633_added_identifier/migration.sql +0 -5
  149. package/prisma/migrations/20250512115717_added_framework_status/migration.sql +0 -7
  150. package/prisma/migrations/20250512163351_add_contact_details_trust_portal/migration.sql +0 -2
  151. package/prisma/migrations/20250514143147_remove_unique_constraint_on_integration_name/migration.sql +0 -2
  152. package/prisma/migrations/20250514144228_add_vercel_check/migration.sql +0 -2
  153. package/prisma/migrations/20250514150021_add_vercel_verification/migration.sql +0 -2
  154. package/prisma/migrations/20250514161440_add_dates_to_framework_editor_tables/migration.sql +0 -23
  155. package/prisma/migrations/20250515123635_trust_portal_friendly_url/migration.sql +0 -21
  156. package/prisma/migrations/20250515124040_fix_trust_constraints/migration.sql +0 -11
  157. package/prisma/migrations/20250516125758_patch_framework_id_in_editor/migration.sql +0 -6
  158. package/prisma/migrations/20250516132431_add_many_to_many_support_to_tasks/migration.sql +0 -69
  159. package/prisma/migrations/20250516142234_make_entity_optional/migration.sql +0 -3
  160. package/prisma/migrations/20250516145149_drop_entity_and_entity_type/migration.sql +0 -16
  161. package/prisma/migrations/20250516150558_drop_task_type/migration.sql +0 -2
  162. package/prisma/migrations/20250516160714_insert_hardcoded_framework_to_db/migration.sql +0 -37
  163. package/prisma/migrations/20250516161852_cast_framework_id_and_requirement_id_to_string/migration.sql +0 -5
  164. package/prisma/migrations/20250516162324_convert_ids_to_new_format/migration.sql +0 -31
  165. package/prisma/migrations/20250516162730_convert_framework_id/migration.sql +0 -5
  166. package/prisma/migrations/20250516163156_added_relation_to_framework_and_requirement_maps/migration.sql +0 -5
  167. package/prisma/migrations/20250516164307_drop_enums/migration.sql +0 -5
  168. package/prisma/migrations/20250516194123_add_cal_option/migration.sql +0 -2
  169. package/prisma/migrations/20250518133218_add_booking_details/migration.sql +0 -2
  170. package/prisma/migrations/20250519141733_change_framework_id_to_string/migration.sql +0 -3
  171. package/prisma/migrations/20250519141735_drop_enum_on_requirements_map/migration.sql +0 -2
  172. package/prisma/migrations/20250519142913_add_template_references_to_instances/migration.sql +0 -17
  173. package/prisma/migrations/20250519172353_drop_artifacts/migration.sql +0 -56
  174. package/prisma/migrations/20250519204449_drop_relation_between_controls_and_framewrok_instance/migration.sql +0 -14
  175. package/prisma/migrations/20250519212347_add_visibility_toggle_to_framework_editor/migration.sql +0 -2
  176. package/prisma/migrations/20250520152548_add_approver_to_policy/migration.sql +0 -5
  177. package/prisma/migrations/20250520175109_add_description_to_audit_log_for_convenience/migration.sql +0 -2
  178. package/prisma/migrations/20250520175523_add_member_id_to_log_table/migration.sql +0 -8
  179. package/prisma/migrations/20250521140239_add_entity_type_and_id_for_audit_logs_for_easy_filtering/migration.sql +0 -9
  180. package/prisma/migrations/20250603135046_add_v2_onboarding_requirements/migration.sql +0 -36
  181. package/prisma/migrations/20250604155610_add_job_id_column_to_onboarding/migration.sql +0 -2
  182. package/prisma/migrations/20250605151521_make_framework_visibility_false/migration.sql +0 -2
  183. package/prisma/migrations/20250605184738_add_cascade_to_entities_owned_by_org/migration.sql +0 -29
  184. package/prisma/migrations/20250605184740_add_device_agent_details_to_org/migration.sql +0 -18
  185. package/prisma/migrations/20250609130129_add_not_relevant/migration.sql +0 -2
  186. package/prisma/migrations/20250610215328_add_fleet_label_to_employees/migration.sql +0 -2
  187. package/prisma/migrations/20250611144654_add_is_fleet_setup_flag/migration.sql +0 -2
  188. package/prisma/migrations/20250612160731_remove_unused_cols/migration.sql +0 -10
  189. package/prisma/migrations/20250618001304_add_default_slug/migration.sql +0 -3
  190. package/prisma/migrations/20250623184529_add_subscription_type/migration.sql +0 -12
  191. package/prisma/migrations/20250626021946_add_starter_subscription_type/migration.sql +0 -27
  192. package/prisma/migrations/20250626030206_added_new_subscription_type/migration.sql +0 -2
  193. package/prisma/migrations/20250627180331_add_onboaridng_field/migration.sql +0 -5
  194. package/prisma/migrations/20250627180828_rename_completed_col/migration.sql +0 -15
  195. package/prisma/migrations/20250708152414_add_had_call_col/migration.sql +0 -2
  196. package/prisma/migrations/20250711201749_update_retool_role_to_edit_had_call_column_in_organization_table/migration.sql +0 -7
  197. package/prisma/migrations/20250711204234_add_read_permission_for_where_clause_on_retool_role/migration.sql +0 -8
  198. package/prisma/migrations/20250714153009_remove_stripe_and_add_has_access/migration.sql +0 -31
  199. package/prisma/migrations/20250715200054_add_perms_for_has_access_for_retool/migration.sql +0 -7
  200. package/prisma/migrations/migration_lock.toml +0 -3
  201. package/prisma/randomSecret.sql +0 -12
  202. package/prisma/schema/attachments.prisma +0 -35
  203. package/prisma/schema/auth.prisma +0 -122
  204. package/prisma/schema/comment.prisma +0 -27
  205. package/prisma/schema/context.prisma +0 -18
  206. package/prisma/schema/control.prisma +0 -21
  207. package/prisma/schema/framework-editor.prisma +0 -96
  208. package/prisma/schema/framework.prisma +0 -14
  209. package/prisma/schema/integration.prisma +0 -32
  210. package/prisma/schema/onboarding.prisma +0 -18
  211. package/prisma/schema/organization.prisma +0 -34
  212. package/prisma/schema/policy.prisma +0 -32
  213. package/prisma/schema/requirement.prisma +0 -15
  214. package/prisma/schema/risk.prisma +0 -57
  215. package/prisma/schema/shared.prisma +0 -104
  216. package/prisma/schema/task.prisma +0 -41
  217. package/prisma/schema/trust.prisma +0 -37
  218. package/prisma/schema/vendor.prisma +0 -56
  219. package/prisma/schema.prisma +0 -12
  220. package/prisma/seed/frameworkEditorSchemas.js +0 -136
  221. package/prisma/seed/frameworkEditorSchemas.ts +0 -178
  222. package/prisma/seed/primitives/FrameworkEditorControlTemplate.json +0 -296
  223. package/prisma/seed/primitives/FrameworkEditorFramework.json +0 -101
  224. package/prisma/seed/primitives/FrameworkEditorPolicyTemplate.json +0 -6057
  225. package/prisma/seed/primitives/FrameworkEditorRequirement.json +0 -7841
  226. package/prisma/seed/primitives/FrameworkEditorTaskTemplate.json +0 -308
  227. package/prisma/seed/primitives/FrameworkEditorVideo.json +0 -47
  228. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorPolicyTemplate.json +0 -178
  229. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorRequirement.json +0 -470
  230. package/prisma/seed/relations/_FrameworkEditorControlTemplateToFrameworkEditorTaskTemplate.json +0 -142
  231. package/prisma/seed/seed.js +0 -160
  232. package/prisma/seed/seed.ts +0 -192
@@ -0,0 +1,360 @@
1
+ # Integration Guide: Using @trycompai/db in Another Turborepo
2
+
3
+ This guide walks you through integrating the `@trycompai/db` package into another Turborepo-based repository.
4
+
5
+ ## Prerequisites
6
+
7
+ - Node.js 18+ and npm/yarn/bun
8
+ - A Turborepo-based project
9
+ - PostgreSQL database (local or cloud)
10
+
11
+ ## Step 1: Install the Package
12
+
13
+ In your app directory (e.g., `apps/web` or `apps/api`):
14
+
15
+ ```bash
16
+ cd apps/your-app
17
+ bun add @trycompai/db @prisma/client prisma
18
+ ```
19
+
20
+ ## Step 2: Set Up Environment Variables
21
+
22
+ Create or update `.env` in your app directory:
23
+
24
+ ```env
25
+ DATABASE_URL="postgresql://user:password@localhost:5432/your_database"
26
+ ```
27
+
28
+ ## Step 3: Generate Prisma Client
29
+
30
+ Run from your app directory:
31
+
32
+ ```bash
33
+ npx prisma generate --schema=node_modules/@trycompai/db/dist/prisma/schema.prisma
34
+ ```
35
+
36
+ **Pro tip**: Add this to your app's `package.json` scripts:
37
+
38
+ ```json
39
+ {
40
+ "scripts": {
41
+ "db:generate": "prisma generate --schema=node_modules/@trycompai/db/dist/prisma/schema.prisma",
42
+ "postinstall": "npm run db:generate"
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Step 4: Create Database Instance
48
+
49
+ Create `lib/db.ts` (or `src/lib/db.ts`) in your app:
50
+
51
+ ```typescript
52
+ import { PrismaClient } from '@prisma/client';
53
+
54
+ const globalForPrisma = globalThis as unknown as {
55
+ prisma: PrismaClient | undefined;
56
+ };
57
+
58
+ export const db =
59
+ globalForPrisma.prisma ??
60
+ new PrismaClient({
61
+ log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
62
+ });
63
+
64
+ if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db;
65
+ ```
66
+
67
+ ## Step 5: Update Turborepo Configuration
68
+
69
+ Add to your root `turbo.json`:
70
+
71
+ ```json
72
+ {
73
+ "pipeline": {
74
+ "db:generate": {
75
+ "cache": false,
76
+ "outputs": ["node_modules/.prisma/**"]
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ## Step 6: Use in Your Application
83
+
84
+ ### In Next.js Server Components
85
+
86
+ ```typescript
87
+ import { db } from '@/lib/db';
88
+ import type { User } from '@trycompai/db';
89
+
90
+ export default async function UsersPage() {
91
+ const users: User[] = await db.user.findMany();
92
+
93
+ return (
94
+ <div>
95
+ {users.map(user => (
96
+ <div key={user.id}>{user.name}</div>
97
+ ))}
98
+ </div>
99
+ );
100
+ }
101
+ ```
102
+
103
+ ### In API Routes (Next.js App Router)
104
+
105
+ ```typescript
106
+ import { NextResponse } from 'next/server';
107
+ import { db } from '@/lib/db';
108
+ import type { Prisma } from '@trycompai/db';
109
+
110
+ export async function POST(request: Request) {
111
+ const data = (await request.json()) as Prisma.UserCreateInput;
112
+
113
+ const user = await db.user.create({
114
+ data,
115
+ });
116
+
117
+ return NextResponse.json(user);
118
+ }
119
+ ```
120
+
121
+ ### In Server Actions
122
+
123
+ ```typescript
124
+ 'use server';
125
+
126
+ import { db } from '@/lib/db';
127
+ import type { User, Prisma } from '@trycompai/db';
128
+
129
+ export async function createUser(data: Prisma.UserCreateInput): Promise<User> {
130
+ return await db.user.create({ data });
131
+ }
132
+ ```
133
+
134
+ ### In tRPC Procedures
135
+
136
+ ```typescript
137
+ import { z } from 'zod';
138
+ import { router, publicProcedure } from '@/server/trpc';
139
+ import { db } from '@/lib/db';
140
+ import type { User } from '@trycompai/db';
141
+
142
+ export const userRouter = router({
143
+ getAll: publicProcedure.query(async (): Promise<User[]> => {
144
+ return await db.user.findMany();
145
+ }),
146
+
147
+ create: publicProcedure
148
+ .input(
149
+ z.object({
150
+ email: z.string().email(),
151
+ name: z.string(),
152
+ }),
153
+ )
154
+ .mutation(async ({ input }) => {
155
+ return await db.user.create({
156
+ data: input,
157
+ });
158
+ }),
159
+ });
160
+ ```
161
+
162
+ ## Step 7: TypeScript Configuration
163
+
164
+ Ensure your `tsconfig.json` includes:
165
+
166
+ ```json
167
+ {
168
+ "compilerOptions": {
169
+ "paths": {
170
+ "@/*": ["./src/*"],
171
+ "@trycompai/db": ["node_modules/@trycompai/db"]
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ ## Common Patterns
178
+
179
+ ### Type-Safe Queries
180
+
181
+ ```typescript
182
+ import type { Prisma } from '@trycompai/db';
183
+
184
+ // Type-safe where clauses
185
+ const whereClause: Prisma.UserWhereInput = {
186
+ email: { contains: '@example.com' },
187
+ createdAt: { gte: new Date('2024-01-01') },
188
+ };
189
+
190
+ const users = await db.user.findMany({ where: whereClause });
191
+ ```
192
+
193
+ ### Including Relations
194
+
195
+ ```typescript
196
+ const usersWithOrganizations = await db.user.findMany({
197
+ include: {
198
+ organization: true,
199
+ memberships: {
200
+ include: {
201
+ organization: true,
202
+ },
203
+ },
204
+ },
205
+ });
206
+ ```
207
+
208
+ ### Transactions
209
+
210
+ ```typescript
211
+ import type { User, Organization } from '@trycompai/db';
212
+
213
+ const result = await db.$transaction(async (tx) => {
214
+ const org = await tx.organization.create({
215
+ data: { name: 'New Org' },
216
+ });
217
+
218
+ const user = await tx.user.create({
219
+ data: {
220
+ email: 'user@example.com',
221
+ name: 'John Doe',
222
+ organizationId: org.id,
223
+ },
224
+ });
225
+
226
+ return { user, org };
227
+ });
228
+ ```
229
+
230
+ ## Turborepo-Specific Tips
231
+
232
+ ### 1. Workspace Dependencies
233
+
234
+ In your app's `package.json`:
235
+
236
+ ```json
237
+ {
238
+ "dependencies": {
239
+ "@trycompai/db": "^1.1.0"
240
+ }
241
+ }
242
+ ```
243
+
244
+ ### 2. Development Workflow
245
+
246
+ ```bash
247
+ # From root of your turborepo
248
+ turbo run dev --filter=your-app
249
+
250
+ # Run database generation across all apps
251
+ turbo run db:generate
252
+ ```
253
+
254
+ ### 3. CI/CD Pipeline
255
+
256
+ Add to your CI workflow:
257
+
258
+ ```yaml
259
+ - name: Generate Prisma Client
260
+ run: turbo run db:generate
261
+ ```
262
+
263
+ ## Troubleshooting
264
+
265
+ ### "Cannot find module '@prisma/client'"
266
+
267
+ Run `npx prisma generate --schema=node_modules/@trycompai/db/dist/prisma/schema.prisma` in your app directory.
268
+
269
+ ### "PrismaClient is unable to be run in the browser"
270
+
271
+ Ensure you're only importing and using the database client in server-side code:
272
+
273
+ - Server Components
274
+ - API Routes
275
+ - Server Actions
276
+ - Backend services
277
+
278
+ ### Type errors with Prisma types
279
+
280
+ 1. Ensure `@prisma/client` version matches the one in `@trycompai/db`
281
+ 2. Regenerate the client: `npm run db:generate`
282
+ 3. Restart TypeScript server in your IDE
283
+
284
+ ### Connection issues
285
+
286
+ 1. Verify `DATABASE_URL` is set correctly
287
+ 2. Check database is running and accessible
288
+ 3. For SSL connections, add `?sslmode=require` to your connection string
289
+
290
+ ## Best Practices
291
+
292
+ 1. **Never import `db` in client components** - it will fail at runtime
293
+ 2. **Use type imports for client code**: `import type { User } from '@trycompai/db'`
294
+ 3. **Handle errors gracefully** - wrap database calls in try/catch
295
+ 4. **Use transactions** for operations that must succeed together
296
+ 5. **Enable query logging** only in development to avoid performance impact
297
+
298
+ ## Example Full Setup
299
+
300
+ Here's a complete example for a Next.js app in a Turborepo:
301
+
302
+ ```typescript
303
+ // apps/web/lib/db.ts
304
+ import { PrismaClient } from '@prisma/client';
305
+
306
+ const globalForPrisma = globalThis as unknown as {
307
+ prisma: PrismaClient | undefined;
308
+ };
309
+
310
+ export const db =
311
+ globalForPrisma.prisma ??
312
+ new PrismaClient({
313
+ log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
314
+ });
315
+
316
+ if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db;
317
+
318
+ // apps/web/app/users/page.tsx
319
+ import { db } from '@/lib/db';
320
+ import type { User } from '@trycompai/db';
321
+
322
+ export default async function UsersPage() {
323
+ const users: User[] = await db.user.findMany({
324
+ orderBy: { createdAt: 'desc' },
325
+ });
326
+
327
+ return (
328
+ <div>
329
+ <h1>Users ({users.length})</h1>
330
+ {users.map(user => (
331
+ <div key={user.id}>
332
+ <h2>{user.name}</h2>
333
+ <p>{user.email}</p>
334
+ </div>
335
+ ))}
336
+ </div>
337
+ );
338
+ }
339
+ ```
340
+
341
+ ## Schema Information
342
+
343
+ The package maintains **separate schemas for development and distribution**:
344
+
345
+ **Development**: Multiple organized schema files in `prisma/schema/` for better maintainability
346
+ **Distribution**: Single combined `dist/prisma/schema.prisma` file for consumers
347
+
348
+ The build process combines:
349
+
350
+ - Base configuration and datasource
351
+ - All model definitions from the `schema/` directory
352
+ - Proper relationships and constraints
353
+
354
+ This ensures your development setup stays clean while providing consumers with a simple single-file schema.
355
+
356
+ ## Need Help?
357
+
358
+ - Check the [Prisma documentation](https://www.prisma.io/docs)
359
+ - Review the combined schema at `node_modules/@trycompai/db/dist/prisma/schema.prisma`
360
+ - Look at type definitions with IDE autocomplete
package/README.md CHANGED
@@ -23,7 +23,7 @@ bun add @trycompai/db @prisma/client prisma
23
23
 
24
24
  ```bash
25
25
  # Run this in your app directory after installing
26
- npx prisma generate --schema=node_modules/@trycompai/db/prisma/schema.prisma
26
+ npx prisma generate --schema=node_modules/@trycompai/db/dist/prisma/schema.prisma
27
27
  ```
28
28
 
29
29
  2. **Create your database instance** (`lib/db.ts`):
@@ -77,3 +77,7 @@ To update the schema:
77
77
  2. Run migrations: `bun run db:migrate`
78
78
  3. Regenerate types: `bun run build`
79
79
  4. Update version and publish
80
+
81
+ ## Integration Guide
82
+
83
+ For detailed instructions on using this package in another Turborepo, see [INTEGRATION_GUIDE.md](./INTEGRATION_GUIDE.md).