Kit de herramientas
Vista previa del secani implementado/oscal Kit de herramientas TypeScript mientras está preparado para código abierto.
Preparación privada: Durante la preparación privada, el kit de herramientas implementado permanece en el
secani/oscalrepositorio con visibilidad privada.@secani/oscalno está publicado en npm, por lo que los comandos de instalación siguientes son vistas previas de versiones futuras.
@secani/oscal es un conjunto de herramientas TypeScript independiente del almacenamiento para analizar, validar y analizar estructuralmente documentos OSCAL 1.2.2.
Instalar vista previa
Estos comandos reservan el nombre del paquete planificado. No funcionarán hasta que la publicación de npm se apruebe por separado.
pnpm add @secani/oscal
npm install @secani/oscal
yarn add @secani/oscal
bun add @secani/oscalProcesar OSCAL JSON
La API implementada acepta bytes de documentos, detecta el modelo OSCAL a partir de su clave raíz y valida el JSON analizado con el esquema oficial correspondiente.
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 devuelve el tipo de modelo detectado, la versión OSCAL y el documento analizado. processor.validate regresa { ok, errors }; Los hallazgos del esquema son resultados de calidad de datos en lugar de excepciones lanzadas.
Modelos compatibles
El kit de herramientas cubre los ocho modelos OSCAL 1.2.2:
- Catalogar
- Perfil
- Definición de componente
- Plan de seguridad del sistema
- Plan de Evaluación
- Resultados de la evaluación
- Plan de acción e hitos
- Colección de mapas
Límites de validación
La validación utiliza validadores de esquemas JSON precompilados y sin evaluación derivados de los esquemas oficiales NIST OSCAL 1.2.2. Detecta problemas estructurales como propiedades requeridas faltantes y tipos no válidos. Aún no afirma una validación completa de las restricciones del metasquema OSCAL, la unicidad del UUID, la integridad de referencia completa o la resolución del perfil.
El análisis y la serialización de JSON ya están implementados. La API reserva los valores de formato "xml" y "yaml", pero usar cualquiera de ellos genera actualmente un OscalError con el código ERR_UNSUPPORTED_FORMAT.
Superficies del paquete
@secani/oscalcontiene el procesador estable seleccionado, la conversión de claves, la extracción de referencias, la indexación y las API de medición.@secani/oscal/testingproporciona accesorios compactos con esquema válido y un procesador falso para pruebas posteriores.@secani/oscal/unstableexpone asistentes de registro, ruta y gráficos semánticos en evolución sin garantías de versiones semánticas.@secani/oscal/schemas/*.jsonexpone los ocho esquemas NIST JSON registrados.
El kit de herramientas no tiene dependencias de tiempo de ejecución. Sus validadores se generan con anticipación y se confirman como JavaScript normal. El paquete raíz ESM actual tiene aproximadamente 4,5 MB porque incluye los ocho validadores; La carga diferida a nivel de modelo es una optimización futura.
Estado del repositorio
El futuro repositorio de código abierto se llama secani/oscal. Sigue siendo privado, por lo que todavía no existe intencionalmente ningún enlace al repositorio público. La visibilidad pública y la publicación de npm requieren revisiones separadas una vez completadas las auditorías de licencias, seguridad, procedencia, CI y paquetes.
el separado oscal-cli y secani/oscal-skills Los proyectos siguen siendo trabajos futuros y no están incluidos en el conjunto de herramientas actual.
Descripción general
Conozca el estándar OSCAL y cómo encajan el conjunto de herramientas de Secani, la CLI planificada y las habilidades de los agentes.
Validador
Cómo el validador Secani OSCAL demuestra la validación de fuente verificada más allá de la implementación de referencia de Java: cierre de integridad, recibos diferenciales y límites honestos.