feat: der Dienst steht oeffentlich, und die Pfadmeldung sagt jetzt die Regel

Der Stack laeuft unter https://fivemanage.d4rkst3r.de, hinter NPM mit
Let's-Encrypt-Zertifikat, Container auf Port 9101.

DER NAME IST EINE UMKEHR, und sie steht ausfuehrlich im ROADMAP: hier stand,
dass fivecdn und fivemanage wegfallen, weil wir kein Fivemanage betreiben. Das
Argument gilt weiter -- es ist nur teurer als das, was dagegen steht. Der Name
war bereits fertig verkabelt: DNS da, NPM-Host da, Zertifikat gueltig bis
09.11.2026, Ziel host.docker.internal:9101, und dieser Port wurde frei, als die
Lite-Container gingen. Unser Stack auf 9101 kostet damit null Klicks. Der
Wechsel auf media.d4rkst3r.de bleibt billig, weil keine Adresse in der
Datenbank steht.

Ueber die oeffentliche Adresse durchgemessen: Anmeldung durch echtes HTTPS
(der Fall, den curl bisher nicht bezeugen konnte), Token mit Praefix-Fessel,
403 mit Text fuer anderswo/ und fuers Loeschen, Upload und Abruf Byte fuer
Byte identisch.

Und ein Befund aus dem Fotostudio-Anschluss: die Pfadmeldung war irrefuehrend.
SEGMENT verlangt als ERSTES Zeichen einen Buchstaben oder eine Ziffer, die
Meldung sprach aber nur von "nicht mit Punkt beginnend" -- ein fuehrender
Unterstrich faellt ebenso durch. Kein erfundener Fall: das Fotostudio legt
seine Leerbilder als "_plate" ab. Jetzt nennt die Meldung die Regel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 17:08:36 +02:00
co-authored by Claude Opus 5
parent 7bfd3458a1
commit 5f7f17ce7e
2 changed files with 91 additions and 17 deletions
+8 -2
View File
@@ -41,10 +41,16 @@ export function checkPath(raw: string): string {
for (const segment of segments) {
if (!SEGMENT.test(segment)) {
// Die Meldung nennt die Regel so, wie sie ist. Vorher stand hier
// "nicht mit Punkt beginnend" — das ist nur die Haelfte: das erste
// Zeichen muss ein Buchstabe oder eine Ziffer sein, ein fuehrender
// Unterstrich faellt also ebenso durch. Aufgefallen an
// "_probe.webp", und das ist kein erfundener Fall: das Fotostudio
// legt seine Leerbilder als "_plate" ab.
throw new PathError(
`"${segment}" ist als Pfadteil nicht erlaubt ` +
'(Buchstaben, Ziffern, Punkt, Strich, Unterstrich; ' +
'nicht mit Punkt beginnend)',
'(erstes Zeichen: Buchstabe oder Ziffer; danach auch ' +
'Punkt, Strich, Unterstrich)',
)
}
}