Releases: redpanda-data/connect
v4.24.0
For installation instructions check out the getting started guide.
Added
- Field
idempotent_write
added to thekafka_franz
output. - Field
idle_timeout
added to theread_until
input. - Field
delay_seconds
added to theaws_sqs
output. - Fields
discard_unknown
anduse_proto_names
added to theprotobuf
processors.
Fixed
- Bloblang error messages for bad function/method names or parameters should now be improved in mappings that use shorthand for
root = ...
. - All redis components now support usernames within the configured URL for authentication.
- The
protobuf
processor now supports targetting nested types from proto files. - The
schema_registry_encode
andschema_registry_decode
processors should no longer double escape URL unsafe characters within subjects when querying their latest versions.
The full change log can be found here.
v4.23.0
For installation instructions check out the getting started guide.
Added
- The
amqp_0_9
output now supports dynamic interpolation functions within theexchange
field. - Field
custom_topic_creation
added to thekafka
output. - New Bloblang method
ts_sub
. - The Bloblang method
abs
now supports integers in and integers out. - Experimental
extract_tracing_map
field added to thenats
,nats_jetstream
andnats_stream
inputs. - Experimental
inject_tracing_map
field added to thenats
,nats_jetstream
andnats_stream
outputs. - New
_fail_fast
variants for thebroker
outputfan_out
andfan_out_sequential
patterns. - Field
summary_quantiles_objectives
added to theprometheus
metrics exporter. - The
metric
processor now supports floating point values forcounter_by
andgauge
types.
Fixed
- Allow labels on caches and rate limit resources when writing configs in CUE.
- Go API:
log/slog
loggers injected into a stream builder viaStreamBuilder.SetLogger
should now respect formatting strings. - All Azure components now support container SAS tokens for authentication.
- The
kafka_franz
input now provides properly typed metadata values. - The
trino
driver for the varioussql_*
components no longer panics when trying to insert nulls. - The
http_client
input no longer sends a phantom request body on subsequent requests when an emptypayload
is specified. - The
schema_registry_encode
andschema_registry_decode
processors should no longer fail to obtain schemas containing slashes (or other URL path unfriendly characters). - The
parse_log
processor no longer extracts structured fields that are incompatible with Bloblang mappings. - Fixed occurrences where Bloblang would fail to recognise
float32
values.
The full change log can be found here.
v4.22.0
For installation instructions check out the getting started guide.
Added
- The
-e/--env-file
cli flag for importing environment variable files now supports glob patterns. - Environment variables imported via
-e/--env-file
cli flags now support triple quoted strings. - New experimental
counter
function added to Bloblang. It is recommended that this function, although experimental, should be used instead of the now deprecatedcount
function. - The
schema_registry_encode
andschema_registry_decode
processors now support JSONSchema. - Field
metadata
added to thenats
andnats_jetstream
outputs. - The
cached
processor fieldttl
now supports interpolation functions. - Many new properties fields have been added to the
amqp_0_9
output. - Field
command
added to theredis_list
input and output.
Fixed
- Corrected a scheduling error where the
generate
input with a descriptor interval (@hourly
, etc) had a chance of firing twice. - Fixed an issue where a
redis_streams
input that is rejected from read attempts enters a reconnect loop without backoff. - The
sqs
input now periodically refreshes the visibility timeout of messages that take a significant amount of time to process. - The
ts_add_iso8601
andts_sub_iso8601
bloblang methods now return the correct error for certain invalid durations. - The
discord
output no longer ignores structured message fields containing underscores. - Fixed an issue where the
kafka_franz
input was ignoring batching periods and stalling.
Changed
- The
random_int
Bloblang function now prevents instantiations where either themax
ormin
arguments are dynamic. This is in order to avoid situations where the random number generator is re-initialised across subsequent mappings in a way that surprises map authors.
The full change log can be found here.
v4.21.0
For installation instructions check out the getting started guide.
Added
- Fields
client_id
andrack_id
added to thekafka_franz
input and output. - New experimental
command
processor. - Parameter
no_cache
added to thefile
andenv
Bloblang functions. - New
file_rel
function added to Bloblang. - Field
endpoint_params
added to theoauth2
section of HTTP client components.
Fixed
- Allow comments in single root and directly imported bloblang mappings.
- The
azure_blob_storage
input no longer addsblob_storage_content_type
andblob_storage_content_encoding
metadata values as string pointer types, and instead adds these values as string types only when they are present. - The
http_server
input now returns a more appropriate 503 service unavailable status code during shutdown instead of the previous 404 status. - Fixed a potential panic when closing a
pusher
output that was never initialised. - The
sftp
output now reconnects upon being disconnected by the Azure idle timeout. - The
switch
output now produces error logs when messages do not pass at least one case withstrict_mode
enabled, previously these rejected messages were potentially re-processed in a loop without any logs depending on the config. An inaccuracy to the documentation has also been fixed in order to clarify behaviour when strict mode is not enabled. - The
log
processorfields_mapping
field should no longer reject metadata queries using@
syntax. - Fixed an issue where heavily utilised streams with nested resource based outputs could lock-up when performing heavy resource mutating traffic on the streams mode REST API.
- The Bloblang
zip
method no longer produces values that yield an "Unknown data type".
The full change log can be found here.
v4.20.0
For installation instructions check out the getting started guide.
Added
- The
amqp1
input now supportsanonymous
SASL authentication. - New JWT Bloblang methods
parse_jwt_es256
,parse_jwt_es384
,parse_jwt_es512
,parse_jwt_rs256
,parse_jwt_rs384
,parse_jwt_rs512
,sign_jwt_es256
,sign_jwt_es384
andsign_jwt_es512
added. - The
csv-safe
input codec now supports custom delimiters with the syntaxcsv-safe:x
. - The
open_telemetry_collector
tracer now supports secure connections, enabled via thesecure
field. - Function
v0_msg_exists_meta
added to thejavascript
processor.
Fixed
- Fixed an issue where saturated output resources could panic under intense CRUD activity.
- The config linter no longer raises issues with codec fields containing colons within their arguments.
- The
elasticsearch
output should no longer fail to send basic authentication passwords, this fixes a regression introduced in v4.19.0.
The full change log can be found here.
v4.19.0
For installation instructions check out the getting started guide.
Added
- Field
topics_pattern
added to thepulsar
input. - Both the
schema_registry_encode
andschema_registry_decode
processors now support protobuf schemas. - Both the
schema_registry_encode
andschema_registry_decode
processors now support references for AVRO and PROTOBUF schemas. - New Bloblang method
zip
. - New Bloblang
int8
,int16
,uint8
,uint16
,float32
andfloat64
methods.
Fixed
- Errors encountered by the
gcp_pubsub
output should now present more specific logs. - Upgraded
kafka
input and output underlying sarama client library to v1.40.0 at new module path github.com/IBM/sarama - The CUE schema for
switch
processor now correctly reflects that it takes a list of clauses. - Fixed the CUE schema for fields that take a 2d-array such as
workflow.order
. - The
snowflake_put
output has been added back to 32-bit ARM builds since the build incompatibilities have been resolved. - The
snowflake_put
output and thesql_*
components no longer trigger a panic when running on a readonly file system with thesnowflake
driver. This driver still requires access to write temporary files somewhere, which can be configured via the GoTMPDIR
environment variable. Details here. - The
http_server
input and output now follow the same multiplexer rules regardless of whether the generalhttp
server block is used or a custom endpoint. - Config linting should now respect fields sourced via a merge key (
<<
). - The
lint
subcommand should now lint config files pointed to via-r
/--resources
flags.
Changed
- The
snowflake_put
output is now beta. - Endpoints specified by
http_server
components using both the generalhttp
server block or their own custom server addresses should no longer be treated as path prefixes unless the path ends with a slash (/
), in which case all extensions of the path will match. This corrects a behavioural change introduced in v4.14.0.
The full change log can be found here.
v4.18.0
For installation instructions check out the getting started guide.
Added
- Field
logger.level_name
added for customising the name of log levels in the JSON format. - Methods
sign_jwt_rs256
,sign_jwt_rs384
andsign_jwt_rs512
added to Bloblang.
Fixed
- HTTP components no longer ignore
proxy_url
settings when OAuth2 is set. - The
PATCH
verb for the streams mode REST API no longer fails to patch over newer components implemented with the latest plugin APIs. - The
nats_jetstream
input no longer fails for configs that setbind
totrue
and do not specify both astream
anddurable
together. - The
mongodb
processor and output no longer ignores theupsert
field.
Changed
- The old
parquet
processor (now superseded byparquet_encode
andparquet_decode
) has been removed from 32-bit ARM builds due to build incompatibilities. - The
snowflake_put
output has been removed from 32-bit ARM builds due to build incompatibilities. - Plugin API: The
(*BatchError).WalkMessages
method has been deprecated in favour ofWalkMessagesIndexedBy
.
The full change log can be found here.
v4.17.0
For installation instructions check out the getting started guide.
Added
- The
dynamic
input and output have a new endpoint/input/{id}/uptime
and/output/{id}/uptime
respectively for obtaining the uptime of a given input/output. - Field
wait_time_seconds
added to theaws_sqs
input. - Field
timeout
added to thegcp_cloud_storage
output. - All NATS components now set the name of each connection to the component label when specified.
Fixed
- Restore message ordering support to
gcp_pubsub
output. This issue was introduced in 4.16.0 as a result of #1836. - Specifying structured metadata values (non-strings) in unit test definitions should no longer cause linting errors.
Changed
- The
nats
input default value ofprefetch_count
has been increased from32
to a more appropriate524288
.
The full change log can be found here.
v4.16.0
For installation instructions check out the getting started guide.
Added
- Fields
auth.user_jwt
andauth.user_nkey_seed
added to all NATS components. - bloblang: added
ulid(encoding, random_source)
function to generate Universally Unique Lexicographically Sortable Identifiers (ULIDs). - Field
skip_on
added to thecached
processor. - Field
nak_delay
added to thenats
input. - New
splunk_hec
output. - Plugin API: New
NewMetadataExcludeFilterField
function and accompanyingFieldMetadataExcludeFilter
method added. - The
pulsar
input and output are now included in the main distribution of Benthos again. - The
gcp_pubsub
input now adds the metadata fieldgcp_pubsub_delivery_attempt
to messages when dead lettering is enabled. - The
aws_s3
input now addss3_version_id
metadata to versioned messages. - All compress/decompress components (codecs, bloblang methods, processors) now support
pgzip
. - Field
connection.max_retries
added to thewebsocket
input. - New
sentry_capture
processor.
Fixed
- The
open_telemetry_collector
tracer option no longer blocks service start up when the endpoints cannot be reached, and instead manages connections in the background. - The
gcp_pubsub
output should see significant performance improvements due to a client library upgrade. - The stream builder APIs should now follow
logger.file
config fields. - The experimental
cue
format in the clilist
subcommand no longer introduces infinite recursion for#Processors
. - Config unit tests no longer execute linting rules for missing env var interpolations.
The full change log can be found here.
v4.15.0
For installation instructions check out the getting started guide.
Added
- Flag
--skip-env-var-check
added to thelint
subcommand, this disables the new linting behaviour where environment variable interpolations without defaults throw linting errors when the variable is not defined. - The
kafka_franz
input now supports explicit partitions in the fieldtopics
. - The
kafka_franz
input now supports batching. - New
metadata
Bloblang function for batch-aware structured metadata queries. - Go API: Running the Benthos CLI with a context set with a deadline now triggers graceful termination before the deadline is reached.
- Go API: New
public/service/servicetest
package added for functions useful for testing custom Benthos builds. - New
lru
andttlru
in-memory caches.
Fixed
- Provide msgpack plugins through
public/components/msgpack
. - The
kafka_franz
input should no longer commit offsets one behind the next during partition yielding. - The streams mode HTTP API should no longer route requests to
/streams/<stream-ID>
to the/streams
handler. This issue was introduced in v4.14.0.
The full change log can be found here.