Skip to content

v1.6.0

Choose a tag to compare

@alexluong alexluong released this 02 Oct 14:23
· 5 commits to main since this release
27ebb35

⚠️ Breaking Changes

See the v1.6 Upgrade Guide for details.

  • Attempts no longer embed destination credentials: include=destination on the attempt endpoints returns the destination without credentials. 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, data that is not a JSON object, missing topic when TOPICS is 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 400 for an invalid limit or cursor, the destination attempts endpoints return 404 for a deleted or missing destination, and POST /retry reports a missing, disabled or non-matching destination instead of 404 event 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_SOURCE sets the Source (default outpost). by @pryzmatical in #1059
  • Cloudflare Queues destination: publish events to a queue through the Cloudflare HTTP API. by @alexluong in #907
  • DESTINATIONS_PROXY_URL routes 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_URL is 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_URL to use it. by @rohanshirsath-droadmap in #1053
  • Opt-in worker restarts: list queue workers in SUPERVISOR_RESTART_WORKERS and the supervisor restarts them when they fail, such as after losing the broker connection. /healthz reports them as degraded while they are within their restart budget. Off by default. by @alexluong in #1099
  • PUBLISH_MAX_REDELIVERIES caps 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, 403 and the 409 from POST /publish had no body, and the 404 for a missing destination or destination type was plain text. Status codes are unchanged. by @alexluong in #1109
  • POST /retry for a deleted destination returns 404 instead of 500, and GET /topics returns [] instead of null when 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

Full Changelog: v1.5.0...v1.6.0