Team-Verwaltung + öffentliche API-Doku
26. Mai 2026Team-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:
/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.
/openapi-full.json
Dieselbe Spec als rohes JSON — direkt in Postman, Code-Generatoren oder IDE-Plugins einbinden.
Aufrufen oder verlinken
1# In the browser2open https://invoice-api.xhub.io/docs-full3 4# Or link directly from your site5<a href="https://invoice-api.xhub.io/docs-full">Full API reference</a>JSON-Spec abrufen
1curl https://invoice-api.xhub.io/openapi-full.json \2 -H "Accept: application/json" \3 -o openapi-full.jsonSicherheits-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.