Téléverser un artefact de support

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

Joint un fichier HAR ou un journal à un ticket de support. Les artefacts ne sont téléversés que depuis la page Support du tableau de bord ; les clés API et les clients machine reçoivent 403 insufficient_permissions. Le tableau de bord supprime les secrets dans votre navigateur avant le téléversement, et le serveur analyse de nouveau l'artefact : les en-têtes Cookie, Set-Cookie, Authorization et DPoP, les champs de jetons OAuth, OIDC et SAML, les cookies __Host-, les JWT et les secrets préfixés KeenAuth sont remplacés par [redacted]. Une clé d'API de gestion (idp_sk_, idp_rk_) trouvée dans l'artefact est révoquée immédiatement ; si la révocation échoue, rien n'est stocké et le téléversement renvoie 503. Seul le contenu nettoyé est stocké, chiffré avec la clé de données de l'environnement, et il est supprimé après 30 jours. La réponse ne contient jamais le contenu ni les valeurs supprimées.

Requête

Champ Type Obligatoire Description
ticket_ref query oui Référence du ticket de support : 1-64 caractères, lettres, chiffres et _ . : -, commençant par une lettre ou un chiffre.
kind query oui har (un document JSON HAR 1.2) ou log (texte brut).
Content-Type header oui application/octet-stream.
Content-Encoding header non gzip pour envoyer un artefact compressé.
Idempotency-Key header non Facultatif. 16-64 caractères [A-Za-z0-9_-] ; répéter la même clé avec le même corps renvoie le même artefact.

Le corps est l'artefact lui-même : 50 Mo au maximum non compressé. Le corps de la requête sur le réseau est limité à 11 MiB, donc compressez en gzip les artefacts plus volumineux. Un ticket contient au maximum 10 artefacts.

Réponse

201 Created avec l'artefact stocké. findings compte les valeurs supprimées par type ; revocations_triggered est le nombre d'identifiants révoqués parce qu'ils figuraient dans l'artefact.

{
  "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"
}

Erreurs

HTTP code Quand
400 malformed_request Le corps n'a pas pu être lu, le flux gzip est invalide ou Idempotency-Key est mal formé.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions La requête n'a pas été faite depuis le tableau de bord, ou le rôle du tableau de bord ne possède pas support-artifacts:write.
403 quota_exceeded Le ticket contient déjà 10 artefacts.
413 payload_too_large L'artefact dépasse 50 Mo, ou le corps de la requête dépasse 11 MiB.
415 unsupported_media_type Content-Type n'est pas application/octet-stream, ou le codage du contenu n'est pas gzip.
422 validation_failed ticket_ref ou kind est absent ou invalide, le corps est vide, ou un artefact har n'est pas un document HAR (/body invalid_har).
422 idempotency_key_reuse L'Idempotency-Key a déjà été utilisée avec un autre corps.
429 rate_limited Trop de téléversements sont en cours de traitement ou la limite de débit a été dépassée ; réessayez après le délai Retry-After.
503 service_unavailable L'artefact n'a pas été stocké (un identifiant n'a pas pu être révoqué ou le stockage est indisponible) ; réessayez après le délai Retry-After.

Exemple

Les téléversements sont une action du tableau de bord. Requête envoyée par le tableau de bord :

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

<fichier HAR compressé en gzip>