You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Docs] OCSF 1.5 renames class 5001 to "Device Inventory Info"; Trace docs still say "Inventory Info" #121
docs/spec/trace/extend_ocsf.md (lines 16, 106, 113), docs/spec/trace/events.md (line 59), specification/v0.1.0/trace/ocsf-mapping.json (class_name for agbom/snapshot and agbom/changed)
What is wrong or missing
The mapping labels class_uid 5001 as "Inventory Info". In OCSF 1.5 that class is "Device Inventory Info" and 5020 is "Software Inventory Info". The class_uid values are correct; only the class_name strings and the prose labels are stale, and the spec does not state which OCSF version its class names follow.
Two decisions for the Spec leads: (1) pin the OCSF version the mapping targets in the docs, and (2) either update the four class_name strings to the 1.5 names or record that the mapping intentionally uses the pre-1.5 label. Not changed in #63 because the label predates it. I can take this once the direction is chosen.
Current Priority Scope
This is deferred or out of scope and I am filing it to be tracked
@sabasiddique1 thanks for flagging this! Here are the two decisions you asked for:
Version: let's pin OCSF 1.9.0, the latest release.
Labels: let's use OCSF's official names. I checked every OCSF release, and 5001 was always Device Inventory Info, so there's no older name to keep. 6002 has the same problem: its official name is Application Lifecycle. "Application Activity" is the name of category 6.
All our class numbers mean the same classes in 1.9.0, so only the names change.
What to update:
class_name for 5001 and 6002 in ocsf-mapping.json
the class tables in events.md and extend_ocsf.md, and the 5001 example in extend_ocsf.md
the version: "1.5+" becomes 1.9.0 in the mapping description, events.md and extend_ocsf.md. extend_ocsf.md also says 1.5 in the unmapped.acs note and in metadata.version of its three examples.
one more thing I found while checking 1.9.0: decision_class.required_fields lists finding.title and finding.uid, but Detection Finding calls that object finding_info. Our deny example in extend_ocsf.md already uses finding_info, so the mapping should match it.
Notes for the PR that closes this, from checking #63 against the OCSF schema repository at the v1.0.0, v1.1.0, 1.5.0 and 1.9.0 tags.
The name. "Device Inventory Info" is 5001's caption at every tag I checked. "Inventory Info" never is, because inventory_info is only the machine name. After Add the skill lifecycle hooks to the Trace mappings #63, ocsf-mapping.json gives 5001 two class_name values: the agbom/* rows say Inventory Info and steps/skillRegister says Device Inventory Info. This PR renames the agbom/* rows.
The skillRegister note. It still says "modeled as Inventory Info, the class agbom/* already uses". Please fix it in the same pass.
activity_id.steps/skillRegister, agbom/snapshot and agbom/changed have none, but OCSF requires activity_id on every event. For 5001 the values are 1 Log and 2 Collect. Collect (2) is the closest fit for both a registration and a snapshot.
5001 requires a device object ("The device that is being discovered by an inventory process"). Neither a skill registration nor an AgBOM snapshot carries one.
1005 Module Activity requires actor and device (from the system category) and a module. At 1.5.0 that module has a required load_type_id, an OS loader enum.
1.9.0 also adds Software Inventory Info (5020), which has an sbom attribute and may fit agbom/* better.
Pinning to 1.9.0. The docs say "OCSF 1.5+", but 1.9.0 changes meaning in two places. It adds Invoke (3) to 1005's activities. It also relaxes module.load_type_id to an at-least-one rule with function_name. If this PR pins 1.9.0, please change the "1.5+" wording in extend_ocsf.md and events.md too.
Activity
bar-capsule commentedon Oct 8, 2026
@sabasiddique1 thanks for flagging this! Here are the two decisions you asked for:
All our class numbers mean the same classes in 1.9.0, so only the names change.
What to update:
What to leave for other issues:
rocklambros commentedon Oct 12, 2026
Notes for the PR that closes this, from checking #63 against the OCSF schema repository at the v1.0.0, v1.1.0, 1.5.0 and 1.9.0 tags.
inventory_infois only the machine name. After Add the skill lifecycle hooks to the Trace mappings #63,ocsf-mapping.jsongives 5001 twoclass_namevalues: theagbom/*rows say Inventory Info andsteps/skillRegistersays Device Inventory Info. This PR renames theagbom/*rows.skillRegisternote. It still says "modeled as Inventory Info, the class agbom/* already uses". Please fix it in the same pass.activity_id.steps/skillRegister,agbom/snapshotandagbom/changedhave none, but OCSF requiresactivity_idon every event. For 5001 the values are 1 Log and 2 Collect. Collect (2) is the closest fit for both a registration and a snapshot.deviceobject ("The device that is being discovered by an inventory process"). Neither a skill registration nor an AgBOM snapshot carries one.actoranddevice(from the system category) and amodule. At 1.5.0 thatmodulehas a requiredload_type_id, an OS loader enum.steps/*row has the same kind of gap, so this belongs with the class-mapping questions in [Bug] ACS events can't fill the fields their OCSF classes require #235.sbomattribute and may fitagbom/*better.module.load_type_idto an at-least-one rule withfunction_name. If this PR pins 1.9.0, please change the "1.5+" wording inextend_ocsf.mdandevents.mdtoo.Pin the OCSF mapping to 1.9.0 and use OCSF's class names (GenAI-Secur…