person Tia Zanella
calendar_add_on Created March 17, 2026
update Updated April 5, 2026
Share
download Download MD

Producers de OSIRIS JSON

Los producers de OSIRIS son herramientas de snapshot de solo lectura que se conectan a plataformas de infraestructura, recopilan datos de topología y configuración, y emiten un documento OSIRIS JSON conforme al estándar. Cada producer está orientado a un proveedor o plataforma cloud específica.

Qué hacen los producers

Un producer realiza cuatro pasos:

  • Discovery

    Se conecta a la plataforma de destino y enumera todos los recursos dentro del alcance.

  • Normalization

    Mapea modelos de datos específicos del proveedor a tipos de recurso, conexiones y grupos de OSIRIS JSON, enriqueciendo otros detalles si es necesario.

  • Redaction and safety guardrails

    Elimina secretos, credenciales y valores sensibles de configuración antes de la emisión.

  • Emission

    Genera un documento OSIRIS JSON válido en stdout o en un archivo, listo para su validación.

Producers disponibles

Los producers se publican de forma incremental. Cisco es el primer producer disponible; los demás están planificados y llegarán después.

Instalación

Los producers se distribuyen como binarios Go. Necesitas tener instalado Go 1.25+.

Instálalo todo (core dispatcher + todos los producers de proveedor disponibles):

go install go.osirisjson.org/producers/cmd/...@latest

O instala solo lo que necesites: el core dispatcher y un producer de proveedor específico:

go install go.osirisjson.org/producers/cmd/osirisjson-producer@latest
go install go.osirisjson.org/producers/cmd/osirisjson-producer-cisco@latest

La tabla siguiente lista todos los packages instalables:

PackageDescriptionStatus
cmd/osirisjson-producerDispatcher principal de la CLI - enruta osirisjson-producer <vendor> ... a binarios de proveedoravailable
cmd/osirisjson-producer-ciscoProducer Cisco (APIC, NX-OS, IOS-XE)available

El core dispatcher (osirisjson-producer) detecta binarios de proveedor en tu PATH y enruta el comando al correcto. Sin él, debes invocar el binario del proveedor directamente con su nombre completo, por ejemplo osirisjson-producer-cisco en lugar de osirisjson-producer cisco.

Asegúrate de que $GOPATH/bin (o $HOME/go/bin) esté en tu PATH.

Forma de la CLI del producer

Todos los producers comparten una CLI de estilo dispatcher:

osirisjson-producer <vendor> [subcommand] [flags]

La salida siempre se valida después a través de la CLI de OSIRIS JSON, por ejemplo:

osirisjson-producer <vendor> <subcommand> --host device.example.com > snapshot.json
npx @osirisjson/cli validate --profile strict snapshot.json

Flujo de trabajo típico

Para arquitectos de soluciones y auditores, el flujo de trabajo recomendado es:

  1. Ejecuta el producer contra tu plataforma de destino con las credenciales adecuadas.
  2. Valida la salida usando @osirisjson/cli con el perfil strict.
  3. Revisa el snapshot como un artefacto de arquitectura, almacénalo, compáralo con el tiempo y adjúntalo a auditorías.
# Generate snapshot
osirisjson-producer cisco apic -h apic.example.com -u admin > snapshot.json

# Validate
npx @osirisjson/cli validate --profile strict snapshot.json

# Compare with previous snapshot
diff <(jq -S . previous.json) <(jq -S . snapshot.json)

Seguridad

El código fuente de los producers es analizado continuamente por SonarCloud en busca de vulnerabilidades, code smells y security hotspots. Todo pull request debe pasar un quality gate que exige una A security rating antes de poder fusionarse.

Además, los producers incluyen guardrails de seguridad integrados:

  • Secret redaction - la flag --safe-failure-mode (por defecto: fail-closed) evita que credenciales y valores sensibles se filtren en la salida JSON.
  • Read-only access - los producers nunca modifican la configuración del dispositivo. Todas las llamadas API y RPC NETCONF son operaciones de solo lectura.
  • No persistent storage - los producers no almacenan credenciales en caché ni guardan datos más allá del archivo JSON emitido.

Qué leer a continuación

edit_note

Help improve this page

Found an issue or want to contribute? Open an issue.