Alle Modelle fuer die fuenf Phasen in einer Migration, damit spaetere Phasen keine Umbauten an Kerntabellen brauchen. Was auch an der Service-Schicht vorbei gelten muss, steht als CHECK, partieller Index oder Trigger in der Datenbank: Personen-Keys ohne Private Key, genau ein Instanz-Deployment-Key, ein vertrauter Host-Key je Algorithmus, shell-sichere Zielbenutzer und Pfade. Das Protokoll ist append-only und per Hash-Kette verbunden; den Hash berechnet ein Trigger, damit keine Zeile ohne Verkettung entstehen kann (#005 baut darauf auf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import { defineConfig, globalIgnores } from "eslint/config";
|
||
import nextVitals from "eslint-config-next/core-web-vitals";
|
||
import nextTs from "eslint-config-next/typescript";
|
||
import prettier from "eslint-config-prettier/flat";
|
||
|
||
export default defineConfig([
|
||
...nextVitals,
|
||
...nextTs,
|
||
prettier,
|
||
{
|
||
rules: {
|
||
// Zod wird in src/lib/validierung.ts auf deutsche Meldungen eingestellt.
|
||
// Ein direkter Import aus "zod" umginge das, und die englischen
|
||
// Standardsaetze landeten in der Oberflaeche.
|
||
"no-restricted-imports": [
|
||
"error",
|
||
{
|
||
paths: [
|
||
{
|
||
name: "zod",
|
||
message:
|
||
'Bitte `import { z } from "@/lib/validierung"` benutzen – dort sind die deutschen Meldungen eingestellt.',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
// Die Datei, die Zod einstellt, muss es selbst importieren duerfen.
|
||
files: ["src/lib/validierung.ts"],
|
||
rules: { "no-restricted-imports": "off" },
|
||
},
|
||
globalIgnores([
|
||
".next/**",
|
||
"out/**",
|
||
"build/**",
|
||
"coverage/**",
|
||
"next-env.d.ts",
|
||
// Worktrees der Sub-Agenten liegen im Projektverzeichnis.
|
||
".claude/**",
|
||
// Erzeugter Prisma-Client.
|
||
"src/generated/**",
|
||
"test-results/**",
|
||
"playwright-report/**",
|
||
]),
|
||
]);
|