Dockerman Docs
CLI

Contrato de streaming

Envelopes NDJSON, salida específica, heartbeat, backpressure y señales.

Varios comandos consumen streams del daemon, pero no todos los procesos largos comparten el mismo formato. Consulta --help antes de crear un parser.

Envelope del daemon

Los comandos que exponen el stream como JSON escriben un envelope NDJSON por línea en stdout. La secuencia comienza en 0.

{"seq":0,"type":"data","payload":{"line":"hello"}}
{"seq":1,"type":"heartbeat"}
{"seq":2,"type":"dropped","payload":{"count":12}}
{"seq":3,"type":"end"}

end y error son frames terminales; un stream produce un único resultado final. error contiene code, message y details opcional.

El daemon envía normalmente heartbeat cada 15 segundos y el CLI sale con código 4 si no recibe frames durante 30 segundos. El buffer admite 256 frames; si se descartan, el recuento se emite antes del siguiente frame de cualquier tipo.

Excepciones por comando

  • events siempre escribe envelopes NDJSON y no tiene modo de líneas de log.
  • Trivy --json escribe sus propios payloads de progress/result, no un StreamFrameEnvelope externo.
  • El progreso de imágenes se escribe actualmente en stdout.
  • La salida de texto depende del comando; el progreso no siempre va a stderr.

Cancelación y códigos

Con SIGINT o SIGTERM, el CLI solicita la cancelación y sale sin garantizar el vaciado de todos los frames en curso.

CódigoSignificado
0Finalización natural
1Error de validación, RPC o stream
2Error al analizar argumentos
3Error de descubrimiento o handshake
4Timeout de heartbeat
130SIGINT
143SIGTERM

Usa dockerman schema para consultar los metadatos RPC. El esquema no convierte la salida propia de Trivy en un envelope externo.