- docs/SPEC.md (v1.2: Assets & BIA als ein Modul, Risiko-Detailansicht mit Maßnahmen/betroffenen Assets, Risiko-Verknüpfungen in allen Detailansichten) + UI-Mockup als Referenz - Docker-Compose: app, worker, postgres (pgvector), redis, minio, mailhog - Prisma 7: Fundament-Schema (Tenant, User, RBAC, AuditLog), prisma.config.ts, pg-Treiberadapter - Tenant-Guard (src/server/db.ts): erzwungene Mandanten-Isolation für alle tenant-gebundenen Modelle - AGENTS.md/README mit Projektregeln (Isolation, RBAC, Audit-Log, i18n, Lizenz) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
This is NOT the Next.js you know
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in node_modules/next/dist/docs/ before writing any code. Heed deprecation notices.
ISMS-Tool — Projektregeln
Multi-Tenant-SaaS für Informationssicherheits-Managementsysteme (ISO/IEC 27001:2022, TISAX/VDA-ISA 6.0).
Maßgebliche Spezifikation: docs/SPEC.md — Architektur, Datenmodell, Module, Rollen, Akzeptanzkriterien. UI-Referenz: docs/ISMS-Prototyp-GEFIM.html (Orientierung für Navigation/Layout; fachlich gilt die Spec, die über das Mockup hinausgeht).
Eiserne Regeln
- Mandanten-Isolation: Kein DB-Zugriff an Prisma vorbei, kein Query ohne Tenant-Kontext. Fachliche Tabellen tragen
tenant_id; Zugriff nur über den Tenant-Guard (src/server/db.ts), zusätzlich Postgres RLS. - RBAC serverseitig: Jede Mutation/Query prüft Permissions am Server (
asset:read,risk:write, …). UI-Ausblenden ist nur Komfort, nie Sicherheit. - Audit-Log: Jede schreibende Aktion erzeugt einen
AuditLog-Eintrag (before/after). - i18n: Keine hartkodierten UI-Texte — alle Strings über den Message-Katalog (
dedefault,envorbereitet). - Lizenz: Keine ISO-Normtexte oder VDA-ISA-Kataloginhalte einchecken — nur Control-Referenzen/Titel; VDA-ISA-Inhalte kommen per Kunden-Import (
ISA6-EN.xlsx).
Stack & Konventionen
- Next.js (App Router) + TypeScript, Tailwind CSS 4, shadcn/ui, dnd-kit, Recharts.
- Prisma + PostgreSQL 16 (pgvector), BullMQ + Redis (Worker), MinIO (S3), Auth.js (Credentials, Argon2id).
- Tests: Vitest (Unit), Playwright (E2E).
npm run lintundnpm run buildmüssen vor jedem Commit grün sein. - Sprache: UI und Fachbegriffe Deutsch; Code (Bezeichner, Kommentare) Englisch.
Entwicklung
docker compose up -d postgres redis minio # Infrastruktur
npx prisma migrate dev # Migrationen
npm run dev # App auf :3000