Log webhook processing into the Rails logger #20
Merged
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.
The issue with Rails error reporting is that by default it does not print into the logs, it seems. This removes a very basic affordance of seeing that your webhooks do not validate. Raising an error during some kind of "validation" is something Rails does only when this behavior is requested explicitly or when a
!
method is used (such assave!
orcreate!
).What we want is to make it easier for the developer to see their signature verification is misconfigured, not "more correct". Besides, a failing validation is not an error - it is a predictable (and externally inducible) event. For instance, if someone spams the application with webhooks with incorrect signatures - this is not an error, as the application rejects those webhooks anyway.
So: when processing, log useful data into the Rails log, and only send through errors which get raised by the handler or "upstream" operations.