SecaniDokumentacja
OSCAL

Zestaw narzędzi

Podgląd wdrożonego secani/oscal Zestaw narzędzi TypeScript, gdy jest on przygotowany na open source.

Przygotowanie prywatne: Podczas przygotowań prywatnych zaimplementowany zestaw narzędzi pozostaje w pliku secani/oscal repozytorium z widocznością prywatną. @secani/oscal nie jest publikowany w npm, więc poniższe polecenia instalacyjne są zapowiedziami przyszłych wydań.

@secani/oscal to niezależny od pamięci zestaw narzędzi TypeScript do analizowania, sprawdzania poprawności i analizy strukturalnej dokumentów OSCAL 1.2.2.

Zainstaluj podgląd

Te polecenia rezerwują planowaną nazwę pakietu. Nie będą działać, dopóki publikacja npm nie zostanie osobno zatwierdzona.

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

Przetwórz plik OSCAL JSON

Zaimplementowany interfejs API akceptuje bajty dokumentu, wykrywa model OSCAL z jego klucza głównego i sprawdza przeanalizowany JSON pod kątem odpowiedniego oficjalnego schematu.

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 zwraca wykryty typ modelu, wersję OSCAL i przeanalizowany dokument. processor.validate powraca { ok, errors }; ustalenia schematu są wynikami jakości danych, a nie zgłoszonymi wyjątkami.

Obsługiwane modele

Zestaw narzędzi obejmuje wszystkie osiem modeli OSCAL 1.2.2:

  • Katalog
  • Profil
  • Definicja komponentu
  • Plan bezpieczeństwa systemu
  • Plan oceny
  • Wyniki oceny
  • Plan działania i kamienie milowe
  • Kolekcja map

Granice walidacji

Walidacja wykorzystuje prekompilowane, wolne od ewaluacji walidatory schematu JSON pochodzące z oficjalnych schematów NIST OSCAL 1.2.2. Wychwytuje problemy strukturalne, takie jak brakujące wymagane właściwości i nieprawidłowe typy. Nie zapewnia jeszcze pełnej walidacji ograniczeń metaschematu OSCAL, unikalności UUID, pełnej integralności referencji ani rozdzielczości profilu.

Parsowanie i serializacja JSON są już zaimplementowane. API rezerwuje wartości formatu "xml" i "yaml", ale użycie którejkolwiek z nich powoduje obecnie zgłoszenie OscalError z kodem ERR_UNSUPPORTED_FORMAT.

Powierzchnie opakowań

  • @secani/oscal zawiera wyselekcjonowany stabilny procesor, konwersję kluczy, ekstrakcję referencji, indeksowanie i interfejsy API pomiarów.
  • @secani/oscal/testing zapewnia kompaktowe urządzenia zgodne ze schematem i fałszywy procesor do dalszych testów.
  • @secani/oscal/unstable udostępnia rozwijające się pomoce rejestru, ścieżki i wykresu semantycznego bez gwarancji wersjonowania semantycznego.
  • @secani/oscal/schemas/*.json udostępnia osiem zaewidencjonowanych schematów JSON NIST.

Zestaw narzędzi ma zerowe zależności w czasie wykonywania. Jego walidatory są generowane z wyprzedzeniem i zatwierdzane jak zwykły JavaScript. Obecny główny pakiet ESM zajmuje około 4,5 MB, ponieważ zawiera wszystkie osiem walidatorów; Leniwe ładowanie na poziomie modelu to przyszła optymalizacja.

Stan repozytorium

Nazwano przyszłe repozytorium open source secani/oscal. Pozostaje prywatny, więc celowo nie ma jeszcze linku do publicznego repozytorium. Widoczność publiczna i publikacja npm wymagają osobnych przeglądów po zakończeniu audytów licencji, bezpieczeństwa, pochodzenia, CI i pakietów.

Oddzielne oscal-cli I secani/oscal-skills projekty pozostają przyszłymi pracami i nie są uwzględnione w obecnym zestawie narzędzi.