API de validación OSCAL

Envía mediante POST un documento OSCAL 1.2.2 JSON y obtén un informe de validación legible por máquina desde el mismo motor que utiliza el validador del navegador, diseñado para canalizaciones de CI, agentes e integraciones. No se necesita una cuenta.

Procesamiento temporal, sin almacenamiento. El documento se valida en memoria en servidores de la UE (Fráncfort) y se descarta con la respuesta. Secani no conserva, registra ni reutiliza su contenido; la telemetría solo contiene datos agregados.

curl -sS -X POST https://secani.com/api/oscal/v1/validate \
  -H "content-type: application/json" \
  --data-binary @system-security-plan.json

Los artefactos grandes se comprimen muy bien. Envíalos con gzip para mantenerte por debajo del límite de transferencia de 4 MB:

gzip -c catalog.json | curl -sS -X POST https://secani.com/api/oscal/v1/validate \
  -H "content-type: application/json" \
  -H "content-encoding: gzip" \
  --data-binary @-

Qué crean los equipos con ella

Controlar las fusiones en CI

Valida los SSP, perfiles y definiciones de componentes del repositorio en cada pull request. Bifurca el flujo según el campo valid y accede directamente a cada problema mediante su JSON Pointer RFC 6901.

Agentes de IA autocorrectivos

Los agentes que generan o editan OSCAL pueden validar en bucle: crear un documento, leer los problemas con punteros precisos, corregirlo y volver a validarlo, sin intervención humana en el ciclo de reparación.

Herramientas de navegador sin backend

CORS está abierto, por lo que las herramientas web internas pueden enviar documentos mediante POST directamente desde el navegador; por ejemplo, para comprobar la definición de componentes entregada por un socio antes de aceptarla.

Cómo funciona el contrato v1

El documento es la solicitud

Envía OSCAL 1.2.2 JSON sin envoltorio mediante POST y sin cuenta. Los ocho modelos se detectan a partir de la clave raíz. Una validación completada siempre devuelve HTTP 200; los documentos no válidos indican valid: false.

Admite documentos grandes

Hasta 4 MB sin comprimir en la transferencia y 24 MB descomprimidos con cuerpos de solicitud gzip. El catálogo completo NIST SP 800-53 se valida en bastante menos de 100 milisegundos.

Todo legible por máquina

Hasta 200 problemas con totales exactos, códigos de error RFC 9457 estables, cabeceras RateLimit y un contrato OpenAPI 3.1 para generar clientes.

Límites anónimos equitativos

10 solicitudes por minuto y 300 al día por cliente, indicadas mediante cabeceras de respuesta RateLimit. Se prevén claves de API con límites superiores y duraderos; el nivel anónimo se mantendrá.

Actualmente, la API ejecuta una validación estricta con JSON Schema para OSCAL 1.2.2 y un parche de compatibilidad de perfiles documentado. El contrato reserva un nivel de validación más profundo, con comprobaciones de restricciones y referencias sobre el registro de validación ampliado de Secani. Las respuestas indicarán exactamente qué se comprobó, de modo que un informe guardado constituya una certificación reproducible.

¿Prefieres validar manualmente?

El validador del navegador ejecuta las mismas comprobaciones de forma totalmente local; allí el documento nunca sale del navegador.