-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add webhook-http-client, which is based on hyper, enabling several critical improvements: * Default filtering of endpoints that resolve to private address space, with ability to add CIDR exceptions as needed * Case-sensitive HTTP1 headers -- although HTTP spec states that headers are not case-sensitive, in practice many widely deployed web-servers expect to support case-sensitive headers. This requires a fork of hyper, which currently has but does not expose support for case-sensitive headers. * Assurance that the `host` header appears first in outgoing HTTP requests. Although HTTP spec does not prescribe an order for headers, in our experience, many web-servers will fail if the `host` header does not appear first in request headers. We ensure this by manually adding the header ourselves rather than relying on hyper to do so. * Use `openssl` instead of `rusttls` for outbound webhooks. In our experience, many widely deployed webservers use "weak" ciphers that rusttls refuses to support, leaving us with no choice but to rely on openssl libraries. * Support for soft-limiting of concurrent worker tasks. Unbounded concurrent worker tasks can easily overwhelm a system. This sets a default of 500 tasks with support for configuring other limits or setting unlimited (`0`) concurrent tasks * Refactor message dispatch code for clarity. Dispatch code is now broken into separate methods: `prepare_dispatch`, `make_http_call`, `handle_successful_dispatch`, and `handle_failed_dispatch` with the dispatch itself having different types depending on its stage in the dispatch process. Other function names have also been changed for improved clarity. * Prevent worker from shutting down when there are active tasks. * Avoid multiple DB calls for message-destination insert/retrieval
- Loading branch information
Showing
16 changed files
with
1,766 additions
and
404 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,5 @@ | ||
[workspace] | ||
members = ["svix-server", "svix-server_derive"] | ||
|
||
[patch.crates-io] | ||
hyper = { git = "https://github.com/svix/hyper/", rev = "b901ca7c" } |
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.