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:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 } })
|
||||||
|
|||||||
Reference in New Issue
Block a user