Activity Logs
What activity logs store, how sensitive data is protected, and how change history is shown.
Last updated
Activity logs are the system history for important actions. They answer the practical questions:
- who did something
- what changed
- when it happened
- which record it affected
- whether it succeeded or failed
Data captured
Each log record can include:
- actor snapshot: actor ID, actor type, actor name, actor branch, actor role
- event: action, entity type, entity ID, action timestamp
- changes:
changeBefore,changeAfter,diff - workflow state:
recordStatusBefore,recordStatusAfter - request context: request ID, trace ID, session ID, path, HTTP method, IP, user agent
- technical context: service and environment
- business context: module, tags, metadata
- outcome: status, error message, duration
- compliance flags:
isSensitive,retentionPolicy
This is why the page can support both operational review and audit review.
Redaction and encryption rules
Sensitive fields are sanitized before storage.
Redacted fields
The following keys are always redacted to [REDACTED]:
passwordpasswordconfirmationoldpasswordnewpasswordcurrentpasswordconfirmpasswordtokenaccesstokenrefreshtokenverificationtokenpinclientsecretapikeyotp
Any key containing password is also redacted, except policy settings such as passwordminlength, passwordhistory, and related password policy configuration keys.
Encrypted PII fields
The following keys are treated as PII fields:
-
ssn -
socialsecuritynumber -
nationalid -
pan -
cardnumber -
cvv -
cvc -
email -
useremailprivate -
agentemail -
accountemail -
contactpersonemail -
invitedemail -
phone -
phonenumber -
mobile -
userphoneofficial -
userphoneprivate -
agentphones -
accountphone -
contactpersonphone -
address -
street -
addressphysical -
addresshome -
addresspostal -
agentaddress -
dob -
dateofbirth -
iban -
accountnumber -
For
HIGHsensitivity events, these values are stored encrypted (ENC:v1:...). -
For
LOWandMEDIUMsensitivity events, these values are stored as[PII_REDACTED].
Truncated large values
Fields like base64, image, file, buffer, and pdf are truncated to keep logs readable.
Decryption access
Encrypted PII can be decrypted only on detail read with explicit permission.
- Detail endpoint supports
?decrypt=true. activity_log:decryptpermission is required.- Decrypt attempts are themselves logged as security-sensitive actions.
- If decryption fails for a value, it is returned as
[DECRYPTION_FAILED].
Diff behavior in the frontend
The frontend uses the server-provided diff payload instead of recomputing changes.
- The detail page shows
View Changesonly when diff data exists. - Diff rows are grouped as modified, added, and removed.
- Modified rows show old value and new value side by side.
- When data is encrypted or redacted, the viewer shows clear locked/redacted indicators.
- If the user has decrypt permission, they can toggle
Decrypt PIIin the diff dialog.
What this gives you
Activity logging provides a reliable operational trail, protected handling of sensitive values, and a readable change history for investigation and support.