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>