- Introduced a new Notification model in the Prisma schema to manage in-app notifications for users. - Integrated the NotificationsModule into the BFF application, allowing for the handling of notifications related to user actions and events. - Updated the CatalogCdcSubscriber to create notifications for account eligibility and verification status changes, improving user engagement. - Enhanced the CheckoutRegistrationService to create opportunities for SIM orders, integrating with the new notifications system. - Refactored various modules to include the NotificationsModule, ensuring seamless interaction and notification handling across the application. - Updated the frontend to display notification alerts in the AppShell header, enhancing user experience and accessibility.
Prisma Configuration
Overview
This directory contains the Prisma schema and migrations for the BFF application.
Important: Docker Build Behavior
Canonical schema path
Prisma embeds the schema path into the generated client. We regenerate the client in Docker using the production layout so the embedded path is /app/prisma/schema.prisma.
Directory Structure
Development (Monorepo)
/project-root/
├── apps/bff/
│ ├── prisma/
│ │ ├── schema.prisma ← Schema here
│ │ └── migrations/
│ └── src/
└── packages/
Production (Docker Container)
/app/
├── prisma/
│ ├── schema.prisma ← Schema here (flattened)
│ └── migrations/
├── dist/
└── node_modules/
└── .prisma/client/ ← Generated client
Commands
| Command | Description |
|---|---|
pnpm db:generate |
Regenerate Prisma client (--schema=prisma/schema.prisma) |
pnpm db:migrate |
Run migrations (dev) with explicit schema path |
pnpm db:studio |
Open Prisma Studio with explicit schema path |
pnpm db:reset |
Reset database with explicit schema path |
Binary Targets
The schema includes binary targets for both development and production:
binaryTargets = ["native", "linux-musl-openssl-3.0.x"]
native: For local development (macOS, Windows, Linux)linux-musl-openssl-3.0.x: For Alpine Linux in Docker
Troubleshooting
"Could not load schema from path" Error
This error occurs when the Prisma client was generated with a different schema path than what exists in the current environment.
Solution: Ensure the Dockerfile regenerates the Prisma client from the production-like directory structure (see above).
Client Not Found
If you see "Prisma Client not found" errors:
- Run
pnpm db:generatelocally - For Docker, ensure the Dockerfile includes the
prisma generatestep
Migration Strategy
- Create migrations locally:
pnpm db:migrate - Commit the migration files
- In production, the entrypoint runs:
prisma migrate deploy --schema=/app/prisma/schema.prisma