REST API Uebersicht
OpsWeave bietet eine umfassende REST API. Alle UI-Funktionen sind auch ueber die API verfuegbar.
Basis-URL
http://localhost:3000/api/v1/Authentifizierung
Alle Endpunkte (ausser Portal-Auth, Webhooks und /health) erfordern einen Bearer-Token:
bash
curl -H "Authorization: Bearer <jwt-token>" \
http://localhost:3000/api/v1/ticketsLogin:
bash
curl -X POST http://localhost:3000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "admin@opsweave.local", "password": "changeme"}'Antwortformat
Erfolg (Liste):
json
{
"data": [...],
"meta": { "total": 42, "page": 1, "limit": 25 }
}Erfolg (Einzelobjekt):
json
{ "data": { ... } }Fehler:
json
{
"error": "Ticket nicht gefunden",
"code": "NOT_FOUND",
"status": 404
}Paginierung und Filterung
GET /api/v1/tickets?page=2&limit=10&status=open&sort=created_at&order=desc| Parameter | Beschreibung |
|---|---|
page | Seite (Standard: 1) |
limit | Eintraege pro Seite (Standard: 25, max: 100) |
sort | Sortierfeld |
order | asc oder desc |
q | Volltextsuche |
Mandanten-Scoping
Der Mandant wird aus dem JWT gelesen, nicht aus der URL. Alle Daten werden automatisch auf den Mandanten des angemeldeten Benutzers beschraenkt.
Endpunkte
Auth
| Methode | Pfad | Beschreibung |
|---|---|---|
POST | /auth/login | Login, gibt JWT zurueck |
POST | /auth/logout | Logout |
POST | /auth/refresh | JWT erneuern |
GET | /auth/me | Eigenes Profil + Mandanten |
POST | /auth/switch-tenant | Aktiven Mandant wechseln |
Benutzer
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /users | Benutzerliste |
POST | /users | Benutzer erstellen |
GET | /users/:id | Benutzerdetail |
PUT | /users/:id | Benutzer aktualisieren |
DELETE | /users/:id | Benutzer deaktivieren |
POST | /users/import | Benutzer aus CSV importieren |
Gruppen
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /groups | Gruppenliste |
POST | /groups | Gruppe erstellen |
GET | /groups/:id | Gruppendetail |
PUT | /groups/:id | Gruppe aktualisieren |
DELETE | /groups/:id | Gruppe loeschen |
GET | /groups/:id/members | Mitglieder |
POST | /groups/:id/members | Mitglied hinzufuegen |
DELETE | /groups/:id/members/:uid | Mitglied entfernen |
Tickets
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /tickets | Liste (Filter: Typ, Status, Prioritaet, Bearbeiter, q) |
POST | /tickets | Erstellen |
GET | /tickets/:id | Detail |
PUT | /tickets/:id | Aktualisieren |
PATCH | /tickets/:id/status | Status aendern |
PATCH | /tickets/:id/assign | Zuweisen |
GET | /tickets/:id/comments | Kommentare |
POST | /tickets/:id/comments | Kommentar hinzufuegen |
GET | /tickets/:id/history | Aenderungsprotokoll |
PATCH | /tickets/batch | Massenbearbeitung (max. 100 Tickets) |
GET | /tickets/stats | Statistiken |
GET | /tickets/stats/timeline | Zeitverlauf-Statistiken |
GET | /tickets/stats/by-customer | Statistiken pro Kunde |
GET | /tickets/board | Kanban-Board-Daten |
GET/POST | /tickets/categories | Ticket-Kategorien |
PUT/DELETE | /tickets/categories/:id | Kategorie bearbeiten/loeschen |
Assets
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /assets | Liste |
POST | /assets | Erstellen |
GET | /assets/:id | Detail |
PUT | /assets/:id | Aktualisieren |
DELETE | /assets/:id | Loeschen |
GET | /assets/:id/relations | Beziehungen |
POST | /assets/:id/relations | Beziehung hinzufuegen |
DELETE | /assets/:id/relations/:rid | Beziehung entfernen |
GET | /assets/:id/sla-chain | SLA-Vererbungskette |
GET | /assets/:id/tickets | Verknuepfte Tickets |
GET | /assets/stats | Statistiken |
Workflows
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /workflows/templates | Vorlagen |
POST | /workflows/templates | Erstellen |
GET/PUT/DELETE | /workflows/templates/:id | Detail |
POST | /workflows/instantiate | Manuell ausloesen |
GET | /workflows/instances/:id | Instanz-Status |
POST | /workflows/instances/:id/steps/:sid/complete | Schritt abschliessen |
POST | /workflows/instances/:id/cancel | Abbrechen |
Wissensdatenbank
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /kb/articles | Liste (Filter: Status, Sichtbarkeit, Kategorie, q, linked_ticket_id) |
POST | /kb/articles | Erstellen |
GET/PUT/DELETE | /kb/articles/:id | Detail |
POST | /kb/articles/:id/link/:ticketId | Mit Ticket verknuepfen |
DELETE | /kb/articles/:id/link/:ticketId | Verknuepfung entfernen |
Service Katalog
| Methode | Pfad | Beschreibung |
|---|---|---|
GET/POST | /services/descriptions | Servicebeschreibungen |
GET/PUT | /services/descriptions/:id | Detail |
GET/POST | /services/catalogs/horizontal | Horizontale Kataloge |
GET/POST | /services/catalogs/vertical | Vertikale Kataloge (Enterprise) |
Compliance
| Methode | Pfad | Beschreibung |
|---|---|---|
GET/POST | /compliance/frameworks | Frameworks |
GET/POST | /compliance/frameworks/:id/requirements | Anforderungen |
GET | /compliance/frameworks/:id/matrix | Compliance-Matrix |
GET | /compliance/frameworks/:id/gaps | Gap-Analyse |
POST/DELETE | /compliance/mappings | Service↔Anforderung |
E-Mail
| Methode | Pfad | Beschreibung |
|---|---|---|
GET/POST | /email/configs | Konfigurationen |
GET/PUT/DELETE | /email/configs/:id | Detail |
POST | /email/configs/:id/test | Verbindungstest |
GET | /email/messages | Empfangene E-Mails |
POST | /email/webhook | Webhook-Eingang (oeffentlich) |
Kundenportal
| Methode | Pfad | Beschreibung |
|---|---|---|
POST | /portal/auth/login | Portal-Login |
GET | /portal/auth/me | Portal-Benutzerprofil |
GET | /portal/tickets | Eigene Tickets |
POST | /portal/tickets | Ticket erstellen |
GET | /portal/tickets/:id | Ticket-Detail |
POST | /portal/tickets/:id/comments | Kommentar |
GET | /portal/kb | Oeffentliche KB-Artikel |
SLA
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /sla/definitions | Alle SLA-Definitionen |
GET | /sla/definitions/:id | SLA-Definitionsdetail |
POST | /sla/definitions | SLA-Definition erstellen |
PUT | /sla/definitions/:id | SLA-Definition aktualisieren |
DELETE | /sla/definitions/:id | SLA-Definition loeschen |
GET | /sla/assignments | Alle SLA-Zuweisungen |
POST | /sla/assignments | SLA-Zuweisung erstellen |
DELETE | /sla/assignments/:id | SLA-Zuweisung entfernen |
GET | /sla/resolve | SLA fuer Asset/Kunde aufloesen |
Kunden
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /customers | Kundenliste |
POST | /customers | Kunde erstellen |
GET | /customers/:id | Kundendetail |
PUT | /customers/:id | Kunde aktualisieren |
DELETE | /customers/:id | Kunde deaktivieren |
GET | /customers/:id/overview | Kundenuebersicht (Tickets, Assets, SLAs) |
Einstellungen
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /settings | Alle Einstellungen |
PUT | /settings/:key | Einstellung aendern |
DELETE | /settings/:key | Einstellung loeschen |
GET | /settings/runtime | Laufzeitkonfiguration |
System
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /system/health | Health-Check |
GET | /system/info | App-Info (Version, DB) |
GET | /license | Lizenzstatus |
POST | /license/activate | Enterprise-Key aktivieren |
DELETE | /license | Lizenz deaktivieren |