feat(status): add public repair status page
This commit is contained in:
parent
a284bbc188
commit
efdc4d5be1
6 changed files with 425 additions and 4 deletions
40
README.md
40
README.md
|
|
@ -23,6 +23,7 @@ Version: `0.4.1`
|
|||
- `/reparatur`
|
||||
- `/ueber-uns`
|
||||
- `/kontakt`
|
||||
- `/status/[token]`
|
||||
- `/impressum`
|
||||
- `/datenschutz`
|
||||
- `/admin/login`
|
||||
|
|
@ -109,8 +110,12 @@ Variablen:
|
|||
- `AUTH_COOKIE_SECURE`: `true` in Produktion mit HTTPS, lokal `false`
|
||||
- `OLYMPUS_INTAKE_API_URL`: vorbereitet für spätere serverseitige Olympus-Anbindung
|
||||
- `OLYMPUS_INTAKE_API_TOKEN`: vorbereitet für spätere serverseitige Olympus-Anbindung
|
||||
- `OLYMPUS_PUBLIC_STATUS_API_URL`: serverseitig erreichbare Olympus-Basis-URL für öffentliche Reparaturstatuslinks
|
||||
- `OLYMPUS_PUBLIC_STATUS_API_TOKEN`: optionaler serverseitiger Token für spätere geschützte Status-API-Zugriffe
|
||||
|
||||
Die Olympus-Variablen sind nur für eine spätere serverseitige Integration vorbereitet. Sie werden nicht im Browser verwendet.
|
||||
Die Intake-Variablen sind für eine spätere serverseitige Integration vorbereitet. Die Status-Variablen werden für `/status/[token]` serverseitig verwendet. Sie werden nicht im Browser verwendet.
|
||||
|
||||
Für Reparaturstatuslinks muss `OLYMPUS_PUBLIC_STATUS_API_URL` vom Next.js-Server erreichbar sein. In Docker kann das je nach Netzwerk z. B. `http://hermes:8000` sein. Produktiv sollte eine interne Server-zu-Server-Adresse oder eine abgesicherte Olympus-URL verwendet werden.
|
||||
|
||||
Für lokale Entwicklung kann `AUTH_COOKIE_SECURE=false` bleiben. Produktiv muss HTTPS verwendet und `AUTH_COOKIE_SECURE=true` gesetzt werden. `ADMIN_SESSION_SECRET` muss produktiv ein langer zufälliger Wert sein.
|
||||
|
||||
|
|
@ -130,6 +135,35 @@ Für lokale Entwicklung kann `AUTH_COOKIE_SECURE=false` bleiben. Produktiv muss
|
|||
- `GET /api/media/[filename]`
|
||||
- `GET /api/health`
|
||||
|
||||
## Öffentlicher Reparaturstatus
|
||||
|
||||
Olympus CRM erzeugt sichere Statuslinks für Reparaturen. Die Website stellt dafür die öffentliche Route bereit:
|
||||
|
||||
```text
|
||||
/status/<token>
|
||||
```
|
||||
|
||||
Die Seite ruft Olympus ausschließlich serverseitig auf:
|
||||
|
||||
```text
|
||||
${OLYMPUS_PUBLIC_STATUS_API_URL}/public/repairs/status/<token>
|
||||
```
|
||||
|
||||
Der Browser sieht weder die Olympus-URL noch optionale Server-Tokens. Die öffentliche Statusseite zeigt nur:
|
||||
|
||||
- Reparaturnummer
|
||||
- Gerät
|
||||
- aktuellen Status
|
||||
- letzte Aktualisierung
|
||||
- kundenfreundliche Status-Timeline
|
||||
|
||||
Nicht angezeigt werden Kundendaten, interne Notizen, Diagnosedetails oder technische Fehlermeldungen.
|
||||
|
||||
Fehlerverhalten:
|
||||
|
||||
- ungültiger oder abgelaufener Token: freundliche Meldung mit Links zu Reparatur und Kontakt
|
||||
- Olympus nicht erreichbar: neutrale Meldung ohne technische Details
|
||||
|
||||
Aktuell validieren die Routen serverseitig, geben klare JSON-Antworten zurück und schreiben nur technische Metadaten in Server-Logs. Es werden keine Nachrichteninhalte oder Tokens geloggt. Kontakt- und Reparaturanfragen werden lokal unter `data/*.json` gespeichert und nicht versioniert.
|
||||
|
||||
## Admin-Bereich
|
||||
|
|
@ -204,9 +238,9 @@ Bilder für Logo und Social Image werden aus dem Medienbestand ausgewählt. Neue
|
|||
|
||||
## Roadmap Kundenportal
|
||||
|
||||
Ein Kundenportal ist vorbereitet, aber noch nicht öffentlich implementiert. Für spätere Ausbaustufen sind folgende Routen vorgesehen:
|
||||
Ein vollständiges Kundenportal ist vorbereitet, aber noch nicht öffentlich implementiert. Die öffentliche Statuslink-Seite ist bereits vorhanden. Für spätere Ausbaustufen sind folgende Routen vorgesehen:
|
||||
|
||||
- `/status`: öffentliche Status-Einstiegsseite
|
||||
- `/status/[token]`: öffentliche Statuslink-Seite für Olympus
|
||||
- `/reparatur/status`: Statusabfrage für Reparaturanfragen
|
||||
- `/portal/login`: geschützter Kundenlogin
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue