Un único modelo de auditoría para todas las aplicaciones.
Un modelo de eventos de auditoría común, verificable e independiente del backend para aplicaciones de negocio. Define qué es un evento de auditoría: no dónde se almacena, cómo se transporta ni qué regulación satisface.
Por qué
Casi todas las aplicaciones registran operaciones auditables, y casi todas inventan su propia forma para esos registros. El resultado: registros que no pueden validarse hasta que aparece un defecto años después en datos retenidos; pistas de auditoría de dos sistemas que no pueden leerse juntas sin una traducción a medida; las mismas preguntas — qué es un actor, cómo se registra actuar en nombre de otro, dónde va una aprobación — reabiertas en cada aplicación nueva; y datos de auditoría que acumulan en silencio secretos y datos personales porque nadie decidió qué debía contener. OpenAuditModel responde esas preguntas una vez, en una forma que un validador puede comprobar.
Un evento mínimo
Siete campos obligatorios. Todo lo demás es contexto opcional.
{
"specVersion": "0.1",
"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"
}
}
Comprobar un evento
Sin instalación, sin checkout. Requiere Node.js 22 o posterior.
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 se produjo un veredicto y fue favorable. 1: se produjo y falló. 2: la herramienta no pudo ejecutarse. 3: no se produjo veredicto — ninguna regla del perfil gobierna ese evento, o la entrada no era un evento de auditoría y nunca se analizó. 3 nunca es una aprobación.
Esquemas canónicos
Estas URL son los identificadores registrados en el $id de cada esquema. Son estables y los documentos versionados son inmutables. Nada necesita descargarlos: la validación es sin conexión y un identificador es un nombre, no una instrucción de descarga.
Perfiles de dominio
10 perfiles aplicables, 127 reglas — 113 aplicadas como errores, 14 consultivas. Un perfil solo añade requisitos al modelo base; ninguno lo relaja. Un evento no gobernado por regla alguna se informa como no aplicable, nunca como conforme.
Las direcciones siguientes sirven cada documento de perfil. Son direcciones, no identidades: un perfil lleva name y version, no un $id; estas URL no deben fijarse 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 |
Adopción
Nada aquí exige cambiar dónde almacena sus datos. El camino de menor fricción es un mapper de exportación, que es además la forma que piden los clientes corporativos:
existing audit database → mapper → OpenAuditModel NDJSON → customer, archive or SIEM
Después: instrumente un servicio nuevo, valide fixtures en CI y diseñe eventos con un agente de IA a través del servidor MCP, que 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 se le envía sale de su máquina. Para datos regulados, construya y ejecute el servidor desde el repositorio fuente — es sin estado y no persiste nada en ambos casos.
Qué no es
No es un backend 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. Se compone con ellos.
