feat: add --omit to remove JSON response fields#303
Open
jongio wants to merge 1 commit into
Open
Conversation
Adds a repeatable --omit flag that removes fields from a JSON response before output, the structural complement to --redact (which masks values in place). Reuses the redact dotted-path walker, where * matches every array element. Runs on the same JSON output paths as redaction; raw and binary output is left unchanged with a note on stderr, and a path that matches nothing is a no-op. Closes #297 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
|
🚀 Website Preview Your PR preview is ready! 📎 Preview URL: https://jongio.github.io/azd-rest/pr/303/ This preview will be automatically cleaned up when the PR is closed. |
Contributor
🚀 Test This PRA preview build ( One-Line Install (Recommended)PowerShell (Windows): iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/install-pr.ps1) } -PrNumber 303 -Version 0.5.0-pr303"Bash (macOS/Linux): curl -fsSL https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/install-pr.sh | bash -s 303 0.5.0-pr303UninstallPowerShell (Windows): iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/uninstall-pr.ps1) } -PrNumber 303"Bash (macOS/Linux): curl -fsSL https://raw.githubusercontent.com/jongio/azd-rest/main/scripts/uninstall-pr.sh | bash -s 303Build Info:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a repeatable
--omit <dotted-path>flag that removes fields from a JSON response before it is printed or written to--output-file.It is the structural complement to
--redact: redaction masks a value in place, omission drops the key (or every element of a matched array) so the field no longer appears in the output.Why
--redactcan hide a value, but the key stays in the payload. When you want a smaller, cleaner response for a script, a diff, or a snapshot, you need the field gone, not masked.--omitfills that gap and reuses the same dotted-path syntax people already know from--redact.How
--omitpersistent flag (repeatable) wired throughconfig.Config.Omitand the config snapshot, mirroring--redact.omitJSONBodyparses the body withUseNumber, walks each dotted path, and re-encodes. It reusessplitRedactPathfrom the redact path walker, where*matches every array element.writeResponseOutputright after the redact step and before flatten, so the ordering is mask then delete then reshape.Examples
Tests
omit_test.go: object path, array wildcard, wildcard empties an array, miss is a no-op, numbers preserved, top-level key, invalid JSON returns an error.mage testpasses;mage buildandmage fmtclean.Docs
Closes #297