Skip to content

v3.1-56cf8aa

@craigjbass craigjbass tagged this 17 Mar 09:56
- Reformat opfilter decision log lines into pipe-separated key=value
  pairs: action, policy_version, policy_name, path, access_type,
  decision, operation_id, pid, ppid, process, processpath, uid, user,
  gid, group, team_id, codesigning_id, ancestry_tree
- ancestry_tree uses (process=…,…)->(process=…,…) notation per ancestor
- Add RuleSource (.builtin/.user/.mdm) to FAARule and PolicyDecision so
  policy_version reflects the rule's origin (git SHA / "user" / "mdm")
- Extend ProcessRecord and AncestorInfo with uid/gid; OpenFileEvent gains
  parentPID, uid, gid sourced from the ES audit token
- Resolve uid→username and gid→groupname via getpwuid/getgrgid at log time
- Fix log levels across the project:
  - Decision events: .log() (default)
  - Operational opfilter events: .info() or .debug()
  - Convert all NSLog in XPCServer, XPCClient, SystemExtensionManager,
    AppProtectionStore to os.Logger with debug/info/error/fault levels

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Assets 2
Loading