Files
nexarch/dms/internal/openapi/openapi.json
patrickandClaude Sonnet 5 536d02556f
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
Gesamtprojekt: origin/integration/dms-gesamtstand nachgezogen (INT-20, DOC-22, SRC-14, FDN-22, FDN-23, QA-14)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 13:28:19 +02:00

5531 lines
142 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "NEXARCH DMS API",
"version": "1.0.0",
"description": "Dokument-eigene Endpunkte des DMS. Auth: Core-Modul-JWT (EdDSA, JWKS) als Bearer-Token; Fehlerformat und URL-Versionierung wie die Core-API (/api/{modul}/v1). Der Parameter `caller` gilt nur im abschaltbaren Übergangsmodus."
},
"servers": [
{
"url": "/api/dms/v1"
}
],
"security": [
{
"bearerAuth": []
}
],
"paths": {
"/audit-log": {
"get": {
"summary": "Audit-Ereignisse filtern (nur Prüfer)",
"tags": [
"Audit"
],
"operationId": "get_audit_log",
"parameters": [
{
"name": "actor",
"in": "query",
"required": false,
"description": "Akteur",
"schema": {
"type": "string"
}
},
{
"name": "action",
"in": "query",
"required": false,
"description": "Ereignisart",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"required": false,
"description": "Beginn (RFC 3339)",
"schema": {
"type": "string"
}
},
{
"name": "to",
"in": "query",
"required": false,
"description": "Ende (RFC 3339)",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Ereignisse",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.audit.read"
}
},
"/audit-log/export": {
"get": {
"summary": "Audit-Ereignisse exportieren (nur Prüfer)",
"tags": [
"Audit"
],
"operationId": "get_audit_log_export",
"parameters": [
{
"name": "actor",
"in": "query",
"required": false,
"description": "Akteur",
"schema": {
"type": "string"
}
},
{
"name": "action",
"in": "query",
"required": false,
"description": "Ereignisart",
"schema": {
"type": "string"
}
},
{
"name": "from",
"in": "query",
"required": false,
"description": "Beginn (RFC 3339)",
"schema": {
"type": "string"
}
},
{
"name": "to",
"in": "query",
"required": false,
"description": "Ende (RFC 3339)",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Export",
"content": {
"text/csv": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.audit.read"
}
},
"/auto-rules": {
"get": {
"summary": "Regeln auflisten",
"tags": [
"Auto-Regeln"
],
"operationId": "get_auto_rules",
"parameters": [],
"responses": {
"200": {
"description": "Regelliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.autorule.admin"
},
"post": {
"summary": "Regel anlegen",
"tags": [
"Auto-Regeln"
],
"operationId": "post_auto_rules",
"parameters": [],
"responses": {
"201": {
"description": "Regel",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.autorule.admin",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Regel",
"properties": {
"name": {
"type": "string"
},
"priority": {
"type": "integer"
}
}
}
}
},
"required": true
}
}
},
"/auto-rules/{id}": {
"put": {
"summary": "Regel ändern",
"tags": [
"Auto-Regeln"
],
"operationId": "put_auto_rules_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Regel",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.autorule.admin",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Regel"
}
}
},
"required": true
}
},
"delete": {
"summary": "Regel löschen",
"tags": [
"Auto-Regeln"
],
"operationId": "delete_auto_rules_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Gelöscht"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.autorule.admin"
}
},
"/bulk-edit": {
"post": {
"summary": "Massenbearbeitung (Tags, Metadaten) mit Sperrprüfung",
"tags": [
"Massenbearbeitung"
],
"operationId": "post_bulk_edit",
"parameters": [],
"responses": {
"200": {
"description": "Ergebnis je Dokument",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.bulkedit.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Auswahl und Änderungen",
"properties": {
"actor": {
"type": "string"
},
"document_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"required": true
}
}
},
"/documents/{id}": {
"get": {
"summary": "Dokument-Metadaten (Titel, Ordner, Größe, Typ)",
"tags": [
"Dokumente"
],
"operationId": "get_documents_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Metadaten des Dokuments",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.document.read"
}
},
"/documents/{id}/content": {
"get": {
"summary": "Dokumentinhalt (PDF-Derivat oder Original) ausliefern",
"tags": [
"Dokumente"
],
"operationId": "get_documents_id_content",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Inhalt; Header X-Content-Source, X-Derivative-Status",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.document.read"
}
},
"/documents/{id}/diff": {
"get": {
"summary": "Text-/Metadatenunterschied zweier Revisionen",
"tags": [
"Versionen"
],
"operationId": "get_documents_id_diff",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "from",
"in": "query",
"required": true,
"description": "Revisions-ID (alt)",
"schema": {
"type": "string"
}
},
{
"name": "to",
"in": "query",
"required": true,
"description": "Revisions-ID (neu)",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Unterschiede",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.revision.read"
}
},
"/documents/{id}/download-url": {
"get": {
"summary": "Signierte, kurzlebige Download-URL anfordern",
"tags": [
"Dokumente"
],
"operationId": "get_documents_id_download_url",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "URL mit Ablaufzeit",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"expires_at": {
"type": "string"
}
}
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.document.read"
}
},
"/documents/{id}/language": {
"get": {
"summary": "Erkannte Dokumentsprache und OCR-Konfidenz",
"tags": [
"Texterkennung"
],
"operationId": "get_documents_id_language",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Sprache und Konfidenz",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.ocr.read"
}
},
"/documents/{id}/metadata": {
"get": {
"summary": "Metadatenwerte lesen",
"tags": [
"Metadaten"
],
"operationId": "get_documents_id_metadata",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Werte",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.metadata.read"
},
"put": {
"summary": "Metadatenwerte setzen (feldweise validiert)",
"tags": [
"Metadaten"
],
"operationId": "put_documents_id_metadata",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Gespeichert",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.metadata.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Feldschlüssel auf Wert"
}
}
},
"required": true
}
}
},
"/documents/{id}/revisions": {
"get": {
"summary": "Revisionen eines Dokuments auflisten",
"tags": [
"Versionen"
],
"operationId": "get_documents_id_revisions",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Revisionsliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.revision.read"
}
},
"/documents/{id}/revisions/{revisionID}/content": {
"get": {
"summary": "Inhalt einer Revision ausliefern",
"tags": [
"Versionen"
],
"operationId": "get_documents_id_revisions_revisionid_content",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "revisionID",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Revisionsinhalt",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.revision.read"
}
},
"/documents/{id}/revisions/{revisionID}/restore": {
"post": {
"summary": "Revision wiederherstellen (neue Revision aus altem Stand)",
"tags": [
"Versionen"
],
"operationId": "post_documents_id_revisions_revisionid_restore",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "revisionID",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Neue Revision",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Konflikt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"423": {
"description": "Gesperrt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.revision.restore"
}
},
"/documents/{id}/tags": {
"get": {
"summary": "Tags eines Dokuments",
"tags": [
"Tags"
],
"operationId": "get_documents_id_tags",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Tagliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.tag.read"
},
"post": {
"summary": "Tag zuordnen",
"tags": [
"Tags"
],
"operationId": "post_documents_id_tags",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Zugeordnet",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.tag.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Tag",
"properties": {
"tag_id": {
"type": "string"
}
},
"required": [
"tag_id"
]
}
}
},
"required": true
}
}
},
"/documents/{id}/tags/{tagID}": {
"delete": {
"summary": "Tag entfernen",
"tags": [
"Tags"
],
"operationId": "delete_documents_id_tags_tagid",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "tagID",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Entfernt",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.tag.write"
}
},
"/download": {
"get": {
"summary": "Datei über signierte URL laden (Signatur statt Sitzung)",
"tags": [
"Dokumente"
],
"operationId": "get_download",
"parameters": [
{
"name": "document_id",
"in": "query",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
},
{
"name": "revision_id",
"in": "query",
"required": true,
"description": "Revisions-ID",
"schema": {
"type": "string"
}
},
{
"name": "filename",
"in": "query",
"required": true,
"description": "Dateiname",
"schema": {
"type": "string"
}
},
{
"name": "expiry",
"in": "query",
"required": true,
"description": "Ablaufzeit (Unix-Sekunden)",
"schema": {
"type": "integer"
}
},
{
"name": "sig",
"in": "query",
"required": true,
"description": "Signatur aus download-url",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dateiinhalt",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "-",
"security": []
}
},
"/folders/children": {
"get": {
"summary": "Ordner der obersten Ebene",
"tags": [
"Ordner"
],
"operationId": "get_folders_children",
"parameters": [
{
"name": "sort",
"in": "query",
"required": false,
"description": "Sortierfeld",
"schema": {
"type": "string"
}
},
{
"name": "order",
"in": "query",
"required": false,
"description": "asc oder desc",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Ordnerliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/folders/documents": {
"get": {
"summary": "Dokumente der obersten Ebene",
"tags": [
"Ordner"
],
"operationId": "get_folders_documents",
"parameters": [],
"responses": {
"200": {
"description": "Dokumentliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/folders/{id}": {
"get": {
"summary": "Ordner-Metadaten mit Pfad",
"tags": [
"Ordner"
],
"operationId": "get_folders_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Ordner mit Pfad",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/folders/{id}/breadcrumb": {
"get": {
"summary": "Pfad zum Ordner",
"tags": [
"Ordner"
],
"operationId": "get_folders_id_breadcrumb",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Pfadelemente",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/folders/{id}/children": {
"get": {
"summary": "Unterordner",
"tags": [
"Ordner"
],
"operationId": "get_folders_id_children",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "sort",
"in": "query",
"required": false,
"description": "Sortierfeld",
"schema": {
"type": "string"
}
},
{
"name": "order",
"in": "query",
"required": false,
"description": "asc oder desc",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Ordnerliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/folders/{id}/documents": {
"get": {
"summary": "Dokumente eines Ordners",
"tags": [
"Ordner"
],
"operationId": "get_folders_id_documents",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Dokumentliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.folder.read"
}
},
"/metadata-fields": {
"get": {
"summary": "Metadatenfelder auflisten",
"tags": [
"Metadaten"
],
"operationId": "get_metadata_fields",
"parameters": [],
"responses": {
"200": {
"description": "Feldliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.metadata.read"
}
},
"/ocr/review": {
"get": {
"summary": "Nachbearbeitungsliste (niedrige OCR-Konfidenz)",
"tags": [
"Texterkennung"
],
"operationId": "get_ocr_review",
"parameters": [
{
"name": "limit",
"in": "query",
"required": false,
"description": "Seitengröße",
"schema": {
"type": "integer"
}
},
{
"name": "offset",
"in": "query",
"required": false,
"description": "Versatz",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "Liste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.ocr.admin"
}
},
"/ocr/settings": {
"get": {
"summary": "OCR-Einstellungen lesen",
"tags": [
"Texterkennung"
],
"operationId": "get_ocr_settings",
"parameters": [],
"responses": {
"200": {
"description": "Einstellungen",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.ocr.read"
},
"put": {
"summary": "OCR-Einstellungen ändern (Konfidenz-Schwellwert)",
"tags": [
"Texterkennung"
],
"operationId": "put_ocr_settings",
"parameters": [],
"responses": {
"200": {
"description": "Gespeichert",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.ocr.admin",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Einstellungen"
}
}
},
"required": true
}
}
},
"/openapi.json": {
"get": {
"summary": "Diese Schnittstellenbeschreibung",
"tags": [
"Betrieb"
],
"operationId": "get_openapi_json",
"parameters": [],
"responses": {
"200": {
"description": "OpenAPI 3.0",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
},
"x-permission": "-",
"security": []
}
},
"/retention/destroy-callback": {
"post": {
"summary": "Vernichtungs-Rückruf von Archive (Dienst-zu-Dienst, RET-05)",
"tags": [
"Betrieb"
],
"operationId": "post_retention_destroy_callback",
"parameters": [
{
"name": "X-Nexarch-Tenant",
"in": "header",
"required": true,
"description": "Tenant-Kontext des Aufrufs (INT-16); muss dem Tenant der Instanz (und einem mitgesendeten Service-Token) entsprechen, sonst 403 mit Audit-Eintrag; fehlt er, 400",
"schema": {
"type": "string",
"maxLength": 128
}
}
],
"responses": {
"200": {
"description": "Verarbeitet",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.retention.callback",
"security": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Rückrufnachricht"
}
}
},
"required": true
}
}
},
"/saved-searches": {
"get": {
"summary": "Gespeicherte Suchen auflisten",
"tags": [
"Suche"
],
"operationId": "get_saved_searches",
"parameters": [],
"responses": {
"200": {
"description": "Suchen",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.savedsearch.read"
},
"post": {
"summary": "Suche speichern",
"tags": [
"Suche"
],
"operationId": "post_saved_searches",
"parameters": [],
"responses": {
"201": {
"description": "Gespeichert",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.savedsearch.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Suche",
"properties": {
"name": {
"type": "string"
},
"query": {
"type": "string"
},
"shared": {
"type": "boolean"
}
},
"required": [
"name",
"query"
]
}
}
},
"required": true
}
}
},
"/saved-searches/{id}": {
"put": {
"summary": "Gespeicherte Suche ändern",
"tags": [
"Suche"
],
"operationId": "put_saved_searches_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Gespeichert",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Wert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.savedsearch.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Suche",
"properties": {
"name": {
"type": "string"
},
"query": {
"type": "string"
},
"shared": {
"type": "boolean"
}
}
}
}
},
"required": true
}
},
"delete": {
"summary": "Gespeicherte Suche löschen",
"tags": [
"Suche"
],
"operationId": "delete_saved_searches_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Gelöscht"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.savedsearch.write"
}
},
"/saved-searches/{id}/results": {
"get": {
"summary": "Gespeicherte Suche mit aktuellen Daten ausführen",
"tags": [
"Suche"
],
"operationId": "get_saved_searches_id_results",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Trefferseite",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.savedsearch.read"
}
},
"/search": {
"get": {
"summary": "Volltextsuche mit Ranking, Filtern, Facetten und Trefferausschnitten",
"tags": [
"Suche"
],
"operationId": "get_search",
"parameters": [
{
"name": "q",
"in": "query",
"required": true,
"description": "Suchbegriff",
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"description": "Seitengröße",
"schema": {
"type": "integer"
}
},
{
"name": "offset",
"in": "query",
"required": false,
"description": "Versatz",
"schema": {
"type": "integer"
}
},
{
"name": "sort",
"in": "query",
"required": false,
"description": "relevance, updated oder created",
"schema": {
"type": "string"
}
},
{
"name": "folder_path",
"in": "query",
"required": false,
"description": "Ordnerpfad",
"schema": {
"type": "string"
}
},
{
"name": "document_type",
"in": "query",
"required": false,
"description": "Dokumenttyp (mehrfach)",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"required": false,
"description": "Tag (mehrfach)",
"schema": {
"type": "string"
}
},
{
"name": "created_from",
"in": "query",
"required": false,
"description": "Erstellt ab",
"schema": {
"type": "string"
}
},
{
"name": "created_to",
"in": "query",
"required": false,
"description": "Erstellt bis",
"schema": {
"type": "string"
}
},
{
"name": "updated_from",
"in": "query",
"required": false,
"description": "Geändert ab",
"schema": {
"type": "string"
}
},
{
"name": "updated_to",
"in": "query",
"required": false,
"description": "Geändert bis",
"schema": {
"type": "string"
}
},
{
"name": "facets",
"in": "query",
"required": false,
"description": "Facetten, kommagetrennt",
"schema": {
"type": "string"
}
},
{
"name": "field.{key}",
"in": "query",
"required": false,
"description": "Filter auf benutzerdefiniertes Feld (optional .min/.max)",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Trefferseite",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.search.read",
"x-example": {
"path": "/search?q=rechnung&limit=10"
}
}
},
"/tags": {
"get": {
"summary": "Alle Tags",
"tags": [
"Tags"
],
"operationId": "get_tags",
"parameters": [],
"responses": {
"200": {
"description": "Tagliste",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.tag.read"
}
},
"/trash": {
"get": {
"summary": "Papierkorb auflisten (mit Restaufbewahrungszeit)",
"tags": [
"Papierkorb"
],
"operationId": "get_trash",
"parameters": [],
"responses": {
"200": {
"description": "Einträge",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trash.read"
},
"post": {
"summary": "Dokumente und Ordner in den Papierkorb verschieben",
"tags": [
"Papierkorb"
],
"operationId": "post_trash",
"parameters": [],
"responses": {
"200": {
"description": "Ergebnis je ID (trashed_document_ids, trashed_folder_ids, failed)",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trash.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Dokument- und/oder Ordner-IDs (mindestens eine)",
"properties": {
"document_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"folder_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"required": true
}
}
},
"/trash/purge": {
"post": {
"summary": "Endgültig löschen",
"tags": [
"Papierkorb"
],
"operationId": "post_trash_purge",
"parameters": [],
"responses": {
"200": {
"description": "Ergebnis je ID",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Konflikt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trash.purge",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Dokument- und/oder Ordner-IDs",
"properties": {
"document_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"folder_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"required": true
}
}
},
"/trash/restore": {
"post": {
"summary": "Aus dem Papierkorb wiederherstellen",
"tags": [
"Papierkorb"
],
"operationId": "post_trash_restore",
"parameters": [],
"responses": {
"200": {
"description": "Ergebnis je ID",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trash.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Dokument- und/oder Ordner-IDs",
"properties": {
"document_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"folder_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"required": true
}
}
},
"/uploads": {
"post": {
"summary": "Upload-Sitzung starten",
"tags": [
"Uploads"
],
"operationId": "post_uploads",
"parameters": [],
"responses": {
"201": {
"description": "Sitzung angelegt",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"413": {
"description": "Zu groß",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.upload.write",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Dateimetadaten",
"properties": {
"filename": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"totalSize": {
"type": "integer",
"format": "int64"
},
"folderId": {
"type": "string",
"nullable": true
}
},
"required": [
"filename",
"mimeType",
"totalSize"
]
}
}
},
"required": true
}
}
},
"/uploads/{id}": {
"get": {
"summary": "Upload-Stand abfragen",
"tags": [
"Uploads"
],
"operationId": "get_uploads_id",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Sitzung",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"filename": {
"type": "string"
},
"totalSize": {
"type": "integer"
},
"bytesReceived": {
"type": "integer"
}
}
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.upload.read"
}
},
"/uploads/{id}/chunk": {
"put": {
"summary": "Datenblock hochladen (fortsetzbar über offset)",
"tags": [
"Uploads"
],
"operationId": "put_uploads_id_chunk",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "offset",
"in": "query",
"required": true,
"description": "Byte-Offset des Blocks",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "Empfangsstand",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"bytesReceived": {
"type": "integer"
}
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Konflikt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"413": {
"description": "Zu groß",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.upload.write",
"requestBody": {
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
},
"required": true
}
}
},
"/uploads/{id}/complete": {
"post": {
"summary": "Upload abschließen (Dokument und erste Revision anlegen)",
"tags": [
"Uploads"
],
"operationId": "post_uploads_id_complete",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "confirm_duplicate",
"in": "query",
"required": false,
"description": "true bestätigt ein erkanntes Duplikat",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Dokument angelegt",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"documentId": {
"type": "string"
},
"revisionId": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Konflikt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.upload.write"
}
},
"/mail-accounts": {
"get": {
"summary": "Postfächer auflisten",
"tags": [
"Mail"
],
"operationId": "list_mail_accounts",
"responses": {
"200": {
"description": "Postfächer",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.account.read"
},
"post": {
"summary": "Postfach anlegen",
"tags": [
"Mail"
],
"operationId": "create_mail_account",
"responses": {
"201": {
"description": "Angelegtes Postfach",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültige Eingabe",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.account.write"
}
},
"/mail-accounts/{id}": {
"get": {
"summary": "Postfach lesen",
"tags": [
"Mail"
],
"operationId": "get_mail_account",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Postfach-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Postfach",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekanntes Postfach",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.account.read"
},
"put": {
"summary": "Postfach ändern",
"tags": [
"Mail"
],
"operationId": "update_mail_account",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Postfach-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Geändertes Postfach",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekanntes Postfach",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültige Eingabe",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.account.write"
}
},
"/mail-accounts/{id}/test": {
"post": {
"summary": "Postfachverbindung testen",
"tags": [
"Mail"
],
"operationId": "test_mail_account",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Postfach-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Testergebnis (ok/Fehlertext, nie das Kennwort)",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekanntes Postfach",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.account.write"
}
},
"/mail-rules": {
"get": {
"summary": "Mail-Regeln auflisten",
"tags": [
"Mail"
],
"operationId": "list_mail_rules",
"responses": {
"200": {
"description": "Regeln",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.read"
},
"post": {
"summary": "Mail-Regel anlegen",
"tags": [
"Mail"
],
"operationId": "create_mail_rule",
"responses": {
"201": {
"description": "Angelegte Regel",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültige Regel",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.write"
}
},
"/mail-rules/{id}": {
"delete": {
"summary": "Mail-Regel löschen",
"tags": [
"Mail"
],
"operationId": "delete_mail_rule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Regel-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Gelöscht"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekannte Regel",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.write"
}
},
"/mail-filters": {
"get": {
"summary": "Anhangfilter auflisten",
"tags": [
"Mail"
],
"operationId": "list_mail_filters",
"responses": {
"200": {
"description": "Filter",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.read"
},
"post": {
"summary": "Anhangfilter anlegen",
"tags": [
"Mail"
],
"operationId": "create_mail_filter",
"responses": {
"201": {
"description": "Angelegter Filter",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültiger Filter",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.write"
}
},
"/mail-filters/{id}": {
"delete": {
"summary": "Anhangfilter löschen",
"tags": [
"Mail"
],
"operationId": "delete_mail_filter",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Filter-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Gelöscht"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekannter Filter",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.rule.write"
}
},
"/clarification": {
"get": {
"summary": "Klärungskorb auflisten",
"tags": [
"Mail"
],
"operationId": "list_clarification",
"parameters": [
{
"name": "limit",
"in": "query",
"required": false,
"description": "Höchstzahl der Einträge",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "Nachrichten ohne passende Regel",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.clarification.read"
}
},
"/clarification/{id}/apply": {
"post": {
"summary": "Klärungskorb-Nachricht zuordnen",
"tags": [
"Mail"
],
"operationId": "apply_clarification",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Nachrichten-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Zugeordnet"
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Unbekannte Nachricht",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "Typwechsel ohne Bestätigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"422": {
"description": "Ungültige Eingabe",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.mail.clarification.write"
}
},
"/documents/{id}/revisions/{revisionID}/einvoice": {
"get": {
"summary": "E-Rechnung-Ergebnis lesen",
"tags": [
"E-Rechnung"
],
"operationId": "get_einvoice_result",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
},
{
"name": "revisionID",
"in": "path",
"required": true,
"description": "Revisions-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Ergebnis (Lesen und Konformität getrennt)",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Kein Ergebnis vorhanden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.document.read"
}
},
"/documents/{id}/revisions/{revisionID}/einvoice/recheck": {
"post": {
"summary": "E-Rechnung-Ergebnis neu prüfen",
"tags": [
"E-Rechnung"
],
"operationId": "recheck_einvoice",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
},
{
"name": "revisionID",
"in": "path",
"required": true,
"description": "Revisions-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"202": {
"description": "Neuprüfung eingereiht"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"503": {
"description": "Neuprüfung nicht konfiguriert",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.document.read"
}
},
"/documents/{id}/share-links": {
"post": {
"summary": "Freigabelink für ein Dokument anlegen",
"tags": [
"Freigabelinks"
],
"operationId": "post_document_share_links",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ttl_seconds": {
"type": "integer",
"description": "Gültigkeitsdauer; Standard und Obergrenze per Umgebungsvariable"
},
"password": {
"type": "string",
"description": "Optional; wird nur als Hash gespeichert"
},
"download_limit": {
"type": "integer",
"description": "Optionale Obergrenze der Abrufe"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Angelegt, enthält den Token einmalig in der URL",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "Nur in der Antwort auf das Anlegen enthalten"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"download_limit": {
"type": "integer",
"nullable": true
},
"download_count": {
"type": "integer"
},
"has_password": {
"type": "boolean"
},
"revoked_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"503": {
"description": "Nicht verfügbar",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.sharelink.write"
},
"get": {
"summary": "Freigabelinks eines Dokuments auflisten (ohne Token/Passwort)",
"tags": [
"Freigabelinks"
],
"operationId": "get_document_share_links",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Liste",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "Nur in der Antwort auf das Anlegen enthalten"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"download_limit": {
"type": "integer",
"nullable": true
},
"download_count": {
"type": "integer"
},
"has_password": {
"type": "boolean"
},
"revoked_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.sharelink.read"
}
},
"/documents/{id}/share-links/{linkID}": {
"delete": {
"summary": "Freigabelink sofort widerrufen",
"tags": [
"Freigabelinks"
],
"operationId": "delete_document_share_link",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Dokument-ID",
"schema": {
"type": "string"
}
},
{
"name": "linkID",
"in": "path",
"required": true,
"description": "Freigabelink-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Widerrufen"
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.sharelink.write"
}
},
"/share/{token}": {
"get": {
"summary": "Freigegebenes Dokument ohne Konto abrufen (ohne Passwort)",
"tags": [
"Freigabelinks"
],
"operationId": "get_share",
"parameters": [
{
"name": "token",
"in": "path",
"required": true,
"description": "Freigabelink-Token",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dateiinhalt",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"423": {
"description": "Gesperrt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "-",
"security": []
},
"post": {
"summary": "Freigegebenes Dokument mit Passwort abrufen",
"tags": [
"Freigabelinks"
],
"operationId": "post_share",
"parameters": [
{
"name": "token",
"in": "path",
"required": true,
"description": "Freigabelink-Token",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Dateiinhalt",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"423": {
"description": "Gesperrt",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "-",
"security": []
}
},
"/triggers": {
"post": {
"summary": "Trigger anlegen",
"tags": [
"Trigger"
],
"operationId": "post_triggers",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"name",
"event",
"action_type"
],
"properties": {
"name": {
"type": "string"
},
"event": {
"type": "string",
"enum": [
"document.uploaded",
"document.ocr_completed",
"document.einvoice_checked"
]
},
"filename_pattern": {
"type": "string"
},
"document_type_id": {
"type": "string"
},
"action_type": {
"type": "string",
"enum": [
"webhook",
"set_tag",
"set_type"
]
},
"action_tag_id": {
"type": "string"
},
"action_document_type_id": {
"type": "string"
},
"webhook_url": {
"type": "string"
},
"webhook_secret": {
"type": "string",
"description": "Optional; wird nur verschluesselt gespeichert, nie im Klartext gelesen"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Angelegt",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"event": {
"type": "string",
"enum": [
"document.uploaded",
"document.ocr_completed",
"document.einvoice_checked"
]
},
"filename_pattern": {
"type": "string",
"nullable": true
},
"document_type_id": {
"type": "string",
"nullable": true
},
"action_type": {
"type": "string",
"enum": [
"webhook",
"set_tag",
"set_type"
]
},
"action_tag_id": {
"type": "string",
"nullable": true
},
"action_document_type_id": {
"type": "string",
"nullable": true
},
"webhook_url": {
"type": "string",
"nullable": true
},
"enabled": {
"type": "boolean"
},
"created_by": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.write"
},
"get": {
"summary": "Trigger auflisten",
"tags": [
"Trigger"
],
"operationId": "get_triggers",
"responses": {
"200": {
"description": "Liste",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"event": {
"type": "string",
"enum": [
"document.uploaded",
"document.ocr_completed",
"document.einvoice_checked"
]
},
"filename_pattern": {
"type": "string",
"nullable": true
},
"document_type_id": {
"type": "string",
"nullable": true
},
"action_type": {
"type": "string",
"enum": [
"webhook",
"set_tag",
"set_type"
]
},
"action_tag_id": {
"type": "string",
"nullable": true
},
"action_document_type_id": {
"type": "string",
"nullable": true
},
"webhook_url": {
"type": "string",
"nullable": true
},
"enabled": {
"type": "boolean"
},
"created_by": {
"type": "string"
}
}
}
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.read"
}
},
"/triggers/{id}": {
"get": {
"summary": "Trigger lesen",
"tags": [
"Trigger"
],
"operationId": "get_trigger",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Trigger-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Trigger",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"event": {
"type": "string",
"enum": [
"document.uploaded",
"document.ocr_completed",
"document.einvoice_checked"
]
},
"filename_pattern": {
"type": "string",
"nullable": true
},
"document_type_id": {
"type": "string",
"nullable": true
},
"action_type": {
"type": "string",
"enum": [
"webhook",
"set_tag",
"set_type"
]
},
"action_tag_id": {
"type": "string",
"nullable": true
},
"action_document_type_id": {
"type": "string",
"nullable": true
},
"webhook_url": {
"type": "string",
"nullable": true
},
"enabled": {
"type": "boolean"
},
"created_by": {
"type": "string"
}
}
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.read"
},
"delete": {
"summary": "Trigger loeschen",
"tags": [
"Trigger"
],
"operationId": "delete_trigger",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Trigger-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Geloescht"
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.write"
}
},
"/triggers/{id}/enable": {
"post": {
"summary": "Trigger aktivieren",
"tags": [
"Trigger"
],
"operationId": "post_trigger_enable",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Trigger-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Ok"
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.write"
}
},
"/triggers/{id}/disable": {
"post": {
"summary": "Trigger deaktivieren",
"tags": [
"Trigger"
],
"operationId": "post_trigger_disable",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Trigger-ID",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Ok"
},
"404": {
"description": "Nicht gefunden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"400": {
"description": "Ungültige Anfrage",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Nicht angemeldet",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Keine Berechtigung",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-permission": "dms.trigger.write"
}
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
},
"schemas": {
"Error": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"description": "Stabiler, maschinenlesbarer Bezeichner"
},
"message": {
"type": "string"
}
}
}
}
}
}
}
}