SecaniDocumentazione
OSCAL

Kit di strumenti

Anteprima dei secani implementati/oscal Toolkit TypeScript mentre è preparato per l'open source.

Preparazione privata: Durante la preparazione privata, il toolkit implementato rimane nel file secani/oscal repository con visibilità privata. @secani/oscal non è pubblicato su npm, quindi i comandi di installazione seguenti sono anteprime delle versioni future.

@secani/oscal è un toolkit TypeScript indipendente dall'archiviazione per l'analisi, la convalida e l'analisi strutturale dei documenti OSCAL 1.2.2.

Installa l'anteprima

Questi comandi riservano il nome del pacchetto pianificato. Non funzioneranno finché la pubblicazione di npm non sarà approvata separatamente.

pnpm add @secani/oscal
npm install @secani/oscal
yarn add @secani/oscal
bun add @secani/oscal

Elabora OSCAL JSON

L'API implementata accetta byte di documento, rileva il modello OSCAL dalla sua chiave root e convalida il JSON analizzato rispetto allo schema ufficiale corrispondente.

import { createOscalProcessor } from "@secani/oscal";

const processor = createOscalProcessor();
const bytes = new TextEncoder().encode(jsonSource);
const document = processor.parse(bytes, "json");
const result = processor.validate(document.json);

if (!result.ok) {
  console.error(result.errors);
}

processor.parse restituisce il tipo di modello rilevato, la versione OSCAL e il documento analizzato. processor.validate ritorna { ok, errors }; I risultati dello schema sono risultati sulla qualità dei dati anziché eccezioni generate.

Modelli supportati

Il toolkit copre tutti gli otto modelli OSCAL 1.2.2:

  • Catalogare
  • Profilo
  • Definizione dei componenti
  • Piano di sicurezza del sistema
  • Piano di valutazione
  • Risultati della valutazione
  • Piano d'azione e tappe fondamentali
  • Raccolta di mappe

Confini di validazione

La convalida utilizza validatori di schemi JSON precompilati e privi di valutazione derivati ​​dagli schemi ufficiali NIST OSCAL 1.2.2. Rileva problemi strutturali come proprietà richieste mancanti e tipi non validi. Non rivendica ancora la convalida completa dei vincoli del metaschema OSCAL, l'unicità dell'UUID, l'integrità completa dei riferimenti o la risoluzione del profilo.

L’analisi e la serializzazione JSON sono ora implementate. L’API riserva i valori di formato "xml" e "yaml", ma l’utilizzo di uno dei due genera attualmente un OscalError con codice ERR_UNSUPPORTED_FORMAT.

Superfici della confezione

  • @secani/oscal contiene il processore stabile curato, la conversione delle chiavi, l'estrazione dei riferimenti, l'indicizzazione e le API di misurazione.
  • @secani/oscal/testing fornisce dispositivi compatti con schema valido e un processore falso per i test downstream.
  • @secani/oscal/unstable espone l'evoluzione degli helper del registro, del percorso e del grafico semantico senza garanzie di controllo delle versioni semantiche.
  • @secani/oscal/schemas/*.json espone gli otto schemi NIST JSON archiviati.

Il toolkit non ha dipendenze di runtime. I validatori vengono generati in anticipo e inclusi nel repository come normali moduli JavaScript. L’attuale bundle ESM principale pesa circa 4,5 MB perché contiene tutti e otto i validatori; il caricamento differito per singolo modello è un’ottimizzazione futura.

Stato dell'archivio

Viene nominato il futuro repository open source secani/oscal. Rimane privato, quindi non esiste ancora intenzionalmente alcun collegamento al repository pubblico. La visibilità pubblica e la pubblicazione npm richiedono revisioni separate una volta completati gli audit di licenza, sicurezza, provenienza, CI e pacchetto.

Il separato oscal-cli E secani/oscal-skills i progetti rimangono lavori futuri e non sono inclusi nell'attuale toolkit.