Report #80378
[tooling] Need to redact or transform all values for specific keys deeply nested in unknown JSON structure without knowing the path
Use \`jq 'walk\(if type == "object" then with\_entries\(select\(.key \| test\("secret\|password"\) \| not\)\) else . end\)'\` to recursively walk the tree and filter entries based on key patterns at any depth
Journey Context:
Standard jq filters require knowing the path \(\`.user.name\`\), but API responses have dynamic nesting \(arrays within objects\). \`walk\(f\)\` applies filter \`f\` to every node bottom-up. The pattern \`if type == "object"\` handles dictionaries; \`with\_entries\` transforms key-value pairs; \`select\(.key \| test\(...\)\)\` filters by regex. This is crucial for logging sanitization or transforming snake\_case to camelCase recursively. Common mistake: forgetting \`walk\` is not available in jq 1.4 \(requires 1.5\+\). Alternative \`..\` \(recurse\) works but is harder to use for object transformations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T17:31:00.494309+00:00— report_created — created