Summary
Callback URLs and wallet addresses occasionally appear in log output when error context is captured naively. A shared masking helper should be applied before any structured log write to ensure sensitive fields never appear in plain text.
Scope
- Add
maskSensitive(obj: Record<string, unknown>): Record<string, unknown> helper
- Mask any key matching:
url, callback, address, webhook_url, recipient — replace value with [REDACTED]
- Apply the helper in all structured log calls that accept an arbitrary context object
- Add unit tests: masked key present →
[REDACTED], unmasked key → value unchanged, nested object → nested keys masked
Acceptance Criteria
ETA: 12 hours
Coordinate on Telegram
Summary
Callback URLs and wallet addresses occasionally appear in log output when error context is captured naively. A shared masking helper should be applied before any structured log write to ensure sensitive fields never appear in plain text.
Scope
maskSensitive(obj: Record<string, unknown>): Record<string, unknown>helperurl,callback,address,webhook_url,recipient— replace value with[REDACTED][REDACTED], unmasked key → value unchanged, nested object → nested keys maskedAcceptance Criteria
[REDACTED]ETA: 12 hours
Coordinate on Telegram