Admin API
Tenant-Verwaltung, Benutzeradministration und Audit-Logs.
Admin-Endpunkte sind nur im Cloud-Modus verfuegbar und erfordern einen Benutzer mit der Admin-Rolle.
Ueberblick
Admin-Endpunkte bieten vollstaendige Kontrolle ueber die Noirdoc Multi-Tenant-Umgebung. Sie sind auf Benutzer mit der Admin-Rolle beschraenkt. Alle Anfragen erfordern ein gueltiges JWT-Access-Token.
Basispfad: /admin
Authentifizierung: JWT-Access-Token mit Admin-Rolle ueber Authorization: Bearer <token>
Tenants
GET /admin/tenants
Listet alle Tenants im System auf.
# Alle Tenants auflisten
curl https://api.noirdoc.de/admin/tenants \
-H "Authorization: Bearer <admin_token>"
Antwort:
[
{
"id": "tenant_abc123",
"name": "Acme Corp",
"is_active": true,
"created_at": "2025-06-01T09:00:00Z"
},
{
"id": "tenant_def456",
"name": "HealthTech GmbH",
"is_active": true,
"created_at": "2025-08-15T12:00:00Z"
}
]
POST /admin/tenants
Erstellt einen neuen Tenant.
# Neuen Tenant erstellen
curl -X POST https://api.noirdoc.de/admin/tenants \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{"name": "Neue Organisation"}'
GET /admin/tenants/{id}
Ruft detaillierte Informationen zu einem bestimmten Tenant ab.
# Tenant-Details abrufen
curl https://api.noirdoc.de/admin/tenants/tenant_abc123 \
-H "Authorization: Bearer <admin_token>"
PATCH /admin/tenants/{id}
Aktualisiert Tenant-Eigenschaften wie Name oder Einstellungen.
# Tenant-Namen aktualisieren
curl -X PATCH https://api.noirdoc.de/admin/tenants/tenant_abc123 \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{"name": "Acme Corporation"}'
DELETE /admin/tenants/{id}
Deaktiviert einen Tenant. Dies ist ein Soft-Delete — alle zugehoerigen API-Keys werden ungueltig, aber die Daten bleiben erhalten.
# Tenant deaktivieren
curl -X DELETE https://api.noirdoc.de/admin/tenants/tenant_abc123 \
-H "Authorization: Bearer <admin_token>"
Tenant-API-Keys
Admins koennen Proxy-API-Keys im Namen eines beliebigen Tenants verwalten.
GET /admin/tenants/{id}/keys
Listet alle API-Keys für einen bestimmten Tenant auf.
# API-Keys eines Tenants auflisten
curl https://api.noirdoc.de/admin/tenants/tenant_abc123/keys \
-H "Authorization: Bearer <admin_token>"
POST /admin/tenants/{id}/keys
Erstellt einen neuen Proxy-API-Key für einen Tenant. Der vollstaendige Key-Wert wird nur einmal zurueckgegeben.
# Neuen Key für Tenant erstellen
curl -X POST https://api.noirdoc.de/admin/tenants/tenant_abc123/keys \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{"label": "tenant-produktions-key"}'
DELETE /admin/tenants/{id}/keys/{key_id}
Löscht einen API-Key eines Tenants.
# Tenant-API-Key loeschen
curl -X DELETE https://api.noirdoc.de/admin/tenants/tenant_abc123/keys/key_abc123 \
-H "Authorization: Bearer <admin_token>"
Tenant-Provider
Admins koennen LLM-Provider im Namen eines beliebigen Tenants konfigurieren.
GET /admin/tenants/{id}/providers
Listet die für einen Tenant konfigurierten Provider auf.
# Provider eines Tenants auflisten
curl https://api.noirdoc.de/admin/tenants/tenant_abc123/providers \
-H "Authorization: Bearer <admin_token>"
PUT /admin/tenants/{id}/providers/{provider}
Setzt oder aktualisiert einen Provider für einen Tenant.
# OpenAI-Provider für Tenant konfigurieren
curl -X PUT https://api.noirdoc.de/admin/tenants/tenant_abc123/providers/openai \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk-tenant-openai-key",
"provider_type": "openai"
}'
Request Body:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
api_key | string | Ja | Der API-Key des Providers |
base_url | string | Nein | Benutzerdefinierte Base-URL |
api_version | string | Nein | API-Version (Azure OpenAI) |
provider_type | string | Ja | openai, anthropic, azure, openrouter |
DELETE /admin/tenants/{id}/providers/{provider}
Entfernt eine Provider-Konfiguration von einem Tenant.
# Provider-Konfiguration von Tenant entfernen
curl -X DELETE https://api.noirdoc.de/admin/tenants/tenant_abc123/providers/openai \
-H "Authorization: Bearer <admin_token>"
Benutzer
GET /admin/users
Listet alle Benutzer ueber alle Tenants hinweg auf.
# Alle Benutzer auflisten
curl https://api.noirdoc.de/admin/users \
-H "Authorization: Bearer <admin_token>"
Antwort:
[
{
"id": "user_001",
"email": "admin@example.com",
"role": "admin",
"tenant_id": "tenant_abc123"
},
{
"id": "user_002",
"email": "benutzer@healthtech.de",
"role": "user",
"tenant_id": "tenant_def456"
}
]
Neue Benutzer werden ueber POST /auth/register (nur Admin) erstellt. Siehe Authentifizierung.
Audit-Logs und Statistiken
GET /admin/audit-logs
Ruft Audit-Logs ueber alle Tenants hinweg ab. Unterstützt Filterung nach Tenant, Zeitraum und Eventtyp ueber Query-Parameter.
# Audit-Logs für einen bestimmten Tenant abrufen
curl "https://api.noirdoc.de/admin/audit-logs?tenant_id=tenant_abc123&from=2025-11-01" \
-H "Authorization: Bearer <admin_token>"
GET /admin/stats
Ruft globale Systemstatistiken ab, einschliesslich Gesamtanfragen, aktive Tenants und Token-Nutzung.
# Globale Statistiken abrufen
curl https://api.noirdoc.de/admin/stats \
-H "Authorization: Bearer <admin_token>"
Antwort:
{
"total_requests": 1250000,
"active_tenants": 42,
"total_tokens": 89500000,
"requests_today": 15230
}
Fehlerantworten
Admin-Endpunkte geben Standard-HTTP-Fehlercodes zurueck:
| Status | Bedeutung |
|---|---|
401 | Fehlendes oder ungueltiges JWT-Token |
403 | Benutzer hat keine Admin-Rolle |
404 | Tenant oder Ressource nicht gefunden |
422 | Validierungsfehler |