Toolkit
Vorschau auf das implementierte TypeScript-Toolkit secani/oscal während seiner Vorbereitung auf Open Source.
Private Vorbereitung: Während der privaten Vorbereitung verbleibt das implementierte Toolkit im Repository
secani/oscalmit privater Sichtbarkeit.@secani/oscalist nicht auf npm veröffentlicht, daher sind die folgenden Installationsbefehle Vorschauen auf eine zukünftige Veröffentlichung.
@secani/oscal ist ein speicherunabhängiges TypeScript-Toolkit zum Parsen, Validieren und strukturellen Analysieren von OSCAL-1.2.2-Dokumenten.
Installationsvorschau
Diese Befehle reservieren den geplanten Paketnamen. Sie funktionieren erst, nachdem die npm-Veröffentlichung separat genehmigt wurde.
pnpm add @secani/oscal
npm install @secani/oscal
yarn add @secani/oscal
bun add @secani/oscalOSCAL-JSON verarbeiten
Die implementierte API nimmt Dokument-Bytes entgegen, erkennt das OSCAL-Modell anhand seines Rootschlüssels und validiert das geparste JSON gegen das entsprechende offizielle Schema.
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 gibt den erkannten Modelltyp, die OSCAL-Version und das geparste Dokument zurück. processor.validate gibt { ok, errors } zurück; Schemafeststellungen sind Ergebnisse zur Datenqualität und keine ausgelösten Ausnahmen.
Unterstützte Modelle
Das Toolkit deckt alle acht OSCAL-1.2.2-Modelle ab:
- Catalog
- Profile
- Component Definition
- System Security Plan
- Assessment Plan
- Assessment Results
- Plan of Action and Milestones
- Mapping Collection
Validierungsgrenzen
Die Validierung verwendet vorkompilierte, eval-freie JSON-Schema-Validatoren, die aus den offiziellen NIST-OSCAL-1.2.2-Schemas abgeleitet sind. Sie erkennt strukturelle Probleme wie fehlende erforderliche Eigenschaften und ungültige Typen. Sie erhebt noch keinen Anspruch auf vollständige Validierung der OSCAL-Metaschema-Einschränkungen, UUID-Eindeutigkeit, vollständige Referenzintegrität oder Profile-Auflösung.
JSON-Parsing und -Serialisierung sind bereits implementiert. Die API reserviert die Formatwerte "xml" und "yaml", doch die Verwendung eines dieser Werte löst derzeit einen OscalError mit dem Code ERR_UNSUPPORTED_FORMAT aus.
Paketoberflächen
@secani/oscalenthält den kuratierten stabilen Prozessor sowie APIs für Schlüsselkonvertierung, Referenzextraktion, Indizierung und Messungen.@secani/oscal/testingstellt schemakonforme kompakte Fixtures und einen Fake-Prozessor für nachgelagerte Tests bereit.@secani/oscal/unstablestellt sich weiterentwickelnde Registry-, Pfad- und Semantic-Graph-Hilfsfunktionen ohne Garantien zur semantischen Versionierung bereit.@secani/oscal/schemas/*.jsonstellt die acht eingecheckten NIST-JSON-Schemas bereit.
Das Toolkit hat keine Laufzeitabhängigkeiten. Seine Validatoren werden vorab generiert und als gewöhnliches JavaScript eingecheckt. Das aktuelle Root-ESM-Bundle ist ungefähr 4.5 MB groß, weil es alle acht Validatoren enthält; Lazy Loading auf Modellebene ist eine zukünftige Optimierung.
Repository-Status
Das zukünftige Open-Source-Repository heißt secani/oscal. Es bleibt privat, daher gibt es bewusst noch keinen öffentlichen Repository-Link. Öffentliche Sichtbarkeit und npm-Veröffentlichung erfordern separate Prüfungen, nachdem Lizenzierung, Sicherheit, Provenienz, CI und Paket-Audits abgeschlossen sind.
Die separaten Projekte oscal-cli und secani/oscal-skills bleiben zukünftige Arbeiten und sind nicht im aktuellen Toolkit enthalten.
Übersicht
Erfahre mehr über den OSCAL-Standard und wie Secanis Toolkit, die geplante CLI und Agent Skills zusammenspielen.
Validator
Wie der Secani-OSCAL-Validator quellenverifizierte Validierung jenseits der Java-Referenzimplementierung belegt – Vollständigkeits-Closure, Differential-Belege und ehrliche Grenzen.