Magic-Byte-Seed: aus Prod-Image ausschliessen + Prod-Riegel

Der Pentester-Helfer soll nicht ins Produktions-Image und darf nie gegen
Prod laufen:
- .dockerignore schliesst backend/scripts/seed-magic-byte-test.ts aus dem
  Build-Context aus -> Datei liegt nicht mehr im Prod-Container (bleibt im
  Repo fuer Dev/Staging-Checkout).
- Script bricht bei NODE_ENV=production im "create"-Modus hart ab (exit 1);
  "cleanup" bleibt erlaubt, damit man immer aufraeumen kann.

Verifiziert: create@production -> Abbruch exit 1; cleanup@production laeuft.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 13:49:32 +02:00
co-authored by Claude Opus 4.8
parent 2ea211cca0
commit f3668b8a5a
2 changed files with 16 additions and 0 deletions
+4
View File
@@ -37,6 +37,10 @@ Thumbs.db
__tests__ __tests__
coverage coverage
# Pentester-/Dev-Helferscripte gehören NICHT ins Prod-Image (nur lokal/Staging
# via Repo-Checkout ausführen). Erzeugen sonst nur toten Ballast im Container.
backend/scripts/seed-magic-byte-test.ts
# Docker files in wrong location # Docker files in wrong location
docker-compose.yml docker-compose.yml
+12
View File
@@ -55,6 +55,18 @@ function absoluteFilePath(): string {
} }
async function create(customerIdArg?: number): Promise<void> { async function create(customerIdArg?: number): Promise<void> {
// Harter Prod-Riegel: dieses Script legt eine Fake-Bankkarte + getarnte
// Datei an das darf NIE gegen Produktion laufen (weder versehentlich noch
// absichtlich). `cleanup` bleibt erlaubt, damit man immer aufräumen kann.
if (process.env.NODE_ENV === 'production') {
console.error(
'ABBRUCH: "create" ist bei NODE_ENV=production deaktiviert. Dieser ' +
'Pentester-/Test-Helfer gehört nur nach Dev/Staging. (Zum Aufräumen ist ' +
'"cleanup" weiterhin erlaubt.)',
);
process.exit(1);
}
// Ziel-Customer bestimmen (Default: erster vorhandener Kunde). // Ziel-Customer bestimmen (Default: erster vorhandener Kunde).
const customer = customerIdArg const customer = customerIdArg
? await prisma.customer.findUnique({ where: { id: customerIdArg }, select: { id: true, customerNumber: true } }) ? await prisma.customer.findUnique({ where: { id: customerIdArg }, select: { id: true, customerNumber: true } })