Un único modelo de auditoría para todas las aplicaciones.
OpenAuditModel es un modelo común de eventos de auditoría (audit events) para aplicaciones de negocio. Los eventos se pueden verificar, y el modelo no depende del sistema en el que usted los almacene. Define qué es un evento de auditoría. No dice dónde se almacena el evento, cómo se transporta ni qué regulación cumple.
Por qué
Casi todas las aplicaciones registran operaciones que luego habrá que auditar, y casi todas inventan su propio formato para hacerlo. La factura llega después. Los registros no se verifican hasta que, años más tarde, aparece un defecto en los datos conservados. Las pistas de auditoría de dos sistemas no se pueden leer juntas sin una capa de traducción hecha a medida. Las mismas preguntas se vuelven a discutir con cada aplicación nueva: ¿quién es el actor? ¿cómo se registra una acción hecha en nombre de otra persona? ¿dónde va la aprobación? Y como nadie decidió qué debía contener, los datos de auditoría acumulan en silencio contraseñas, claves y datos personales. OpenAuditModel responde esas preguntas una sola vez, y lo hace en una forma que un validador puede comprobar.
Un evento en su forma más simple
Siete campos son obligatorios. Todo lo demás es opcional y aporta contexto.
{
"specVersion": "1.0",
"id": "018f1b5c-6d2a-7c3e-9a1b-4f5e6d7c8b9a",
"time": "2026-03-14T09:24:31.412Z",
"event": {
"name": "data.record.update",
"category": "data-modification",
"outcome": "success"
},
"actor": {
"type": "user",
"id": "user-123"
},
"resource": {
"type": "record",
"id": "resource-123"
},
"application": {
"name": "application-service",
"environment": "production"
}
}
Pruébelo ahora
No hay nada que instalar ni ningún repositorio que clonar. Basta con Node.js 22 o más reciente.
npx @openauditmodel/cli validate audit-event.json
npx @openauditmodel/cli lint-privacy audit-event.json
npx @openauditmodel/cli check-profile audit-event.json --profile financial-transaction-management
El código de salida 0 significa que hubo un veredicto y que el evento pasó. 1 significa que hubo un veredicto y que el evento falló. 2 significa que la herramienta no pudo ejecutarse. 3 significa que no hubo veredicto: el evento declara una versión de la especificación que la herramienta no implementa, ninguna regla del perfil cubre ese evento, o la entrada no era un evento de auditoría y por tanto nunca se analizó. 3 nunca es una aprobación.
Esquemas canónicos
Estas URL son los identificadores que figuran en el $id de cada esquema. Las direcciones son estables, y un documento versionado no cambia una vez publicado. Ninguna herramienta necesita descargarlos: la validación se hace sin conexión, y un identificador es un nombre, no una instrucción de descarga.
/schemas/audit-event/1.0/schema.json
/schemas/audit-event/0.1/schema.json
/schemas/profile-definition/0.1/schema.json
/schemas/checkpoint/0.1/schema.json
/schemas/proof/0.1/schema.json
Perfiles de dominio
10 perfiles, 127 reglas: 113 reglas se aplican como errores y 14 reglas son recomendaciones. Un perfil solo añade requisitos al modelo base; ningún perfil lo relaja. Un evento que ninguna regla cubre se informa como no aplicable, nunca como conforme.
En las direcciones siguientes está el documento de cada perfil. Son direcciones, no identidades: un perfil lleva name y version, pero no un $id. No fije estas URL como identificadores canónicos.
| Perfil | Reglas | Documento |
|---|---|---|
| api-and-integration-management | 13 | profile.json |
| backup-and-recovery | 13 | profile.json |
| customer-and-account-management | 13 | profile.json |
| deployment-and-change-management | 13 | profile.json |
| document-management | 11 | profile.json |
| financial-transaction-management | 12 | profile.json |
| identity-and-access-management | 11 | profile.json |
| incident-management | 15 | profile.json |
| message-broker-management | 12 | profile.json |
| secrets-and-key-management | 14 | profile.json |
Cómo adoptarlo
Nada de esto le obliga a cambiar dónde almacena sus datos. El camino más sencillo es un conversor que traslade los registros existentes a este formato; es, además, la forma que piden los clientes corporativos:
existing audit database → mapper → OpenAuditModel NDJSON → customer, archive or SIEM
Los pasos siguientes son evidentes: un servicio nuevo produce sus eventos en este formato, los archivos de ejemplo se validan en la CI, y los eventos se diseñan con un agente de IA a través del servidor MCP. El servidor expone los mismos motores deterministas sobre Streamable HTTP:
claude mcp add --transport http openauditmodel https://mcp.openauditmodel.org/mcp
Es un servicio remoto; el contenido de los eventos de auditoría que le envíe sale de su máquina. Para datos regulados, construya y ejecute el servidor usted mismo a partir del repositorio fuente. En ambos casos el servidor no mantiene estado y no guarda nada.
Qué no es
OpenAuditModel no es un sistema de almacenamiento de logs, ni una base de datos, ni un SIEM, ni una plataforma GRC, ni un motor de políticas, ni un sistema de autorización. No sustituye a OpenTelemetry, CloudEvents, ECS, OCSF, CADF ni OSCAL; trabaja junto a ellos.
