@naisys/supervisor-database
v3.0.3
Published
[internal] Supervisor database schema and Prisma client for NAISYS
Readme
@naisys/supervisor-database
← Back to packages | ← Back to main README
Prisma schema and generated client for the NAISYS supervisor database (the hub has its own DB — see @naisys/hub-database).
For the overall database strategy (Prisma rationale, the three schemas, migration flow, connection conventions), see doc 001 — Database Design.
Overview
This package provides:
- Prisma schema definitions for the supervisor database
- Generated Prisma Client for type-safe database access
- Auth/session helpers shared between the supervisor and ERP servers when they're co-hosted (doc 007 — Web Auth)
- TypeScript types for all database models
Database Schema
Supervisor-owned tables include user accounts, sessions, passkey credentials, optional passwords, registration tokens, API keys, and permission assignments. See prisma/schema.prisma for the full schema.
Services
The package exports lightweight services that own auth/session logic so it stays consistent between supervisor and ERP:
sessionService— create/find/delete sessions, ensure superadmin on first run, look up users by API keypasskeyService— WebAuthn credential CRUD, registration tokens, device-label renamepasswordService— optional bcrypt password add/change/remove/verify
Development
Updating the Schema
- Update
prisma/schema.prisma - Create a migration:
npm run prisma:migrate(generates a SQL migration underprisma/migrations/) - Bump
SUPERVISOR_DB_VERSIONinsrc/dbConfig.ts— on startup the supervisor compares this constant to theschema_versionrow and deploys pending migrations only when it's higher. If you skip this step, your new migration will not run in existing deployments. - Generate the new client:
npm run prisma:generate - Build the package:
npm run build
Scripts
npm run build- Generate Prisma Client and compile TypeScriptnpm run clean- Removedist/npm run prisma:generate- Generate Prisma Clientnpm run prisma:migrate- Create a new migration (prisma migrate dev --create-only)npm run prisma:studio- Open Prisma Studio against the supervisor DB
Environment Variables
NAISYS_FOLDER- Path to NAISYS data folder (optional for client generation, required at runtime)
Type Exports
All Prisma types are exported for use in other packages:
import type { users, sessions, passkey_credentials } from "@naisys/supervisor-database";Notes
- The database path is configured dynamically at runtime
- The Prisma Client is generated to
src/generated/prisma/ - Foreign key constraints are enabled at runtime
License
MIT
