feat(platzhalter): Aufloesung, Namensregeln und Shell-Maskierung (#26)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s

This commit was merged in pull request #26.
This commit is contained in:
2026-09-25 13:30:31 +00:00
parent f85bc87324
commit eec5de404a
21 changed files with 4069 additions and 166 deletions
+14 -1
View File
@@ -1,3 +1,4 @@
import { istAlsVariableErlaubt } from "@/lib/platzhalter";
import { z } from "@/lib/validierung";
/**
@@ -119,7 +120,19 @@ export const VariableSchema = z.object({
.regex(
/^[a-z][a-z0-9_]{0,39}$/,
"Ein Variablenschlüssel beginnt mit einem Kleinbuchstaben und besteht aus Kleinbuchstaben, Ziffern und Unterstrich.",
),
)
/*
* Ein eingebauter Name ist als Variable gesperrt – mit einer Ausnahme,
* `hostname` (siehe `UEBERSCHREIBBARE_PLATZHALTER`). Sonst hiesse eine
* Variable `techniker`, und der fertige Befehl unterschriebe mit einem
* Namen, der nicht stimmt. Die Aufloesung wehrt das noch einmal ab; hier
* faellt es dem Redakteur auf, **bevor** er die Vorlage veroeffentlicht.
*/
.refine(istAlsVariableErlaubt, {
message:
"Diesen Namen gibt es schon als eingebauten Platzhalter. Bitte einen anderen wählen — " +
"sonst stünde im fertigen Befehl etwas anderes, als der eingebaute Wert sagt.",
}),
beschriftung: z.string().trim().min(1, "Eine Variable braucht eine Beschriftung.").max(GRENZEN.text),
typ: z.enum(VARIABLEN_TYPEN).default("TEXT"),
optionen: z.array(z.string().trim().min(1).max(GRENZEN.text)).max(GRENZEN.optionen).default([]),