Files
dogfather-universe/server/.env.example
T
DogFatherGitandClaude Opus 5 74091590b8 Verwaltung: nur noch EINMAL den Code eingeben
Rueckmeldung 22.08.2026: "ich hab auf der verwaltungs seite 2 mal dass ich
den zugangscode eingeben muss und vanvan auch, ich will es nur einmal
eingeben muessen." Berechtigt.

Die Zugangswand hat serverseitig laengst geprueft, WER da ist -- Dogfather
oder VanVan, laut Masterplan S.4 beide gleichberechtigte
Volladministratoren. Ein zweites Passwort danach bringt keinen
zusaetzlichen Schutz, es kostet nur jedes Mal Zeit.

Warum es nicht einfach "Cookie mitschicken" ist: Die Verwaltungsdaten
liegen hinter postfach.dogfather-universe.com, einem ANDEREN Rechnernamen.
Das Sitzungs-Cookie gilt dort nicht -- so sind Cookies gebaut, und das ist
gut so.

Loesung: Die Zugangswand stellt unter /webdesign/api-ausweis einen
kurzlebigen, signierten Ausweis aus, den die interne API anerkennt.
  - 15 Minuten gueltig, die Seite holt bei Bedarf still einen neuen
  - traegt bereich="wd-admin", damit ein Sitzungs-Token der Zugangswand
    hier NICHT durchgeht und umgekehrt
  - nur mit gueltiger Zugangssitzung zu bekommen
  - gilt AUSSCHLIESSLICH fuer die /webdesign-Endpunkte. Postfach,
    Bewerbungen, Supporter und Teamverwaltung bleiben unberuehrt

Fehlt WEBDESIGN_API_SECRET auf einer der beiden Seiten, gilt kein Ausweis
und die Verwaltung fragt wie bisher nach dem Team-Code. Ein fehlender
Konfigurationswert darf niemals eine Tuer oeffnen -- nur eine schliessen.
Genau das prueft der letzte Testfall.

Bei einem 401 wird EINMAL still ein neuer Ausweis geholt und die Anfrage
wiederholt, statt jemanden mitten im Arbeiten rauszuwerfen.

10/10 Tests, darunter: gefaelschte Signatur, fremdes Geheimnis,
abgelaufen, falscher Bereich, erfundene Rolle.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-22 21:36:11 +02:00

51 lines
2.5 KiB
Bash

# Vorlage — echte Werte kommen in eine eigene ".env"-Datei (nie committen).
PORT=4100
# Zugangscode-Schranke — gleiche Codes wie beim bisherigen Cloudflare-Worker möglich, oder neu.
SITE_ACCESS_SECRET=
SITE_ACCESS_CODE_DOGI=
SITE_ACCESS_CODE_VANVAN=
SITE_ACCESS_CODE_DIENE=
# Automatischer öffentlicher Start (21.08.2026): ab diesem Zeitpunkt lässt
# gate.js JEDEN durch, ganz ohne Neustart/manuellen Eingriff -- die Codes
# oben bleiben bis dahin unverändert nötig. ISO-Format MIT Zeitzone, sonst
# wird der Wert als UTC statt als Ortszeit gelesen. Leer lassen = kein
# automatischer Start, die Schranke bleibt dauerhaft aktiv.
# Beispiel (21 Uhr deutscher Sommerzeit): 2026-08-21T21:00:00+02:00
SITE_PUBLIC_LAUNCH_AT=
# ---------------------------------------------------------------------------
# Webdesign-Bereich (/webdesign), 22.08.2026 — eigener Zugangsschutz.
# Bewusst UNABHAENGIG von SITE_PUBLIC_LAUNCH_AT oben: der oeffentliche Start
# des Universe darf diesen Bereich nicht mit aufsperren.
# ---------------------------------------------------------------------------
# Status: entwurf | vorabpruefung | freigegeben
# entwurf = komplett dicht, auch mit richtigem Code kein Zugang
# vorabpruefung = Zugang nur ueber die persoenlichen Codes (Standard)
# freigegeben = oeffentliche Seiten frei; die Verwaltung bleibt geschuetzt
WEBDESIGN_STATUS=vorabpruefung
# Leer lassen = die SITE_ACCESS_CODE_*-Codes von oben gelten auch hier
# (so eingerichtet auf Wunsch vom 22.08.2026). Wird hier spaeter ein eigener
# Wert eingetragen, gilt NUR noch dieser -- damit laesst sich der
# Webdesign-Zugang getrennt aendern oder entziehen, ohne den Universe-Zugang
# anzufassen.
WEBDESIGN_CODE_DOGI=
WEBDESIGN_CODE_VANVAN=
# Eigenes Signatur-Geheimnis fuer die Webdesign-Sitzung. Leer lassen = es
# wird SITE_ACCESS_SECRET benutzt. Ein Universe-Cookie funktioniert hier
# trotzdem nicht (die Sitzung traegt zusaetzlich bereich="webdesign").
WEBDESIGN_ACCESS_SECRET=
# Gemeinsames Geheimnis mit dem internen Dienst (22.08.2026).
# Damit stellt die Zugangswand einen kurzlebigen Ausweis aus, mit dem die
# Verwaltung OHNE zweite Anmeldung auf die interne API zugreifen darf --
# wer durch die Zugangswand kam, ist bereits als Dogfather oder VanVan
# geprueft. Muss in server-internal/.env EXAKT gleich stehen.
# Leer lassen = kein Ausweis, die Verwaltung fragt wie bisher nach dem
# Team-Code. Ein fehlender Wert darf nie eine Tuer oeffnen, nur eine
# schliessen.
WEBDESIGN_API_SECRET=