Subir un artefacto de soporte

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

Adjunta un archivo HAR o un registro a un ticket de soporte. Los artefactos solo se suben desde la página Soporte del panel; las claves de API y los clientes de máquina reciben 403 insufficient_permissions. El panel elimina los secretos en su navegador antes de la subida, y el servidor vuelve a analizar el artefacto: las cabeceras Cookie, Set-Cookie, Authorization y DPoP, los campos de token de OAuth, OIDC y SAML, las cookies __Host-, los JWT y los secretos con prefijo KeenAuth se reemplazan por [redacted]. Una clave de API de gestión (idp_sk_, idp_rk_) encontrada en el artefacto se revoca de inmediato; si la revocación falla, no se almacena nada y la subida devuelve 503. Solo se guarda el contenido limpio, cifrado con la clave de datos del entorno, y se elimina a los 30 días. La respuesta nunca contiene el contenido ni los valores eliminados.

Solicitud

Campo Tipo Requerido Descripción
ticket_ref query sí Referencia del ticket de soporte: 1-64 caracteres, letras, dígitos y _ . : -, que empiece por una letra o un dígito.
kind query sí har (un documento JSON HAR 1.2) o log (texto plano).
Content-Type header sí application/octet-stream.
Content-Encoding header no gzip para enviar un artefacto comprimido.
Idempotency-Key header no Opcional. 16-64 caracteres [A-Za-z0-9_-]; repetir la misma clave con el mismo cuerpo devuelve el mismo artefacto.

El cuerpo es el propio artefacto: como máximo 50 MB sin comprimir. El cuerpo de la solicitud en la red está limitado a 11 MiB, así que comprima con gzip los artefactos más grandes. Un ticket contiene como máximo 10 artefactos.

Respuesta

201 Created con el artefacto almacenado. findings cuenta los valores eliminados por tipo; revocations_triggered es el número de credenciales revocadas porque aparecían en el artefacto.

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

Errores

HTTP código Cuándo
400 malformed_request No se pudo leer el cuerpo, el flujo gzip no es válido o el Idempotency-Key tiene formato incorrecto.
401 unauthenticated La credencial falta, no es válida o fue revocada.
403 insufficient_permissions La solicitud no se hizo desde el panel, o el rol del panel no tiene support-artifacts:write.
403 quota_exceeded El ticket ya tiene 10 artefactos.
413 payload_too_large El artefacto supera 50 MB, o el cuerpo de la solicitud supera 11 MiB.
415 unsupported_media_type Content-Type no es application/octet-stream, o la codificación del contenido no es gzip.
422 validation_failed ticket_ref o kind falta o no es válido, el cuerpo está vacío, o un artefacto har no es un documento HAR (/body invalid_har).
422 idempotency_key_reuse El Idempotency-Key ya se usó con un cuerpo distinto.
429 rate_limited Se están procesando demasiadas subidas o se superó el límite de frecuencia; vuelva a intentarlo tras el tiempo indicado en Retry-After.
503 service_unavailable El artefacto no se almacenó (no se pudo revocar una credencial o el almacenamiento no está disponible); vuelva a intentarlo tras el tiempo indicado en Retry-After.

Ejemplo

Las subidas son una acción del panel. La solicitud que envía el panel:

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

<archivo HAR comprimido con gzip>