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/oscalrepozytorium z widocznością prywatną.@secani/oscalnie 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/oscalPrzetwó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/oscalzawiera wyselekcjonowany stabilny procesor, konwersję kluczy, ekstrakcję referencji, indeksowanie i interfejsy API pomiarów.@secani/oscal/testingzapewnia kompaktowe urządzenia zgodne ze schematem i fałszywy procesor do dalszych testów.@secani/oscal/unstableudostępnia rozwijające się pomoce rejestru, ścieżki i wykresu semantycznego bez gwarancji wersjonowania semantycznego.@secani/oscal/schemas/*.jsonudostę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.
Przegląd
Poznaj standard OSCAL i dowiedz się, jak zestaw narzędzi Secani, planowany CLI i umiejętności agentów pasują do siebie.
Walidator
W jaki sposób walidator Secani OSCAL potwierdza weryfikację zweryfikowaną przez źródło, wykraczającą poza implementację referencyjną Java – zamknięcie kompletności, wpływy różnicowe i uczciwe limity.