Umsetzung des "Website Masterplan" (16 Seiten) unter /webdesign. Zugangsschutz mit EIGENER Schranke (server/webdesign-gate.js) statt gate.js: gate.js laesst seit dem oeffentlichen Start am 21.08.2026 jeden durch, weil die Pruefung auf SITE_PUBLIC_LAUNCH_AT als allererste Zeile steht. Haette man /webdesign dahintergehaengt, waere der ausdruecklich nicht-oeffentliche Bereich inklusive Preisen und spaeteren Kundendaten ab der ersten Sekunde fuer jeden lesbar gewesen. Eigenes Sitzungs-Cookie, bereich="webdesign" im Token, damit ein gueltiges Universe-Cookie hier NICHT gilt. 37/37 Tests. Sieben oeffentliche Seiten in fuenf Sprachen (de, de-CH mit echtem Dialekt, en, fr, pt). Preise, Zeitrahmen, Paketnamen und die 30-%-Regel stehen an genau EINER Stelle in wd-core.js -- der Masterplan verlangt "ueberall widerspruchsfrei", und vier Kopien laufen bei der ersten Preisaenderung auseinander. Als App installierbar auf Handy und PC. Der Service Worker speichert bewusst KEINE HTML-Seite zwischen: nach dem Abmelden wuerden sonst geschuetzte Seiten weiter ausgeliefert, ohne dass der Server je gefragt wird. 18/18 Tests. Handy-Abnahme ueber alle Seiten in fuenf Breiten (320-1440) und fuenf Sprachen: 40/40. Der Test fand 35 echte Fehler (Touch-Ziele unter 44px), behoben im Designsystem statt einzeln pro Seite. PayPal (Wunsch 22.08.2026 "sofort auf meinem paypal"): Orders API mit intent=CAPTURE, also sofortiger Einzug statt blosser Reservierung. Gebuehr und Nettobetrag getrennt gespeichert. Betraege durchgehend als Ganzzahl in Cent. Gefaelschte Webhooks werden abgewiesen. Fail closed solange Zugangsdaten fehlen. 28/28 Tests gegen einen nachgebauten PayPal-Server. Datenbank: 15 Tabellen mit Praefix wd_, fachlich vollstaendig vom Universe getrennt. Co-Authored-By: Claude Opus 5 <[email protected]>
41 lines
1.9 KiB
Bash
41 lines
1.9 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=
|