Skip to content

Conversation

simoleone
Copy link
Contributor

Hello!

It is useful to be able to redact data values in production environments. This prevents PII and other sensitive data from reaching logging and error reporting systems. It's especially useful for response validation error handling, when the server will typically respond with an HTTP 500 and a generic error message, and an exception reporting tool will receive the raw exception.

This PR adds an option to do this, and modifies all of the exception classes which contain a value to support redacting the value. I also refactored the Options class to pass it around throughout the validation code instead of destructuring it into the individual options it contains. This is a bit more flexible if more options are needed in the future.

@simoleone
Copy link
Contributor Author

👋 Hello! Is there any chance something like this could be incorporated into the gem? I'm happy to rebase it etc if so 😄

cc/ @ota42y @geemus (not sure who all the active maintainers currently are, tagging a few of you!)

@geemus
Copy link
Collaborator

geemus commented Oct 15, 2025

@simoleone Hey, thanks for pinging, I think this predated my active involvement so wasn't quite on my radar. I'd be happy to work with you on it if you'd like to rebase it. I'll add some comments and questions now to keep this moving.

Copy link
Collaborator

@geemus geemus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, just a couple points to discuss and a rebase and we will hopefully be in good shape to proceed.

@config.fetch(:validate_header, true)
end

def redact_response_errors
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From looking at validators/etc, I think maybe this would impact any validations (not just response ones). Could you verify? Especially if that is true, it probably would make sense to just have this be named redact_errors.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, it would be great to add one or more tests to verify the behavior for things other than response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants