Claude Platform Docs
AdminSecurity posture

Map Security posture events to OCSF

Map each Security posture activity in the Compliance API to its Open Cybersecurity Schema Framework (OCSF) class and attributes before you store it.

The Open Cybersecurity Schema Framework (OCSF) is an open schema for security events. Apply this mapping to Security posture activities in your own pipeline, after you read them and before you store them. To ingest them into your security information and event management (SIEM) system, start at Send Security posture events to your SIEM.

OCSF version

This mapping uses OCSF 1.6.0. If you validate against another version, check the attributes on this page against that version. For example, in OCSF 1.7.0, metadata.uid is the identifier of the OCSF event itself, and metadata.original_event_uid holds the identifier from the source. OCSF 1.9.0 deprecates actor.app_name in favor of actor.application.

Attributes for every Security posture activity

Map these fields on every event.

Activity fieldOCSF attributeNote
idmetadata.uidCopy unchanged.
typemetadata.event_codeCopy unchanged.
created_attimeConvert the RFC 3339 string to milliseconds since the Unix epoch and truncate to a whole number.
created_atmetadata.original_timeCopy the string unchanged.
Nonemetadata.logged_timeThe time at which you stored the activity (stored_at on Detect changes), in milliseconds since the Unix epoch.
organization_uuidmetadata.tenant_uidCopy unchanged.
organization_idunmapped.organization_idCopy unchanged.
Nonemetadata.versionConstant: 1.6.0.
Nonemetadata.product.vendor_nameConstant: Anthropic.
Nonemetadata.product.nameConstant: Compliance API.
Nonetype_uidclass_uid * 100 + activity_id.
Noneseverity_idSet to 1 (Informational) on every event and set an alert’s priority in the detection rule that raises it.

Put every field that has no OCSF attribute in the unmapped object under its Activity Feed name, including fields that your handler does not recognize. Where a field is absent or null, leave out the OCSF attribute.

Map the actor object:

Activity fieldOCSF attributeNote
Nonemetadata.profilesAdd host, the OCSF profile (an optional attribute set) that carries actor.
actor.typeunmapped.actor.typeCopy unchanged.
actor.user_idactor.user.uiduser_actor only.
actor.email_addressactor.user.email_addruser_actor only.
actor.ip_addresssrc_endpoint.ipuser_actor only.
actor.user_agenthttp_request.user_agentuser_actor only.
actor.serviceactor.app_namesystem_actor only.

Attestation activities: Entity Management

Map an org_security_control_attestation_updated activity to the OCSF Entity Management class (3004). Entity Management events report an operation on a managed entity, here the organization’s attestation for a security control.

Activity fieldOCSF attributeNote
Noneclass_uidConstant: 3004 (Entity Management).
Nonecategory_uidConstant: 3 (Identity & Access Management).
actionactivity_idFrom the table of action values that follows.
actionunmapped.actionCopy unchanged, because two action values share one activity_id.
Noneentity.type_idConstant: 99 (Other).
Noneentity.typeConstant: Security control attestation.
controlentity.uidCopy unchanged.
statusentity.data.statusCopy unchanged: the attestation’s value.
review_dateentity.data.review_dateCopy unchanged: the attestation’s end date.
previous_statusunmapped.previous_statusCopy unchanged: the attestation’s value before the change.

Do not map status to status_id or to any pass or fail value: an attestation is a person’s statement about a control, not the result of a check.

actionactivity_idtype_uid
attested1 (Create)300401
changed3 (Update)300403
renewed3 (Update)300403
cleared4 (Delete)300404
lapsed11 (Deactivate)300411
Any other value99 (Other)300499

For 99 (Other), set activity_name to the action value.

An attested activity maps to an event like this one, with sample values:

{
  "class_uid": 3004,
  "category_uid": 3,
  "activity_id": 1,
  "type_uid": 300401,
  "severity_id": 1,
  "time": 1794495872517,
  "metadata": {
    "version": "1.6.0",
    "profiles": ["host"],
    "uid": "activity_01Kp5RvNd8Wc3TgMy6BxQf4Z",
    "event_code": "org_security_control_attestation_updated",
    "original_time": "2026-11-12T15:04:32.517208Z",
    "logged_time": 1794495910000,
    "tenant_uid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
    "product": { "vendor_name": "Anthropic", "name": "Compliance API" }
  },
  "actor": {
    "user": {
      "uid": "user_01TuVwXyZaBcDeFgH2JkLmN4",
      "email_addr": "admin@example.com"
    }
  },
  "src_endpoint": { "ip": "192.0.2.34" },
  "http_request": { "user_agent": "ExampleBrowser/1.0" },
  "entity": {
    "type_id": 99,
    "type": "Security control attestation",
    "uid": "mdm_chat_required_organization",
    "data": { "status": "completed" }
  },
  "unmapped": {
    "action": "attested",
    "actor": { "type": "user_actor" },
    "organization_id": "org_01JuY4bkwkH1x4PodBJaWmh2"
  }
}

Was this page helpful?