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>