Development¶
Zum Entwickeln gibt es weitere Tools:
viur-mirrorkopiert die Live-(default)-Datenbank in einen Namespace vonviur-tests(out-of-band, gelegentlich).- Manuelles Browsen — den Dev-Server booten und das
Cookie einmal über
/_test/config/enterscharfschalten; danach die Test-Instanz direkt browsen, harte Navigation inklusive.
Der Test-Token bleibt durchgehend voll erzwungen — manuelles Browsen
funktioniert, weil das viur-test-token-Cookie bei jedem Request mitfährt
(siehe ViUR3 Monkey-Patches).
Im eigenen Namespace booten¶
VIUR_TESTING=<namespace> bootet den Test-Modus in diesem Namespace (hier ak);
VIUR_TESTING=1 nutzt den Default-Namespace. Jeder Entwickler wählt seinen
eigenen Namespace, damit die gespiegelten Scheiben isoliert bleiben. Auch CI/CD
sollte einen eigenen Namespace haben.
Manuelles Browsen scharfschalten (das Cookie)¶
Einmal navigieren zu:
Das Backend antwortet mit Set-Cookie (SameSite=Strict; HttpOnly; Path=/). Ab
dann browst du http://localhost:8080/... ganz normal — harte Navigation,
Reloads, server-gerenderte Seiten: das Cookie wird automatisch angehängt und der
Token bleibt erzwungen.
Der Token ist pro UTC-Tag deterministisch: er bleibt den ganzen Tag und über Server-Neustarts hinweg gleich — du schaltest das Cookie also einmal morgens scharf und es funktioniert bis Mitternacht (am nächsten Tag rotiert es).
Namespace befüllen — viur-mirror¶
Das viur-mirror-Script kopiert Kinds aus einer Datenbank in deinen
viur-tests-Namespace. Das Projekt muss dabei zwingend angegeben werden:
- Die
(default)-Datenbank ist als Ziel hart ausgeschlossen, um ein Überschreiben der Live-Daten zu verhindern, und wird über einen read-only-Client gelesen. - viur-core-System-Kinds sind ausgeschlossen:
viur-conf(enthält den hmacKey),viur-session,viur-securitykey. - Um Konflikte mit File-Uploads zu vermeiden, sind zusätzlich
viur-relations,file,file_rootNodeundviur-blob-locksausgeschlossen.
Folge: Es werden nur Daten kopiert, keine Dateien. (Ein künftiges Update soll auch Datei-Kopien erzeugen.)
Seeding liest Live-Produktionsdaten
Das Seeding liest die Live-(default)-Datenbank (read-only) und ist
PIN-gesichert. Es kann personenbezogene Daten in die Test-Scheibe ziehen —
prüfe die --exclude-Liste auf PII, bevor du es ausführst.