Skip to main content

Telemetry Schema

This page documents the complete schema for all telemetry event types collected by Workshop from Santa agents.

Base Fields

FieldTypeDescription
MachineIDtextThe unique machine ID (host UUID)
HostnametextThe hostname of the machine at the time of the event
BootSessionUUIDtextUnique identifier for the boot session
EventTimetextWhen the event occurred
ProcessedTimetextWhen Workshop processed the event

Common Nested Types

The following types are used throughout the telemetry schema to represent shared data structures.

ProcessID

Unique identifier for a process during OS runtime.

FieldTypeDescription
PIDnumberProcess ID
PIDVersionnumberProcess ID version for tracking across PID reuse

UserInfo

User identification information.

FieldTypeDescription
UIDnumberUser ID
NametextUser name

GroupInfo

Group identification information.

FieldTypeDescription
GIDnumberGroup ID
NametextGroup name

Hash

Cryptographic hash information.

FieldTypeDescription
TypetextHash algorithm (e.g., HASH_ALGO_SHA256)
HashtextHash value

Stat

File metadata from stat(2) syscall.

FieldTypeDescription
DevnumberDevice ID
ModenumberFile mode and permissions
NlinknumberNumber of hard links
InonumberInode number
UserUserInfoFile owner
GroupGroupInfoFile group
RdevnumberDevice ID for special files
AccessTimetimestampLast access time
ModificationTimetimestampLast modification time
ChangeTimetimestampLast status change time
BirthTimetimestampCreation time
SizenumberFile size in bytes
BlocksnumberNumber of blocks allocated
BlksizenumberBlock size for filesystem I/O
FlagsnumberUser defined flags
GennumberFile generation number

FileInfoLight

Basic file information with path only.

FieldTypeDescription
PathtextFile path
TruncatedbooleanWhether the path was truncated

FileInfo

Comprehensive file information.

FieldTypeDescription
PathtextFile path
TruncatedbooleanWhether the path was truncated
StatStatFile metadata
HashHashFile content hash

CodeSignature

Code signing information.

FieldTypeDescription
CDHashbytesCode directory hash
SigningIDtextSigning identifier
TeamIDtextTeam identifier
SecureSigningTimetimestampSecure timestamp from signing
SigningTimetimestampSigning timestamp

CertificateInfo

Certificate information for signed code.

FieldTypeDescription
HashHashCertificate hash
CommonNametextCertificate common name

Entitlement

Individual entitlement key-value pair.

FieldTypeDescription
KeytextEntitlement key
ValuetextEntitlement value

EntitlementInfo

Collection of process entitlements.

FieldTypeDescription
EntitlementsFilteredbooleanWhether the entitlements list was filtered
EntitlementsArray of EntitlementList of entitlements

ProcessInfoLight

Lightweight process information.

FieldTypeDescription
IDProcessIDProcess identifier
ParentIDProcessIDParent process identifier
OriginalParentPIDnumberOriginal parent PID (before reparenting)
GroupIDnumberProcess group ID
SessionIDnumberSession ID
EffectiveUserUserInfoEffective user
EffectiveGroupGroupInfoEffective group
RealUserUserInfoReal user
RealGroupGroupInfoReal group
ExecutableFileInfoLightExecutable file path

ProcessInfo

Full process information.

FieldTypeDescription
IDProcessIDProcess identifier
ParentIDProcessIDParent process identifier
ResponsibleIDProcessIDResponsible process identifier
OriginalParentPIDnumberOriginal parent PID (before reparenting)
GroupIDnumberProcess group ID
SessionIDnumberSession ID
EffectiveUserUserInfoEffective user
EffectiveGroupGroupInfoEffective group
RealUserUserInfoReal user
RealGroupGroupInfoReal group
IsPlatformBinarybooleanWhether this is a platform binary
IsESClientbooleanWhether this is an Endpoint Security client
CodeSignatureCodeSignatureCode signing information
CSFlagsnumberCode signing flags
ExecutableFileInfoExecutable file information
TTYFileInfoLightAssociated TTY device
StartTimetimestampProcess start time

Process Events

execution

Process execution events.

FieldTypeDescription
InstigatorProcessInfoLightParent process
TargetProcessInfoExecuted process
ScriptFileInfoThe script that was being executed, if applicable
WorkingDirectoryFileInfoThe working directory
Argstext arrayCommand-line arguments
Envstext arrayEnvironment variables
FDsFileDescriptor arrayThe open file descriptors at time of execution
FDListTruncatedbooleanWhether the list in FDs is truncated
DecisiontextThe decision that was made by Santa, e.g. DECISION_ALLOW
ReasontextThe reason that Santa made the decision it did, e.g. REASON_CERT
ModetextSanta's client mode at the time of the event, e.g. MODE_MONITOR
CertificateInfoCertificateInfoThe common name and hash of the leaf certificate that signed this binary, if applicable
EntitlementInfoEntitlementInfoThe entitlements attached to this binary
ExplaintextPossible additional context related to this execution
QuarantineURLtextThe URL the binary was downloaded from, if known
OriginalPathtextThe original on-disk path of the target executable, applies when binaries are translocated (https://developer.apple.com/forums/thread/724969)

fork

Process fork events.

FieldTypeDescription
InstigatorProcessInfoLightParent process
ChildProcessInfoLightChild processes

exit

Process termination events.

FieldTypeDescription
InstigatorProcessInfoLightExiting process
ExitCodenumberExit code of the process (set when process exits normally)
SignalednumberSignal number that terminated the process (set when terminated by signal)
StoppednumberSignal number that stopped the process (set when stopped by signal)

codesigning_invalidated

Code signature invalidation events.

FieldTypeDescription
InstigatorProcessInfoLightProcess with invalidated signature

File System Events

close

File close events.

FieldTypeDescription
InstigatorProcessInfoLightThe process closing the file
TargetFileInfoThe file being closed
ModifiedbooleanWhether file was modified

file_access

File access monitoring events.

FieldTypeDescription
InstigatorProcessInfoThe process accessing the file
TargetFileInfoLightThe file being accessed
PolicyNametextThe name of the file-access policy
PolicyVersiontextThe version of the file-access policy
AccessTypetextThe type of event that attempted access, e.g. ACCESS_TYPE_UNLINK
PolicyDecisiontextThe decision that was made, e.g. POLICY_DECISION_ALLOWED_AUDIT_ONLY
OperationIDtextUnique operation identifier, used to link a single operation when a single operation violates multiple policies

rename

File rename/move events.

FieldTypeDescription
InstigatorProcessInfoLightThe process that is renaming the file
SourceFileInfoThe source file
TargettextThe destination path
TargetExistedbooleanWhether or not the destination path already existed

Hard link creation events.

FieldTypeDescription
InstigatorProcessInfoLightThe process making the link
SourceFileInfoThe source file
TargettextLink path

File deletion events.

FieldTypeDescription
InstigatorProcessInfoLightThe process unlinking the file
TargetFileInfoThe deleted file info

clone

File clone (copy-on-write) events.

FieldTypeDescription
InstigatorProcessInfoLightProcess performing the clone
SourceFileInfoSource file
TargettextClone destination

exchangedata

Atomic data exchange between files events.

FieldTypeDescription
InstigatorProcessInfoLightProcess performing the exchange
File1FileInfoFirst file
File2FileInfoSecond file

Authentication & Session Events

authentication

Authentication attempts. This event type has subtypes with different fields depending on the authentication method.

FieldTypeDescription
SuccessbooleanAuthentication result
ODOpenDirectoryOpenDirectory authentication subtype data
TouchIDTouchIDTouch ID authentication subtype data
TokenTokenToken authentication subtype data
AutoUnlockAutoUnlockAuto unlock authentication subtype data

login_logout

Console login/logout events. This event type has subtypes for login and logout.

Login subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the login
UserUserInfoUser logging in
SuccessbooleanWhether login was successful
FailureMessagetextError message if login failed

Logout subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the logout
UserUserInfoUser logging out

login_window_session

GUI session events. This event type has subtypes for different session actions.

Login subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the session login
UserUserInfoUser logging in
GraphicalSessionGraphicalSessionGraphical session information

Logout subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the session logout
UserUserInfoUser logging out
GraphicalSessionGraphicalSessionGraphical session information

Lock subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the session lock
UserUserInfoUser whose session is being locked
GraphicalSessionGraphicalSessionGraphical session information

Unlock subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the session unlock
UserUserInfoUser whose session is being unlocked
GraphicalSessionGraphicalSessionGraphical session information

openssh

SSH authentication events. This event type has subtypes for SSH login and logout.

Login subtype:

FieldTypeDescription
InstigatorProcessInfoLightSSH daemon process
ResulttextAuthentication result
SourceSocketAddressSource address of the SSH connection
UserUserInfoUser attempting to log in

Logout subtype:

FieldTypeDescription
InstigatorProcessInfoLightSSH daemon process
SourceSocketAddressSource address of the SSH connection
UserUserInfoUser logging out

Security Events

allowlist

Binary allowlist addition events.

FieldTypeDescription
InstigatorProcessInfoLightProcess that added the binary to the allowlist
TargetFileInfoBinary being added to the allowlist

bundle

Bundle hash events.

FieldTypeDescription
FileHashHashHash of the individual file
BundleHashHashHash of the entire bundle
BundleNametextName of the bundle
BundleIDtextBundle identifier
BundlePathtextPath to the bundle
PathtextPath to the file within the bundle

gatekeeper_override

Gatekeeper bypass events.

FieldTypeDescription
InstigatorProcessInfoLightProcess that bypassed Gatekeeper
TargetFileInfoFile that was allowed to run despite Gatekeeper
CodeSignatureCodeSignatureCode signing information

tcc_modification

TCC (Transparency, Consent, and Control) database modification events.

FieldTypeDescription
InstigatorProcessInfoLightProcess modifying TCC database
ServicetextTCC service being modified (e.g., camera, microphone)
IdentitytextIdentity being granted/revoked access
IdentityTypetextType of identity (bundle ID, path, etc.)
EventTypetextType of modification event
AuthorizationRighttextAuthorization right being modified
AuthorizationReasontextReason for the authorization change
TriggerProcessProcessInfoLightProcess that triggered the modification
TriggerIDProcessIDProcess ID of the trigger process
ResponsibleProcessProcessInfoLightProcess responsible for the modification
ResponsibleIDProcessIDProcess ID of the responsible process

xprotect

XProtect malware detection and remediation events. This event type has subtypes for detection and remediation.

Detected subtype:

FieldTypeDescription
InstigatorProcessInfoLightXProtect process that detected the malware
SignatureVersiontextVersion of the XProtect signature that detected the malware
MalwareIdentifiertextIdentifier for the detected malware
IncidentIdentifiertextUnique identifier for this detection incident
DetectedPathtextPath where malware was detected

Remediated subtype:

FieldTypeDescription
InstigatorProcessInfoLightXProtect process that remediated the malware
SignatureVersiontextVersion of the XProtect signature
MalwareIdentifiertextIdentifier for the remediated malware
IncidentIdentifiertextUnique identifier for this remediation incident
DetectedPathtextPath where malware was originally detected
ActionTypetextType of remediation action taken
SuccessbooleanWhether remediation was successful
ResultDescriptiontextDescription of the remediation result
RemediatedPathtextPath that was remediated
RemediatedProcessIDProcessIDProcess ID of the remediated process, if applicable

screen_sharing

Screen sharing connection events. This event type has subtypes for attach and detach.

Attach subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the screen sharing connection
SuccessbooleanWhether the connection was successful
SourceSocketAddressSource address of the connection
ViewertextIdentifier of the viewer
AuthenticationTypetextType of authentication used
AuthenticationUserUserInfoUser that authenticated
SessionUserUserInfoUser whose session is being shared
ExistingSessionbooleanWhether connecting to an existing session
GraphicalSessionGraphicalSessionGraphical session information

Detach subtype:

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the disconnection
SourceSocketAddressSource address of the connection
ViewertextIdentifier of the viewer
GraphicalSessionGraphicalSessionGraphical session information

System Events

disk

Disk mount/unmount events.

FieldTypeDescription
ActiontextWhether the disk appeared or disappeared, e.g. ACTION_APPEARED
MounttextThe path the disk is mounted at
VolumetextThe name of the volume that was attached
BSDNametextThe BSD name of the disk (e.g. /dev/disk2s1)
FStextThe filesystem on the disk
ModeltextDevice vendor and model information
SerialtextThe serial number of the attached disk
BustextThe bus path/protocol of the attached disk
DMGPathtextThe path of the backing disk image, if the disk is a disk image
AppearancetimestampThe time the device appeared/disappeared
MountFromtextThe path mounted from

launch_item

Launch item registration/removal events.

FieldTypeDescription
InstigatorProcessInfoLightProcess handling the launch item registration
TriggerProcessProcessInfoLightThe process that triggered registration (one of TriggerProcess or TriggerID will be set)
TriggerIDProcessIDProcess ID that triggered registration (one of TriggerProcess or TriggerID will be set)
RegistrantProcessProcessInfoLightThe app that registered the launch item (may be set)
RegistrantIDProcessIDProcess ID of the app that registered the launch item (may be set)
ActiontextWhether a launch item was added or removed, e.g. ACTION_ADD
ItemTypetextThe kind of item that was registered, e.g. ITEM_TYPE_AGENT, ITEM_TYPE_DAEMON
LegacybooleanWhether or not the launch item is a legacy plist
ManagedbooleanWhether or not the launch item is managed by MDM
ItemUserUserInfoUser information related to the launch item
ItemPathtextThe location of the launch item
AppPathtextThe path of the app the launch item is attributed to
ExecutablePathtextIf available, the associated executable path from the launch item plist