Admin API

Tenant-Verwaltung, Benutzeradministration und Audit-Logs.

Admin-Zugriff erforderlich

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:

FeldTypErforderlichBeschreibung
api_keystringJaDer API-Key des Providers
base_urlstringNeinBenutzerdefinierte Base-URL
api_versionstringNeinAPI-Version (Azure OpenAI)
provider_typestringJaopenai, 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:

StatusBedeutung
401Fehlendes oder ungueltiges JWT-Token
403Benutzer hat keine Admin-Rolle
404Tenant oder Ressource nicht gefunden
422Validierungsfehler