APPLICATION SECURITY
Security log API

Record decisions. Preserve evidence.

Build useful security events around access checks, administrative actions, and sensitive changes—not just generic errors.

Event explorerSample data
security-event.json
{
  "schema_version": "1.0",
  "timestamp": "2026-09-21T09:41:02.184Z",
  "severity": "WARN",
  "event_id": "evt_demo_005",
  "event_name": "access.denied",
  "service": "identity-service",
  "attributes": {
    "actor_ref": "actor_demo_07",
    "action": "settings.write",
    "decision": "deny",
    "outcome": "not_executed"
  }
}
Synthetic fixture · nothing is sentDownload JSON ↗
DESIGN WITH INTENT

Keep the important distinctions.

Keep stages explicit

Distinguish requested, authorized, attempted, and completed.

Protect the trail

Separate event writing from broad reading or deletion privileges.

Investigate honestly

Treat an alert as a reason to review evidence, not proof of compromise.

THE EVENT CONTRACT

Fields with a reason to exist.

Identify which business operations matter to investigators and define their event semantics with the application owner. A record emitted before a database commit should not claim that the change completed. Use a stable operation reference to connect related stages.

These fields illustrate a design pattern. Map them deliberately to your own schema, source, and destination.

Security log API example fields
FieldWhat it means
actor_refAn approved identity reference, never a credential.
actionThe operation requested or attempted.
decisionThe result of the relevant policy evaluation.
outcomeWhether the authorized action actually completed.

Security-sensitive logging needs access controls, retention decisions, and failure testing. A log file is not automatically tamper-proof or a compliance certification.

Technical reference: OWASP Logging Cheat Sheet . Verify the version and settings used by your own implementation.

FIELD NOTES

Keep following the signal.

All articles →
ONE EVENT IS A GOOD START

Make your next log more useful.

Start with a clear schema. Keep the context that matters.