Releases: svix/svix-webhooks
Releases · svix/svix-webhooks
Version 0.58.0
Highlight
- Lib/Rust: add a Rust API client + webhook verification library!
- Lib/Python: fix package installation on Windows.
- Lib/Csharp: make some parameters optional for better ergonomics.
- Server: remove
updated_at
field from static entities. - Server: change to a more efficient first message dispatch.
- Server: change the redis queue to use redis streams.
- Server: serve nice API docs under
/docs
. - Server: start version tagging the Docker images. (
latest
,x
, andx.y
). - Server: allow PATCH to delete header values by passing null.
- Server: make it possible to change the hard pagination limits to be soft.
- Server: make the redis queue implementation automatically recover from redis crashes.
- Server: add a
--run-migrations
flag to automatically run migrations (flag still passed in Docker). - Server: fix worker to not follow HTTP redirects when calling webhooks.
What's Changed
- Remove updated_at from static entities by @svix-dylan in #430
- Server CI: treat warnings as errors and fix them. by @tasn in #431
- Python: fix issue with installing package on windows. by @tasn in #432
- Tests: Remove queue overrides / limit concurrency by @jaymell in #433
- Server: add automatic security auditing for PR/main. by @tasn in #285
- Server: add security auditing badge to readme. by @tasn in #434
- Change to a more efficient first message dispatch by @svix-dylan in #425
- Rewrite Redis-based queue to use Streams functionality by @svix-daniel in #415
- Serve docs from the server by @svix-dylan in #435
- Write migration for the legacy processing queue to stream-based queue by @svix-daniel in #438
- Add Docker release to GitHub Actions by @svix-daniel in #439
- Test queue with many consumers by @svix-daniel in #441
- Queue: pass the configuration as reference. by @tasn in #443
- Build/release ARM64 Docker images on release by @svix-daniel in #444
- Allow PATCH deletion of header values via null by @svix-dylan in #440
- Add soft and hard caps to pagination limits by @svix-daniel in #445
- Keep Redis queue worker alive after Redis interruption by @svix-dylan in #446
- Rust: Update redis-cluster dependency by @jaymell in #449
- --run-migrations option flag by @svix-dylan in #451
- Let's try out the codeball automatic code reviewer. by @tasn in #452
- Additional testing by @svix-dylan in #450
- Csharp: make options optional for all list endpoinst. by @tasn in #455
- Remove the codeball automatic code reviewer. by @tasn in #456
- Add rust library by @tasn in #454
- Disallow redirection from worker's HTTP client by @svix-daniel in #457
- Add test for many consumers with delayed messages by @svix-daniel in #459
- Enable running tests in parallel by @svix-daniel in #461
- Disable ARM64 Docker releases to avoid starving GHA runner by @svix-daniel in #463
- Release Docker tags with version numbers on GitHub release by @svix-daniel in #464
- Bump version, update changelog, and fix issue with release script. by @tasn in #466
Full Changelog: v0.57.2...v0.58.0
Version 0.57.2
Highlight
- Server: add support for get-or-create when creating applications.
- C#: fix library compilation (broke in the previous release.
What's Changed
- C#: fix library compilation (change in endpoint headers) by @tasn in #424
- Rust: TaskQueueReceive Receive to ReceiveAll by @jaymell in #418
- Application: add missing get-or-create to create endpoint. by @tasn in #428
- Bump version and update changelog - v0.57.2 by @tasn in #429
Full Changelog: v0.57.1...v0.57.2
Version 0.57.1
Highlights
- Libs: fix all libraries to handle 429 (rate limiting).
- Server: update docker image to use Rust 1.60
- Server: preserve header name capitalization for custom endpoint headers.
- Server: gracefully handle non-textual webhook responses (so endpoints returning non strings).
- Server: delete message content after the specified retention period.
What's Changed
- Server CI: fix caching to actually work by @tasn in #414
- Gracefully handle non-text endpoint response bodies by @svix-dylan in #416
- Support
payloadRetentionPeriod
for messages by @svix-dylan in #405 - Preserve header key capitalization by @svix-dylan in #419
- Docker: bump rust dependency and add missing dependency. by @tasn in #420
- Update OpenAPI spec. by @tasn in #421
- Update code following OpenAPI update. by @tasn in #422
- Bump version and update changelog for v0.57.1 by @tasn in #423
Full Changelog: v0.57.0...v0.57.1
Version 0.57.0
Summary
- Server: add support for idempotency.
- Server: add prev_iterator support to endpoints that should support it.
- Server: make parameter validation stricter in various places.
- Server: improve error messages for bad configurations.
- Server: support for Redis clusters.
- Server: add a memory cache backend.
- Server: fix health endpoint to return an empty response to match its status code (204).
- Server: fix issue that can cause messages to be sent more than once when clients timeout.
- Server: fix support for endpoint id in the list attempted messages and list attempted destinations APIs.
- C#: add C# API client library.
What's Changed
- Add EndpointSecret Validation by @jaymell in #377
- Add prev_iterator support to the message list endpoint by @svix-daniel in #379
- Validate input strings against control sequences by @svix-dylan in #381
- validate against forbidden header keys & prefixes by @svix-dylan in #382
- Add additional endpoint integration tests by @jaymell in #383
- Test utils: use tokio sleep, not blocking sleep when retrying. by @tasn in #384
- Rust: Streamline deserialization/validation of endpoint secrets by @jaymell in #385
- Rust: Refactor
test_recovery_expected_retry_counts
integration test by @jaymell in #387 - test that serde’s JSON serializations are compact by @svix-dylan in #389
- Implement idempotency middleware by @svix-daniel in #367
- Replace
unwrap()
withexpect()
by @svix-dylan in #391 - Add Svix Api client for csharp by @IAmArchaic in #248
- Cache abstraction and MemoryCache implementation by @svix-dylan in #393
- Rust: Support clustered redis by @jaymell in #392
- Update OpenAPI spec. by @tasn in #395
- Multiple Commits Addressing Prior Comments by @jaymell in #394
- Patch health endpoint to only return a status code by @svix-dylan in #397
- Rust: Migrate legacy redis queues on startup by @jaymell in #398
- Rust: Add additional test-run with
None
cache type by @jaymell in #399 - Rust: Ensure Redis queue message IDs are refreshed when re-queuing by @jaymell in #400
- Rust: Improve redis queue migration tests by @jaymell in #401
- Change default cache type to memory and improve its docs. by @tasn in #402
- Remove redundant default config and improve its docs by @tasn in #403
- Idempotency: add the service first to fix logging. by @tasn in #406
- Always use ID or UID when accepting apps/endpoints in the API. by @tasn in #407
New Contributors
- @svix-dylan made their first contribution in #381
- @IAmArchaic made their first contribution in #248
Full Changelog: v0.56.0...v0.57.0
Version 0.56.0
What's Changed
- Extend
prev_iterator
implementation by @svix-daniel in #354 - Tests: Recover failed webhooks by @jaymell in #365
- Tests: Add additional endpoint integration tests by @jaymell in #366
- Bump axum version by @svix-daniel in #368
- Fix clippy lint in several points in tests/utils/mod.rs by @svix-daniel in #369
- Add missing trailing slash to two more test utils. by @tasn in #371
- Rust Webhook Signature by @jaymell in #370
- Python: set with_content to false when making API calls. by @tasn in #375
- Remove unwrap in create_message. by @tasn in #372
- Python libs: fix user agent to actually work. by @tasn in #373
- Python: set a 15s read timeout. by @tasn in #378
- Endpoint key-rotation integration test by @jaymell in #376
- Bump version and update changelog. by @tasn in #380
Full Changelog: v0.55.0...v0.56.0
Version 0.55.0
What's Changed
- Add basic message dispatch tests by @svix-daniel in #321
- Change base Docker image to debian-slim by @tasn in #331
- Update SeaORM to 0.6.0 by @svix-daniel in #333
- Adds List Attempted Messages Endpoint by @svix-daniel in #332
- Switch to KsuidMs for extra precision. by @tasn in #335
- List attempted messages: sort by ID, not by CreatedAt. by @tasn in #336
- Add implementation for "List Attempts by Endpoint" endpoint by @svix-daniel in #338
- Ensure queue type in tests is in-memory. by @svix-daniel in #339
- Implement
Validate
forIdOrUid
types by @svix-daniel in #340 - Cleanup: make generate_token accept an org_id. by @tasn in #341
- Reorganize integration tests based on Rust best practices. by @tasn in #342
- Tests: remove the integration_test feature and rely on cargo. by @tasn in #343
- Implement missing endpoints for the attempt API by @svix-daniel in #345
- Note deprecated functions/endpoints in attempts API by @svix-daniel in #346
- Simplify
Validate
implementation forIdOrUid
types by @svix-daniel in #347 - Add/Fix Query Parameters for
message
andattempt
modules by @svix-daniel in #348 - Server: Add query parameter validation tests by @jaymell in #349
- Adds
prev
iterators as query filters forlist_attempts_by_endpoint
andlist_attempts_by_msg
by @svix-daniel in #350 - Bump SeaORM version to 0.7.1 by @svix-daniel in #353
- Add payload validation tests by @jaymell in #351
- Server: Add
with_content
query param to appropriate endpoints by @jaymell in #352 - Db models: use the same timestamp for ID and created_at. by @tasn in #355
- Attempt: remove redundant comment (fixme already fixed). by @tasn in #356
- Application: add tests to ensure correct UID behavior. by @tasn in #357
- Application: add another uid test and improve list test by @tasn in #358
- Tests: make a common test for testing list endpoints. by @tasn in #359
- Bump minimist from 1.2.5 to 1.2.6 in /javascript by @dependabot in #362
- Tests: use correct way of asserting results. by @tasn in #361
- Server: Worker HTTP error handling fixes by @jaymell in #360
- Ignore VSCode data by @jaymell in #364
Full Changelog: v0.54.2...v0.55.0
Version 0.54.2
What's Changed
- Correct release path in release CI by @svix-daniel in #327
Full Changelog: v0.54.1...v0.54.2
Version 0.54.1
What's Changed
- Correct CI errors in release publishing and
aarch64
building from PR #325 by @svix-daniel in #326
This release doesn't actually do what it was meant to do.
Full Changelog: v0.54.0...v0.54.1
Version 0.54.0
What's Changed
- Tests: EmptyResponse -> IgnoredResponse and fix parsing issue by @tasn in #317
- Test endpoint related endpoints by @svix-daniel in #315
- Divide the endpoint module into more reasonably lengthed files by @svix-daniel in #320
- Implement a more detailed 422 response body by @svix-daniel in #324
- Enable more release targets by @svix-daniel in #325
- Libs: Retry headers by @svix-stephanie in #323
Full Changelog: v0.53.2...v0.54.0
Version 0.53.2
What's Changed
Full Changelog: v0.53.1...v0.53.2