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

Producer di OSIRIS JSON

I producer di OSIRIS sono strumenti di snapshot in sola lettura che si connettono alle piattaforme di infrastruttura, raccolgono dati di topologia e configurazione ed emettono un documento OSIRIS JSON conforme allo standard. Ogni producer è destinato a uno specifico vendor o a una specifica piattaforma cloud.

Cosa fanno i producer

Un producer esegue quattro passaggi:

  • Discovery

    Si connette alla piattaforma di destinazione ed enumera tutte le risorse all'interno dell'ambito.

  • Normalization

    Mappa i modelli di dati specifici del vendor nei tipi di risorsa, connessioni e gruppi di OSIRIS JSON, arricchendo altri dettagli se necessario.

  • Redaction and safety guardrails

    Rimuove segreti, credenziali e valori di configurazione sensibili prima dell'emissione.

  • Emission

    Genera un documento OSIRIS JSON valido su stdout o in un file, pronto per la validazione.

Producer disponibili

I producer vengono rilasciati in modo incrementale. Cisco è il primo producer disponibile; gli altri sono pianificati e seguiranno.

Installazione

I producer sono distribuiti come binari Go. È necessario avere installato Go 1.25+.

Installa tutto (core dispatcher + tutti i producer vendor disponibili):

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

Oppure installa solo ciò di cui hai bisogno: il core dispatcher e un producer vendor specifico:

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

La tabella seguente elenca tutti i package installabili:

PackageDescriptionStatus
cmd/osirisjson-producerCore CLI dispatcher - instrada osirisjson-producer <vendor> ... verso i binari vendoravailable
cmd/osirisjson-producer-ciscoProducer Cisco (APIC, NX-OS, IOS-XE)available

Il core dispatcher (osirisjson-producer) rileva i binari vendor nel tuo PATH e instrada il comando verso quello corretto. Senza di esso, devi invocare direttamente il binario vendor con il suo nome completo, ad esempio osirisjson-producer-cisco invece di osirisjson-producer cisco.

Assicurati che $GOPATH/bin (o $HOME/go/bin) sia nel tuo PATH.

Forma della CLI del producer

Tutti i producer condividono una CLI in stile dispatcher:

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

L’output viene sempre validato successivamente tramite la CLI di OSIRIS JSON, ad esempio:

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

Flusso di lavoro tipico

Per solution architect e auditor, il flusso di lavoro consigliato è:

  1. Eseguire il producer sulla piattaforma di destinazione con le credenziali appropriate.
  2. Validare l’output usando @osirisjson/cli con il profilo strict.
  3. Esaminare lo snapshot come artefatto architetturale, archiviarlo, confrontarlo nel tempo e allegarlo agli audit.
# 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)

Sicurezza

Il codice sorgente dei producer viene analizzato continuamente da SonarCloud per individuare vulnerabilità, code smells e security hotspots. Ogni pull request deve superare un quality gate che impone una A security rating prima di poter essere unita.

Inoltre, i producer includono safety guardrail integrati:

  • Secret redaction - la flag --safe-failure-mode (predefinita: fail-closed) impedisce che credenziali e valori sensibili finiscano nell’output JSON.
  • Read-only access - i producer non modificano mai la configurazione dei dispositivi. Tutte le chiamate API e le RPC NETCONF sono operazioni in sola lettura.
  • No persistent storage - i producer non mettono in cache le credenziali e non memorizzano dati oltre il file JSON emesso.

Cosa leggere dopo

edit_note

Help improve this page

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