Skip to content

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/tickets

Login:

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
ParameterBeschreibung
pageSeite (Standard: 1)
limitEintraege pro Seite (Standard: 25, max: 100)
sortSortierfeld
orderasc oder desc
qVolltextsuche

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

MethodePfadBeschreibung
POST/auth/loginLogin, gibt JWT zurueck
POST/auth/logoutLogout
POST/auth/refreshJWT erneuern
GET/auth/meEigenes Profil + Mandanten
POST/auth/switch-tenantAktiven Mandant wechseln

Benutzer

MethodePfadBeschreibung
GET/usersBenutzerliste
POST/usersBenutzer erstellen
GET/users/:idBenutzerdetail
PUT/users/:idBenutzer aktualisieren
DELETE/users/:idBenutzer deaktivieren
POST/users/importBenutzer aus CSV importieren

Gruppen

MethodePfadBeschreibung
GET/groupsGruppenliste
POST/groupsGruppe erstellen
GET/groups/:idGruppendetail
PUT/groups/:idGruppe aktualisieren
DELETE/groups/:idGruppe loeschen
GET/groups/:id/membersMitglieder
POST/groups/:id/membersMitglied hinzufuegen
DELETE/groups/:id/members/:uidMitglied entfernen

Tickets

MethodePfadBeschreibung
GET/ticketsListe (Filter: Typ, Status, Prioritaet, Bearbeiter, q)
POST/ticketsErstellen
GET/tickets/:idDetail
PUT/tickets/:idAktualisieren
PATCH/tickets/:id/statusStatus aendern
PATCH/tickets/:id/assignZuweisen
GET/tickets/:id/commentsKommentare
POST/tickets/:id/commentsKommentar hinzufuegen
GET/tickets/:id/historyAenderungsprotokoll
PATCH/tickets/batchMassenbearbeitung (max. 100 Tickets)
GET/tickets/statsStatistiken
GET/tickets/stats/timelineZeitverlauf-Statistiken
GET/tickets/stats/by-customerStatistiken pro Kunde
GET/tickets/boardKanban-Board-Daten
GET/POST/tickets/categoriesTicket-Kategorien
PUT/DELETE/tickets/categories/:idKategorie bearbeiten/loeschen

Assets

MethodePfadBeschreibung
GET/assetsListe
POST/assetsErstellen
GET/assets/:idDetail
PUT/assets/:idAktualisieren
DELETE/assets/:idLoeschen
GET/assets/:id/relationsBeziehungen
POST/assets/:id/relationsBeziehung hinzufuegen
DELETE/assets/:id/relations/:ridBeziehung entfernen
GET/assets/:id/sla-chainSLA-Vererbungskette
GET/assets/:id/ticketsVerknuepfte Tickets
GET/assets/statsStatistiken

Workflows

MethodePfadBeschreibung
GET/workflows/templatesVorlagen
POST/workflows/templatesErstellen
GET/PUT/DELETE/workflows/templates/:idDetail
POST/workflows/instantiateManuell ausloesen
GET/workflows/instances/:idInstanz-Status
POST/workflows/instances/:id/steps/:sid/completeSchritt abschliessen
POST/workflows/instances/:id/cancelAbbrechen

Wissensdatenbank

MethodePfadBeschreibung
GET/kb/articlesListe (Filter: Status, Sichtbarkeit, Kategorie, q, linked_ticket_id)
POST/kb/articlesErstellen
GET/PUT/DELETE/kb/articles/:idDetail
POST/kb/articles/:id/link/:ticketIdMit Ticket verknuepfen
DELETE/kb/articles/:id/link/:ticketIdVerknuepfung entfernen

Service Katalog

MethodePfadBeschreibung
GET/POST/services/descriptionsServicebeschreibungen
GET/PUT/services/descriptions/:idDetail
GET/POST/services/catalogs/horizontalHorizontale Kataloge
GET/POST/services/catalogs/verticalVertikale Kataloge (Enterprise)

Compliance

MethodePfadBeschreibung
GET/POST/compliance/frameworksFrameworks
GET/POST/compliance/frameworks/:id/requirementsAnforderungen
GET/compliance/frameworks/:id/matrixCompliance-Matrix
GET/compliance/frameworks/:id/gapsGap-Analyse
POST/DELETE/compliance/mappingsService↔Anforderung

E-Mail

MethodePfadBeschreibung
GET/POST/email/configsKonfigurationen
GET/PUT/DELETE/email/configs/:idDetail
POST/email/configs/:id/testVerbindungstest
GET/email/messagesEmpfangene E-Mails
POST/email/webhookWebhook-Eingang (oeffentlich)

Kundenportal

MethodePfadBeschreibung
POST/portal/auth/loginPortal-Login
GET/portal/auth/mePortal-Benutzerprofil
GET/portal/ticketsEigene Tickets
POST/portal/ticketsTicket erstellen
GET/portal/tickets/:idTicket-Detail
POST/portal/tickets/:id/commentsKommentar
GET/portal/kbOeffentliche KB-Artikel

SLA

MethodePfadBeschreibung
GET/sla/definitionsAlle SLA-Definitionen
GET/sla/definitions/:idSLA-Definitionsdetail
POST/sla/definitionsSLA-Definition erstellen
PUT/sla/definitions/:idSLA-Definition aktualisieren
DELETE/sla/definitions/:idSLA-Definition loeschen
GET/sla/assignmentsAlle SLA-Zuweisungen
POST/sla/assignmentsSLA-Zuweisung erstellen
DELETE/sla/assignments/:idSLA-Zuweisung entfernen
GET/sla/resolveSLA fuer Asset/Kunde aufloesen

Kunden

MethodePfadBeschreibung
GET/customersKundenliste
POST/customersKunde erstellen
GET/customers/:idKundendetail
PUT/customers/:idKunde aktualisieren
DELETE/customers/:idKunde deaktivieren
GET/customers/:id/overviewKundenuebersicht (Tickets, Assets, SLAs)

Einstellungen

MethodePfadBeschreibung
GET/settingsAlle Einstellungen
PUT/settings/:keyEinstellung aendern
DELETE/settings/:keyEinstellung loeschen
GET/settings/runtimeLaufzeitkonfiguration

System

MethodePfadBeschreibung
GET/system/healthHealth-Check
GET/system/infoApp-Info (Version, DB)
GET/licenseLizenzstatus
POST/license/activateEnterprise-Key aktivieren
DELETE/licenseLizenz deaktivieren

Veröffentlicht unter der AGPL-3.0 Lizenz.