v1.6.0
⚠️ Breaking Changes
See the v1.6 Upgrade Guide for details.
- Attempts no longer embed destination credentials:
include=destinationon the attempt endpoints returns the destination withoutcredentials. SDK versions generated before this release expect the field and can fail to parse the response, so upgrade the SDK with the server. by @alexluong in #1095 - Invalid publish queue messages (invalid JSON,
datathat is not a JSON object, missingtopicwhenTOPICSis set) are rejected on the first failure instead of redelivered. On RabbitMQ they go to the queue's dead-letter exchange if it has one and are discarded otherwise; on Azure Service Bus they are dead-lettered. by @alexluong in #1093 - Stricter API responses for invalid requests: event and attempt lists return
400for an invalidlimitor cursor, the destination attempts endpoints return404for a deleted or missing destination, andPOST /retryreports a missing, disabled or non-matching destination instead of404event not found. by @alexluong in #1109
Features
- AWS EventBridge destination: publish events to an event bus, with the topic as the detail type.
DESTINATIONS_AWS_EVENTBRIDGE_SOURCEsets theSource(defaultoutpost). by @pryzmatical in #1059 - Cloudflare Queues destination: publish events to a queue through the Cloudflare HTTP API. by @alexluong in #907
DESTINATIONS_PROXY_URLroutes webhook, RabbitMQ and Kafka destination connections through an HTTP CONNECT proxy chain, so destinations that allowlist source IPs see the proxy's address.DESTINATIONS_WEBHOOK_PROXY_URLis deprecated; it still works and overrides the new variable for webhooks. RabbitMQ destinations now connect within the delivery timeout. by @alexluong in #1100- NATS JetStream as a message queue provider for the delivery and log queues. Set
NATS_SERVER_URLto use it. by @rohanshirsath-droadmap in #1053 - Opt-in worker restarts: list queue workers in
SUPERVISOR_RESTART_WORKERSand the supervisor restarts them when they fail, such as after losing the broker connection./healthzreports them asdegradedwhile they are within their restart budget. Off by default. by @alexluong in #1099 PUBLISH_MAX_REDELIVERIEScaps how many times a failed publish queue message is redelivered. Unset keeps redelivering without limit. by @alexluong in #1093
Fixes
- Every API error response has the JSON error body (
{"status": 404, "message": "destination not found"}). Before,401,403and the409fromPOST /publishhad no body, and the404for a missing destination or destination type was plain text. Status codes are unchanged. by @alexluong in #1109 POST /retryfor a deleted destination returns404instead of500, andGET /topicsreturns[]instead ofnullwhen no topics are configured. by @alexluong in #1109- A changed destination credential, such as a rotated webhook secret, is used on the next delivery. Previously deliveries kept the old value until the cached publisher expired. by @chiliec in #1085
- A queue client that failed to initialize is initialized again on the next subscribe. by @alexluong in #1098
Updates
- The OpenAPI definition marks which operations are available on managed and self-hosted Outpost, says which API key and server each one uses, and adds the managed-only operator events endpoints. The SDKs generated from this release gain
operatorEvents. by @leggetter in #1103, #1105, #1106 - Guide for adopting partitioning on an existing PostgreSQL install by @AlexeyShalaev in #1058
- Corrected the operator events environment variable prefix in the docs to
OPERATOR_EVENTS_by @leggetter in #1102 - Pinned the localstack image used in the dev and example compose files by @alexluong in #1097
New Contributors
- @chiliec made their first contribution in #1085
- @AlexeyShalaev made their first contribution in #1058
- @rohanshirsath-droadmap made their first contribution in #1053
- @pryzmatical made their first contribution in #1059
Full Changelog: v1.5.0...v1.6.0