Audit + Umbau: Faktenfehler behoben, Server-/Admin-Lücken geschlossen, 49 Screenshots, Schema-Matrix generiert

- Audit: plans/doku-audit.md (Befunde, Phasen P1-P9, Ausführungsprotokoll) + plans/audit/ (8 Detailreports) + plans/offene-issues.md
- Werkzeuge: scripts/audit-docs.mjs (Links/Anker/Bilder/Tabellen), scripts/gen-schema-matrix.mjs (npm run gen:schemas)
- Neue Seiten: projekt/feld-rechte, reference/rest-system, reference/schema-properties, projekt/tests, 5 Anwender-Seiten
- Fehler behoben: EMBEDDING_BGE_M3_*-Env, allowSnapshots, MCP-Scopes (.read/.create/.update), meta.views, loadAll-Signatur, OpenAPI-Endpunkt, MongoDB 8, Befehlspalette
- Screenshots: 9 Admin + 10 Anwender aus Mock-Projekt corporate (t1 entfernt), 49 Bilder gesamt
- AGENTS.md: Sync-Behauptung richtiggestellt, Belegpflicht/UI-Namen/Screenshot-Regeln, Werkzeug-Abschnitt
- Build: 71 Seiten grün, 0 tote Links, 0 kaputte Tabellen
This commit is contained in:
apairon committed 2026-10-17 01:49:35 +00:00
1 parent 1897bb50d9
commit 1928922e07
104 files changed
+4756 -1044

No files matched your search

+28 -5
View File
@@ -12,7 +12,8 @@ Suchbegriffe: Deploy, Staging, Live, Produktion, Reload, Freischaltung.
## URL-Bild
```bash title=".env — die drei Bühnen (Platzhalter im Starter ersetzen)"
LIVE_URL=https://www # Produktion (im echten Projekt: echte Domain)
# TODO: echte Domain eintragen
LIVE_URL=https://example.com # Produktion (im echten Projekt: echte Domain)
STAGING_URL=https://dev-<projekt>.staging.testversion.online
CODING_URL=https://<projekt>.code.testversion.online
```
@@ -76,11 +77,33 @@ curl -X POST "${LIVE_URL}/api/ssr?clear=1" -H "Content-Type: application/json" -
```
Zugang per `RSYNC_USER`, `RSYNC_PASS`, `RSYNC_HOST`, `RSYNC_PORT` aus `.env`.
Auf `master` fliegen Quellen und Karten raus (`--exclude=src --exclude=*.map`).
Auf `master` fliegen im Frontend-Sync Quellen und Karten raus (`--exclude=src --exclude=*.map`); der `api/`-Sync läuft ohne Excludes.
</TabItem>
</Tabs>
## CI-Umgebung und Variablen
Beide Skripte liegen in `scripts/` und lesen per `allexport` erst `.env`, dann `api/config.yml.env` ein.
`ci-deploy.sh` bricht ohne `RSYNC_USER`, `RSYNC_PASS`, `RSYNC_HOST`, `RSYNC_PORT` ab; `ci-staging.sh` verlangt `API_BASEDIR` und `COMPOSE_PROJECT_NAME` (Schrägstriche werden zu Bindestrichen).
Erkennt `ci-deploy.sh` die Starter-Vorlage (`PROJECT_NAME=__PROJECT_NAME__`, `_CUSTOMER_ID_` in `PRODUCTION_PATH` oder `LIVE_URL=https://www`), steigt es mit Exit 0 aus — kein Deploy, kein Fehler.
| Variable | Woher | Wofür |
|---|---|---|
| `RSYNC_USER`, `RSYNC_PASS`, `RSYNC_HOST`, `RSYNC_PORT` | CI-Umgebung | SSH-Zugang und Ziel für den Live-rsync |
| `BRANCH` | CI-Umgebung | `master` schaltet `--exclude=src --exclude=*.map` (nur Frontend-Sync) |
| `ADMIN_TOKEN` | `api/config.yml.env` | `Bearer`-Kopf für den Proxy-Reload |
| `LIVE_URL`, `STAGING_URL` | `.env` | Ziele für Reload und SSR-Clear |
| `API_BASEDIR`, `COMPOSE_PROJECT_NAME` | CI-Umgebung | Staging-Zielverzeichnis und Compose-Projektname |
| `PREVIEW_URL` | wird geschrieben | `ci-modify-config.sh` setzt `LIVE_URL/preview`, `ci-staging.sh` überschreibt mit `STAGING_URL/preview` |
| `PROJECT_NAME`, `PRODUCTION_PATH` | `.env` | Nur Template-Schutz (siehe oben) |
Was das Skript tut: Live per rsync (`frontend/`, `api/`, `media/`) auf `RSYNC_HOST`, danach Reload plus SSR-Clear; Staging per rsync nach `API_BASEDIR` (`api`, `frontend/dist`, `frontend/assets`), danach `docker compose up -d --build` mit Wartezeit, Reload plus SSR-Clear.
Nicht als Deploy-Variablen listen: `ADMIN_ASSET_VERSION` steht zwar in `api/config.yml.env`, wird aber von keinem CI-Skript gelesen.
`CODING_URL` und `CODING_TIBIADMIN_URL` sind Test-Basis-URLs (siehe [Tests](/projekt/tests/)), keine Deploy-Ziele.
`.basic-auth-code` und `.basic-auth-web` liegen im Repo, sind in `docker-compose-local.yml` aber derzeit auskommentiert; Playwright umgeht Basic-Auth per User-Agent-Marker.
## Reload-Endpunkte
Nach jedem Deploy: Config neu laden **und** SSR-Cache wischen — sonst siehst du alte Seiten auf neuer Config.
@@ -88,7 +111,7 @@ Nach jedem Deploy: Config neu laden **und** SSR-Cache wischen — sonst siehst d
| Endpunkt | Kopf | Wirkung |
|---|---|---|
| `POST /api/_/admin/reload` (Live/Staging-URL) | `Authorization: Bearer <ADMIN_TOKEN>` | Projekt-Config über den Reverse-Proxy neu laden |
| `POST /api/ssr?clear=1` | keiner nötig (`public.post: true`) | Ganzen SSR-Cache löschen |
| `POST /api/ssr?clear=1` (Starter-URL über Proxy/Webserver, kein tibi-server-Pfad — siehe `scripts/ci-staging.sh` und `scripts/ci-deploy.sh`) | keiner nötig (`public.post: true` in `api/collections/ssr.yml`) | Ganzen SSR-Cache löschen (Hook `hooks/ssr/post_bind.js` reagiert auf `?clear`) |
| `POST /api/v1/_/:project/_/admin/reload` | `X-Admin-Token` (Server-Ebene) | Gleicher Reload direkt am Server |
| `POST /api/v1/_/:project/_/admin/regenerate-search` | `X-Admin-Token` | Suchindex neu aufbauen ([Suche](/projekt/suche/)) |
@@ -122,10 +145,10 @@ Im Deploy-Skript steht er nur hinter `Bearer` für den Proxy-Reload — Projekt-
| Fehlerbild | Ursache | Lösung |
|---|---|---|
| Deploy bricht mit „starter template detected“ ab | Platzhalter noch drin | `.env` und `PRODUCTION_PATH` vervollständigen |
| Deploy steigt mit „starter template detected" aus | Guard greift (Exit 0, kein Deploy, kein Fehler) | `.env` und `PRODUCTION_PATH` vervollständigen |
| Neue Config wirkt nicht | Reload vergessen | Reload-Endpunkt pro Bühne aufrufen |
| Alte Seite trotz neuer Daten | SSR-Cache alt | `?clear=1`, Köpfe `X-SSR-Cache`/`X-SSR-Cleared` prüfen |
| `project not found` | Namespace falsch | [Neues Projekt](/einstieg/neues-projekt/) Schritt 5 |
| 401/403 beim Reload | Falscher Kopf (z. B. `Token:` statt `Bearer`) | Tabelle oben: Deploy nimmt `Bearer`, Server-API nimmt `X-Admin-Token` |
Verifiziert am e3f92eb 2026-10-14 (tibi-svelte-starter, .env, ci-deploy.sh, ci-staging.sh, deploy.yml).
Verifiziert am e3f92eb 2026-10-17 (tibi-svelte-starter, .env, ci-deploy.sh, ci-staging.sh, deploy.yml)