Caricare un artefatto di supporto
POST /v1/support-artifacts · permesso support-artifacts:write
Allega un file HAR o un log a un ticket di supporto. Gli artefatti vengono caricati solo dalla pagina Supporto della dashboard; le chiavi API e i client macchina ricevono 403 insufficient_permissions. La dashboard rimuove i segreti nel tuo browser prima del caricamento, e il server analizza di nuovo l'artefatto: le intestazioni Cookie, Set-Cookie, Authorization e DPoP, i campi di token OAuth, OIDC e SAML, i cookie __Host-, i JWT e i segreti con prefisso KeenAuth vengono sostituiti con [redacted]. Una chiave API di gestione (idp_sk_, idp_rk_) trovata nell'artefatto viene revocata subito; se la revoca fallisce, non viene memorizzato nulla e il caricamento restituisce 503. Viene memorizzato solo il contenuto ripulito, cifrato con la chiave dati dell'ambiente, ed eliminato dopo 30 giorni. La risposta non contiene mai il contenuto né i valori rimossi.
Richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
ticket_ref |
query | sì | Riferimento del ticket di supporto: 1-64 caratteri, lettere, cifre e _ . : -, che inizia con una lettera o una cifra. |
kind |
query | sì | har (un documento JSON HAR 1.2) oppure log (testo semplice). |
Content-Type |
header | sì | application/octet-stream. |
Content-Encoding |
header | no | gzip per inviare un artefatto compresso. |
Idempotency-Key |
header | no | Facoltativo. 16-64 caratteri [A-Za-z0-9_-]; ripetere la stessa chiave con lo stesso corpo restituisce lo stesso artefatto. |
Il corpo è l'artefatto stesso: al massimo 50 MB non compressi. Il corpo della richiesta sulla rete è limitato a 11 MiB, quindi comprimi con gzip gli artefatti più grandi. Un ticket contiene al massimo 10 artefatti.
Risposta
201 Created con l'artefatto memorizzato. findings conta i valori rimossi per tipo; revocations_triggered è il numero di credenziali revocate perché comparivano nell'artefatto.
{
"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"
}
Errori
| HTTP | code | Quando |
|---|---|---|
| 400 | malformed_request |
Il corpo non può essere letto, lo stream gzip non è valido oppure Idempotency-Key è malformato. |
| 401 | unauthenticated |
La credenziale manca, non è valida o è stata revocata. |
| 403 | insufficient_permissions |
La richiesta non è stata fatta dalla dashboard, oppure il ruolo nella dashboard non ha support-artifacts:write. |
| 403 | quota_exceeded |
Il ticket ha già 10 artefatti. |
| 413 | payload_too_large |
L'artefatto supera 50 MB, oppure il corpo della richiesta supera 11 MiB. |
| 415 | unsupported_media_type |
Content-Type non è application/octet-stream, oppure la codifica del contenuto non è gzip. |
| 422 | validation_failed |
ticket_ref o kind mancano o non sono validi, il corpo è vuoto, oppure un artefatto har non è un documento HAR (/body invalid_har). |
| 422 | idempotency_key_reuse |
L'Idempotency-Key è già stata usata con un corpo diverso. |
| 429 | rate_limited |
Sono in elaborazione troppi caricamenti oppure è stato superato il limite di frequenza; riprovare dopo il periodo indicato in Retry-After. |
| 503 | service_unavailable |
L'artefatto non è stato memorizzato (una credenziale non può essere revocata o l'archiviazione non è disponibile); riprovare dopo il periodo indicato in Retry-After. |
Esempio
I caricamenti sono un'azione della dashboard. La richiesta inviata dalla dashboard:
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
<file HAR compresso con gzip>