API-Referenz¶
TCM365 stellt eine umfassende REST API zur Verwaltung von Multi-Vendor Tenant-Konfigurationen, Security Baselines, Compliance-Assessments und operativen Workflows bereit. Alle Endpoints folgen einheitlichen Konventionen für Authentifizierung, Request/Response-Format und Fehlerbehandlung.
Basis-URL¶
Alle API-Routen haben das Präfix /api/v1/ sofern nicht anders angegeben:
Für lokale Entwicklung läuft das Backend auf Port 8000:
Interaktive Dokumentation (Swagger UI)¶
TCM365 wird mit einer interaktiven Swagger UI zum Erkunden und Testen aller Endpoints ausgeliefert:
Swagger UI-Funktionen
Die Swagger UI umfasst Request/Response-Schemas, Authentifizierungsunterstuetzung (JWT-Token einfügen) und einen "Try it out"-Button für jeden Endpoint. Sie wird automatisch aus NestJS-Dekoratoren generiert und bleibt synchron mit dem Codebase.
Authentifizierung¶
Alle Endpoints ausser /health und /api/v1/auth/login erfordern ein gueltiges JWT Bearer Token. Token im Authorization-Header angeben:
Token über POST /api/v1/auth/login mit E-Mail und Passwort erhalten. Siehe Authentifizierung für detaillierte Flow-Dokumentation.
Request- und Response-Format¶
Alle Request- und Response-Bodies verwenden JSON (Content-Type: application/json).
Standard-Erfolgsantwort¶
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Mein Snapshot",
"createdAt": "2026-03-05T14:30:00.000Z"
}
Standard-Fehlerantwort¶
Pagination¶
Listen-Endpoints unterstützen Pagination über Query-Parameter:
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
page |
number | 1 | Seitennummer (1-basiert) |
limit |
number | 20 | Anzahl Einträge pro Seite |
Allgemeine Header¶
Request Header¶
| Header | Pflicht | Beschreibung |
|---|---|---|
Authorization |
Ja | JWT Bearer Token für Authentifizierung |
Content-Type |
Ja | Muss application/json für Request Bodies sein |
X-Request-ID |
Nein | Korrelations-ID für Request-Tracing (auto-generiert wenn nicht angegeben) |
Response Header¶
| Header | Beschreibung |
|---|---|
X-Request-ID |
Korrelations-ID für Tracing (aus Request uebernommen oder auto-generiert) |
X-Process-Time |
Request-Verarbeitungsdauer in Millisekunden |
Request-Korrelation
Jedem Request wird eine X-Request-ID zugewiesen, die in Response-Headern und strukturierten Backend-Logs erscheint. Eigene X-Request-ID im Header übergeben um API-Calls mit der eigenen Monitoring-Infrastruktur zu korrelieren.
Rate Limiting¶
TCM365 implementiert Rate Limiting zum Schutz vor Missbrauch:
- Primär: Redis-basierter Sliding-Window Rate Limiter (wenn Redis verfügbar)
- Fallback: In-Memory Rate Limiter (wenn Redis nicht verfügbar)
Rate-Limit-Header sind in Responses enthalten:
| Header | Beschreibung |
|---|---|
X-RateLimit-Limit |
Maximale Anfragen pro Fenster |
X-RateLimit-Remaining |
Verbleibende Anfragen im aktuellen Fenster |
X-RateLimit-Reset |
Zeitstempel wann das Fenster zurückgesetzt wird |
Bei Rate Limiting gibt die API 429 Too Many Requests zurück.
HTTP-Statuscodes¶
| Code | Bedeutung | Wann zurueckgegeben |
|---|---|---|
| 200 | OK | Erfolgreicher GET, PUT, PATCH |
| 201 | Created | Erfolgreicher POST der eine Ressource erstellt |
| 204 | No Content | Erfolgreicher DELETE |
| 400 | Bad Request | Validierungsfehler, fehlerhafter Request |
| 401 | Unauthorized | Fehlendes oder abgelaufenes JWT Token |
| 403 | Forbidden | Unzureichende Rolle oder Berechtigung |
| 404 | Not Found | Ressource existiert nicht oder Tenant-Zugriff verweigert |
| 409 | Conflict | Doppelte Ressource oder Zustandskonflikt |
| 429 | Too Many Requests | Rate Limit überschritten |
| 500 | Internal Server Error | Unbehandelter Serverfehler |
Endpoint-Gruppen¶
Die folgende Tabelle listet alle API-Endpoint-Gruppen in TCM365 v2.5.0:
| Gruppe | Pfad | Zweck |
|---|---|---|
| Authentifizierung | /api/v1/auth |
Login, Logout, Token Refresh, Profil, Passwortänderung |
| Benutzer | /api/v1/users |
Benutzer-CRUD-Verwaltung (nur Admin) |
| Tenants | /api/v1/tenants |
Multi-Vendor Tenant-Verwaltung und Feature Flags |
| Snapshots | /api/v1/snapshots |
Erstellen, Auflisten, Vergleichen und Bulk-Löschen von Snapshots |
| Blueprints | /api/v1/blueprints |
Konfigurationsvorlagen-Verwaltung |
| Baselines | /api/v1/baselines |
Security Baseline-Verwaltung und Compliance Engine |
| KI-Analyse | /api/v1/ai-analysis |
KI-gestützte Konfigurationsanalyse (OpenAI/Azure OpenAI) |
| Configuration Drift | /api/v1/configuration-drift |
Drift-Erkennung und Monitoring-Verwaltung |
| Workflows | /api/v1/workflows |
Workflow-CRUD und Ausfuehrungsverwaltung |
| Diff | /api/v1/diff |
Konfigurationsvergleich mit JSON/HTML-Export |
| Rollback | /api/v1/rollback |
Rollbacks ausführen und Rollback-Historie verfolgen |
| Benachrichtigungen | /api/v1/notifications |
Benachrichtigungskanal-Konfiguration und -Zustellung |
| Berichte | /api/v1/reports |
Berichtsgenerierung und Security Assessments |
| Registry | /api/v1/registry |
UTCM Resource Registry und Resource Type-Definitionen |
| CA What-If | /api/v1/ca-whatif |
Conditional Access Policy-Simulation (Offline-Evaluation) |
| E-Mail-Sicherheit | /api/v1/email-security |
DNS-basierte E-Mail-Sicherheitspruefungen (SPF, DKIM, DMARC) |
| Incidents | /api/v1/incidents |
Incident Management mit NIS2-Meldefristen |
| Risikobewertung | /api/v1/risk-assessment |
Risikobewertungen mit Scoring und Heat Map |
| Change Management | /api/v1/change-management |
Change Requests und Approval Chain Workflows |
| Compliance | /api/v1/compliance |
Compliance-Evaluation gegen Sicherheits-Frameworks |
| BC/DR | /api/v1/bcdr |
Business Continuity / Disaster Recovery Testverwaltung |
| Audit-Nachweise | /api/v1/audit-evidence |
Audit-Nachweis-Artefakt-Sammlung und -Verwaltung |
| Anomalie-Erkennung | /api/v1/anomaly-detection |
ML-basierte Anomalie-Erkennung und Custom Monitoring Probes |
| Copilot Readiness | /api/v1/copilot-readiness |
Microsoft 365 Copilot Readiness Assessment (44 Checks) |
| Gruppen | /api/v1/groups |
Benutzergruppen-Verwaltung mit rollenbasiertem Zugriff |
| Einstellungen | /api/v1/settings |
Systemweite Konfigurationseinstellungen |
| Setup | /api/v1/setup |
System-Initialisierungsassistent (M365, Zscaler und Atlassian) |
| Admin | /api/v1/admin |
Audit Logs, Systemgesundheit und Diagnose |
| Data Viewer | /api/v1/data-viewer |
Datenbank-Tabellen-Viewer (nur Admin) |
| Health | /health |
Health Check Endpoint (keine Authentifizierung erforderlich) |
Diagnose-Endpoints¶
| Endpoint | Methode | Zweck |
|---|---|---|
/health |
GET | Basis-Health-Check (Datenbankkonnektivitaet, Latenz) |
/api/v1/diagnostics |
GET | Vollständige Systemdiagnose (DB, Redis, Storage, Azure AD) |
/api/v1/diagnostics/repair |
POST | Automatische Reparatur (?action=create_storage_dirs oder ?action=run_migrations) |
Strukturiertes Logging¶
Alle Requests erzeugen strukturierte Log-Einträge im Backend:
2026-03-05T14:30:00.000Z | INFO | SnapshotsController [req=abc123 op=createSnapshot user=admin@tcm.local] | Snapshot erstellt
X-Request-ID verwenden um Frontend-Requests, Backend-Logs und API-Responses über den gesamten Request-Lifecycle zu korrelieren.
Weiterfuehrende Dokumentation¶
- Authentifizierung und Autorisierung -- JWT-Flow, Rollen, Permissions
- Endpoint-Referenz -- Detaillierte Endpoint-Dokumentation
- UTCM API-Referenz -- Microsoft UTCM-Integrationsdetails