Skip to content

Releases: svix/svix-webhooks

Version 0.61.0

01 Jul 17:50
7f8601a
Compare
Choose a tag to compare

Highlights

  • Server: normalize health status output to be in lowercase.
  • Server: implement application portal endpoint and limited access tokens for it.
  • Server: add endpoint stats endpoint for getting endpoint statistics.
  • Server: add support for JSON log format for use in cloud environments.
  • Server: add configuration options for the max pool size for DB and Redis connection pools.
  • Server: add CORS headers and support pre-flight requests for use from the browser.
  • Server: add a configuration option to only allow https endpoint URLs.
  • Server: support passing an org_id when generating JWTs (svix-server jwt generate).
  • Lib/Python: update httpx dependency to the latest version.
  • Lib/Rust: fix mixup with validation errors marked as HTTP errors and vice-versa.

What's Changed

  • Server: clarify the error message to show migrations have ran. by @tasn in #516
  • Server: use correct timestamp for attempt's id and created by @tasn in #517
  • Send operational webhooks from worker and endpoint API by @svix-daniel in #508
  • Server: enable redis persistence in example docker-compose. by @tasn in #518
  • fix: Endpoint spelling in some error messages and comments by @daniel-deutsch-benchling in #519
  • Implement basic wait-for functionality by @svix-daniel in #484
  • Server: add Cargo.lock to Git by @tasn in #520
  • Server: Add Cache support for getting/setting Strings and raw bytes by @jaymell in #521
  • Server CI: ensure lockfile is frozen and separate build stage. by @tasn in #523
  • Server CI: change --frozen to --locked due to git dep by @tasn in #526
  • Server: split signature and header generation. by @tasn in #524
  • Fix clippy lints for beta Rust version by @svix-daniel in #530
  • Implement basic OpenTelemetry support by @svix-daniel in #522
  • Add tracing spans to worker by @svix-daniel in #529
  • Add missing period in README by @svix-daniel in #532
  • Support TLS for Redis by @svix-dylan in #531
  • Implement jitter on message dispatch retries by @svix-daniel in #533
  • Server: support accepting msg payload also as "data". by @tasn in #536
  • Server: use the rand crate rather than getrandom by @tasn in #537
  • Bump version and update changelog. by @tasn in #535

New Contributors

Full Changelog: v0.60.0...v0.61.0

Version 0.60.0

15 Jun 17:02
450c11f
Compare
Choose a tag to compare

Highlights

  • Server: normalize health status output to be in lowercase.
  • Server: implement application portal endpoint and limited access tokens for it.
  • Server: add endpoint stats endpoint for getting endpoint statistics.
  • Server: add support for JSON log format for use in cloud environments.
  • Server: add configuration options for the max pool size for DB and Redis connection pools.
  • Server: add CORS headers and support pre-flight requests for use from the browser.
  • Server: add a configuration option to only allow https endpoint URLs.
  • Server: support passing an org_id when generating JWTs (svix-server jwt generate).
  • Lib/Python: update httpx dependency to the latest version.
  • Lib/Rust: fix mixup with validation errors marked as HTTP errors and vice-versa.

What's Changed

  • Rename HealthStatusVariants to lowercase via serde by @svix-daniel in #491
  • Implement Dashboard Access Endpoint by @svix-daniel in #488
  • Add endpoint stats endpoint by @svix-daniel in #493
  • Cleanup OpenAPI generation and also run Python by @tasn in #494
  • Implement support for a log_format cfg var by @svix-daniel in #496
  • Make corrections to JSON log format by @svix-daniel in #499
  • Work around panic caused with JSON logs by @svix-daniel in #500
  • Add cfg for max pool connections to DBs by @svix-daniel in #497
  • Python: update httpx and openapi-python-client. by @tasn in #502
  • Add changing region in dashboard access endpoint by @svix-daniel in #503
  • Server: fix caching dependencies for docker builds by @tasn in #504
  • Fix clippy warning caused by clap derive macro by @svix-daniel in #505
  • Update clap version to latest in Cargo.toml by @svix-daniel in #506
  • README: clarify the instructions for generating JWT tokens. by @tasn in #507
  • Server: add support for CORS and pre-flight requests. by @tasn in #509
  • Server: add a configuration to only allow HTTPS by @tasn in #511
  • Server: make the application portal URL configurable. by @tasn in #512
  • Server: support passing an org_id to the JWT generate command. by @tasn in #513
  • Swap validation and HTTP error variants in error conversion code by @svix-daniel in #514
  • Bump version and update changelog. by @tasn in #515

Full Changelog: v0.59.1...v0.60.0

Version 0.59.1

07 Jun 16:29
ae10175
Compare
Choose a tag to compare

Highlights

  • Libs/Csharp: expose missing getters which prevented a lot of the lib's functionality to be used.

What's Changed

  • C#: expose the missing getters for making it useful by @tasn in #486
  • Bump version and update changelog. by @tasn in #487

Full Changelog: v0.59.0...v0.59.1

Version 0.59.0

02 Jun 15:31
3b0023d
Compare
Choose a tag to compare

Highlights

  • Server: make the health endpoint more useful by adding more status checks to it.
  • Server: parse retry_schedule as an array rather than string.
    • People should use the new syntax: [1, 2], though the old syntax is still supported for backwards compatibility.
  • Server: add validation to ensure endpoint URL scheme is either http or https.
  • Libs/Python: show a more useful error for obviously malformed secrets.
  • Libs/JavaScript: show a more useful error for obviously malformed secrets.

What's Changed

  • JavaScript/Python: handle obviously malformed secrets by @tasn in #475
  • README: mention docker versioned tags. by @tasn in #476
  • Validate URL scheme is http or https for EndpointIn by @svix-daniel in #479
  • Config: parse retry_schedule as an array not string by @tasn in #482
  • Add basic status checks to health endpoint by @svix-daniel in #477
  • Bump version and update changelog. by @tasn in #483

Full Changelog: v0.58.2...v0.59.0

Version 0.58.2

27 May 17:58
ebc9a4e
Compare
Choose a tag to compare

Highlights

  • Libs and server: update OpenAPI spec

What's Changed

  • Update OpenAPI spec for libs and server. by @tasn in #473
  • Bump version and update changelog. by @tasn in #474

Full Changelog: v0.58.1...v0.58.2

Version 0.58.1

27 May 15:25
38d1b4b
Compare
Choose a tag to compare

Highlights

  • Server: Fix logging configuration in production builds to actually be respected.
  • Server: improve how we run Redis migrations.

What's Changed

  • CI: Improve the security checks for rust server and lib by @tasn in #467
  • CI: Fix Rust library release code by @tasn in #468
  • README: add crates.io badge. by @tasn in #469
  • Fix logging configuration in production builds. by @tasn in #470
  • Run migrations in a loop with exponential delay by @svix-daniel in #471
  • Bump version and update changelog. by @tasn in #472

Full Changelog: v0.58.0...v0.58.1

Version 0.58.0

26 May 17:31
a306242
Compare
Choose a tag to compare

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, and x.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

06 May 19:36
af6016b
Compare
Choose a tag to compare

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

05 May 19:58
fb35470
Compare
Choose a tag to compare

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

29 Apr 20:48
67d2796
Compare
Choose a tag to compare

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() with expect() 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

Full Changelog: v0.56.0...v0.57.0