Skip to content

Latest commit

 

History

History
1029 lines (797 loc) · 46.1 KB

File metadata and controls

1029 lines (797 loc) · 46.1 KB

Changelog

Note: Server and Bridge changelogs

The Svix Server changelog has moved to server/ChangeLog.md. The Svix Bridge changelog has moved to bridge/ChangeLog.md.

Unreleased

  • Libs/All: AutoConfig v2. Add support for updated AutoConfig token format (auto_v2 prefix)
  • Libs/All (Breaking): AutoConfigConsumer.subscribe() return type changed from EndpointOut to DestinationOut
  • Libs/PHP (Breaking): Remove AutoConfigConsumer class

Version 2.3.0

  • Libs/All: Add new streaming sink types
  • Libs/Ruby: Add missing accessors for connector, streaming APIs
  • Libs/Ruby: Accept symbol keys in struct enums (thanks @anishfyi)
  • Libs/Ruby: Fix various small bugs (thanks @clinejj and @anishfyi)

Version 2.2.0

  • Libs/JavaScript (Breaking): Remove JSON parsing from Webhook.verify, for consistency with SDKs for other languages (this was meant to be part of the recently-released v2.0.0 but forgotten for JavaScript and PHP - we're yanking v2.0.0 and v2.1.0 of the JS SDK in response)
  • Libs/PHP (Breaking): Remove JSON parsing from Webhook.verify, for consistency with SDKs for other languages (this was meant to be part of the recently-released v2.0.0 but forgotten for JavaScript and PHP - we're yanking v2.0.0 and v2.1.0 of the PHP SDK in response)
  • Libs/Rust: Re-export Svix, Webhook, AutoConfig and AutoConfigConsumer, Error and Result at the crate root

Version 2.1.0

  • Libs/All: Add support for new bulk-expunge endpoint (svix.message.bulkExpungeContent)
    • For Svix Server OSS, this endpoint is available as of v1.101.0
  • Libs/Rust: Add Svix::server_url accessor method

Version 2.0.0

  • Libs/All (Breaking): The PatchConfig-suffixed types are now ConfigPatch-suffixed
    • In some libraries, it was previously not possible to distinguish between 'keep this field as-is' and 'unset this field' in the SDK
  • Libs/All (Breaking): All the non-patch Config types like S3Config, GoogleCloudPubSubConfig etc. were split into separate *ConfigIn and *ConfigOut types
    • This fixes response deserialization for some of these types
  • Libs/All (Breaking): Rename SinkOtelTracingConfig* to OtelTracingConfig*
  • Libs/All (Breaking): Mark many sink config fields optional in preparation for future changes (this primarily impacts authentication-related parameters that represent one of multiple authentication methods supported upstream)
  • Libs/Rust (Breaking): Remove Configuration from the public API
    • The access token can still be accessed using svix.token(), if you were using any of the other fields let us know!
  • Libs/Rust (Breaking): Upgrade public dependency js_option to 0.2.0
  • Libs/Kotlin: Add missing APIs background-task, connector, environment, and health
  • Libs/Rust, Libs/JavaScript, Libs/Python, Libs/Go: Strip trailing slashes from a user-provided server URL, so https://api.svix.com/ and https://api.svix.com behave the same
  • Libs/Ruby, Libs/PHP: The timestamp tolerance used by webhook verification can now be customized through a tolerance constructor argument (in seconds; defaults to the previously hardcoded value of five minutes)

See also the changes for v2.0.0-rc.1 below.

Version 2.0.0-rc.2

  • Libs/JS: Fix a publishing issue

Version 2.0.0-rc.1

Breaking changes:

  • Libs/All, CLI:
    • Remove deprecated operations and most deprecated fields
    • Default with_content query parameter available in some message- and attempt-related operations to false (for example: create-message no longer mirrors back the message payload, list message attempts by endpoint no longer returns response payloads by default)
    • Rename filterTypes to eventTypes in endpoint and related models
    • Rename the "update" operations for Applications, Endpoints, Event Types, Connectors, Ingest Sources, Streams, and Sinks to upsert; they always were create-or-update operations and this new name reflects that
    • Rename ingest.dashboard to ingest.authentication.consumer-portal-access
    • Rename endpoint.update-headers to endpoint.set-headers (same for ingest.endpoint etc.)
    • Rename EndpointRateLimitStatusOut to EndpointThrottleRateStatusOut
  • Libs/All:
    • Remove svix.operationalWebhookEndpoint in favor of svix.operationalWebhook.endpoint
    • Remove model types for operational webhooks (we might add them back later or provide a separate package - let us know if you want this!)
  • Libs/JavaScript:
    • Drop support for CommonJS
    • Change (sub)resource accessors from snake_case to camelCase, e.g. svix.operational_webhook to svix.operationalWebhook
    • Remove svix.endpoint.{headersUpdate, headersPatch} in favor of svix.endpoint.{setHeaders, patchHeaders}
  • Libs/Python:
    • Remove a handful of model type re-exports from the svix namespace; import them from svix.api or svix.models instead
    • Stop returning a parsed JSON object from Webhook.verify; if you were using this, simply call json.loads on the passed-in data after the verify call
  • Libs/Kotlin:
    • Upgrade to Kotlin 2.3.20
    • Change timestamps to be kotlin.time.Instants
  • Libs/Java:
    • Change type of throttleRate (in ApplicationIn, EndpointIn etc.) from Long to Short
    • Change type of batchSize and maxWaitSecs (in StreamSinkIn etc.) from Long to Short
  • Libs/Go:
    • Change (sub)resource accessors from properties to methods, e.g. svix.Ingest.Endpoint to svix.Ingest().Endpoint()
  • Libs/Rust:
    • Reorder constructor parameters to a more natural order. This only affects some structs with a ::new function that takes more than one parameter. Most notably, EventTypeIn::new()s name and description parameters have been swapped.
    • Update timestamp parameters from being represented as Strings to being chrono::DateTime<Utc>s
    • Some i32s (most notably, the limit parameter in list operation types) were updated to more appropriate integer types
    • Change some Vecs to BTreeSets
    • Change some HashMaps to BTreeMaps
    • Remove model re-exports from svix::api; import them from svix::models instead
    • Drop support for v0.2 of the http crate
    • Remove non-sensical Default implementations
    • Remove constructors for *Out models, which often had too many parameters to be readable, and could get broken by newly introduced fields
    • Remove impl From<String> for svix::error::Error
  • Libs/Ruby:
    • Stop returning a parsed JSON object from Webhook.verify
  • Libs/PHP:
    • Make options parameters on GET operations non-nullable (but they still have a default value, so this only affects calls that explicitly passed a null)

Other improvements:

  • Libs/(Java and Kotlin): Upgrade OkHttp to 5.4.0

Version 1.99.1

  • Libs/JavaScript: Fix empty retryScheduleInMs not being honored
  • Libs/JavaScript: Fix 0 entries in retryScheduleInMs not being honored

Version 1.99.0

  • CLI: Use wolfi as the image base instead of Debian, shrinking the Docker image by 77% and removing all open CVEs
  • Libs/C#: Fix a bug that made the 'canceled' message-attempt status opt-in unreliable (see also changelog for 1.95.0)

Version 1.98.0

  • CLI: Set OCI metadata on Docker images
  • CLI: Embed package metadata in compiled binaries on Linux

Version 1.97.0

  • CLI: Ignore EPIPE when printing output
  • Libs/All: Support customizing expiration (grace period) of old endpoint secret when rotating
  • Libs/Python: Bump minimum-supported Python interpreter version to 3.9
  • Libs/Python: Fix memory and file-descriptor leak from excessively constructing httpx clients

Version 1.96.1

  • Libs/Java: Upgrade jackson dependency to v2.21.4
  • Libs/Rust: Make MessagePollerv2Consumer*Options public

Version 1.96.0

  • CLI (New): Add --token option to svix listen
  • Libs (New): AutoConfigConsumer SDK to consume Polling Endpoints
  • Libs/Csharp: Accept a valid signature when it is last in a multi-sig header (thanks [@devteamaegis])
  • Libs/All: Stop sending with_content parameter to the backend, handle it client-side

Version 1.95.2

  • Libs/Kotlin: Webhooks AutoConfig SDK
  • Libs: Add health.get to Go, Python and Rust SDK
    • It was previously missing from these SDKs for historical reasons
  • Libs/All: Add versions in user-agent header
  • Libs/Go: Add additional internal management APIs

Version 1.95.1

  • Libs/Python: Fix release workflow (1.95.0 of the Python SDK failed publishing)

Version 1.95.0

  • Libs/All: Enable server-side support of 'canceled' message-attempt status by default
    • If you were previously comparing attempt statuses against 'success', note that the result of the comparison will now change for messages canceled by a transformation script
  • Libs/Python: Move from setup.py to PEP-518-compliant pyproject.toml build system
  • Libs/Python: Clarify that the minimum-supported Python interpreter version is 3.8
  • Libs/Python: Actually run tests against all supported python versions
  • Libs/PHP: Fix deprecation warning for DateTimeImmutable construction from null (thanks @VincentLanglet)

Version 1.94.0

  • Libs (New): Webhooks AutoConfig SDK
  • Libs/Java: Restore compatibility with Java 1.8 in Webhooks verification

Version 1.93.0

  • CLI: Show input / output JSON examples in --help output
  • Libs/Java: Restore compatibility with Java 1.8

Version 1.92.2

  • Libs/JavaScript: Remove dependency on uuid (thanks @ulrichstark)

Version 1.91.1

  • Fix docker build

Version 1.91.0

  • Libs/Ruby: various fixes to the ruby sdk

Version 1.90.0

  • Libs/All: Update to latest Svix Cloud spec

Version 1.89.0

  • Libs/Python: Set __str__ on errors

Version 1.88.0

  • Libs/Go: Add support for v1.management.authentication.patch-api-token (Internal endpoint)
  • Libs/Go: Add TransportWrapper option to SvixOptions (thanks @piotrdomagalski)

Version 1.86.0

  • Libs/All: Add support for v1.message.create-precheck (Svix Cloud exclusive endpoint)

Version 1.85.0

  • Libs/Ruby: Return nil if payload is empty, instead of attempting to parse as JSON (thanks @donovanlopez)
  • Libs/Rust: Bump MSRV to 1.88.0
  • CLI: Bump MSRV to 1.88.0

Version 1.84.1

  • Libs/JavaScript: Updated webhook verification logic to use official standard webhooks packages

Version 1.84.0

  • Libs/Python: Updated webhook verification logic to use official standard webhooks packages
  • CLI: support disabling TLS verification when relaying requests (svix listen)

Version 1.83.0

  • Libs/PHP: Add MessageIn::createRaw, allows you to create a raw (non-json) message

Version 1.82.0

  • Libs/All: Add support for connector UIDs
  • CLI: Add support for the Connector API
  • CLI: Add -v --verbose flag
  • CLI: Fix a bug in config file saving

Version 1.81.0

Version 1.80.0

  • Libs/PHP added support for $svix->application->getOrCreate

Version 1.79.0

  • Libs/Kotlin: Add SvixOptions to the com.svix.kotlin namespace
    • The un-namespaced symbol is kept as a typealias for backwards compatibility
  • Libs/Javascript: Add option to configure the fetch method

Version 1.78.0

  • Libs/Python: Fix bug preventing the generic webhook ingest source from being deserialized
  • Libs/Python: Add API for the new Svix Stream

Version 1.77.0

  • Libs/All: Add API for the new Svix Stream
  • Libs/PHP: Fix bug causing empty objects to be serialized as [] instead of {}
  • Libs/Rust: Upgrade rustls dependency version (thanks @GodTamIt)

Version 1.76.1

  • Libs/Go: Fix bug causing 422 errors on message.create with messages created using the NewMessageInRaw helper

Version 1.76.0

  • Libs/PHP: Added support for the full Svix SDK!

Version 1.75.1

  • Libs/Go: Fix bug preventing time.time query params from serializing correctly
  • Libs/All: Allow deleting endpoint headers through new deleteHeaders field in EndpointHeadersPatchIn

Version 1.75.0

  • CLI: Modify Dockerfiles to use cache mounts for improved build time; these now require Docker 1.2 or later to build
  • Libs/JS: Add support for custom retry schedule (thanks @KranzAklilu)

Version 1.74.1

  • CLI: Fix installation of ca-certificates in Docker images
    • These images were broken as of v1.72.0

Version 1.74.0

  • Libs/Rust: Add support for custom retry schedule (thanks @KranzAklilu)
  • Libs/Rust: Add support for connecting to the API through a proxy

Version 1.73.0

  • Libs/(Java and Kotlin): Fix bug causing runtime exceptions when unknown fields were sent from the server

Version 1.72.0

  • Libs/JavaScript: Use native fetch API

Version 1.70.1

  • Libs/All: Re-add endpoint.transformationPartialUpdate as a deprecated operation
    • It was removed through a rename in the previous version, which should not have happened

Version 1.70.0

  • CLI: Add svix seed command to create testing resources (thanks @KranzAklilu)
  • Libs/Go: Fix request retries not working (thanks @mixnblend!)
  • Libs/All: Revert accidental addition of some authentication APIs
  • Libs/All: Fix name and input structure for rarely used set-transformation route
    • Rename endpoint.transformationPartialUpdate to endpoint.patchTransformation
    • Replace EndpointTransformationIn with EndpointTransformationPatch
      • In some but not all the SDKs, these have slightly different field types
    • This is a breaking change, but based on server statistics this method is barely used by anybody

Version 1.69.0

  • Libs/Rust: Don't panic on invalid inputs to request building

Version 1.68.0

  • Libs/PHP: Handle Badly Formatted Signatures by @rodnaph in #1942
  • Libs/All: Automatically send an idempotency key on all outgoing post requests

Version 1.67.0

  • Libs/Go: Disable HTTP/2 for API calls because it was causing issues for some users
  • Libs/Python: Enable configuring a proxy for API requests
  • Libs/All: Add support for PandaDoc ingest source

Version 1.66.0

  • Libs/JavaScript: Fix response processing code for endpoints with an optional datetime field in the response body
  • Libs/PHP: Update minimum version of PHP to 8.0

Version 1.65.0

  • Libs/Python: Bring back the (deprecated) sync dashboard_access method, which was accidentally removed in v1.64.1
  • Libs/Csharp: The options argument to the SvixClient initializer is now optional.
  • Libs/Csharp: The SvixOptions.BaseUrl field is deprecated in favor of SvixOptions.ServerUrl
  • Libs/(Ruby and Kotlin): Add doc comments to class attributes
  • Libs/Go: Added a new <Enum>From<UnderlyingType> map to all enums. For example BackgroundTaskStatusFromString["running"] will result in BACKGROUNDTASKSTATUS_RUNNING
  • Libs/Go: Fixed bug where the correct content-type was not set on PUT requests

Version 1.64.1

  • Libs/JavaScript: Add HTTPValidationError, HttpErrorOut, ValidationError and ApiException to the top level exports.
  • Libs/Python: Specify minimum version of pydantic pydantic >=2.10 in setup.py.

Version 1.64.0

  • CLI: Add interactive login with dashboard.svix.com

Version 1.63.2

  • Libs/JavaScript: Fix deserialization for optional arrays
  • Libs/Python: Fix minimum version requirement for pydantic

Version 1.63.1

  • Libs/Python: Removed internal use of match statement, allowing python versions older than 3.10 to be used

Version 1.63.0

  • Libs, Cli: New Ingest source and Ingest endpoint APIs are now available.
  • Libs: New environment APIs (import, export) are now available.
  • Libs/Ruby: Fix bug causing application.get_or_create to raise a TypeError

Version 1.62.0

  • Libs/Python: The client will now reuse the same httpx Client across api calls

Version 1.61.4

  • Libs/(C#,Java,Kotlin,Rust): The type of BackgroundTaskFinishedEvent2.data changed from Data (a custom type) to Object(Java C#), serde_json::Value(Rust), Map<String, Any>(Kotlin)

Version 1.61.3

  • Libs/Javascript: Fix bug where a missing content-type header would cause some requests to fail

Version 1.61.2

  • Libs/Java and Libs/Kotlin: Fix bug introduced in v1.61.1, where message.create would return 422 on all requests

Version 1.61.1

  • Libs/Java (Breaking): The type of MessageIn.transformationsParams changed from Object to Map<String,Object>.
  • Libs/Java and Libs/Kotlin (Breaking): Due to an internal change in the underlining JSON de/serialization library, some JSON objects may not be serialized correctly. To address this MessageIn.payload now accepts a JSON encoded string instead of an Object (for Java) or Map<String, Any> (for Kotlin)
  • Libs/Go: Fix regression in Go lib, operations now return &svix.Error instead of svix.Error

Version 1.61.0

  • Libs/Ruby (Breaking): Ruby version changed from 2.7 to 3.4.2
  • Libs/Ruby (Breaking): Deprecated methods MessageAttempt.list and MessageAttempt.list_attempts_for_endpoint are removed

Version 1.60.1

  • Libs/Javascript: Fix regression causing json deserialization to throw exception in a few edge cases

Version 1.60.0

  • Libs/Java (Breaking): All uses of ListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptions
  • Libs/Java (Breaking): Deprecated methods MessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removed

Version 1.59.2

  • Libs/Go: Fixed regression where go >= 1.23 was needed, now Go >= 1.21 is supported

Version 1.59.1

  • Libs/JavaScript: Fixed regression introduced in version 1.59.0, types are now correctly exported

Version 1.59.0

  • Libs/Kotlin (VERY IMPORTANT): The parameter order appId and msgId were swapped on Message.get and Message.expungeContent
  • Libs/Kotlin (Breaking): All uses of ListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptions
  • Libs/Kotlin (Breaking): In the 4 *Patch patch models, nullable fields are of type MaybeUnset<T> instead of T. call MaybeUnset.Present(val) to initialize this value
  • Libs/Kotlin (Breaking): SvixOptions no longer has initialRetryDelayMillis or numRetries instead use retrySchedule
  • Libs/Kotlin (Breaking): All {Resource}{Operation}Options and model classes (ApplicationIn/MessageOut) are now data classes
  • Libs/Kotlin (Breaking): Deprecated functions MessageAttempt.list and MessageAttempt.listAttemptsForEndpoint are removed
  • Libs/Kotlin (Breaking): All uses of java.time.OffsetDateTime replaced with kotlinx.datetime.Instant
  • Libs/Kotlin (Breaking): All uses of java.net.URL in request/response models are replaced with String
  • Libs/JavaScript (Breaking): Removed non-public endpoint.oauthUpdate and endpoint.oauthDelete operations.
  • Libs/JavaScript (Breaking): Removed deprecated operation MessageAttempt.list
  • Libs/JavaScript (Breaking): Exceptions and models are no longer exported from webhook.ts, import them from index.ts instead

Version 1.58.2

  • Libs/Go: New Message.ExpungeContent is now available
  • Libs/Go: Fix regression introduced in version 1.58.0. All models are now exported from the svix package.
  • Libs/Go: Fix regression introduced in version 1.58.0. Nullable fields are now *T instead of T, this affects ListResponseXXXOut.Iterator

Version 1.58.1

  • Libs/Go: Fix a null-pointer deference regression introduced in previous version.

Version 1.58.0

  • Libs/Rust: Fix regression in previous version. Nullable fields are now Option<T> instead of T, this affects ListResponseXXXOut.iterator and EnvironmentOut.settings

Version 1.57.0

This version contains a big overhaul of the client libraries, with improved typing.

  • Libs/Go: Add Authentication.ExpireAll (and ExpireAllWithOptions)

  • Libs/Go (Breaking): Excluding specific fields on the *Patch models (ApplicationPatch for example), all Nullable{Type} removed from the models

  • Libs/Go (Breaking): All Nullable{Type} (for example NullableString) are replaced with a new generic Nullable[T] type, the new type can be imported from github.com/svix/svix-webhooks/go/utils

  • Libs/Go (Breaking): All custom model types are now imported from github.com/svix/svix-webhooks/go/models instead of github.com/svix/svix-webhooks/go

  • Libs/Go (Breaking): All -WithOptions methods are now removed. Their regular counterparts now take a pointer to an Options type which can be nil when not needed. For example in Endpoint.RecoverWithOptions is now Endpoint.Recover

  • Libs/C# and Libs/Go (Breaking): All uses of ListOptions/PostOptions are removed, and renamed to {Resource}{Operation}Options. For example in Endpoint.List you would now use EndpointListOptions

  • Libs/C# (Breaking): All IdempotencyKey method parameters are removed, and are now part of {Resource}{Operation}Options. For example in Message.Create; to the use IdempotencyKey, simply pass it in the MessageCreateOptions

  • Libs/C# (Breaking): The Throw parameter is removed from SvixOptions

  • Libs/C# (Breaking): All redundant interfaces along with the Svix.Abstractions namespace are removed

  • Libs/C# (Breaking): The Svix.Model and Svix.Models namespaces are now merged into a single Svix.Models namespace

  • Libs/C# (Breaking): The Svix.Client namespace is removed, The SvixClient class can now be found in the Svix namespace

  • Libs/Python (Breaking): PostOptions and ListOptions are no longer used in methods for Authentication,Endpoint,EventType,Integration,MessageAttempt,Message, Statistics and OperationalWebhookEndpoint resources. Instead each API call now has its own {Resource}{Operation}Options. (Both sync and async)

  • Libs/Python: In Application the dashboard_access method is deprecated in favor of app_portal_access. (Both sync and async)

  • Libs/Python (Breaking): EndpointStatsOptions is renamed to EndpointGetStatsOptions

  • Libs/Python (Breaking): MessageAttemptListOptions is removed in favor of call specific {Resource}{Operation}Options

  • Libs/Python (Breaking): For Statistics in the aggregate_event_types method the task_id parameter is removed, Please note that previously this parameter was ignored and had no affect (Both sync and async)

  • Libs/Kotlin (Breaking): Update recover to return RecoverOut (instead of nothing)

  • Libs/Kotlin (Breaking): Update replayMissing to return ReplayOut (instead of nothing)

  • Libs/Kotlin (Breaking): Update sendExample to return MessageOut (instead of nothing)

  • Libs/Kotlin (Breaking): Update MessageAttempt list methods to each have its own type for list options, since they don't all support the exact same set of parameters and some of the parameters that could be set before would just get ignored

  • Libs/Kotlin: Fix a bug in EventType.list where options.order was not getting honored

  • Libs/Rust (Breaking): Add optional EventTypeDeleteOptions parameter to EventType::delete

  • Libs/Rust (Breaking): Add optional options parameters to Endpoint::recover, Endpoint::rotate_secret, Integration::rotate_key and MessageAttempt::resend

  • Libs/Rust (Breaking): Remove model files that were not referenced by any operations available through the Svix object

  • Libs/Rust (Breaking): Switch Patch struct fields from Option<Option<T>> to js_option::JsOption<T>

  • Libs/Rust (Breaking): Change rate_limit from i32 to u16 in several places

  • Libs/Rust (Breaking): Remove settings parameter from EnvironmentIn::new

  • Libs/Rust (Breaking): Replace PostOptions with operation-specific options structs

  • Libs/Rust (Breaking): Remove Period from BackgroundTaskType variant names; this was introduced by accident a few releases ago

Version 1.56.0

  • Skipping versions: we had an issue with our CI that created duplicated Go library releases and forced us to bump the version across the libs and the server. Apologies for any inconvenience caused.
  • Libs/Go: retracts several versions which were tagged prematurely. Apologies!

Version 1.45.1

  • CLI: Rename the binary back from svix-cli to svix
  • Libs/Java: Stop sharing one ApiClient between all Svix instances. Fixes a bug where multiple independently instantiated Svix instances would always use the same base path and auth token.

Version 1.45.0

  • CLI (New): New Rust-based CLI with support for all recent Svix functionality.
  • Libs/Rust (Breaking): Add api::MessageAttemptListAttemptedMessagesOptions and use it for MessageAttempt::list_attempted_messages, replacing MessageAttemptListOptions which contained some extra parameters never used with this method / endpoint (#1568)
  • Libs/JavaScript (Breaking): Add more precise type annotations for options parameters on MessageAttempt.list, MessageAttempt.listByMsg, MessageAttempt.listAttemptedMessages and MessageAttempt.listAttemptedDestinations (#1571)
  • Libs/JavaScript (Breaking): Rename EndpointStatsOptions interface to EndpointGetStatsOptions (#1585)
  • Libs/Kotlin (Breaking): Remove ListOptions class. Usage of classes that were inheriting from it should not change though (#1587)
  • Libs/Rust: Add api::Authentication::expire_all (#1584)
  • Libs/Rust: Rename some Options types. The old names remain as deprecated type aliases (#1584)

Version 1.44.0

  • Libs/JavaScript: Revert packaging-related change because it broke for some users (#1556)
  • Libs/Rust (Breaking): Remove unused optional PostOptions parameters from non-POST methods (#1557)

Version 1.43.0

  • Libs/Go: Add convenient construction of messages with pre-serialized payload (#1538)
  • Libs/Go: Reduce the use of NullableX types to where they actually have a use (#1543)
  • Libs/JavaScript: Add convenient construction of messages with pre-serialized payload (#1539)
  • Libs/Java: Add convenient construction of messages with pre-serialized payload (#1544)
  • Libs/C#: Bump .NET target to 8.0 (#1546)
  • Libs/C#: Add convenient construction of messages with pre-serialized payload (#1545)
  • Libs/Python: Add convenient construction of messages with pre-serialized payload (#1540)
  • Libs/Ruby: Add convenient construction of messages with pre-serialized payload (#1541)
  • Libs/JavaScript: Compile svix package for ESM and CommonJS, reducing bundle sizes (#1549)

Version 1.42.0

  • Libs/Python: Fix sync / async mismatch for op-webhook-endpoint API (#1535)
  • Libs/Rust: Fix types of iterator fields (#1534)
  • Libs/Kotlin: Add convenient construction of messages with pre-serialized payload (#1531)
  • Libs/Rust: Add convenient construction of messages with pre-serialized payload (#1533)

Version 1.41.0

  • Libs/JS: Allow iterator and date parameters on list endpoints to be null (in addition to undefined)
  • Libs/JS: Fix serialization of message status query parameters
  • Libs/Rust: Revert many pointless type changes from Option<T> to Option<Option<T>> that came with 1.39.0

Version 1.40.0

  • Libs(JS): downgrade @stablelib/base64 avoiding ERR_REQUIRE_ESM by @svix-onelson in #1506

Version 1.39.0

  • Libs: Add operational webhook endpoint API
  • Libs/Rust: [Breaking] Models for PATCH endpoints now have Option<Option<T>> fields to allow explicitly sending nulls to unset those fields.
  • Libs/Go: [Breaking] Nullable arrays are once again represented by []T instead of *[]T. Serialization handles the empty case correctly.
  • Libs: Upgrade openapi-generator to 7.9.0, with dependency upgrades and internal changes in the SDKs.

Version 1.37.0

  • Libs(Go): EndpointUpdate and EndpointPatch allow null for channels, filter types

Version 1.36.0

  • Libs(Go): edit EndpointIn to allow null for channels, filter types

Version 1.35.0

  • Libs/Python: Revert breaking change to MessageInPayload/MessageOutPayload

Version 1.34.0

  • Libs/Rust: Add missing export of V1MessageEventsParams

Version 1.32.0

  • Libs/Go Remove modules no longer produced by the generator

Version 1.31.0

  • Libs/Go: prune out unused import for "time" in codegen output
  • Libs/C#: Fix appId, endpointId order in RotateSecretWithHttpInfoAsync
  • Libs: Support passing application to app-portal-access endpoint

Version 1.29.0

  • Libs/C#: add GetAppPortalAccess* methods to IAuthentication interface
  • Libs/Go: expose with_content for Message.List
  • Libs/Go: expose with_msg param on MessageAttempt.ListByEndpoint
  • Libs/Go: expose order in Integtation.List and EventType.List
  • Libs/Go: return response body for recover/replay
  • Libs/Go: expose tag for MessageAttempt list endpoints
  • Libs/Javascript: Publish src to npm to make it available for source maps
  • Libs/Python: ensure datetimes have a timezone

Version 1.28.0

  • Libs: Update OpenAPI spec

Version 1.27.0

  • Libs/Python: add missing 'get_stats' function

Version 1.25.0

  • Libs/Javascript: Apply workaround for incomplete fetch support in Cloudflare Worker
  • Libs/Go: Add NullableBool function
  • Libs/Python: Update dependencies and switch to ruff
  • Libs/Rust: Add Svix::with_token to allow changing API token
  • Libs/PHP: Replace ctype_digit for PHP 8.1 deprecation of non-string arguments

Version 1.24.0

  • Libs: Update OpenAPI

Version 1.23.0

  • Libs/Javascript: Fix method naming consistency
  • Add oauth support to javascript

Version 1.22.0

  • Libs/Ruby: Add PATCH endpoints

Version 1.21.0

  • Libs/Rust: Print more detailed error messages for generic errors

Version 1.20.0

  • Libs/C#: don't serialize nulls in PATCH endpoints
  • Libs/Rust: Make API method Future implement Send/Sync

Version 1.19.0

  • Libs/Python: Make request timeout and retries configurable
  • Libs/Rust: Make request timeout configurable

Version 1.18.0

  • Libs/C#: [Breaking] Return iterator information in list endpoints. Changes the return type of list endpoints.
  • Libs/Java: don't serialize nulls in PATCH endpoint methods
  • Libs/Rust: upgrade and clean up dependencies
  • Libs/Rust: switch from reqwest to hyper 1.0

Version 1.17.0

  • Libs/Rust: [Important] Fix a bug in the webhook signature verification method where certain signatures could bypass the verification.
  • Libs/Java: [Breaking] Use Java time instead of threetenbp. This removes the need to import threetenbp to use the library. Depending on how the lib is used, it might require migrating uses of threetenbp to Java 8 Date-Time APIs.

Version 1.16.0

  • Libs: update OpenAPI spec and libs.
  • Libs/Javascript: Fix thrown error message when API status code is unknown.

Version 1.15.0

  • Libs: update OpenAPI spec and libs.

Version 1.14.0

  • Libs: expose two new Statistics endpoints.
  • Libs/Csharp: implement "hard delete" event types.
  • Libs/Ruby: accept additional options on message get.
  • Libs/Go: fix transformation partial update function.
  • Libs/Kotlin: fix errors with APIs that return no content (like endpoint delete).

Version 1.13.0

  • Libs/Go: expose EventType.DeleteWithOptions

Version 1.12.0

  • Libs: update OpenAPI spec

Version 1.11.0

  • Libs: add functions to import event types from OpenAPI specs
  • Libs: update OpenAPI spec

Version 1.9.0

  • Libs/Go: export missing types

Version 1.8.1

  • Libs: update OpenAPI spec

Version 1.8.0

  • Libs/Go: fix behavior of NullableInt32 and NullableString

Version 1.7.0

  • Libs/Rust: fix handling of integer enums (was causing failures for some endpoints).

Version 1.6.0

  • Libs: implement the patch endpoints for partial updates

Version 1.5.2

  • Libs/JavaScript: Fix regression in previous release and allow passing Buffer to sign/verify.

Version 1.5.1

  • Libs/JavaScript: Add an explicit check that payload is a string.
  • Libs: Fix a bug with integration key creation.

Version 1.5.0

  • Libs/Go: support passing WithContent to List Attempted Messages
  • Libs/Python: fix regression in Python library (causing some functions not to work).

Version 1.4.12

  • Sync OSS package version with our internal version.
  • Libs: update OpenAPI spec
  • Libs: add support for "Background Task" endpoints
  • Libs: add support for since/until to endpoint stats
  • Libs/Go: add missing endpoint_id option to list attempts by msg.
  • Libs/JavaScript: add missing withContent field to MessageListOptions.
  • Libs/Rust: fix typo in error handling message

Version 0.85.1

  • Libs: update OpenAPI spec

Version 0.85.0

  • Libs/Ruby: fix the library failing to load due to missing dependency.
  • Libs: [Semi-breaking] we changed the return value of the transformation simulation endpoint. It's technically a breaking page, though the API is private so it shouldn't affect people.

Version 0.84.1

  • Libs: regenerate libs from the correct openapi spec (could have caused potential authentication issues)

Version 0.84.0

  • Libs/Rust: support choosing the wanted TLS implementation

Version 0.83.1

  • Libs: update OpenAPI spec

Version 0.83.0

  • Libs: Add send-example wrapper to libraries
  • Libs/Go: alias missing types from internal dir / openapi package

Version 0.82.1

  • Libs/Java: serialize nulls when making HTTP requests

Version 0.81.0

  • Libs: add support for creating application when creating a message
  • Libs/Go: bump Go version

Version 0.80.0

  • Libs: add prev_iterator and order support to application list
  • Libs: add prev_iterator support to event type list
  • Libs/C#: [Breaking] change default value for SvixOptions.Throw to true

Version 0.79.0

  • Libs/Ruby: require (reexport) app portal models in ruby (fixing errors)
  • Libs/C#: fix MessageAttempt querying when not filtering by status and code

Version 0.78.0

  • Libs: add support for prev_iterator for application and endpoints
  • Libs/JS: fix sign function to support non-round dates
  • Libs/Go: [Breaking] accept a context parameter in all Go lib methods

Version 0.77.0

  • Libs/Rust: glob-reexport all generated models in Rust

Version 0.76.1

  • Libs/Rust: add missing exports to a few API endpoints
  • Libs: fix naming of replay-missing methods in libraries (all but Rust)

Version 0.76.0

  • Libs: add endpoints to expunge payload and response
  • Libs: add replay missing messages functions
  • Libs: add transformations APIs

Version 0.75.0

  • Libs/Rust: Enable TLS support in reqwest by default
  • Libs: support the new feature flag gating of event types

Version 0.74.1

  • Libs/Rust: make all *Options and fields public (missing from previous release)

Version 0.74.0

  • Libs/Rust: make ListOptions and PostOptions fields public
  • Libs/Rust: fix Webhook verification to accept &str

Version 0.72.0

  • JavaScript: make signature comparison constant time (thanks @arjunyel)

Version 0.71.0

  • Libs: Update OpenAPI spec

Version 0.70.0

  • Libs/Java: fix issue with automatic region detection not working

Version 0.69.0

  • Libs/Kotlin: support configuring retry schedule
  • Libs: fix metadata field in Go and Python

Version 0.68.1

  • Libs/Java: fix issue with creating multiple Svix instances in parallel.

Version 0.68.0

  • Libs: add application/endpoint metadata fields.
  • Libs/C#: Add netstandard2.0 support.
  • Add gitleaks config to ignore test auth tokens.

Version 0.66.0

  • Libs: expose endpoint stats function.

Version 0.65.1

  • Libs/Python: fix typo in Python lib causing auto-detection of EU servers to fail.
  • Libs/C#: make logger optional when creating SvixClient.

Version 0.65.0

  • Libs: support "upsert" of entities on PUT methods.
  • Libs/Ruby: fix region auto-detection.

Version 0.64.2

  • Libs/JavaScript: fix issue when signing/verifying payloads with high Unicode codepoints (e.g. some new emoji)

Version 0.64.1

  • Libs/Go: export missing svix.NullableString utility.

Version 0.64.0

  • Libs/Kotlin: fix compilation issues.
  • Libs: automatically detect region (and URL) from auth token.

Version 0.63.1

  • Lib/JavaScript: fix setting string webhook secrets.

Version 0.63.0

  • Libs: update libraries to accept a raw webhook secret.

Version 0.62.1

  • Libs: fix Kotlin and Java build

Version 0.62.0

  • Libs: fix nullable fields to be marked as such (fixes parsing errors in some clients).

Version 0.60.0

  • Lib/Python: update httpx dependency to the latest version.
  • Lib/Rust: fix mixup with validation errors marked as HTTP errors and vice-versa.

Version 0.59.1

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

Version 0.59.0

  • Libs/Python: show a more useful error for obviously malformed secrets.
  • Libs/JavaScript: show a more useful error for obviously malformed secrets.

Version 0.58.2

  • Libs: update OpenAPI spec

Version 0.58.0

  • 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.

Version 0.57.2

  • Libs/C#: fix library compilation (broke in the previous release.

Version 0.57.1

  • Libs: fix all libraries to handle 429 (rate limiting).

Version 0.57.0

  • Libs/C#: add C# API client library.

Version 0.56.0

  • Libs/Python: fix user agent to actually work.
  • Libs/Python: increase read timeout.

Version 0.54.0

  • Libs: add retry and request-id headers for easier debugging.

Version 0.53.2

  • Ruby: Fix CI to not include Vendor data in package.

Version 0.53.1

  • Java & Kotlin: Build against java 11
  • Ruby: Fix a broken import (we changed the name of a webhook event) 🐞

Version 0.53.0

  • Python: Breaking The python library is now fully typed! There may be some breaking changes related to this upgrade (including dropping support for Python 2.X). Please check test and check your integration before upgrading to this version. 🤓
  • Python: New Async API via SvixAsync! 🚀
  • Libs: Remove the prevIterator option from message attempt options (This was added by mistake, never worked and was never meant to work. All iterators should be passed via the iterator option. Sorry for the confusion!)
  • Libs: Allow filtering by messages by channel

Version 0.52.0

  • Libs/JS: Fix for setting Idempotency-Key when one isn't set 🐞
  • Libs/All: Add msg_id to attempt list responses (MessageAttemptOut)
  • Libs/All: New GetOrCreate application function 🆕

Version 0.51.0

  • Libs: Support for passing an idempotency key to post commands
  • Libs: Add support for filtering by channel
  • Kotlin & Go: Support filtering by event type
  • JS: fix for API calls using a default idempotency key when one isn't set 🐞

Version 0.50.0

  • Libs: Add support for filtering by StatusCodeClass in attempts API

Version 0.49.0

  • Libs: Add support for reverse iteration (prev_iterator) & after param in list commands ⬅️

Version 0.48.0

  • Libs: Support for new /attempt/ API via list_for_msg and list_for_endpoint. 🚀
  • Deprecation warning: message_attempt.list is deprecated in favor of this new API. ❌

Version 0.47.0

  • Java & Kotlin: Minor binding fixes to bring them up to date with other libs 🐞

Version 0.46.0

  • Go: Breaking, Changed module name to github.com/svix/svix-webhooks 💥 (We're sorry for any inconvenience this may cause you.)
  • Python: Add support for passing a custom idempotency-key for POST actions 🔂
  • All: Add support for filtering by channel for message list APIs 🆕

Version 0.45.0

  • Python: Add new get_or_create function for application API 🆕

Version 0.44.0

  • All: Add support for the new Integration API 🆕

Version 0.43.2

  • JS: Bump vulnerable dependency 👮
  • Ruby: Cleanup gem level imports 💅

Version 0.43.1

  • Java & Kotlin: Minor internal fix to restore version number parity with other libs

Version 0.43.0

  • Python: Allow explicit None to be passed for optional fields ❌

Version 0.42.3

  • JS: Use fetch fork from npm to avoid cache/name clashes 🐞

Version 0.42.2

  • JS: Rename dependency to avoid name-clashes 🐞

Version 0.42.1

  • All: Update Schema

Version 0.42.0

  • All: Support new Channels API 📺

Version 0.41.2

  • Javascript: Enable keepalives for improved performance 🚀

Version 0.41.1

  • Kotlin: Ensure response bodies are properly closed 🐞

Version 0.41.0

  • All: Add new ServerUrl option for overriding the APIs base URL (Useful for testing) 🆕

Version 0.40.0

  • All: Support for payload_retention_period in message API. 🆕

Version 0.39.0

  • Ruby: Upgrade to bundler 2 🆕
  • Ruby: Fix endpoint.update parameters 🐞 (thanks sevensidedmarble!)
  • Go: Add ability to verify webhook payloads while ignoring timestamp enforcement ❌🕝
  • Go: Regenerate OpenAPI Spec

Version 0.38.0

  • All: Add support for retrieving a single event type 🆕
  • Javascript: Add readme for npm 📚
  • Ruby: Fix base64 import on case-sensitive file systems 🐞 (thanks mikelarkin!)

Version 0.37.0

  • All: Add support for custom endpoint header API 🆕

Version 0.36.0

  • All: Add endpoint recover function ❤️‍🩹

Version 0.35.0

  • All: Add updatedAt fields to Application, Endpoint & EventType 🆕

Version 0.34.2

  • All: Better client-side handling of rotateSecret errors 🆕

Version 0.34.1

  • Ruby: Fix endpoint list function input 🐞

Version 0.34.0

  • All: Add include_archived option to event_type API ➕
  • All: Support secret rotation for endpoints 🔁
  • Kolin: Fix getSecret return type 🐞

Version 0.33.0

  • PHP: Fix 5.6 compatibility issue 🐞

Version 0.32.0

  • Ruby: Initial API bindings! 🚀
  • Kotlin: Add client-side retries 🔁

Version 0.31.0

  • Python: Add additional message-attempt APIs. 🆕

Version 0.30.0

  • Kotlin: Initial async kotlin library 🚀
  • All: Improved naming for Integer Enums 📛
  • JS: Update dependencies 🆕
  • Java: Cleanup list option code using generics 🤓

Version 0.29.0

  • All: Add before option to message APIs
  • Java: Cleanup list options
  • All: Add ability to set signing secret
  • All: add event type filtering to message attempt API
  • All: support for endpoint uids

Version 0.28.0

  • All: Adds support for unbranded webhooks 📋
  • PHP: Improve tests and validation for sign function 🐞
  • Java: Set descriptive message on APIExceptions 🆕

Version 0.27.0

  • All: Adds Sending to MessageStatus 📤
  • All: Add support for Schemas in EventType API 🆕

Version 0.26.0

  • All: Some of the list options structs have been renamed (this is a minor breaking change in some languages) 💥
  • All: Filter messages by EventType ⏳
  • All: Add custom user-agents 🧑‍💻
  • All: Retry 5XXs & network errors 🔁
  • All: Add nextAttempt to MessageEndpointOut 🆕
  • All: Update Schema 🆕
  • Javascript: Update Dependencies 🆕
  • Ruby: Update Dependencies 🆕

Version 0.25.0

  • All: Add nextAttempt to EndpointMessageOut 🕛

Version 0.24.0

  • Java: Bump dependencies 🆕
  • All: Add support for rate limiting 📈

Version 0.23.0

  • All: Bump openapi-generator to 5.2.0, fixes bug in python lib which can throw if additionalProperties are found 🐛

Version 0.22.0

  • Python: Cleanup explicit exports in python 🤓
  • All: Add Disabled flag to endpoint models ❌

Version 0.21.0

  • All: Add Sign functions for generating webhook signatures 🔏
  • Python: Enable typing 🤓
  • Csharp: Initial webhook verification library 🚀
  • Go: Set default http client timeout and allow overriding of client. ⏲️
  • All: Bump openapi spec, fixes bug in resend function, which could throw an error in some languages on return. 🐛

Version 0.20.1

  • JavaScript, Python and Go: fix regression with server URLs not being set correctly.

Version 0.20.0

  • All: Update OpenAPI spec
  • Javascript: Fix bug with message attempt resend (would throw on return)
  • Python: Fix optional bug where optional return types would throw

Version 0.19.1

  • Python: Fix issue with pip package not generating the openapi_client properly on deploy

Version 0.19.0

  • Python: Clean up exports, add API exceptions as svix.exceptions

Version 0.18.0

  • All: Enforce timestamp tolerance when verifying
  • All: Support new webhook signature prefixes when verifying
  • Go: Expose new error class for checking API errors
  • PHP: Fix issue with psr-4 autoloading
  • Python: Properly export WebhookVerificationError
  • Python: Fix bug in event_type create function

Version 0.17.0

  • Migrate to new GitHub org svix! 🚀

Version 0.16.0

  • Update the OpenAPI spec and change structures accordingly

Version 0.15.0

  • go: Add DebugURL option for overriding API URL
  • Ruby: initial release
  • PHP: initial release

Version 0.14.0

  • Update the Message model to call the payload payload instead of data.
  • Add List event_types to go library
  • Fix bug in endpoint create function

Version 0.13.0

  • Release Go lib
  • Add function to update event_types.

Version 0.12.4

  • Update OpenAPI spec to the latest version

Version 0.12.3

  • Rename to Svix
  • Sync library versions

Version 0.0.0 (Initial open-sourcing)

  • Make the library open-source
  • Future releases will have proper changelogs and a synchronised version scheme.
    • Just waiting on the rename of the library