Files
AfiS-Aktensystem/package.json
T
Harlekin 8f0644e053 Workspace und Datenmodell
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.
2026-09-01 00:01:29 +02:00

27 lines
898 B
JSON

{
"name": "afis",
"private": true,
"packageManager": "pnpm@9.15.4",
"engines": {
"node": ">=22"
},
"scripts": {
"dev": "pnpm --filter @afis/web run dev",
"worker:dev": "pnpm --filter @afis/worker run dev",
"build": "pnpm --filter @afis/db run build && pnpm --filter @afis/web run build",
"db:generate": "pnpm --filter @afis/db run generate",
"db:migrate": "pnpm --filter @afis/db run migrate",
"db:deploy": "pnpm --filter @afis/db run migrate:deploy",
"db:seed": "pnpm --filter @afis/db run seed",
"db:studio": "pnpm --filter @afis/db run studio",
"test": "pnpm -r --sequential test",
"test:e2e": "pnpm --filter @afis/web run test:e2e",
"lint": "pnpm -r --sequential lint",
"typecheck": "pnpm -r --sequential typecheck",
"analyze": "pnpm --filter @afis/web run analyze"
},
"devDependencies": {
"typescript": "5.9.3"
}
}