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
[Bug] Empty strings in policy_references and source_id collide with Trace padding #263
An empty string is a legal value for policy_id, policy_version and rule_id in policy_references, and for source_id in provenance.json. The #228 PR pads the Trace arrays built from those fields with "" where a value is missing. A trace reader therefore can't tell an absent field from one the Guardian sent as empty.
What the specification says, and what happens instead
Each of those fields is { "type": "string" } with no minLength. The #228 PR adds a SHOULD NOT for Guardians, in Trace text only, because a wire-schema change doesn't belong in a v0.1.x patch. The SHOULD NOT can't be enforced by schema validation.
Impact on implementers
It's small today. Version-level replay ("which policy version fired") is ambiguous for any Guardian that sends empty strings.
Proposed direction for v0.2: add "minLength": 1 to those four fields, so "" in a padded Trace array always means "absent".
Activity
Apply the Spec leads' answers to the decision event and its OCSF form
Carry the decision's replay facts and decision failures on Trace (Gen…
Follow GenAI-Security-Project#275: an empty AGT reason names no rule