pnpm-Workspace mit web/, worker/, pdf/ und packages/db. Das Datenbankpaket ist eigenständig, weil Web-App und Worker denselben Prisma-Client brauchen. Schema nach docs/04-datenmodell.md, mit drei Abweichungen, die dort begründet sind: CaseParticipant bekommt einen eigenen Schlüssel statt eines zusammengesetzten mit NULL-Spalten, die Aktenzeichen laufen über CaseCounter statt über eine Sequenz pro Jahr, und ServiceHeartbeat kommt dazu, damit /api/health den Gateway-Zustand kennt, ohne Discord zu fragen. Die zweite Migration enthält, was Prisma nicht ausdrücken kann: - kein DELETE auf CaseEntry, CaseEntryVersion und AuditLog - authorId, createdAt, caseId und type eines Eintrags sind unveränderlich - an einer Eintragsversion darf nur minClearance angehoben werden - Volltextsuche mit deutscher Konfiguration; geschwärzte Bereiche werden vor dem Indizieren entfernt, sonst verrät ein Treffer den Inhalt - pg_notify bei Rollen- und Mapping-Änderungen Acht Tests prüfen diese Regeln gegen eine echte Postgres-Instanz, nicht gegen die Anwendungslogik.
51 lines
1.2 KiB
JSON
51 lines
1.2 KiB
JSON
{
|
|
"name": "@afis/db",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js",
|
|
"default": "./dist/index.js"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "prisma generate && tsc -p tsconfig.build.json",
|
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
"generate": "prisma generate",
|
|
"lint": "eslint src prisma --max-warnings 0",
|
|
"migrate": "prisma migrate dev",
|
|
"migrate:deploy": "prisma migrate deploy",
|
|
"seed": "tsx prisma/seed.ts",
|
|
"studio": "prisma studio",
|
|
"test": "vitest run --passWithNoTests",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"prisma": {
|
|
"seed": "tsx prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@prisma/adapter-pg": "7.10.0",
|
|
"@prisma/client": "7.10.0",
|
|
"pg": "8.13.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.0",
|
|
"@prisma/config": "7.10.0",
|
|
"@types/pg": "^8.11.10",
|
|
"eslint": "9.39.5",
|
|
"prisma": "7.10.0",
|
|
"tsx": "4.20.6",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "^8.20.0",
|
|
"vitest": "4.1.11"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"prisma"
|
|
]
|
|
}
|