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>
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import type { Prisma } from "../src/generated/prisma/client";
|
|
|
|
/**
|
|
* Eingebaute Vorlagen (#019). Sie werden beim Seed angelegt, aber nie ueberschrieben:
|
|
* was ein Admin daran aendert, bleibt.
|
|
*/
|
|
export const EINGEBAUTE_VORLAGEN: Prisma.VorlageCreateInput[] = [
|
|
{
|
|
name: "Deployment-Zugang",
|
|
beschreibung:
|
|
"Projektbezogener Zugang, z. B. für Claude Code: eigener Benutzer deploy, Ablaufdatum, nur von der Quell-IP aus.",
|
|
eingebaut: true,
|
|
schluesselTyp: "ED25519",
|
|
kategorie: "DIENST",
|
|
standardLaufzeitTage: 90,
|
|
zielbenutzer: "deploy",
|
|
zielbenutzerAnlegen: true,
|
|
sudoModus: "KEINER",
|
|
authorizedKeysOptionen: 'from="{{quellHostIp}}"',
|
|
sshConfigAlias: "deploy-{{zielHost}}",
|
|
knownHostsEintragen: true,
|
|
},
|
|
{
|
|
name: "Backup-Zugang",
|
|
beschreibung: "Host-zu-Host-Zugang für Sicherungen, typischerweise als root, ohne Weiterleitungen.",
|
|
eingebaut: true,
|
|
schluesselTyp: "ED25519",
|
|
kategorie: "DIENST",
|
|
zielbenutzer: "root",
|
|
authorizedKeysOptionen:
|
|
'from="{{quellHostIp}}",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty',
|
|
sshConfigAlias: "backup-{{zielHost}}",
|
|
knownHostsEintragen: true,
|
|
},
|
|
{
|
|
name: "Admin-Zugang Person",
|
|
beschreibung: "Persönlicher Schlüssel eines Admins; der Private Key bleibt bei der Person.",
|
|
eingebaut: true,
|
|
schluesselTyp: "ED25519",
|
|
kategorie: "PERSON",
|
|
standardLaufzeitTage: 365,
|
|
zielbenutzer: "root",
|
|
knownHostsEintragen: false,
|
|
},
|
|
];
|