Zurück zum Changelog

Team-Verwaltung + öffentliche API-Doku

26. Mai 2026

Team-Verwaltung in der Console (Nutzer einladen, Rollen pflegen) plus die komplette API-Oberfläche als öffentliche Spec unter /docs-full und /openapi-full.json.

Nutzer einladen

Owner/Admins laden Team-Mitglieder per E-Mail ein — gebrandete Einladungs-Mail inklusive.

Rollen-Editor

Rollen anlegen und Berechtigungen pro Rolle setzen unter /settings/roles.

/docs-full

Komplette API-Spec als öffentliche Scalar-Seite — ohne Login, direkt verlinkbar.

Bug-Fix Einladung

/invite/accept zeigt keinen falschen „Login erforderlich“-Toast mehr für anonyme Eingeladene.

Nutzer einladen (/users)

Die Console bekommt eine eigene Mitglieder-Seite unter Einstellungen → Nutzer. Owner/Admins können Mitglieder auflisten, Profile bearbeiten und neue Nutzer per E-Mail einladen. Der eingeladene Nutzer öffnet den Link in der E-Mail und landet auf /invite/accept — bereits registrierte Nutzer loggen sich ein und treten bei, neue Nutzer registrieren sich und treten in einem Schritt bei.

Die Einladungs-E-Mail ist jetzt gebrandet (Logo und Absender der Console) statt des früheren Hardcoded-Templates. Sichtbar nur für Nutzer mit dem members:member:read-Entitlement.

Rollen und Berechtigungen (/settings/roles)

Neuer Rollen-Tab in den Einstellungen: Rollen anlegen oder bearbeiten, Berechtigungen pro Rolle setzen. Usage-/Kontingent-Entitlements sind im Rollen-Editor ausgeblendet — dort werden nur echte Permissions gelistet. Sichtbar für Nutzer mit dem rbac:role:read-Entitlement.

Reine Frontend-Erweiterung. Die zugrundeliegenden members- und role-APIs sind Kernel-Kern und waren bereits vorhanden — dieser Release macht sie in der Console-UI verfügbar.

Öffentliche Komplett-Spec (/docs-full)

Die bestehende /openapi-1-3.json + /docs personalisieren die Spec auf die Entitlements des aufrufenden API-Keys — richtig für die eingeloggte Console, aber es fehlte eine einzelne URL, die die gesamte API-Oberfläche zeigt. Die neuen Endpoints schließen die Lücke:

GET

/docs-full

Scalar-Doku-Seite mit der kompletten Spec (alle Länder, Formate, Endpoints). Public, kein Login oder API-Key nötig — von überall verlinkbar.

GET

/openapi-full.json

Dieselbe Spec als rohes JSON — direkt in Postman, Code-Generatoren oder IDE-Plugins einbinden.

Aufrufen oder verlinken

bash
1# In the browser
2open https://invoice-api.xhub.io/docs-full
3 
4# Or link directly from your site
5<a href="https://invoice-api.xhub.io/docs-full">Full API reference</a>

JSON-Spec abrufen

bash
1curl https://invoice-api.xhub.io/openapi-full.json \
2 -H "Accept: application/json" \
3 -o openapi-full.json

Sicherheits-Hinweis: Die volle Oberfläche öffentlich zu zeigen ist sicher — jeder Aufruf wird weiterhin serverseitig per Entitlement (checkFeatureAccess) autorisiert. Die Doku listet nur, was es gibt. Die personalisierte /openapi-1-3.json + /docs bleiben auth-gated.

CORS-Hinweis: Für das bloße Verlinken von /docs-full ist nichts weiter nötig. Soll die Website das JSON cross-origin per JavaScript laden, muss ihre Origin in CORS_ORIGINS (Render- Env) eingetragen werden — die /docs-full-Seite selbst braucht das nicht.

Bug-Fix: Login-Toast auf /invite/accept

Anonyme Eingeladene, die /invite/accept öffneten, sahen einen roten Fehler-Toast „You must be logged in to access this resource“ — also den Normalfall. Ursache: die Seite fragte global die geschützte organization.current-Locale ab, die für Anonyme mit 401 antwortet. Die Abfrage läuft jetzt nur für eingeloggte Nutzer; ausgeloggt fällt die Sprach-Ermittlung ohnehin auf die UI-Sprache zurück.

Die Einladungs-Karte selbst war nie betroffen — nur der Toast.