OpenAuditModel

Her uygulama için tek denetim modeli.

OpenAuditModel, iş uygulamaları için ortak bir denetim olayı (audit event) modelidir. Olaylar doğrulanabilir; model ise veriyi hangi altyapıda sakladığınızdan bağımsızdır. Tanımladığı şey bir denetim olayının ne olduğudur; olayın nerede saklanacağını, nasıl taşınacağını ya da hangi mevzuatı karşıladığını tanımlamaz.

Bu sayfa bilgilendirme amacıyla Türkçe yazılmıştır; bağlayıcı metin İngilizce sayfadır. Spesifikasyon, şemalar ve profiller yalnızca İngilizce yayımlanır.
Sürüm 1.0 · Kararlıdır · Üretimde henüz kanıtlanmamıştır · Uyum güvencesi vermez. 1.0 adresindeki şema bundan sonra değişmeyecek; sonraki 1.x sürümleri ona yalnızca ekleme yapabilir. Bu spesifikasyona uygun olmak, herhangi bir yasaya, mevzuata, standarda ya da sözleşmeye uyulduğu anlamına gelmez.

Neden

Neredeyse her uygulama denetlenebilir işlemleri kaydeder; neredeyse her biri de bu kayıtlar için kendi biçimini uydurur. Bedeli sonradan ödenir. Kayıtlar, yıllar sonra saklanan veride bir hata bulunana kadar doğrulanmaz. İki sistemin denetim izleri, araya özel bir çeviri katmanı girmeden yan yana okunamaz. Aynı sorular her yeni uygulamada baştan tartışılır: aktör kimdir, başkası adına yapılan işlem nasıl kaydedilir, onay nereye yazılır? İçine ne gireceğine kimse karar vermediği için denetim verisi sessizce parola, anahtar ve kişisel veri biriktirir. OpenAuditModel bu soruları bir kez cevaplar ve bunu bir doğrulayıcının kontrol edebileceği biçimde yapar.

En sade haliyle bir olay

Yedi alan zorunludur. Geri kalan her şey isteğe bağlıdır ve olaya bağlam ekler.

{
  "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"
  }
}

Hemen deneyin

Kurulum gerekmez, depoyu klonlamanız da gerekmez. Node.js 22 ya da daha yeni bir sürüm yeterlidir.

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

Çıkış kodu 0, karar verildiğini ve olayın geçtiğini söyler. 1, karar verildiğini ama olayın geçemediğini söyler. 2, aracın hiç çalışamadığını söyler. 3 ise karar verilmediğini söyler. Bunun üç nedeni olabilir: olay, aracın uygulamadığı bir spesifikasyon sürümünü bildirmiştir, profilde bu olayı kapsayan bir kural yoktur ya da girdi bir denetim olayı olmadığı için hiç taranmamıştır. 3 hiçbir zaman onay değildir.

Kanonik şemalar

Bu URL'ler, her şemanın $id alanında kayıtlı tanımlayıcılardır. Adresler kararlıdır; sürümlü belgeler ise bir kez yayımlandıktan sonra değişmez. Hiçbir aracın bunları indirmesi gerekmez: doğrulama çevrimdışı çalışır ve tanımlayıcı bir addır, indirme talimatı değildir.

/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

İş alanı profilleri

10 profil, 127 kural: 113 kural hata olarak uygulanır, 14 kural tavsiye niteliğindedir. Bir profil çekirdek modele yalnızca gereklilik ekler; hiçbir profil onu gevşetmez. Hiçbir kuralın kapsamadığı olay kapsam dışı olarak raporlanır; hiçbir zaman uygun olarak raporlanmaz.

Aşağıdaki adreslerden her profilin belgesine ulaşılır. Bunlar adrestir, kimlik değildir: bir profil $id değil, name ve version taşır. Bu URL'leri kanonik tanımlayıcı olarak sabitlemeyin.

ProfilKural sayısıBelge
api-and-integration-management13profile.json
backup-and-recovery13profile.json
customer-and-account-management13profile.json
deployment-and-change-management13profile.json
document-management11profile.json
financial-transaction-management12profile.json
identity-and-access-management11profile.json
incident-management15profile.json
message-broker-management12profile.json
secrets-and-key-management14profile.json

Nasıl geçilir

Buradaki hiçbir şey, verinizi sakladığınız yeri değiştirmenizi gerektirmez. En kolay yol, mevcut kayıtları bu biçime çeviren bir dönüştürücü yazmaktır; kurumsal müşterilerin istediği biçim de zaten budur:

existing audit database → mapper → OpenAuditModel NDJSON → customer, archive or SIEM

Sonraki adımlar bellidir: yeni bir servisin bu biçimde olay üretmesini sağlarsınız, örnek olay dosyalarını CI'da doğrularsınız ve olayları MCP sunucusu üzerinden bir yapay zekâ ajanıyla tasarlarsınız. Sunucu, aynı deterministik motorları Streamable HTTP üzerinden sunar:

claude mcp add --transport http openauditmodel https://mcp.openauditmodel.org/mcp

Bu uzak bir servistir; gönderdiğiniz denetim olayının içeriği makinenizden çıkar. Mevzuata tabi veri için sunucuyu kaynak depodan kendiniz derleyip çalıştırın. Sunucu her iki durumda da durum tutmaz ve hiçbir şey saklamaz.

Ne değildir

OpenAuditModel bir log depolama altyapısı, veritabanı, SIEM, GRC platformu, politika motoru ya da yetkilendirme sistemi değildir. OpenTelemetry, CloudEvents, ECS, OCSF, CADF ya da OSCAL'ın yerini almaz; onlarla birlikte çalışır.