Files
nexarch/dms/internal/openapi/openapi.json
T
patrickandClaude Sonnet 5 280f2457f9
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 (Lint/Build/Test/Coverage/Artefakt) (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
DOC-21: papierkorb-api zum verschieben in den papierkorb
POST /trash verschiebt Dokumente und Ordner (mit Teilbaum) in den
Papierkorb, meldet das Ergebnis je ID, lehnt fremd ausgeliehene Dokumente
ab und ist wiederholbar ohne doppelte Audit-Eintraege. Der Guard erzwingt
Eigentuemerpruefung auch fuer POST /trash; OpenAPI und API.md ergaenzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:53:10 +02:00

3597 lines
90 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"
}
}
},
"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"
}
}
}
}
}
}
}
}