Boîte à outils
Aperçu du secani implémenté/oscal Boîte à outils TypeScript alors qu'elle est préparée pour l'open source.
Préparation privée : Lors de la préparation privée, la boîte à outils implémentée reste dans le
secani/oscalréférentiel avec visibilité privée.@secani/oscaln'est pas publié sur npm, les commandes d'installation ci-dessous sont donc des aperçus des versions futures.
@secani/oscal est une boîte à outils TypeScript indépendante du stockage pour analyser, valider et analyser structurellement les documents OSCAL 1.2.2.
Aperçu de l'installation
Ces commandes réservent le nom du package prévu. Ils ne fonctionneront pas tant que la publication npm n’aura pas été approuvée séparément.
pnpm add @secani/oscal
npm install @secani/oscal
yarn add @secani/oscal
bun add @secani/oscalProcessus OSCAL JSON
L'API implémentée accepte les octets du document, détecte le modèle OSCAL à partir de sa clé racine et valide le JSON analysé par rapport au schéma officiel correspondant.
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 renvoie le type de modèle détecté, la version OSCAL et le document analysé. processor.validate retours { ok, errors }; les résultats du schéma sont des résultats de qualité des données plutôt que des exceptions levées.
Modèles pris en charge
La boîte à outils couvre les huit modèles OSCAL 1.2.2 :
- Catalogue
- Profil
- Définition des composants
- Plan de sécurité du système
- Plan d'évaluation
- Résultats de l'évaluation
- Plan d'action et jalons
- Collecte de cartographie
Limites de validation
La validation utilise des validateurs de schéma JSON précompilés et sans évaluation dérivés des schémas officiels NIST OSCAL 1.2.2. Il détecte les problèmes structurels tels que les propriétés requises manquantes et les types non valides. Il ne revendique pas encore la validation complète des contraintes de métaschéma OSCAL, l'unicité de l'UUID, l'intégrité complète des références ou la résolution de profil.
L’analyse et la sérialisation JSON sont désormais implémentées. L’API réserve les valeurs de format "xml" et "yaml", mais l’utilisation de l’une ou l’autre déclenche actuellement une OscalError avec le code ERR_UNSUPPORTED_FORMAT.
Surfaces des emballages
@secani/oscalcontient les API de processeur stable, de conversion de clé, d'extraction de référence, d'indexation et de mesure.@secani/oscal/testingfournit des appareils compacts valides pour le schéma et un faux processeur pour les tests en aval.@secani/oscal/unstableexpose les assistants évolutifs de registre, de chemin et de graphe sémantique sans garanties de version sémantique.@secani/oscal/schemas/*.jsonexpose les huit schémas NIST JSON archivés.
La boîte à outils n'a aucune dépendance d'exécution. Ses validateurs sont générés à l'avance et validés comme du JavaScript ordinaire. Le bundle ESM racine actuel fait environ 4,5 Mo car il comprend les huit validateurs ; Le chargement différé au niveau du modèle est une optimisation future.
Statut du référentiel
Le futur référentiel open source s'appelle secani/oscal. Il reste privé, il n'y a donc intentionnellement pas encore de lien vers un référentiel public. La visibilité publique et la publication npm nécessitent des examens distincts une fois les audits de licence, de sécurité, de provenance, de CI et de package terminés.
Le séparé oscal-cli et secani/oscal-skills les projets restent des travaux futurs et ne sont pas inclus dans la boîte à outils actuelle.
Aperçu
Découvrez la norme OSCAL et comment la boîte à outils de Secani, la CLI planifiée et les compétences des agents s'articulent.
Validateur
Comment le validateur Secani OSCAL prouve la validation vérifiée par la source au-delà de l'implémentation de référence Java : clôture d'exhaustivité, réceptions différentielles et limites honnêtes.