@girardmedia/bootspring 1.2.0 → 2.0.3

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 (253) hide show
  1. package/README.md +107 -14
  2. package/bin/bootspring.js +166 -27
  3. package/cli/agent.js +189 -17
  4. package/cli/analyze.js +499 -0
  5. package/cli/audit.js +557 -0
  6. package/cli/auth.js +495 -38
  7. package/cli/billing.js +302 -0
  8. package/cli/build.js +695 -0
  9. package/cli/business.js +109 -26
  10. package/cli/checkpoint-utils.js +168 -0
  11. package/cli/checkpoint.js +639 -0
  12. package/cli/cloud-sync.js +447 -0
  13. package/cli/content.js +198 -0
  14. package/cli/context.js +1 -1
  15. package/cli/deploy.js +543 -0
  16. package/cli/fundraise.js +112 -50
  17. package/cli/github-cmd.js +435 -0
  18. package/cli/health.js +477 -0
  19. package/cli/init.js +84 -13
  20. package/cli/legal.js +107 -95
  21. package/cli/log.js +2 -2
  22. package/cli/loop.js +976 -73
  23. package/cli/manager.js +711 -0
  24. package/cli/metrics.js +480 -0
  25. package/cli/monitor.js +812 -0
  26. package/cli/onboard.js +521 -0
  27. package/cli/orchestrator.js +12 -24
  28. package/cli/prd.js +594 -0
  29. package/cli/preseed-start.js +1483 -0
  30. package/cli/preseed.js +2302 -0
  31. package/cli/project.js +436 -0
  32. package/cli/quality.js +233 -0
  33. package/cli/security.js +913 -0
  34. package/cli/seed.js +1441 -5
  35. package/cli/skill.js +273 -211
  36. package/cli/suggest.js +989 -0
  37. package/cli/switch.js +453 -0
  38. package/cli/visualize.js +527 -0
  39. package/cli/watch.js +769 -0
  40. package/cli/workspace.js +607 -0
  41. package/core/analyze-workflow.js +1134 -0
  42. package/core/api-client.js +535 -22
  43. package/core/audit-workflow.js +1350 -0
  44. package/core/build-orchestrator.js +480 -0
  45. package/core/build-state.js +577 -0
  46. package/core/checkpoint-engine.js +408 -0
  47. package/core/config.js +1109 -26
  48. package/core/context-loader.js +21 -1
  49. package/core/deploy-workflow.js +836 -0
  50. package/core/entitlements.js +93 -22
  51. package/core/github-sync.js +610 -0
  52. package/core/index.js +8 -1
  53. package/core/ingest.js +1111 -0
  54. package/core/metrics-engine.js +768 -0
  55. package/core/onboard-workflow.js +1007 -0
  56. package/core/preseed-workflow.js +934 -0
  57. package/core/preseed.js +1617 -0
  58. package/core/project-context.js +325 -0
  59. package/core/project-state.js +694 -0
  60. package/core/r2-sync.js +583 -0
  61. package/core/scaffold.js +525 -7
  62. package/core/session.js +258 -0
  63. package/core/task-extractor.js +758 -0
  64. package/core/telemetry.js +28 -6
  65. package/core/tier-enforcement.js +737 -0
  66. package/core/utils.js +38 -14
  67. package/generators/questionnaire.js +15 -12
  68. package/generators/sections/ai.js +7 -7
  69. package/generators/sections/content.js +300 -0
  70. package/generators/sections/index.js +3 -0
  71. package/generators/sections/plugins.js +7 -6
  72. package/generators/templates/build-planning.template.js +596 -0
  73. package/generators/templates/content.template.js +819 -0
  74. package/generators/templates/index.js +2 -1
  75. package/hooks/git-autopilot.js +1250 -0
  76. package/hooks/index.js +9 -0
  77. package/intelligence/agent-collab.js +2057 -0
  78. package/intelligence/auto-suggest.js +634 -0
  79. package/intelligence/content-gen.js +1589 -0
  80. package/intelligence/cross-project.js +1647 -0
  81. package/intelligence/index.js +184 -0
  82. package/intelligence/learning/insights.json +517 -7
  83. package/intelligence/learning/pattern-learner.js +1008 -14
  84. package/intelligence/memory/decision-tracker.js +1431 -31
  85. package/intelligence/memory/decisions.jsonl +0 -0
  86. package/intelligence/orchestrator.js +2896 -1
  87. package/intelligence/prd.js +92 -1
  88. package/intelligence/recommendation-weights.json +14 -2
  89. package/intelligence/recommendations.js +463 -9
  90. package/intelligence/workflow-composer.js +1451 -0
  91. package/marketplace/index.d.ts +324 -0
  92. package/marketplace/index.js +1921 -0
  93. package/mcp/contracts/mcp-contract.v1.json +342 -4
  94. package/mcp/registry.js +680 -3
  95. package/mcp/response-formatter.js +23 -0
  96. package/mcp/tools/assist-tool.js +78 -4
  97. package/mcp/tools/autopilot-tool.js +408 -0
  98. package/mcp/tools/content-tool.js +571 -0
  99. package/mcp/tools/dashboard-tool.js +251 -5
  100. package/mcp/tools/mvp-tool.js +344 -0
  101. package/mcp/tools/plugin-tool.js +23 -1
  102. package/mcp/tools/prd-tool.js +579 -0
  103. package/mcp/tools/seed-tool.js +447 -0
  104. package/mcp/tools/skill-tool.js +43 -14
  105. package/mcp/tools/suggest-tool.js +147 -0
  106. package/package.json +15 -6
  107. package/agents/README.md +0 -93
  108. package/agents/ai-integration-expert/context.md +0 -386
  109. package/agents/api-expert/context.md +0 -416
  110. package/agents/architecture-expert/context.md +0 -454
  111. package/agents/auth-expert/context.md +0 -399
  112. package/agents/backend-expert/context.md +0 -483
  113. package/agents/business-strategy-expert/context.md +0 -180
  114. package/agents/code-review-expert/context.md +0 -365
  115. package/agents/competitive-analysis-expert/context.md +0 -239
  116. package/agents/data-modeling-expert/context.md +0 -352
  117. package/agents/database-expert/context.md +0 -250
  118. package/agents/devops-expert/context.md +0 -446
  119. package/agents/email-expert/context.md +0 -379
  120. package/agents/financial-expert/context.md +0 -213
  121. package/agents/frontend-expert/context.md +0 -364
  122. package/agents/fundraising-expert/context.md +0 -257
  123. package/agents/growth-expert/context.md +0 -249
  124. package/agents/index.js +0 -140
  125. package/agents/investor-relations-expert/context.md +0 -266
  126. package/agents/legal-expert/context.md +0 -284
  127. package/agents/marketing-expert/context.md +0 -236
  128. package/agents/monitoring-expert/context.md +0 -362
  129. package/agents/operations-expert/context.md +0 -279
  130. package/agents/partnerships-expert/context.md +0 -286
  131. package/agents/payment-expert/context.md +0 -340
  132. package/agents/performance-expert/context.md +0 -377
  133. package/agents/private-equity-expert/context.md +0 -246
  134. package/agents/railway-expert/context.md +0 -284
  135. package/agents/research-expert/context.md +0 -245
  136. package/agents/sales-expert/context.md +0 -241
  137. package/agents/security-expert/context.md +0 -343
  138. package/agents/testing-expert/context.md +0 -414
  139. package/agents/ui-ux-expert/context.md +0 -448
  140. package/agents/vercel-expert/context.md +0 -426
  141. package/skills/index.js +0 -787
  142. package/skills/patterns/README.md +0 -163
  143. package/skills/patterns/ai/agents.md +0 -281
  144. package/skills/patterns/ai/claude.md +0 -138
  145. package/skills/patterns/ai/embeddings.md +0 -150
  146. package/skills/patterns/ai/rag.md +0 -266
  147. package/skills/patterns/ai/streaming.md +0 -170
  148. package/skills/patterns/ai/structured-output.md +0 -162
  149. package/skills/patterns/ai/tools.md +0 -154
  150. package/skills/patterns/analytics/tracking.md +0 -220
  151. package/skills/patterns/api/errors.md +0 -296
  152. package/skills/patterns/api/graphql.md +0 -440
  153. package/skills/patterns/api/middleware.md +0 -279
  154. package/skills/patterns/api/openapi.md +0 -285
  155. package/skills/patterns/api/rate-limiting.md +0 -231
  156. package/skills/patterns/api/route-handler.md +0 -217
  157. package/skills/patterns/api/server-action.md +0 -249
  158. package/skills/patterns/api/versioning.md +0 -443
  159. package/skills/patterns/api/webhooks.md +0 -247
  160. package/skills/patterns/auth/clerk.md +0 -132
  161. package/skills/patterns/auth/mfa.md +0 -313
  162. package/skills/patterns/auth/nextauth.md +0 -140
  163. package/skills/patterns/auth/oauth.md +0 -237
  164. package/skills/patterns/auth/rbac.md +0 -152
  165. package/skills/patterns/auth/session-management.md +0 -367
  166. package/skills/patterns/auth/session.md +0 -120
  167. package/skills/patterns/database/audit.md +0 -177
  168. package/skills/patterns/database/migrations.md +0 -177
  169. package/skills/patterns/database/pagination.md +0 -230
  170. package/skills/patterns/database/pooling.md +0 -357
  171. package/skills/patterns/database/prisma.md +0 -180
  172. package/skills/patterns/database/relations.md +0 -187
  173. package/skills/patterns/database/seeding.md +0 -246
  174. package/skills/patterns/database/soft-delete.md +0 -153
  175. package/skills/patterns/database/transactions.md +0 -162
  176. package/skills/patterns/deployment/ci-cd.md +0 -231
  177. package/skills/patterns/deployment/docker.md +0 -188
  178. package/skills/patterns/deployment/monitoring.md +0 -387
  179. package/skills/patterns/deployment/vercel.md +0 -160
  180. package/skills/patterns/email/resend.md +0 -143
  181. package/skills/patterns/email/templates.md +0 -245
  182. package/skills/patterns/email/transactional.md +0 -503
  183. package/skills/patterns/email/verification.md +0 -176
  184. package/skills/patterns/files/download.md +0 -243
  185. package/skills/patterns/files/upload.md +0 -239
  186. package/skills/patterns/i18n/nextintl.md +0 -188
  187. package/skills/patterns/logging/structured.md +0 -292
  188. package/skills/patterns/notifications/email-queue.md +0 -248
  189. package/skills/patterns/notifications/push.md +0 -279
  190. package/skills/patterns/payments/checkout.md +0 -303
  191. package/skills/patterns/payments/invoices.md +0 -287
  192. package/skills/patterns/payments/portal.md +0 -245
  193. package/skills/patterns/payments/stripe.md +0 -272
  194. package/skills/patterns/payments/subscriptions.md +0 -300
  195. package/skills/patterns/payments/usage.md +0 -279
  196. package/skills/patterns/performance/caching.md +0 -276
  197. package/skills/patterns/performance/code-splitting.md +0 -233
  198. package/skills/patterns/performance/edge.md +0 -254
  199. package/skills/patterns/performance/isr.md +0 -266
  200. package/skills/patterns/performance/lazy-loading.md +0 -281
  201. package/skills/patterns/realtime/sse.md +0 -327
  202. package/skills/patterns/realtime/websockets.md +0 -336
  203. package/skills/patterns/search/filtering.md +0 -329
  204. package/skills/patterns/search/fulltext.md +0 -260
  205. package/skills/patterns/security/audit-logging.md +0 -444
  206. package/skills/patterns/security/csrf.md +0 -234
  207. package/skills/patterns/security/headers.md +0 -252
  208. package/skills/patterns/security/sanitization.md +0 -258
  209. package/skills/patterns/security/secrets.md +0 -261
  210. package/skills/patterns/security/validation.md +0 -268
  211. package/skills/patterns/security/xss.md +0 -229
  212. package/skills/patterns/seo/metadata.md +0 -252
  213. package/skills/patterns/state/context.md +0 -349
  214. package/skills/patterns/state/react-query.md +0 -313
  215. package/skills/patterns/state/url-state.md +0 -482
  216. package/skills/patterns/state/zustand.md +0 -262
  217. package/skills/patterns/testing/api.md +0 -259
  218. package/skills/patterns/testing/component.md +0 -233
  219. package/skills/patterns/testing/coverage.md +0 -207
  220. package/skills/patterns/testing/fixtures.md +0 -225
  221. package/skills/patterns/testing/integration.md +0 -436
  222. package/skills/patterns/testing/mocking.md +0 -177
  223. package/skills/patterns/testing/playwright.md +0 -162
  224. package/skills/patterns/testing/snapshot.md +0 -175
  225. package/skills/patterns/testing/vitest.md +0 -307
  226. package/skills/patterns/ui/accordions.md +0 -395
  227. package/skills/patterns/ui/cards.md +0 -299
  228. package/skills/patterns/ui/dropdowns.md +0 -476
  229. package/skills/patterns/ui/empty-states.md +0 -320
  230. package/skills/patterns/ui/forms.md +0 -405
  231. package/skills/patterns/ui/inputs.md +0 -319
  232. package/skills/patterns/ui/layouts.md +0 -282
  233. package/skills/patterns/ui/loading.md +0 -291
  234. package/skills/patterns/ui/modals.md +0 -338
  235. package/skills/patterns/ui/navigation.md +0 -374
  236. package/skills/patterns/ui/tables.md +0 -407
  237. package/skills/patterns/ui/toasts.md +0 -300
  238. package/skills/patterns/ui/tooltips.md +0 -396
  239. package/skills/patterns/utils/dates.md +0 -435
  240. package/skills/patterns/utils/errors.md +0 -451
  241. package/skills/patterns/utils/formatting.md +0 -345
  242. package/skills/patterns/utils/validation.md +0 -434
  243. package/templates/bootspring.config.js +0 -83
  244. package/templates/business/business-model-canvas.md +0 -246
  245. package/templates/business/business-plan.md +0 -266
  246. package/templates/business/competitive-analysis.md +0 -312
  247. package/templates/fundraising/data-room-checklist.md +0 -300
  248. package/templates/fundraising/investor-research.md +0 -243
  249. package/templates/fundraising/pitch-deck-outline.md +0 -253
  250. package/templates/legal/gdpr-checklist.md +0 -339
  251. package/templates/legal/privacy-policy.md +0 -285
  252. package/templates/legal/terms-of-service.md +0 -222
  253. package/templates/mcp.json +0 -9
@@ -1,231 +0,0 @@
1
- # CI/CD Patterns
2
-
3
- Patterns for continuous integration and deployment.
4
-
5
- ## GitHub Actions
6
-
7
- ```yaml
8
- # .github/workflows/ci.yml
9
- name: CI
10
-
11
- on:
12
- push:
13
- branches: [main]
14
- pull_request:
15
- branches: [main]
16
-
17
- env:
18
- NODE_VERSION: '20'
19
-
20
- jobs:
21
- lint:
22
- runs-on: ubuntu-latest
23
- steps:
24
- - uses: actions/checkout@v4
25
- - uses: actions/setup-node@v4
26
- with:
27
- node-version: ${{ env.NODE_VERSION }}
28
- cache: 'npm'
29
-
30
- - run: npm ci
31
- - run: npm run lint
32
-
33
- test:
34
- runs-on: ubuntu-latest
35
- steps:
36
- - uses: actions/checkout@v4
37
- - uses: actions/setup-node@v4
38
- with:
39
- node-version: ${{ env.NODE_VERSION }}
40
- cache: 'npm'
41
-
42
- - run: npm ci
43
- - run: npm test -- --coverage
44
-
45
- - name: Upload coverage
46
- uses: codecov/codecov-action@v3
47
-
48
- build:
49
- runs-on: ubuntu-latest
50
- needs: [lint, test]
51
- steps:
52
- - uses: actions/checkout@v4
53
- - uses: actions/setup-node@v4
54
- with:
55
- node-version: ${{ env.NODE_VERSION }}
56
- cache: 'npm'
57
-
58
- - run: npm ci
59
- - run: npm run build
60
-
61
- - name: Upload build
62
- uses: actions/upload-artifact@v3
63
- with:
64
- name: build
65
- path: .next
66
-
67
- e2e:
68
- runs-on: ubuntu-latest
69
- needs: build
70
- steps:
71
- - uses: actions/checkout@v4
72
- - uses: actions/setup-node@v4
73
- with:
74
- node-version: ${{ env.NODE_VERSION }}
75
- cache: 'npm'
76
-
77
- - name: Install Playwright
78
- run: npx playwright install --with-deps
79
-
80
- - name: Download build
81
- uses: actions/download-artifact@v3
82
- with:
83
- name: build
84
- path: .next
85
-
86
- - run: npm ci
87
- - run: npm run e2e
88
-
89
- deploy:
90
- runs-on: ubuntu-latest
91
- needs: [build, e2e]
92
- if: github.ref == 'refs/heads/main'
93
- steps:
94
- - name: Deploy to production
95
- run: curl -X POST ${{ secrets.DEPLOY_HOOK }}
96
- ```
97
-
98
- ## Database Migrations in CI
99
-
100
- ```yaml
101
- # .github/workflows/deploy.yml
102
- deploy:
103
- runs-on: ubuntu-latest
104
- environment: production
105
- steps:
106
- - uses: actions/checkout@v4
107
- - uses: actions/setup-node@v4
108
- with:
109
- node-version: '20'
110
-
111
- - run: npm ci
112
-
113
- - name: Run migrations
114
- run: npx prisma migrate deploy
115
- env:
116
- DATABASE_URL: ${{ secrets.DATABASE_URL }}
117
-
118
- - name: Deploy
119
- run: vercel --prod --token=${{ secrets.VERCEL_TOKEN }}
120
- ```
121
-
122
- ## Matrix Testing
123
-
124
- ```yaml
125
- # Test across multiple Node versions
126
- jobs:
127
- test:
128
- runs-on: ubuntu-latest
129
- strategy:
130
- matrix:
131
- node-version: [18, 20, 22]
132
-
133
- steps:
134
- - uses: actions/checkout@v4
135
- - uses: actions/setup-node@v4
136
- with:
137
- node-version: ${{ matrix.node-version }}
138
-
139
- - run: npm ci
140
- - run: npm test
141
- ```
142
-
143
- ## Preview Deployments
144
-
145
- ```yaml
146
- # .github/workflows/preview.yml
147
- name: Preview
148
-
149
- on:
150
- pull_request:
151
- types: [opened, synchronize]
152
-
153
- jobs:
154
- deploy-preview:
155
- runs-on: ubuntu-latest
156
- steps:
157
- - uses: actions/checkout@v4
158
-
159
- - name: Deploy to Vercel
160
- uses: amondnet/vercel-action@v25
161
- with:
162
- vercel-token: ${{ secrets.VERCEL_TOKEN }}
163
- vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
164
- vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
165
-
166
- - name: Comment PR
167
- uses: actions/github-script@v6
168
- with:
169
- script: |
170
- github.rest.issues.createComment({
171
- issue_number: context.issue.number,
172
- owner: context.repo.owner,
173
- repo: context.repo.repo,
174
- body: '🚀 Preview deployed: ${{ steps.deploy.outputs.preview-url }}'
175
- })
176
- ```
177
-
178
- ## Release Workflow
179
-
180
- ```yaml
181
- # .github/workflows/release.yml
182
- name: Release
183
-
184
- on:
185
- push:
186
- tags:
187
- - 'v*'
188
-
189
- jobs:
190
- release:
191
- runs-on: ubuntu-latest
192
- steps:
193
- - uses: actions/checkout@v4
194
-
195
- - name: Build
196
- run: npm ci && npm run build
197
-
198
- - name: Create Release
199
- uses: softprops/action-gh-release@v1
200
- with:
201
- generate_release_notes: true
202
- files: |
203
- dist/*
204
- ```
205
-
206
- ## Caching
207
-
208
- ```yaml
209
- # Efficient caching
210
- - uses: actions/setup-node@v4
211
- with:
212
- node-version: '20'
213
- cache: 'npm'
214
-
215
- # Or custom caching
216
- - uses: actions/cache@v3
217
- with:
218
- path: |
219
- ~/.npm
220
- .next/cache
221
- key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}
222
- restore-keys: |
223
- ${{ runner.os }}-nextjs-
224
- ```
225
-
226
- ## When to Use
227
-
228
- - Automated testing
229
- - Deployment pipelines
230
- - Code quality checks
231
- - Release automation
@@ -1,188 +0,0 @@
1
- # Docker Patterns
2
-
3
- Patterns for containerizing Next.js applications.
4
-
5
- ## Multi-Stage Dockerfile
6
-
7
- ```dockerfile
8
- # Dockerfile
9
- FROM node:20-alpine AS base
10
-
11
- # Install dependencies only when needed
12
- FROM base AS deps
13
- RUN apk add --no-cache libc6-compat
14
- WORKDIR /app
15
-
16
- COPY package.json package-lock.json* ./
17
- RUN npm ci
18
-
19
- # Rebuild source code only when needed
20
- FROM base AS builder
21
- WORKDIR /app
22
- COPY --from=deps /app/node_modules ./node_modules
23
- COPY . .
24
-
25
- ENV NEXT_TELEMETRY_DISABLED 1
26
-
27
- RUN npm run build
28
-
29
- # Production image
30
- FROM base AS runner
31
- WORKDIR /app
32
-
33
- ENV NODE_ENV production
34
- ENV NEXT_TELEMETRY_DISABLED 1
35
-
36
- RUN addgroup --system --gid 1001 nodejs
37
- RUN adduser --system --uid 1001 nextjs
38
-
39
- COPY --from=builder /app/public ./public
40
-
41
- # Standalone output
42
- COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
43
- COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
44
-
45
- USER nextjs
46
-
47
- EXPOSE 3000
48
- ENV PORT 3000
49
- ENV HOSTNAME "0.0.0.0"
50
-
51
- CMD ["node", "server.js"]
52
- ```
53
-
54
- ## Docker Compose
55
-
56
- ```yaml
57
- # docker-compose.yml
58
- version: '3.8'
59
-
60
- services:
61
- app:
62
- build:
63
- context: .
64
- dockerfile: Dockerfile
65
- ports:
66
- - "3000:3000"
67
- environment:
68
- - DATABASE_URL=postgresql://postgres:password@db:5432/myapp
69
- - REDIS_URL=redis://redis:6379
70
- depends_on:
71
- - db
72
- - redis
73
-
74
- db:
75
- image: postgres:15-alpine
76
- volumes:
77
- - postgres_data:/var/lib/postgresql/data
78
- environment:
79
- - POSTGRES_USER=postgres
80
- - POSTGRES_PASSWORD=password
81
- - POSTGRES_DB=myapp
82
- ports:
83
- - "5432:5432"
84
-
85
- redis:
86
- image: redis:7-alpine
87
- volumes:
88
- - redis_data:/data
89
- ports:
90
- - "6379:6379"
91
-
92
- volumes:
93
- postgres_data:
94
- redis_data:
95
- ```
96
-
97
- ## Development Docker Compose
98
-
99
- ```yaml
100
- # docker-compose.dev.yml
101
- version: '3.8'
102
-
103
- services:
104
- app:
105
- build:
106
- context: .
107
- dockerfile: Dockerfile.dev
108
- volumes:
109
- - .:/app
110
- - /app/node_modules
111
- ports:
112
- - "3000:3000"
113
- environment:
114
- - NODE_ENV=development
115
- command: npm run dev
116
-
117
- db:
118
- image: postgres:15-alpine
119
- environment:
120
- - POSTGRES_PASSWORD=password
121
- ports:
122
- - "5432:5432"
123
- ```
124
-
125
- ## .dockerignore
126
-
127
- ```
128
- # .dockerignore
129
- node_modules
130
- .next
131
- .git
132
- .gitignore
133
- *.md
134
- .env*
135
- !.env.example
136
- .DS_Store
137
- coverage
138
- .nyc_output
139
- dist
140
- ```
141
-
142
- ## Health Check
143
-
144
- ```dockerfile
145
- # Add health check
146
- HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
147
- CMD curl -f http://localhost:3000/api/health || exit 1
148
- ```
149
-
150
- ```typescript
151
- // app/api/health/route.ts
152
- export async function GET() {
153
- try {
154
- // Check database connection
155
- await prisma.$queryRaw`SELECT 1`
156
-
157
- return Response.json({
158
- status: 'healthy',
159
- timestamp: new Date().toISOString()
160
- })
161
- } catch (error) {
162
- return Response.json(
163
- { status: 'unhealthy', error: 'Database connection failed' },
164
- { status: 503 }
165
- )
166
- }
167
- }
168
- ```
169
-
170
- ## Prisma in Docker
171
-
172
- ```dockerfile
173
- # Generate Prisma client during build
174
- FROM base AS builder
175
- WORKDIR /app
176
- COPY prisma ./prisma/
177
- RUN npx prisma generate
178
- COPY --from=deps /app/node_modules ./node_modules
179
- COPY . .
180
- RUN npm run build
181
- ```
182
-
183
- ## When to Use
184
-
185
- - Self-hosted deployments
186
- - CI/CD pipelines
187
- - Local development
188
- - Kubernetes deployments