instance routes fix - smart-village-solutions/sva-studio GitHub Wiki
Status: ✅ Fixed & Tested
Branch: chore/improve-rollout (PR #237)
Date: 2026-04-03
Die Instance Management Seite (/admin/instances) zeigte den generischen Fehler:
"Die Instanzverwaltung konnte nicht geladen werden."
Root Cause: API-Requests zu /api/v1/iam/instances/* Endpoints gaben HTTP 404 zurück.
-
Direct API Test:
curl -s -D - https://studio.smart-village.app/api/v1/iam/instances # → Response: HTTP 404 with HTML (not JSON) -
Code Analysis:
- ✅ Handler Funktionen existierten:
listInstancesHandler,getInstanceHandler, etc. - ✅ Handler wurden exportiert aus
@sva/auth/runtime-routes - ❌ Routes NICHT registriert in der
authHandlerMapvonauth.routes.server.ts
- ✅ Handler Funktionen existierten:
-
feat: Instance-Registry-Routes registrieren (
fix: registriere fehlende Instance-Registry-Routes in authHandlerMap)-
Registrierte 5 neue Pfade in
authHandlerMapinauth.routes.server.ts:-
GET /api/v1/iam/instances(list + create) GET /api/v1/iam/instances/$instanceIdPOST /api/v1/iam/instances/$instanceId/activatePOST /api/v1/iam/instances/$instanceId/suspendPOST /api/v1/iam/instances/$instanceId/archive
-
-
Fügte die Pfade zu
authRoutePathsinauth.routes.tshinzu
-
-
test: Instance-Handler-Mocks hinzufügen (
test: füge Instance-Handler-Mocks zu routing-Tests hinzu)- Added mocked handlers für die Route-Tests
- Alle 39 routing Tests bestanden ✅
-
packages/routing/src/auth.routes.server.ts(+34 lines) -
packages/routing/src/auth.routes.ts(+5 lines) -
packages/routing/src/auth.routes.server.test.ts(+6 lines)
- ✅ 940+ Unit-Tests bestanden
- ✅ TypeScript-Checks erfolgreich
- ✅ ESLint erfolgreich
- ✅ Docker-Image gebaut & gepusht
- Image Tag:
route-fix - Digest:
sha256:e3aa7691df27cf33a13f6540ac853de1952b75bde95a5cbd7c2f3708819d85e8
- Image Tag:
API: GET /api/v1/iam/instances
Status: 404 HTML
Frontend: "Die Instanzverwaltung konnte nicht geladen werden."
API: GET /api/v1/iam/instances
Status: 200 JSON mit Instance-Liste
Frontend: Instance Management Seite lädt normal
# Image ist gebaut und gepusht zu GHCR
ghcr.io/smart-village-solutions/sva-studio@sha256:e3aa7691df27cf33a13f6540ac853de1952b75bde95a5cbd7c2f3708819d85e8
# Studio Runtime-Profil konfiguriert in:
config/runtime/studio.local.vars
# Deployment-Befehl (bei SSH-Zugriff):
docker service update --image "<digest>" sva-studio_app- Über PR #237 mergen → Automatisch deployt über CI/CD
-
Manuell via SSH →
docker service updateauf Manager-Node - Portainer REST API → Direkt Service Image updaten
Nach dem Deployment sollten diese Tests erfolgreich sein:
# 1. API-Test
curl -s https://studio.smart-village.app/api/v1/iam/instances | jq .
# 2. UI-Test
# Navigiere zu https://studio.smart-village.app/admin/instances
# Sollte die Instanzenliste laden (nicht den Fehler zeigen)
# 3. Smoke-Tests
pnpm env:smoke:studio| Datum | Action | Status |
|---|---|---|
| 2026-04-03 | Code-Fix implementiert | ✅ Complete |
| 2026-04-03 | Tests & Validation | ✅ Complete |
| 2026-04-03 | Docker-Image gebaut | ✅ Complete |
| 2026-04-03 | Zu PR gepusht | ✅ Complete |
| 2026-04-03 | Deployment vorbereitet | ⏳ Pending (SSH erforderlich) |
| TBD | Auf Production deployen | ⏳ Blocked |
Die Routing-Architektur erfordert manuelle Synchronisation zwischen zwei Stellen:
-
Backend-Handler in
@sva/auth/runtime-routes -
Route-Registrierung in
authHandlerMap
Da die Handler bereits existierten, wurde die fehlende Registrierung übersehen.
- ✅ Test
executes all mapped handlers for all routesfängt sowas nun - ✅ Neue Features sollten Handler + Route-Registrierung im gleichen Commit haben
- 📋 Ggf. in Code review guidelines aufnehmen