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

Producers do OSIRIS JSON

Os producers do OSIRIS são ferramentas de snapshot somente leitura que se conectam a plataformas de infraestrutura, coletam dados de topologia e configuração e emitem um documento OSIRIS JSON em conformidade com o padrão. Cada producer tem como alvo um fornecedor específico ou uma plataforma de nuvem.

O que os producers fazem

Um producer executa quatro etapas:

  • Discovery

    Conecta-se à plataforma de destino e enumera todos os recursos dentro do escopo.

  • Normalization

    Mapeia modelos de dados específicos do fornecedor para tipos de recurso, conexões e grupos do OSIRIS JSON, enriquecendo outros detalhes quando necessário.

  • Redaction and safety guardrails

    Remove segredos, credenciais e valores sensíveis de configuração antes da emissão.

  • Emission

    Gera um documento OSIRIS JSON válido em stdout ou em um arquivo, pronto para validação.

Producers disponíveis

Os producers são lançados de forma incremental. Cisco é o primeiro producer disponível; os demais estão planejados e virão em seguida.

Instalação

Os producers são distribuídos como binários Go. Você precisa ter o Go 1.25+ instalado.

Instale tudo (core dispatcher + todos os producers de fornecedores disponíveis):

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

Ou instale apenas o que você precisa: o core dispatcher e um producer de fornecedor específico:

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

A tabela abaixo lista todos os pacotes instaláveis:

PackageDescriptionStatus
cmd/osirisjson-producerDispatcher central da CLI - encaminha osirisjson-producer <vendor> ... para binários de fornecedoresavailable
cmd/osirisjson-producer-ciscoProducer Cisco (APIC, NX-OS, IOS-XE)available

O core dispatcher (osirisjson-producer) descobre binários de fornecedores no seu PATH e encaminha o comando para o binário correto. Sem ele, você precisa invocar o binário do fornecedor diretamente pelo nome completo dele, por exemplo, osirisjson-producer-cisco em vez de osirisjson-producer cisco.

Certifique-se de que $GOPATH/bin (ou $HOME/go/bin) esteja no seu PATH.

Formato da CLI do producer

Todos os producers compartilham uma CLI no estilo dispatcher:

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

A saída sempre é validada depois por meio da CLI do OSIRIS JSON, por exemplo:

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

Fluxo de trabalho típico

Para arquitetos de solução e auditores, o fluxo de trabalho recomendado é:

  1. Execute o producer na sua plataforma de destino com as credenciais apropriadas.
  2. Valide a saída usando @osirisjson/cli com o perfil strict.
  3. Revise o snapshot como um artefato de arquitetura, armazene-o, compare-o ao longo do tempo e anexe-o a auditorias.
# 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)

Segurança

O código-fonte dos producers é analisado continuamente pelo SonarCloud em busca de vulnerabilidades, code smells e security hotspots. Todo pull request precisa passar por um quality gate que impõe uma A security rating antes de poder ser mesclado.

Além disso, os producers incluem guardrails de segurança integrados:

  • Secret redaction - a flag --safe-failure-mode (padrão: fail-closed) impede que credenciais e valores sensíveis vazem para a saída JSON.
  • Read-only access - os producers nunca modificam a configuração do dispositivo. Todas as chamadas de API e NETCONF RPCs são operações somente leitura.
  • No persistent storage - os producers não armazenam credenciais em cache nem persistem dados além do arquivo JSON emitido.

O que ler a seguir

edit_note

Help improve this page

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