SecaniDocumentación
OSCAL

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/oscal repositorio con visibilidad privada. @secani/oscal no 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/oscal

Procesar 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/oscal contiene 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/testing proporciona accesorios compactos con esquema válido y un procesador falso para pruebas posteriores.
  • @secani/oscal/unstable expone asistentes de registro, ruta y gráficos semánticos en evolución sin garantías de versiones semánticas.
  • @secani/oscal/schemas/*.json expone 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.