Support-Artefakt hochladen

POST /v1/support-artifacts · Berechtigung support-artifacts:write

Hängt eine HAR-Datei oder ein Protokoll an ein Support-Ticket an. Artefakte werden nur von der Support-Seite im Dashboard hochgeladen; API-Schlüssel und Maschinenclients erhalten 403 insufficient_permissions. Das Dashboard entfernt Geheimnisse vor dem Upload in Ihrem Browser, und der Server prüft das Artefakt erneut: Cookie-, Set-Cookie-, Authorization- und DPoP-Header, OAuth-, OIDC- und SAML-Token-Felder, __Host--Cookies, JWTs und mit KeenAuth beginnende Geheimnisse werden durch [redacted] ersetzt. Ein im Artefakt gefundener Verwaltungs-API-Schlüssel (idp_sk_, idp_rk_) wird sofort widerrufen; schlägt der Widerruf fehl, wird nichts gespeichert und der Upload gibt 503 zurück. Nur der bereinigte Inhalt wird gespeichert, mit dem Datenschlüssel der Umgebung verschlüsselt und nach 30 Tagen gelöscht. Die Antwort enthält niemals den Inhalt oder die entfernten Werte.

Anfrage

Feld Typ Erforderlich Beschreibung
ticket_ref query ja Referenz des Support-Tickets: 1-64 Zeichen, Buchstaben, Ziffern und _ . : -, beginnend mit einem Buchstaben oder einer Ziffer.
kind query ja har (ein HAR-1.2-JSON-Dokument) oder log (Klartext).
Content-Type header ja application/octet-stream.
Content-Encoding header nein gzip, um ein komprimiertes Artefakt zu senden.
Idempotency-Key header nein Optional. 16-64 Zeichen [A-Za-z0-9_-]; die Wiederholung desselben Schlüssels mit demselben Body liefert dasselbe Artefakt.

Der Body ist das Artefakt selbst: höchstens 50 MB unkomprimiert. Der Anfrage-Body auf der Leitung ist auf 11 MiB begrenzt, daher größere Artefakte mit gzip komprimieren. Ein Ticket enthält höchstens 10 Artefakte.

Antwort

201 Created mit dem gespeicherten Artefakt. findings zählt die entfernten Werte nach Art; revocations_triggered ist die Anzahl der widerrufenen Anmeldeinformationen, die im Artefakt vorkamen.

{
  "id": "sart_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "ticket_ref": "SUP-48213",
  "kind": "har",
  "size_bytes": 482113,
  "sha256": "9f2b5c7d1e3a4f60718293a4b5c6d7e8f90123456789abcdef0123456789abcd",
  "findings": {"authorization": 2, "cookie": 5, "host_cookie": 3, "oauth_param": 1},
  "revocations_triggered": 0,
  "created_at": "2026-11-10T09:30:00.123456Z",
  "expires_at": "2026-12-10T09:30:00.123456Z"
}

Fehler

HTTP Code Wann
400 malformed_request Der Body konnte nicht gelesen werden, der gzip-Stream ist ungültig oder Idempotency-Key ist fehlerhaft.
401 unauthenticated Die Anmeldeinformation fehlt, ist ungültig oder widerrufen.
403 insufficient_permissions Die Anfrage wurde nicht aus dem Dashboard gestellt, oder die Dashboard-Rolle hat nicht support-artifacts:write.
403 quota_exceeded Das Ticket hat bereits 10 Artefakte.
413 payload_too_large Das Artefakt ist größer als 50 MB, oder der Anfrage-Body ist größer als 11 MiB.
415 unsupported_media_type Content-Type ist nicht application/octet-stream, oder die Inhaltskodierung ist nicht gzip.
422 validation_failed ticket_ref oder kind fehlt oder ist ungültig, der Body ist leer, oder ein har-Artefakt ist kein HAR-Dokument (/body invalid_har).
422 idempotency_key_reuse Der Idempotency-Key wurde bereits mit einem anderen Body verwendet.
429 rate_limited Es werden gerade zu viele Uploads verarbeitet oder das Ratenlimit wurde überschritten; nach Ablauf der Retry-After-Zeit erneut versuchen.
503 service_unavailable Das Artefakt wurde nicht gespeichert (eine Anmeldeinformation konnte nicht widerrufen werden oder der Speicher ist nicht verfügbar); nach Ablauf der Retry-After-Zeit erneut versuchen.

Beispiel

Uploads sind eine Dashboard-Aktion. Die Anfrage, die das Dashboard sendet:

POST /v1/support-artifacts?ticket_ref=SUP-48213&kind=har
Content-Type: application/octet-stream
Content-Encoding: gzip
Idempotency-Key: 2f1c9a7e-5b3d-4e8f-9a6c-1d2e3f4a5b6c

<gzip-komprimierte HAR-Datei>