diff --git a/docs/1-using/5-connectors/7-list/1-elasticsearch.mdx b/docs/1-using/5-connectors/7-list/1-elasticsearch.mdx index 0a5f74c..e3a211e 100644 --- a/docs/1-using/5-connectors/7-list/1-elasticsearch.mdx +++ b/docs/1-using/5-connectors/7-list/1-elasticsearch.mdx @@ -68,22 +68,22 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release -- [conduit-connector-elasticsearch_0.6.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Darwin_arm64.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Darwin_x86_64.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Linux_arm64.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Linux_i386.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Linux_x86_64.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Windows_arm64.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Windows_i386.tar.gz) -- [conduit-connector-elasticsearch_0.6.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/conduit-connector-elasticsearch_0.6.0_Windows_x86_64.tar.gz) -- [elasticsearch_v0.6.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_darwin_amd64.tar.gz) -- [elasticsearch_v0.6.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_darwin_amd64.tar.gz.sigstore.json) -- [elasticsearch_v0.6.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_darwin_arm64.tar.gz) -- [elasticsearch_v0.6.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_darwin_arm64.tar.gz.sigstore.json) -- [elasticsearch_v0.6.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_linux_amd64.tar.gz) -- [elasticsearch_v0.6.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_linux_amd64.tar.gz.sigstore.json) -- [elasticsearch_v0.6.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_linux_arm64.tar.gz) -- [elasticsearch_v0.6.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.0/elasticsearch_v0.6.0_linux_arm64.tar.gz.sigstore.json) +- [conduit-connector-elasticsearch_0.6.1_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Darwin_arm64.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Darwin_x86_64.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_arm64.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_i386.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_x86_64.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_arm64.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_i386.tar.gz) +- [conduit-connector-elasticsearch_0.6.1_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_x86_64.tar.gz) +- [elasticsearch_v0.6.1_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_amd64.tar.gz) +- [elasticsearch_v0.6.1_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_amd64.tar.gz.sigstore.json) +- [elasticsearch_v0.6.1_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_arm64.tar.gz) +- [elasticsearch_v0.6.1_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_arm64.tar.gz.sigstore.json) +- [elasticsearch_v0.6.1_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_amd64.tar.gz) +- [elasticsearch_v0.6.1_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_amd64.tar.gz.sigstore.json) +- [elasticsearch_v0.6.1_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_arm64.tar.gz) +- [elasticsearch_v0.6.1_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_arm64.tar.gz.sigstore.json) ## Description @@ -207,10 +207,16 @@ pipelines: # username/password and service token. # Type: string APIKey: "" - # The number of items stored in bulk in the index. The minimum value - # is `1`, maximum value is `10 000`. + # Deprecated: use `sdk.batch.size`. The number of items stored in one + # bulk request (the minimum value is `1`, the maximum value is `10 + # 000`). This config was never read in the write path, so its old + # default of 1000 did nothing. It is now honored as a + # backward-compatible alias for `sdk.batch.size` when explicitly set + # (non-zero): a pipeline that set it keeps its intended batch size. It + # has no default; leave it unset to use `sdk.batch.size` (default + # 1000). # Type: int - bulkSize: "1000" + bulkSize: "" # SHA256 hex fingerprint given by Elasticsearch on first launch. # Type: string certificateFingerprint: "" @@ -240,10 +246,10 @@ pipelines: # Maximum delay before an incomplete batch is written to the # destination. # Type: duration - sdk.batch.delay: "0" + sdk.batch.delay: "1s" # Maximum size of batch before it gets written to the destination. # Type: int - sdk.batch.size: "0" + sdk.batch.size: "1000" # Allow bursts of at most X records (0 or less means that bursts are # not limited). Only takes effect if a rate limit per second is set. # Note that if `sdk.batch.size` is bigger than `sdk.rate.burst`, the diff --git a/docs/1-using/5-connectors/7-list/3-generator.mdx b/docs/1-using/5-connectors/7-list/3-generator.mdx index 09e6130..04988e1 100644 --- a/docs/1-using/5-connectors/7-list/3-generator.mdx +++ b/docs/1-using/5-connectors/7-list/3-generator.mdx @@ -68,22 +68,22 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release -- [conduit-connector-generator_0.10.7_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Darwin_arm64.tar.gz) -- [conduit-connector-generator_0.10.7_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Darwin_x86_64.tar.gz) -- [conduit-connector-generator_0.10.7_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Linux_arm64.tar.gz) -- [conduit-connector-generator_0.10.7_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Linux_i386.tar.gz) -- [conduit-connector-generator_0.10.7_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Linux_x86_64.tar.gz) -- [conduit-connector-generator_0.10.7_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Windows_arm64.tar.gz) -- [conduit-connector-generator_0.10.7_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Windows_i386.tar.gz) -- [conduit-connector-generator_0.10.7_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/conduit-connector-generator_0.10.7_Windows_x86_64.tar.gz) -- [generator_v0.10.7_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_darwin_amd64.tar.gz) -- [generator_v0.10.7_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_darwin_amd64.tar.gz.sigstore.json) -- [generator_v0.10.7_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_darwin_arm64.tar.gz) -- [generator_v0.10.7_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_darwin_arm64.tar.gz.sigstore.json) -- [generator_v0.10.7_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_linux_amd64.tar.gz) -- [generator_v0.10.7_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_linux_amd64.tar.gz.sigstore.json) -- [generator_v0.10.7_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_linux_arm64.tar.gz) -- [generator_v0.10.7_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.7/generator_v0.10.7_linux_arm64.tar.gz.sigstore.json) +- [conduit-connector-generator_0.10.8_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Darwin_arm64.tar.gz) +- [conduit-connector-generator_0.10.8_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Darwin_x86_64.tar.gz) +- [conduit-connector-generator_0.10.8_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_arm64.tar.gz) +- [conduit-connector-generator_0.10.8_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_i386.tar.gz) +- [conduit-connector-generator_0.10.8_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_x86_64.tar.gz) +- [conduit-connector-generator_0.10.8_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_arm64.tar.gz) +- [conduit-connector-generator_0.10.8_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_i386.tar.gz) +- [conduit-connector-generator_0.10.8_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_x86_64.tar.gz) +- [generator_v0.10.8_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_amd64.tar.gz) +- [generator_v0.10.8_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_amd64.tar.gz.sigstore.json) +- [generator_v0.10.8_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_arm64.tar.gz) +- [generator_v0.10.8_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_arm64.tar.gz.sigstore.json) +- [generator_v0.10.8_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_amd64.tar.gz) +- [generator_v0.10.8_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_amd64.tar.gz.sigstore.json) +- [generator_v0.10.8_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_arm64.tar.gz) +- [generator_v0.10.8_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_arm64.tar.gz.sigstore.json) ## Description diff --git a/docs/1-using/5-connectors/7-list/4-kafka.mdx b/docs/1-using/5-connectors/7-list/4-kafka.mdx index 48c72bc..17dc70e 100644 --- a/docs/1-using/5-connectors/7-list/4-kafka.mdx +++ b/docs/1-using/5-connectors/7-list/4-kafka.mdx @@ -68,8 +68,22 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release -- [kafka_v0.14.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz) -- [kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json) +- [conduit-connector-kafka_0.16.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Darwin_arm64.tar.gz) +- [conduit-connector-kafka_0.16.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Darwin_x86_64.tar.gz) +- [conduit-connector-kafka_0.16.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_arm64.tar.gz) +- [conduit-connector-kafka_0.16.0_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_i386.tar.gz) +- [conduit-connector-kafka_0.16.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_x86_64.tar.gz) +- [conduit-connector-kafka_0.16.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_arm64.tar.gz) +- [conduit-connector-kafka_0.16.0_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_i386.tar.gz) +- [conduit-connector-kafka_0.16.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_x86_64.tar.gz) +- [kafka_v0.16.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_amd64.tar.gz) +- [kafka_v0.16.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_amd64.tar.gz.sigstore.json) +- [kafka_v0.16.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_arm64.tar.gz) +- [kafka_v0.16.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_arm64.tar.gz.sigstore.json) +- [kafka_v0.16.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_amd64.tar.gz) +- [kafka_v0.16.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_amd64.tar.gz.sigstore.json) +- [kafka_v0.16.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_arm64.tar.gz) +- [kafka_v0.16.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_arm64.tar.gz.sigstore.json) ## Description @@ -280,6 +294,15 @@ mode works on both brokers; Redpanda does not return or enforce the `message.timestamp.before/after.max.ms` bounds, so only the timestamp type and retention rules can differ from Apache Kafka. +## Host-supplied dialer + +If the host that runs the connector puts a dialer on the context +(`dialer.WithDialContext` from `conduit-commons`), the connector opens every +broker connection through it: the seed brokers, brokers discovered from +metadata, reconnects, and the admin and metadata requests. When TLS is +enabled, the handshake runs over the connection the host dialer returns. +Without a host dialer the connector dials directly, as before. + ## Source Parameters ```yaml @@ -350,6 +373,14 @@ pipelines: # continually retry on group join errors. # Type: bool retryGroupJoinErrors: "true" + # AllowPlaintext lets SASL authenticate over a connection that is not + # protected by TLS (tls.enabled is false). This exposes the SASL + # credentials, and with PLAIN the password itself, to anyone who can + # observe the network path to the brokers. By default the connector + # refuses to start in that configuration. Only set this for a trusted + # network, such as a local development cluster. + # Type: bool + saslAllowPlaintext: "" # Mechanism configures the connector to use SASL authentication. If # empty, no authentication will be performed. # Type: string @@ -472,6 +503,14 @@ pipelines: # 1h. # Type: duration produceTimeout: "2m" + # AllowPlaintext lets SASL authenticate over a connection that is not + # protected by TLS (tls.enabled is false). This exposes the SASL + # credentials, and with PLAIN the password itself, to anyone who can + # observe the network path to the brokers. By default the connector + # refuses to start in that configuration. Only set this for a trusted + # network, such as a local development cluster. + # Type: bool + saslAllowPlaintext: "" # Mechanism configures the connector to use SASL authentication. If # empty, no authentication will be performed. # Type: string diff --git a/docs/1-using/5-connectors/7-list/6-mysql.mdx b/docs/1-using/5-connectors/7-list/6-mysql.mdx index 475b65a..7a5df9c 100644 --- a/docs/1-using/5-connectors/7-list/6-mysql.mdx +++ b/docs/1-using/5-connectors/7-list/6-mysql.mdx @@ -68,20 +68,20 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release -- [conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz) -- [conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz) -- [conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz) -- [conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz) -- [conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz) -- [conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz) -- [mysql_v0.5.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz) -- [mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json) -- [mysql_v0.5.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz) -- [mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json) -- [mysql_v0.5.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz) -- [mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json) -- [mysql_v0.5.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz) -- [mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json) +- [conduit-connector-mysql_0.6.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Darwin_arm64.tar.gz) +- [conduit-connector-mysql_0.6.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Darwin_x86_64.tar.gz) +- [conduit-connector-mysql_0.6.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Linux_arm64.tar.gz) +- [conduit-connector-mysql_0.6.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Linux_x86_64.tar.gz) +- [conduit-connector-mysql_0.6.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Windows_arm64.tar.gz) +- [conduit-connector-mysql_0.6.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Windows_x86_64.tar.gz) +- [mysql_v0.6.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_amd64.tar.gz) +- [mysql_v0.6.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_amd64.tar.gz.sigstore.json) +- [mysql_v0.6.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_arm64.tar.gz) +- [mysql_v0.6.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_arm64.tar.gz.sigstore.json) +- [mysql_v0.6.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_amd64.tar.gz) +- [mysql_v0.6.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_amd64.tar.gz.sigstore.json) +- [mysql_v0.6.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_arm64.tar.gz) +- [mysql_v0.6.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_arm64.tar.gz.sigstore.json) ## Description @@ -419,9 +419,13 @@ Two more CDC halts are resolved by resetting the position, so the recovery below written under other columns: after a `DROP COLUMN` plus an `ADD COLUMN` (or a column changing type) ran before the connector read the event, every value after the dropped column would land in the wrong column. The connector compares the types the event was written with against the table's columns (by family, so - `INT` to `BIGINT` or a longer `VARCHAR` is fine) and halts on a difference, also after a restart, so - restarting does not help: reset the position. With `binlog_row_metadata=FULL` the event also carries its - column names, and the connector compares those too; a renamed column then halts as well, because a rename + `INT` to `BIGINT` or a longer `VARCHAR` is fine) and halts on a difference. The event is not delivered yet, + so every restart halts on it again and restarting does not help: reset the position. The comparison also + covers the signedness of integer columns (`INT` to `INT UNSIGNED` would turn -5 into 4294967291) and whether + a string column is text or binary (`VARCHAR` to `BLOB`), which the server logs under every + `binlog_row_metadata` setting. The check runs only on events the connector is about to deliver: after a restart, events it reads again but delivered before the restart are dropped without it, + so an ordinary restart after a DDL does not halt on a row that was already delivered. With + `binlog_row_metadata=FULL` the event also carries its column names, and the connector compares those too; a renamed column then halts as well, because a rename cannot be told from a drop plus an add. **Without `FULL`, a column dropped and another of the same type family added at the same position, while the connector is stopped or lagging, is not detected, and the values are mapped onto the new column.** `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+; the default @@ -577,10 +581,10 @@ pipelines: # Maximum delay before an incomplete batch is written to the # destination. # Type: duration - sdk.batch.delay: "0" + sdk.batch.delay: "1s" # Maximum size of batch before it gets written to the destination. # Type: int - sdk.batch.size: "0" + sdk.batch.size: "3000" # Allow bursts of at most X records (0 or less means that bursts are # not limited). Only takes effect if a rate limit per second is set. # Note that if `sdk.batch.size` is bigger than `sdk.rate.burst`, the diff --git a/docs/1-using/5-connectors/7-list/8-postgres.mdx b/docs/1-using/5-connectors/7-list/8-postgres.mdx index 57c35a7..bdc4859 100644 --- a/docs/1-using/5-connectors/7-list/8-postgres.mdx +++ b/docs/1-using/5-connectors/7-list/8-postgres.mdx @@ -68,6 +68,22 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release +- [conduit-connector-postgres_0.18.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Darwin_arm64.tar.gz) +- [conduit-connector-postgres_0.18.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Darwin_x86_64.tar.gz) +- [conduit-connector-postgres_0.18.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_arm64.tar.gz) +- [conduit-connector-postgres_0.18.0_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_i386.tar.gz) +- [conduit-connector-postgres_0.18.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_x86_64.tar.gz) +- [conduit-connector-postgres_0.18.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_arm64.tar.gz) +- [conduit-connector-postgres_0.18.0_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_i386.tar.gz) +- [conduit-connector-postgres_0.18.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_x86_64.tar.gz) +- [postgres_v0.18.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_amd64.tar.gz) +- [postgres_v0.18.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_amd64.tar.gz.sigstore.json) +- [postgres_v0.18.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_arm64.tar.gz) +- [postgres_v0.18.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_arm64.tar.gz.sigstore.json) +- [postgres_v0.18.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_amd64.tar.gz) +- [postgres_v0.18.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_amd64.tar.gz.sigstore.json) +- [postgres_v0.18.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_arm64.tar.gz) +- [postgres_v0.18.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_arm64.tar.gz.sigstore.json) ## Description @@ -89,6 +105,17 @@ in the URL or in the environment, is also mapped to `disable`; `require` and postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require ``` +### Dialer supplied by the host + +If the process that runs the connector puts a dialer on the context (see +`github.com/conduitio/conduit-commons/dialer`), the connector opens every +network connection through it: the destination connection and its reconnects, +and for the source the pool connections, the snapshot reads, the replication +connection, and the slot and publication cleanup. Host +names in the URL are then passed to the dialer unresolved, so it decides how to +resolve them. Without a host dialer, nothing changes: the driver dials and +resolves the addresses itself. A connector setting cannot supply the dialer. + ### Upgrading from v0.14.x: connection string parsing This version uses pgx 5.11, which parses connection strings like libpq does. @@ -166,6 +193,202 @@ pipelines: attempt to delete the replication slot and publication. This is the default behaviour and can be disabled by setting `logrepl.autoCleanup` to `false`. +#### Resuming after the replication slot was lost + +The slot is what keeps Postgres from discarding the changes the pipeline has not +acknowledged yet. If the pipeline has a saved position and its slot no longer +exists, a new slot starts at the current WAL and every change in between is gone. +This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` +while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), +or not carried over by a failover or promotion to another server (slots are not +copied to a standby before Postgres 17, or without `failover=true`). The connector +does not carry on from there. It refuses to start with the error code +`postgres.source.slot_wal_gap`, which names the slot, the position the pipeline +stopped at and the WAL position a new slot would start at. The same applies to a +position saved during an initial snapshot. A pipeline with no position (a fresh +start) creates its slot as usual. + +To recover, first check that `logrepl.slotName` is the name the pipeline has +always used. Then re-snapshot: stop the pipeline, delete the source connector and +create it again so it has no position. With `snapshotMode: initial` every table is +read again and every row is delivered again, so the destination must tolerate +duplicates (an upsert or keyed destination does). + +To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data +loss: the skipped changes are never delivered, and the connector logs a warning +when it takes the setting. Remove it after the pipeline has resumed, or the next +lost slot is accepted with a warning only. + +#### Resuming on a replication slot that was replaced + +A slot dropped and created again under the same name exists and is healthy, but it +starts at the WAL of its creation, so the changes between the saved position and +then are gone just the same. Postgres gives a slot no identity to tell it from the +original, so the connector keeps one itself (since v0.17.5). Every position carries +a random slot identity, and the connector writes it into the WAL as a logical +decoding message under the prefix `conduit.postgres.slot_identity` (a beacon). A +beacon also names a WAL position before which the pipeline needed nothing more when +it was written: every change committed before it had been delivered and acked (or, +for the beacon written when a run opens the slot, the slot position that run +checked). The connector never advances an idle slot past that position of the last +beacon it received, so its own slot always still holds a beacon that covers it. On +a resume whose slot is past the saved position, the connector reads the slot without +consuming it (`pg_logical_slot_peek_binary_changes`) and looks for a beacon written +after the slot's `confirmed_flush_lsn` whose position is at or past it. A slot that +holds none is refused with the error code `postgres.source.slot_replaced`, which +names the slot, the saved position and the slot's `confirmed_flush_lsn`. The same +refusal covers the pipeline's own slot when another client advanced or consumed it +(`pg_replication_slot_advance`, `pg_logical_slot_get_changes`) past changes the +pipeline had not delivered, including changes the pipeline had received but not +acked when it stopped. A slot another client moved only over changes the pipeline +had already delivered and acked loses nothing and is accepted. A slot swapped between the check (or, on a fresh start, its creation) and the +start of streaming is refused once streaming holds it, also after a snapshot of hours. +A beacon is written only while this pipeline's own stream holds the slot (or, before +streaming starts, while the slot is idle and where the pipeline checked it), so a beacon +can never land in a slot that replaced it. Recover as from a lost slot: re-snapshot, or +accept the loss with `logrepl.allowWALGap: true` for one start. + +The check also refuses a position written on another WAL history, with +`postgres.source.wal_history_changed`: every position names the cluster's system +identifier and timeline, so a different server at the same address, a point-in-time +recovery or failover that left the position's timeline before the position, a restore +to an earlier timeline, and a server whose WAL is behind the position (a restored backup, +snapshot or VM image) are refused instead of resuming at LSNs that now name other +changes. A restore on the same timeline whose new WAL has already passed the position +when the pipeline starts is caught by the position's transaction: every position also +names the xid and commit time of the transaction it was taken in (for a schema drift +marker, of the transaction it halted before), and a resume whose slot is at or below +the position checks that the slot still decodes that transaction, with the same xid and +commit time, at that commit LSN. A position written before v0.17.5 names no xid; the +check then requires a transaction committing at its commit LSN. On Postgres 15+, a +publication or row filter changed since the position can hide the transaction and +refuse a database that was not restored; start once with `logrepl.allowWALGap: true` +then. Re-snapshot pipelines after restoring their source database. + +What it needs and what it costs: + +- The connector's role must be able to call `pg_logical_emit_message`, which + Postgres grants to `PUBLIC` by default. If it was revoked, the connector refuses to + start with `postgres.source.slot_beacon_failed`; grant it back with + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text) TO ` + (Postgres 14 to 16) or + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text, boolean) TO ` + (Postgres 17+). Peeking needs `REPLICATION`, which the connector already needs. +- A beacon holds a random nonce, a WAL position and an HMAC-SHA256 made with a secret + key that exists only in the pipeline's position (Conduit's position store). The key + never reaches the database or a log (logs show an 8-digit fingerprint), so a role that + can call `pg_logical_emit_message` cannot forge a beacon, and a genuine one copied into + a replaced slot is refused. Treat the position store as sensitive. A beacon holds no + row data and no configuration. +- Hardening: `pg_logical_emit_message` lets any role that can connect write messages into + the WAL. Consider `REVOKE EXECUTE ON FUNCTION FROM PUBLIC` together + with the `GRANT` to the connector's role; the connector logs + `postgres.source.slot_beacon_public` at start while PUBLIC still has it. +- **Who can read the key.** Records carry their positions, Conduit hands them to + destinations, and its API returns the source's position (`sourceState.position`). So + the key can be read wherever records or that API are, for example in a Kafka topic of + OpenCDC records. Forging a beacon with it still needs the rights to drop and recreate + the slot (`REPLICATION` or superuser) and to write into the WAL. +- `logrepl.allowWALGap` gives the slot it accepts a new key. **Remove `allowWALGap` only + after a record has been delivered**: until a position with the new key is saved, a + restart from the old position is refused again, so an attempt that created the slot and + failed before saving never passes for the original. On an idle source that can take a + while; write a row to a captured table to get a record through. +- Other logical consumers of the database that decode messages, such as Debezium with + messages enabled, see the beacons; Debezium can filter them with + `message.prefix.exclude.list`. +- One small transaction per start, and at most one per status interval (10 seconds) + while the pipeline is idle, after it acked records or once the server has written at + least 512 bytes of WAL since the last beacon. An idle database stays idle. An idle + slot reaches the WAL end as of the last beacon about two status intervals after the + last ack (the beacon itself, and WAL written after it, stay until the next one). Beacons commit + with `synchronous_commit = local`, so a synchronous standby that is down does not block + them. +- If beacons cannot be written while the pipeline runs (the connector logs + `postgres.source.slot_beacon_unavailable` with `retained_wal_bytes`), the idle slot is + held at the last beacon for at most `logrepl.slotIdentity.beaconFailureTimeout` + (default 5 minutes; the WAL held back is at most that time's worth). Then the slot + advances without beacons, so its WAL cannot fill the disk, and the connector logs the + same code as an error. Until a beacon is written and delivered again, a restart is + refused with `slot_replaced`. The connector keeps trying: fix the cause (usually the + `GRANT` above) while the pipeline runs, and it recovers on its own (it logs that the + slot can be proven again). If the pipeline was stopped in that state, start it once + with `logrepl.allowWALGap: true`. +- The check reads the slot from its `restart_lsn`; a long-running transaction can hold + that far back and make it slow, and so can a large backlog: it reads as far as it must, + never giving up early. `logrepl.slotIdentity.checkTimeout` (default 10 minutes) bounds + it; a check that times out or cannot read the slot refuses the start with + `postgres.source.slot_identity_check_failed`, which is retried. Raise the timeout, or + start once with `logrepl.allowWALGap: true` to take the slot unproven. +- Postgres 13 cannot send logical decoding messages to the connector, and a standby + cannot write them. There positions carry no identity and the check is the one before + v0.17.5: the connector logs `postgres.source.slot_identity_unsupported` and resumes on + a slot past the position. A position that does carry an identity (written on a + primary) is never accepted unproven there: it is refused with + `postgres.source.slot_identity_unprovable`. A slot on a standby is a slot of the + standby, never the primary's, even when it can decode the primary's beacons. + +Upgrading from v0.17.4 or earlier: + +- **Before the upgrade**, check that the connector's role may call + `pg_logical_emit_message` (only databases that revoked it from PUBLIC are affected): + `SELECT has_function_privilege('', 'pg_logical_emit_message(boolean, text, text, boolean)', 'EXECUTE');` + on Postgres 17+, or with `(boolean, text, text)` on 14 to 16. If it returns false, + grant it, or the first start fails with `postgres.source.slot_beacon_failed`. +- A saved position from those versions has no slot identity. If the slot is not past + it, it is proven by the position alone. Otherwise (the usual case, since older + versions advance an idle slot to the WAL end) the connector cannot tell whether the + slot was replaced before the upgrade. It takes the slot over and logs + `postgres.source.slot_identity_unverified` with `unproven_wal_bytes`, the stretch of + WAL nothing proves. **Protection begins at the first record saved after the + upgrade**; until then a restart adopts the slot again with the same warning. +- Such a position also does not name the WAL history it was written on, so the first + start logs `postgres.source.wal_history_unverified` (with a fingerprint of the server's + system identifier and its timeline): a restore, point-in-time recovery or another server + at the same address before the upgrade would go unnoticed. That protection, too, starts + once the next position is saved. +- If anyone dropped and recreated a pipeline's slot, or restored or replaced its source + database, since that pipeline last delivered a record, re-snapshot that pipeline: the + changes in between may be gone, and nothing can tell after the fact. + +Failover (Postgres 17+, `failover = true` slots synchronized to a standby): the +identity survives a promotion when the primary lists the standby's physical slot in +`synchronized_standby_slots`, the setting Postgres requires for a failover that keeps +logical consumers consistent. Without it the standby can lag behind the beacon the +slot was advanced to, and the first start after a promotion can be refused with +`postgres.source.slot_replaced` (no data is lost; check the slot and start once with +`logrepl.allowWALGap: true`). After a promotion, set `synchronized_standby_slots` on +the new primary to slots that exist there: decoding a failover slot waits for every +slot it names. + +After a `pg_upgrade`: the new cluster can have another system identifier, and the +migrated slot is a new slot, so the start is refused with +`postgres.source.wal_history_changed` or `postgres.source.slot_replaced`. pg_upgrade +migrates logical slots only once they decoded all WAL. If the pipeline had delivered +every change before the upgrade, nothing is lost: start once with +`logrepl.allowWALGap: true` (the warning says `WAL HISTORY CHANGE ACCEPTED`), and remove +it after a record has been delivered. Otherwise re-snapshot. + +Moving the slot by hand: `pg_upgrade` (which recreates logical slots), a manual +`pg_replication_slot_advance`, and a rollback to v0.17.4 or earlier that ran while +the pipeline was idle all move the slot past the last beacon. The next start is +refused with `postgres.source.slot_replaced`. When you know nothing was skipped, +start once with `logrepl.allowWALGap: true` and remove it after the pipeline resumed. +`pg_upgrade` also refuses to migrate a slot that has not decoded all WAL, and the +latest beacon is always ahead of the slot. Advance the stopped pipeline's slot with +`pg_replication_slot_advance` before the upgrade, and only once the pipeline has +delivered every change to the destination. + +#### Invalidated replication slots + +Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): +the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, +`invalidation_reason` is set), the WAL it needs is removed and it cannot be +streamed from. The connector refuses to start on it, with a fresh start or a saved +position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` +does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then +re-snapshot as above; a pipeline with no position only needs the slot dropped. + ### Key Handling The connector will automatically look up the primary key column for the specified tables @@ -286,7 +509,10 @@ sends the delete without the key. Check with Advancing to `` is what skips the transaction. Advancing to the change LSN (``) or to the commit LSN `` itself does not: Postgres replays the transaction and the pipeline fails on the same delete. -6. Start the pipeline. +6. Start the pipeline. The advance moved the slot past the pipeline's saved position, + so the connector can refuse it with `postgres.source.slot_replaced` (see "Resuming + on a replication slot that was replaced"). If it does, start it once with + `logrepl.allowWALGap: true`, and remove the setting once it runs. **Skipping the transaction skips that change, and it skips the whole transaction, including its other changes to captured tables.** Skipping data is your decision and the @@ -501,21 +727,56 @@ forged record would be skipped, which a processor with that power could do to any record anyway. ### Column type changes on a running pipeline -The destination reuses prepared statements (pgx's `cache_statement` query -mode, the fast mode) and checks a per-table schema fingerprint with every -batch. After `ALTER TABLE ... ALTER COLUMN ... TYPE` the fingerprint changes, -the batch is rolled back, the statement cache is cleared, and the batch is -retried with the new column types. A value the new type cannot hold exactly -fails the write instead of being converted; a widening change is written -type-exactly without an error. - -This keeps cached statements' single round trip per batch. On one dedicated -machine (benchi `destination-exec-mode`: keyed upserts into a two-column -table) describing every statement instead cost 35% fewer rows per second at -`sdk.batch.size: 1`, the default, and 16% fewer at 1000. `exec` and -`simple_protocol`, which never cache parameter types (PgBouncer in -transaction mode needs one of them), are kept when the URL sets them, as is -`describe_exec`. +By default the destination describes every statement on the connection that +runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER +COLUMN ... TYPE` the next write uses the new column types. A value the new +type cannot hold exactly fails the write instead of being converted. + +The cached modes, `cache_statement` and `cache_describe`, are opt-in. They +reuse prepared statements and check a per-table schema fingerprint with +every batch: after a column type change the batch is rolled back, the +statement cache is cleared, and the batch is retried with the new types. A +fired check is logged at Info with the table name and the running count +(`schema_changes_total`). The destination warns at startup when a cached +mode is set. + +**The cached modes are safe only on a direct connection, or behind a pooler +that does not share prepared statements between clients.** A pooler that +shares them hands a statement one client prepared before a column type +change to every client that sends the same SQL; the fingerprint check +cannot see that, and values are converted without an error (5/2 stored as 3 +in a column that became `integer`). v0.17.0 and v0.17.1 used +`cache_statement` by default; see the v0.17.2 release notes. + +If pgx closes the connection after a failed batch (for example a value +that does not encode into a parameter type, on any record but the first), +the destination reconnects and, in a cached mode, retries the batch once +on an empty statement cache; nothing of a batch that fails this way was +committed. A value that does not fit fails the write, and the error names +the index of the record that holds it. + +One benchi run on a dedicated machine (`benchi/destination-exec-mode`: +keyed upserts into a two-column table) measured cached statements +*without* the fingerprint check against `describe_exec`: describing every +statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% +fewer at 1000. Cached statements with the check have not been measured +with benchi; that run is pending (the `pg-guarded` arm). The Go +microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on +a local machine; it is indicative only, not a benchi result. + +### Connection poolers + +Behind PgBouncer, at any `max_prepared_statements`, use the default +(`describe_exec`) or `exec`. That likely applies to other poolers that +share or route prepared statements (Supavisor, PgCat, Odyssey), which have +not been tested. With `max_prepared_statements` above 0, PgBouncer shares +prepared statements between clients, so a cached mode can convert values +silently after a column type change. With `max_prepared_statements=0`, a +batch can reach a server that does not have its statement; the destination +retries batches that fail with SQLSTATE 26000 (prepared statement does not +exist) or 42P05 (prepared statement already exists) on an empty statement +cache, up to three times, but a cached mode still fails some batches +there. `describe_exec` was tested with PgBouncer 1.26 in both settings. ### Numeric columns @@ -592,6 +853,20 @@ pipelines: # CDCMode determines how the connector should listen to changes. # Type: string cdcMode: "auto" + # LogreplAllowWALGap lets the connector resume from a saved position + # when the replication slot no longer exists and has to be created + # again, or when the slot that exists is not the one the position was + # taken from (it was dropped and created again under the same name, or + # another client advanced it). Such a slot starts after the saved + # position, so every change in between is skipped and never delivered: + # this setting accepts that DATA LOSS. Leave it false (the default) + # and the connector refuses to start with the error + # `postgres.source.slot_wal_gap` or `postgres.source.slot_replaced` + # instead. Use it only after deciding that the destination can be + # repaired some other way, and remove it once the pipeline has + # resumed. + # Type: bool + logrepl.allowWALGap: "false" # LogreplAutoCleanup determines if the replication slot and # publication should be removed when the connector is deleted. # Type: bool @@ -622,6 +897,28 @@ pipelines: # future version and rejected at validation. # Type: string logrepl.schemaDrift.policy: "halt" + # LogreplSlotIdentityBeaconFailureTimeout is how long the connector + # keeps an idle replication slot from advancing past its last identity + # beacon while new beacons cannot be written (#442). After it, the + # slot advances without a beacon so its WAL cannot fill the disk, and + # the connector logs `postgres.source.slot_beacon_unavailable` as an + # error. Until a beacon is written and delivered again, a restart is + # refused with `postgres.source.slot_replaced` (an outage, never a + # loss). The connector keeps trying, and recovers on its own once + # beacons can be written. The WAL held back meanwhile is at most what + # the server writes in this time. + # Type: duration + logrepl.slotIdentity.beaconFailureTimeout: "5m" + # LogreplSlotIdentityCheckTimeout bounds the replication slot identity + # check at start (#442), which reads the slot without consuming it to + # find the connector's identity beacon. It decodes from the slot's + # restart_lsn, so a long-running transaction that holds restart_lsn + # far back makes it slower; on Postgres 17+ it also waits for the + # standbys in synchronized_standby_slots. When it times out the start + # is refused with postgres.source.slot_identity_check_failed and + # retried. + # Type: duration + logrepl.slotIdentity.checkTimeout: "10m" # LogreplSlotName determines the replication slot name in case the # connector uses logical replication to listen to changes (see # CDCMode). Can only contain lower-case letters, numbers, and the @@ -693,13 +990,18 @@ pipelines: # URL is the connection string for the Postgres database. With TLS, # SCRAM authentication does not use channel binding by default # (`channel_binding=disable`); add `channel_binding=require` to the - # URL to require SCRAM-SHA-256-PLUS. The destination reuses prepared - # statements (cache_statement) and checks a per-table schema - # fingerprint with every batch, so a column type change on a running - # pipeline invalidates the cache and the next write sees the new type - # — fast and correct. Set `default_query_exec_mode` to - # `describe_exec`, `exec` or `simple_protocol` to override; - # `cache_statement` and `cache_describe` are also guarded and safe. + # URL to require SCRAM-SHA-256-PLUS. The destination describes every + # statement before it runs it (`describe_exec`), so a column type + # change on a running pipeline takes effect on the next write. Set + # `default_query_exec_mode` (in the URL or in a service file) to + # `exec`, `simple_protocol`, `cache_statement` or `cache_describe` to + # override. The cached modes save a round trip per batch and check a + # per-table schema fingerprint, but they are safe only on a direct + # connection or behind a pooler that does not share prepared + # statements between clients. Behind PgBouncer (at any + # `max_prepared_statements`) or another statement-sharing pooler, keep + # `describe_exec`: a cached mode can convert values silently after a + # column type change. # Type: string url: "" # Table is used as the target table into which records are inserted. diff --git a/docs/1-using/5-connectors/7-list/9-s3.mdx b/docs/1-using/5-connectors/7-list/9-s3.mdx index 748b290..f35f4c5 100644 --- a/docs/1-using/5-connectors/7-list/9-s3.mdx +++ b/docs/1-using/5-connectors/7-list/9-s3.mdx @@ -68,10 +68,22 @@ import Tooltip from '@mui/material/Tooltip'; ## Latest release -- [s3_v0.11.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.0/s3_v0.11.0_darwin_amd64.tar.gz) -- [s3_v0.11.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.0/s3_v0.11.0_darwin_amd64.tar.gz.sigstore.json) -- [s3_v0.11.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.0/s3_v0.11.0_darwin_arm64.tar.gz) -- [s3_v0.11.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.0/s3_v0.11.0_darwin_arm64.tar.gz.sigstore.json) +- [conduit-connector-s3_0.12.0_Darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Darwin_arm64.tar.gz) +- [conduit-connector-s3_0.12.0_Darwin_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Darwin_x86_64.tar.gz) +- [conduit-connector-s3_0.12.0_Linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_arm64.tar.gz) +- [conduit-connector-s3_0.12.0_Linux_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_i386.tar.gz) +- [conduit-connector-s3_0.12.0_Linux_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_x86_64.tar.gz) +- [conduit-connector-s3_0.12.0_Windows_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_arm64.tar.gz) +- [conduit-connector-s3_0.12.0_Windows_i386.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_i386.tar.gz) +- [conduit-connector-s3_0.12.0_Windows_x86_64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_x86_64.tar.gz) +- [s3_v0.12.0_darwin_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_amd64.tar.gz) +- [s3_v0.12.0_darwin_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_amd64.tar.gz.sigstore.json) +- [s3_v0.12.0_darwin_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_arm64.tar.gz) +- [s3_v0.12.0_darwin_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_arm64.tar.gz.sigstore.json) +- [s3_v0.12.0_linux_amd64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_amd64.tar.gz) +- [s3_v0.12.0_linux_amd64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_amd64.tar.gz.sigstore.json) +- [s3_v0.12.0_linux_arm64.tar.gz](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_arm64.tar.gz) +- [s3_v0.12.0_linux_arm64.tar.gz.sigstore.json](https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_arm64.tar.gz.sigstore.json) ## Description @@ -178,6 +190,21 @@ The connector goes through two modes. when newer objects were seen in the meantime (multipart uploads carry their initiation time); * replica buckets whose replication lag exceeds `lookbackPeriod`; + * a multipart upload that shares its initiation second with another object + of the same key (a version already listed, or a second upload) is not + tracked: it holds the settled cut instead (log code + `s3.source.cut_held_same_second`, a warning every 15 minutes once the + hold is older than that). New objects are delivered early until + `cdc.maxEarlyObjects` is full and the rest wait, for as long as the + upload runs, up to `cdc.maxPendingUploadAge`; after that the hold is + released and the upload is tracked. Nothing is lost, only latency + grows; + * a multipart upload that is older than `cdc.maxPendingUploadAge` when + the source first sees it, and shares its second with nothing, is not + tracked (log code `s3.source.stale_upload_ignored`, error level): if it + completes later its object can be missed. Abort such uploads, or add an + AbortIncompleteMultipartUpload lifecycle rule with DaysAfterInitiation + at most `cdc.maxPendingUploadAge`; * an identical re-put of an object within the same second is not seen as a change; * in an unversioned bucket an overwrite is reported as a create (there is @@ -657,10 +684,10 @@ pipelines: # Maximum delay before an incomplete batch is written to the # destination. # Type: duration - sdk.batch.delay: "0" + sdk.batch.delay: "1s" # Maximum size of batch before it gets written to the destination. # Type: int - sdk.batch.size: "0" + sdk.batch.size: "1000" # Allow bursts of at most X records (0 or less means that bursts are # not limited). Only takes effect if a rate limit per second is set. # Note that if `sdk.batch.size` is bigger than `sdk.rate.burst`, the diff --git a/static/connectors.json b/static/connectors.json index e51fd6d..4633624 100644 --- a/static/connectors.json +++ b/static/connectors.json @@ -7,6 +7,194 @@ "stargazer_count": 0, "fork_count": 0, "releases": [ + { + "tag_name": "v0.6.1", + "name": "v0.6.1", + "body": "perf(destination): build bulk request without per-record reflection + batch by default (#175, #176)", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T19:18:14Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-elasticsearch/releases/tag/v0.6.1", + "assets": [ + { + "name": "conduit-connector-elasticsearch_0.6.1_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Darwin_arm64.tar.gz", + "created_at": "2026-10-19T19:28:21Z", + "updated_at": "2026-10-19T19:28:22Z", + "download_count": 0, + "size": 13653583 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Darwin_x86_64.tar.gz", + "created_at": "2026-10-19T19:28:23Z", + "updated_at": "2026-10-19T19:28:24Z", + "download_count": 0, + "size": 14754985 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_arm64.tar.gz", + "created_at": "2026-10-19T19:28:21Z", + "updated_at": "2026-10-19T19:28:22Z", + "download_count": 0, + "size": 12889886 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_i386.tar.gz", + "created_at": "2026-10-19T19:28:21Z", + "updated_at": "2026-10-19T19:28:22Z", + "download_count": 0, + "size": 13218619 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Linux_x86_64.tar.gz", + "created_at": "2026-10-19T19:28:23Z", + "updated_at": "2026-10-19T19:28:24Z", + "download_count": 0, + "size": 14374635 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_arm64.tar.gz", + "created_at": "2026-10-19T19:28:23Z", + "updated_at": "2026-10-19T19:28:24Z", + "download_count": 0, + "size": 12996704 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_i386.tar.gz", + "created_at": "2026-10-19T19:28:23Z", + "updated_at": "2026-10-19T19:28:24Z", + "download_count": 0, + "size": 13884445 + }, + { + "name": "conduit-connector-elasticsearch_0.6.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/conduit-connector-elasticsearch_0.6.1_Windows_x86_64.tar.gz", + "created_at": "2026-10-19T19:28:21Z", + "updated_at": "2026-10-19T19:28:23Z", + "download_count": 0, + "size": 14925449 + }, + { + "name": "elasticsearch_v0.6.1_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_amd64.tar.gz", + "created_at": "2026-10-19T19:21:58Z", + "updated_at": "2026-10-19T19:22:02Z", + "download_count": 0, + "size": 30284329 + }, + { + "name": "elasticsearch_v0.6.1_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:21:58Z", + "updated_at": "2026-10-19T19:21:59Z", + "download_count": 0, + "size": 9866 + }, + { + "name": "elasticsearch_v0.6.1_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_arm64.tar.gz", + "created_at": "2026-10-19T19:23:11Z", + "updated_at": "2026-10-19T19:23:12Z", + "download_count": 0, + "size": 28483339 + }, + { + "name": "elasticsearch_v0.6.1_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:23:11Z", + "updated_at": "2026-10-19T19:23:11Z", + "download_count": 0, + "size": 9960 + }, + { + "name": "elasticsearch_v0.6.1_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_amd64.tar.gz", + "created_at": "2026-10-19T19:19:41Z", + "updated_at": "2026-10-19T19:19:42Z", + "download_count": 0, + "size": 28292941 + }, + { + "name": "elasticsearch_v0.6.1_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:19:41Z", + "updated_at": "2026-10-19T19:19:41Z", + "download_count": 0, + "size": 9764 + }, + { + "name": "elasticsearch_v0.6.1_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_arm64.tar.gz", + "created_at": "2026-10-19T19:20:50Z", + "updated_at": "2026-10-19T19:20:51Z", + "download_count": 0, + "size": 26069697 + }, + { + "name": "elasticsearch_v0.6.1_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-elasticsearch/releases/download/v0.6.1/elasticsearch_v0.6.1_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:20:50Z", + "updated_at": "2026-10-19T19:20:50Z", + "download_count": 0, + "size": 9819 + } + ], + "is_latest": true + }, { "tag_name": "v0.6.0", "name": "v0.6.0", @@ -193,7 +381,7 @@ "size": 9772 } ], - "is_latest": true + "is_latest": false }, { "tag_name": "v0.5.0", @@ -1981,7 +2169,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.10.3/conduit-connector-file_0.10.3_Linux_x86_64.tar.gz", "created_at": "2025-06-03T13:09:39Z", "updated_at": "2025-06-03T13:09:40Z", - "download_count": 56, + "download_count": 57, "size": 6732820 }, { @@ -2081,7 +2269,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.10.2/conduit-connector-file_0.10.2_Linux_x86_64.tar.gz", "created_at": "2025-05-19T15:05:51Z", "updated_at": "2025-05-19T15:05:51Z", - "download_count": 5, + "download_count": 6, "size": 6731829 }, { @@ -2181,7 +2369,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.10.1/conduit-connector-file_0.10.1_Linux_x86_64.tar.gz", "created_at": "2025-03-20T12:14:09Z", "updated_at": "2025-03-20T12:14:09Z", - "download_count": 7, + "download_count": 8, "size": 6504285 }, { @@ -2281,7 +2469,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.10.0/conduit-connector-file_0.10.0_Linux_x86_64.tar.gz", "created_at": "2025-02-04T15:30:54Z", "updated_at": "2025-02-04T15:30:55Z", - "download_count": 9, + "download_count": 10, "size": 6489408 }, { @@ -2381,7 +2569,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.9.0/conduit-connector-file_0.9.0_Linux_x86_64.tar.gz", "created_at": "2024-11-08T15:38:56Z", "updated_at": "2024-11-08T15:38:56Z", - "download_count": 6, + "download_count": 7, "size": 6008808 }, { @@ -2481,7 +2669,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.8.0/conduit-connector-file_0.8.0_Linux_x86_64.tar.gz", "created_at": "2024-10-09T12:41:42Z", "updated_at": "2024-10-09T12:41:42Z", - "download_count": 5, + "download_count": 6, "size": 5978112 }, { @@ -2581,7 +2769,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-file/releases/download/v0.7.0/conduit-connector-file_0.7.0_Linux_x86_64.tar.gz", "created_at": "2024-08-07T09:19:17Z", "updated_at": "2024-08-07T09:19:17Z", - "download_count": 9, + "download_count": 10, "size": 5755893 }, { @@ -3030,6 +3218,194 @@ "stargazer_count": 2, "fork_count": 3, "releases": [ + { + "tag_name": "v0.10.8", + "name": "v0.10.8", + "body": "## What's Changed\n* ci: pin GitHub Actions by commit SHA by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-generator/pull/148\n* fix: copy the file payload per record and make combined positions unique by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-generator/pull/150\n* chore(release): v0.10.8, bump conduit-commons@v0.12.0 conduit-connector-sdk@v0.17.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-generator/pull/151\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-generator/compare/v0.10.7...v0.10.8", + "draft": false, + "prerelease": false, + "published_at": "2026-10-20T06:01:38Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-generator/releases/tag/v0.10.8", + "assets": [ + { + "name": "conduit-connector-generator_0.10.8_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T06:06:01Z", + "updated_at": "2026-10-20T06:06:02Z", + "download_count": 0, + "size": 8157423 + }, + { + "name": "conduit-connector-generator_0.10.8_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T06:06:02Z", + "updated_at": "2026-10-20T06:06:03Z", + "download_count": 0, + "size": 8730121 + }, + { + "name": "conduit-connector-generator_0.10.8_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_arm64.tar.gz", + "created_at": "2026-10-20T06:06:02Z", + "updated_at": "2026-10-20T06:06:03Z", + "download_count": 0, + "size": 7788088 + }, + { + "name": "conduit-connector-generator_0.10.8_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_i386.tar.gz", + "created_at": "2026-10-20T06:06:01Z", + "updated_at": "2026-10-20T06:06:02Z", + "download_count": 0, + "size": 8165711 + }, + { + "name": "conduit-connector-generator_0.10.8_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T06:06:02Z", + "updated_at": "2026-10-20T06:06:03Z", + "download_count": 0, + "size": 8535550 + }, + { + "name": "conduit-connector-generator_0.10.8_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_arm64.tar.gz", + "created_at": "2026-10-20T06:06:02Z", + "updated_at": "2026-10-20T06:06:03Z", + "download_count": 0, + "size": 7882555 + }, + { + "name": "conduit-connector-generator_0.10.8_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_i386.tar.gz", + "created_at": "2026-10-20T06:06:01Z", + "updated_at": "2026-10-20T06:06:02Z", + "download_count": 0, + "size": 8495207 + }, + { + "name": "conduit-connector-generator_0.10.8_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/conduit-connector-generator_0.10.8_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T06:06:01Z", + "updated_at": "2026-10-20T06:06:02Z", + "download_count": 0, + "size": 8767758 + }, + { + "name": "generator_v0.10.8_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_amd64.tar.gz", + "created_at": "2026-10-20T06:02:55Z", + "updated_at": "2026-10-20T06:02:55Z", + "download_count": 0, + "size": 16205789 + }, + { + "name": "generator_v0.10.8_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T06:02:55Z", + "updated_at": "2026-10-20T06:02:55Z", + "download_count": 0, + "size": 9808 + }, + { + "name": "generator_v0.10.8_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_arm64.tar.gz", + "created_at": "2026-10-20T06:03:18Z", + "updated_at": "2026-10-20T06:03:19Z", + "download_count": 0, + "size": 15303928 + }, + { + "name": "generator_v0.10.8_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T06:03:18Z", + "updated_at": "2026-10-20T06:03:18Z", + "download_count": 0, + "size": 9851 + }, + { + "name": "generator_v0.10.8_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_amd64.tar.gz", + "created_at": "2026-10-20T06:02:08Z", + "updated_at": "2026-10-20T06:02:09Z", + "download_count": 0, + "size": 15604826 + }, + { + "name": "generator_v0.10.8_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T06:02:08Z", + "updated_at": "2026-10-20T06:02:09Z", + "download_count": 0, + "size": 9804 + }, + { + "name": "generator_v0.10.8_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_arm64.tar.gz", + "created_at": "2026-10-20T06:02:31Z", + "updated_at": "2026-10-20T06:02:32Z", + "download_count": 0, + "size": 14389665 + }, + { + "name": "generator_v0.10.8_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.8/generator_v0.10.8_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T06:02:31Z", + "updated_at": "2026-10-20T06:02:32Z", + "download_count": 0, + "size": 9667 + } + ], + "is_latest": true + }, { "tag_name": "v0.10.7", "name": "v0.10.7", @@ -3216,7 +3592,7 @@ "size": 9479 } ], - "is_latest": true + "is_latest": false }, { "tag_name": "v0.10.6", @@ -3655,7 +4031,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.4/conduit-connector-generator_0.10.4_Linux_x86_64.tar.gz", "created_at": "2025-06-03T13:22:14Z", "updated_at": "2025-06-03T13:22:15Z", - "download_count": 49, + "download_count": 50, "size": 7438843 }, { @@ -3755,7 +4131,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.3/conduit-connector-generator_0.10.3_Linux_x86_64.tar.gz", "created_at": "2025-05-19T15:08:47Z", "updated_at": "2025-05-19T15:08:48Z", - "download_count": 5, + "download_count": 6, "size": 7437417 }, { @@ -3855,7 +4231,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.2/conduit-connector-generator_0.10.2_Linux_x86_64.tar.gz", "created_at": "2025-03-20T12:15:23Z", "updated_at": "2025-03-20T12:15:24Z", - "download_count": 5, + "download_count": 6, "size": 7196729 }, { @@ -3955,7 +4331,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.1/conduit-connector-generator_0.10.1_Linux_x86_64.tar.gz", "created_at": "2025-03-04T13:07:16Z", "updated_at": "2025-03-04T13:07:16Z", - "download_count": 5, + "download_count": 6, "size": 7181482 }, { @@ -4022,7 +4398,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.0/conduit-connector-generator_0.10.0_Darwin_x86_64.tar.gz", "created_at": "2025-02-04T15:31:29Z", "updated_at": "2025-02-04T15:31:30Z", - "download_count": 6, + "download_count": 7, "size": 7341175 }, { @@ -4033,7 +4409,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.10.0/conduit-connector-generator_0.10.0_Linux_arm64.tar.gz", "created_at": "2025-02-04T15:31:29Z", "updated_at": "2025-02-04T15:31:30Z", - "download_count": 7, + "download_count": 8, "size": 6695490 }, { @@ -4155,7 +4531,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.9.1/conduit-connector-generator_0.9.1_Linux_x86_64.tar.gz", "created_at": "2024-11-08T15:37:27Z", "updated_at": "2024-11-08T15:37:27Z", - "download_count": 5, + "download_count": 6, "size": 6697397 }, { @@ -4255,7 +4631,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.9.0/conduit-connector-generator_0.9.0_Linux_x86_64.tar.gz", "created_at": "2024-11-08T15:36:38Z", "updated_at": "2024-11-08T15:36:38Z", - "download_count": 5, + "download_count": 6, "size": 6682199 }, { @@ -4311,7 +4687,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.8.0/conduit-connector-generator_0.8.0_Darwin_arm64.tar.gz", "created_at": "2024-10-09T13:13:17Z", "updated_at": "2024-10-09T13:13:18Z", - "download_count": 5, + "download_count": 6, "size": 6512459 }, { @@ -4322,7 +4698,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.8.0/conduit-connector-generator_0.8.0_Darwin_x86_64.tar.gz", "created_at": "2024-10-09T13:13:17Z", "updated_at": "2024-10-09T13:13:18Z", - "download_count": 4, + "download_count": 5, "size": 6821343 }, { @@ -4455,7 +4831,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.7.0/conduit-connector-generator_0.7.0_Linux_x86_64.tar.gz", "created_at": "2024-08-07T09:19:56Z", "updated_at": "2024-08-07T09:19:56Z", - "download_count": 10, + "download_count": 11, "size": 6445319 }, { @@ -4555,7 +4931,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.6.0/conduit-connector-generator_0.6.0_Linux_x86_64.tar.gz", "created_at": "2024-04-24T18:11:58Z", "updated_at": "2024-04-24T18:11:58Z", - "download_count": 11, + "download_count": 12, "size": 5830746 }, { @@ -4955,7 +5331,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-generator/releases/download/v0.3.0/conduit-connector-generator_0.3.0_Linux_x86_64.tar.gz", "created_at": "2022-09-27T14:05:37Z", "updated_at": "2022-09-27T14:05:37Z", - "download_count": 13, + "download_count": 14, "size": 4125168 }, { @@ -5005,9014 +5381,11001 @@ "fork_count": 6, "releases": [ { - "tag_name": "v0.14.0", - "name": "v0.14.0", - "body": "", - "draft": false, - "prerelease": false, - "published_at": "2026-10-19T02:58:47Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.14.0", - "assets": [ - { - "name": "kafka_v0.14.0_darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz", - "created_at": "2026-10-19T02:58:51Z", - "updated_at": "2026-10-19T02:58:51Z", - "download_count": 0, - "size": 18173754 - }, - { - "name": "kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json", - "os": "darwin", - "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-19T02:58:51Z", - "updated_at": "2026-10-19T02:58:51Z", - "download_count": 0, - "size": 9508 - } - ], - "is_latest": true - }, - { - "tag_name": "v0.13.0", - "name": "v0.13.0", - "body": "## conduit-connector-kafka v0.13.0\n\n**Go 1.26.9 is now the minimum** to build from source. A minor release because of that and because the SDK moves to v0.15.0. Pipeline configuration is unchanged.\n\n### Fixed\n\n- **The destination could acknowledge a record that failed to write** (#308, #312). In a batch, the connector reported progress as the position of the first error in callback completion order, not record order. If record 2 failed but its callback finished after a later record's, records up to the later one were acknowledged upstream and the failed record was never retried. Each record now has its own result slot and the connector reports the index of the first failed record in record order. Records after the failure are retried, so they can be delivered twice (at-least-once). This is also shipped as v0.12.6 for the v0.12.x line. Everyone on v0.12.5 and earlier is affected.\n\n### Changed\n\n- `conduit-commons` v0.8.0, `conduit-connector-sdk` v0.15.0; `hamba/avro` is no longer in the dependency graph.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends); a batch that arrives after teardown started is redelivered on restart (conduit-connector-sdk#401).\n- Test infrastructure: the Redpanda image is pinned by digest (#307).\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.5...v0.13.0\n", + "tag_name": "v0.16.0", + "name": "v0.16.0", + "body": "## What's Changed\n* fix(destination): do not put the record key in the topic-not-found error by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/339\n* feat: let the host supply a dialer for network connections by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/340\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.15.0...v0.16.0", "draft": false, "prerelease": false, - "published_at": "2026-10-13T07:30:39Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.13.0", + "published_at": "2026-10-25T00:35:25Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.16.0", "assets": [ { - "name": "conduit-connector-kafka_0.13.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:34:47Z", - "updated_at": "2026-10-13T07:34:47Z", - "download_count": 7, - "size": 8668058 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:39:48Z", + "updated_at": "2026-10-25T00:39:49Z", + "download_count": 0, + "size": 9208530 }, { - "name": "conduit-connector-kafka_0.13.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Darwin_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:47Z", - "updated_at": "2026-10-13T07:34:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-25T00:39:48Z", + "updated_at": "2026-10-25T00:39:49Z", "download_count": 0, - "size": 9363207 + "size": 9950601 }, { - "name": "conduit-connector-kafka_0.13.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_arm64.tar.gz", - "created_at": "2026-10-13T07:34:47Z", - "updated_at": "2026-10-13T07:34:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_arm64.tar.gz", + "created_at": "2026-10-25T00:39:48Z", + "updated_at": "2026-10-25T00:39:49Z", "download_count": 0, - "size": 8254536 + "size": 8771232 }, { - "name": "conduit-connector-kafka_0.13.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_i386.tar.gz", - "created_at": "2026-10-13T07:34:47Z", - "updated_at": "2026-10-13T07:34:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_i386.tar.gz", + "created_at": "2026-10-25T00:39:48Z", + "updated_at": "2026-10-25T00:39:49Z", "download_count": 0, - "size": 8736097 + "size": 9295628 }, { - "name": "conduit-connector-kafka_0.13.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:45Z", - "updated_at": "2026-10-13T07:34:46Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-25T00:39:49Z", + "updated_at": "2026-10-25T00:39:50Z", "download_count": 0, - "size": 9138529 + "size": 9714888 }, { - "name": "conduit-connector-kafka_0.13.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_arm64.tar.gz", - "created_at": "2026-10-13T07:34:45Z", - "updated_at": "2026-10-13T07:34:46Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_arm64.tar.gz", + "created_at": "2026-10-25T00:39:49Z", + "updated_at": "2026-10-25T00:39:50Z", "download_count": 0, - "size": 8351137 + "size": 8871876 }, { - "name": "conduit-connector-kafka_0.13.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_i386.tar.gz", - "created_at": "2026-10-13T07:34:46Z", - "updated_at": "2026-10-13T07:34:46Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_i386.tar.gz", + "created_at": "2026-10-25T00:39:49Z", + "updated_at": "2026-10-25T00:39:50Z", "download_count": 0, - "size": 9110097 + "size": 9683002 }, { - "name": "conduit-connector-kafka_0.13.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.16.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:45Z", - "updated_at": "2026-10-13T07:34:46Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/conduit-connector-kafka_0.16.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-25T00:39:49Z", + "updated_at": "2026-10-25T00:39:50Z", "download_count": 0, - "size": 9392595 + "size": 9983197 }, { - "name": "kafka_v0.13.0_darwin_amd64.tar.gz", + "name": "kafka_v0.16.0_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_amd64.tar.gz", - "created_at": "2026-10-13T07:32:35Z", - "updated_at": "2026-10-13T07:32:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_amd64.tar.gz", + "created_at": "2026-10-25T00:36:52Z", + "updated_at": "2026-10-25T00:36:53Z", "download_count": 0, - "size": 18266648 + "size": 19407330 }, { - "name": "kafka_v0.13.0_darwin_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.16.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:32:35Z", - "updated_at": "2026-10-13T07:32:35Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:36:53Z", + "updated_at": "2026-10-25T00:36:53Z", "download_count": 0, - "size": 9422 + "size": 9555 }, { - "name": "kafka_v0.13.0_darwin_arm64.tar.gz", + "name": "kafka_v0.16.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:33:12Z", - "updated_at": "2026-10-13T07:33:13Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:37:19Z", + "updated_at": "2026-10-25T00:37:20Z", "download_count": 0, - "size": 17176155 + "size": 18237973 }, { - "name": "kafka_v0.13.0_darwin_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.16.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:33:11Z", - "updated_at": "2026-10-13T07:33:12Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:37:19Z", + "updated_at": "2026-10-25T00:37:19Z", "download_count": 0, - "size": 9273 + "size": 9426 }, { - "name": "kafka_v0.13.0_linux_amd64.tar.gz", + "name": "kafka_v0.16.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_amd64.tar.gz", - "created_at": "2026-10-13T07:31:22Z", - "updated_at": "2026-10-13T07:31:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_amd64.tar.gz", + "created_at": "2026-10-25T00:36:00Z", + "updated_at": "2026-10-25T00:36:01Z", "download_count": 0, - "size": 17539246 + "size": 18633525 }, { - "name": "kafka_v0.13.0_linux_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.16.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:22Z", - "updated_at": "2026-10-13T07:31:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:36:00Z", + "updated_at": "2026-10-25T00:36:00Z", "download_count": 0, - "size": 9238 + "size": 9422 }, { - "name": "kafka_v0.13.0_linux_arm64.tar.gz", + "name": "kafka_v0.16.0_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_arm64.tar.gz", - "created_at": "2026-10-13T07:31:59Z", - "updated_at": "2026-10-13T07:32:00Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_arm64.tar.gz", + "created_at": "2026-10-25T00:36:26Z", + "updated_at": "2026-10-25T00:36:27Z", "download_count": 0, - "size": 16082957 + "size": 17074172 }, { - "name": "kafka_v0.13.0_linux_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.16.0_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:59Z", - "updated_at": "2026-10-13T07:31:59Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.16.0/kafka_v0.16.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:36:26Z", + "updated_at": "2026-10-25T00:36:27Z", "download_count": 0, - "size": 9332 + "size": 9461 } ], - "is_latest": false + "is_latest": true }, { - "tag_name": "v0.12.6", - "name": "v0.12.6", - "body": "## v0.12.6\n\nPatch release from the `release/v0.12.x` line. Upgrade if you run the Kafka destination.\n\n### Fixed\n\n- **The destination could acknowledge a record that failed to write** (#308, fixed in #312, backported in #313). When the destination wrote a batch, it reported progress as the position of the first error in the order callbacks completed, not in record order. If record 2 of a batch failed but its callback finished after a later record's, the connector told Conduit that records 0 through 8 were written, and the failed record was acknowledged upstream and never retried. The result list was also appended to from several producer goroutines without a lock.\n\n Each record now has its own result slot, and the connector reports the index of the first failed record in record order. Records after the failure are not acknowledged, so Conduit retries from the failed record. Those later records may have already reached Kafka, so they can be delivered twice. That is at-least-once delivery, not loss.\n\n### Who is affected\n\nEveryone on v0.12.5 and earlier, back to v0.7.0, when the destination writes more than one record per batch (the franz-go rewrite introduced this). The failure needs a per-record produce error, for example `MESSAGE_TOO_LARGE`, in a batch where another record completes first. There was no error or metric when it happened; the symptom was fewer rows in Kafka than in the source.\n\nSingle-record writes were not affected.\n\n### Upgrading\n\nNo configuration changes. No change to positions or the connector protocol. To roll back, install v0.12.5.\n\nA known ordering caveat is unchanged: after a fatal batch failure, a retried record can land behind records that came after it in the same partition. This predates v0.12.6 and is not made worse by it.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.5...v0.12.6\n", + "tag_name": "v0.15.0", + "name": "v0.15.0", + "body": "## What's Changed\n* fix(common): refuse SASL without TLS unless saslAllowPlaintext is set by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/337\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.14.2...v0.15.0", "draft": false, "prerelease": false, - "published_at": "2026-10-13T05:35:07Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.6", + "published_at": "2026-10-22T00:58:47Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.15.0", "assets": [ { - "name": "conduit-connector-kafka_0.12.6_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Darwin_arm64.tar.gz", - "created_at": "2026-10-13T05:38:08Z", - "updated_at": "2026-10-13T05:38:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-22T01:03:27Z", + "updated_at": "2026-10-22T01:03:27Z", "download_count": 0, - "size": 7850259 + "size": 9208412 }, { - "name": "conduit-connector-kafka_0.12.6_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Darwin_x86_64.tar.gz", - "created_at": "2026-10-13T05:38:09Z", - "updated_at": "2026-10-13T05:38:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-22T01:03:27Z", + "updated_at": "2026-10-22T01:03:28Z", "download_count": 0, - "size": 8345631 + "size": 9948086 }, { - "name": "conduit-connector-kafka_0.12.6_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_arm64.tar.gz", - "created_at": "2026-10-13T05:38:08Z", - "updated_at": "2026-10-13T05:38:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Linux_arm64.tar.gz", + "created_at": "2026-10-22T01:03:27Z", + "updated_at": "2026-10-22T01:03:30Z", "download_count": 0, - "size": 7469610 + "size": 8770976 }, { - "name": "conduit-connector-kafka_0.12.6_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_i386.tar.gz", - "created_at": "2026-10-13T05:38:09Z", - "updated_at": "2026-10-13T05:38:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Linux_i386.tar.gz", + "created_at": "2026-10-22T01:03:27Z", + "updated_at": "2026-10-22T01:03:28Z", "download_count": 0, - "size": 7759208 + "size": 9293640 }, { - "name": "conduit-connector-kafka_0.12.6_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_x86_64.tar.gz", - "created_at": "2026-10-13T05:38:08Z", - "updated_at": "2026-10-13T05:38:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-22T01:03:29Z", + "updated_at": "2026-10-22T01:03:30Z", "download_count": 0, - "size": 8136790 + "size": 9712377 }, { - "name": "conduit-connector-kafka_0.12.6_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_arm64.tar.gz", - "created_at": "2026-10-13T05:38:08Z", - "updated_at": "2026-10-13T05:38:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Windows_arm64.tar.gz", + "created_at": "2026-10-22T01:03:28Z", + "updated_at": "2026-10-22T01:03:29Z", "download_count": 0, - "size": 7573721 + "size": 8869329 }, { - "name": "conduit-connector-kafka_0.12.6_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_i386.tar.gz", - "created_at": "2026-10-13T05:38:09Z", - "updated_at": "2026-10-13T05:38:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Windows_i386.tar.gz", + "created_at": "2026-10-22T01:03:28Z", + "updated_at": "2026-10-22T01:03:28Z", "download_count": 0, - "size": 8097734 + "size": 9678372 }, { - "name": "conduit-connector-kafka_0.12.6_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.15.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_x86_64.tar.gz", - "created_at": "2026-10-13T05:38:09Z", - "updated_at": "2026-10-13T05:38:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/conduit-connector-kafka_0.15.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-22T01:03:28Z", + "updated_at": "2026-10-22T01:03:29Z", "download_count": 0, - "size": 8390113 + "size": 9978040 }, { - "name": "kafka_v0.12.6_darwin_amd64.tar.gz", + "name": "kafka_v0.15.0_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_amd64.tar.gz", - "created_at": "2026-10-13T05:36:59Z", - "updated_at": "2026-10-13T05:37:00Z", - "download_count": 1, - "size": 16277353 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_darwin_amd64.tar.gz", + "created_at": "2026-10-22T01:00:37Z", + "updated_at": "2026-10-22T01:00:37Z", + "download_count": 0, + "size": 19402159 }, { - "name": "kafka_v0.12.6_darwin_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.15.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T05:36:59Z", - "updated_at": "2026-10-13T05:36:59Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-22T01:00:37Z", + "updated_at": "2026-10-22T01:00:37Z", "download_count": 0, - "size": 9610 + "size": 9422 }, { - "name": "kafka_v0.12.6_darwin_arm64.tar.gz", + "name": "kafka_v0.15.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_arm64.tar.gz", - "created_at": "2026-10-13T05:37:34Z", - "updated_at": "2026-10-13T05:37:35Z", - "download_count": 2, - "size": 15525535 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_darwin_arm64.tar.gz", + "created_at": "2026-10-22T01:01:10Z", + "updated_at": "2026-10-22T01:01:11Z", + "download_count": 0, + "size": 18228252 }, { - "name": "kafka_v0.12.6_darwin_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.15.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T05:37:34Z", - "updated_at": "2026-10-13T05:37:34Z", - "download_count": 1, - "size": 9751 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-22T01:01:10Z", + "updated_at": "2026-10-22T01:01:11Z", + "download_count": 0, + "size": 9610 }, { - "name": "kafka_v0.12.6_linux_amd64.tar.gz", + "name": "kafka_v0.15.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_amd64.tar.gz", - "created_at": "2026-10-13T05:35:48Z", - "updated_at": "2026-10-13T05:35:49Z", - "download_count": 1, - "size": 16344914 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_linux_amd64.tar.gz", + "created_at": "2026-10-22T00:59:29Z", + "updated_at": "2026-10-22T00:59:30Z", + "download_count": 0, + "size": 18629972 }, { - "name": "kafka_v0.12.6_linux_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.15.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T05:35:48Z", - "updated_at": "2026-10-13T05:35:49Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-22T00:59:29Z", + "updated_at": "2026-10-22T00:59:29Z", "download_count": 0, - "size": 9614 + "size": 9555 }, { - "name": "kafka_v0.12.6_linux_arm64.tar.gz", + "name": "kafka_v0.15.0_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_arm64.tar.gz", - "created_at": "2026-10-13T05:36:23Z", - "updated_at": "2026-10-13T05:36:24Z", - "download_count": 1, - "size": 15300080 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_linux_arm64.tar.gz", + "created_at": "2026-10-22T01:00:04Z", + "updated_at": "2026-10-22T01:00:05Z", + "download_count": 0, + "size": 17066832 }, { - "name": "kafka_v0.12.6_linux_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.15.0_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T05:36:23Z", - "updated_at": "2026-10-13T05:36:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.15.0/kafka_v0.15.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-22T01:00:04Z", + "updated_at": "2026-10-22T01:00:04Z", "download_count": 0, - "size": 9563 + "size": 9610 } ], "is_latest": false }, { - "tag_name": "v0.12.5", - "name": "v0.12.5", - "body": "## What's Changed\n* chore: re-release v0.12.5 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/306\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.4...v0.12.5", + "tag_name": "v0.14.2", + "name": "v0.14.2", + "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-commons from 0.10.0 to 0.11.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/334\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.17.0 to 0.17.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/335\n* perf(destination): don't wait out the producer linger on batched writes by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/333\n* chore(release): v0.14.2, bump conduit-commons@v0.12.0 conduit-connector-sdk@v0.17.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/336\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.14.1...v0.14.2", "draft": false, "prerelease": false, - "published_at": "2026-07-23T11:58:09Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.5", + "published_at": "2026-10-20T19:06:22Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.14.2", "assets": [ { - "name": "conduit-connector-kafka_0.12.5_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:02:22Z", - "updated_at": "2026-07-23T12:02:23Z", - "download_count": 4, - "size": 7879685 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T19:07:50Z", + "updated_at": "2026-10-20T19:07:51Z", + "download_count": 0, + "size": 9208537 }, { - "name": "conduit-connector-kafka_0.12.5_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:22Z", - "updated_at": "2026-07-23T12:02:23Z", - "download_count": 3, - "size": 8361244 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T19:07:50Z", + "updated_at": "2026-10-20T19:07:51Z", + "download_count": 0, + "size": 9947931 }, { - "name": "conduit-connector-kafka_0.12.5_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_arm64.tar.gz", - "created_at": "2026-07-23T12:02:22Z", - "updated_at": "2026-07-23T12:02:23Z", - "download_count": 3, - "size": 7507888 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Linux_arm64.tar.gz", + "created_at": "2026-10-20T19:07:50Z", + "updated_at": "2026-10-20T19:07:51Z", + "download_count": 0, + "size": 8770321 }, { - "name": "conduit-connector-kafka_0.12.5_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_i386.tar.gz", - "created_at": "2026-07-23T12:02:22Z", - "updated_at": "2026-07-23T12:02:23Z", - "download_count": 3, - "size": 7780191 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Linux_i386.tar.gz", + "created_at": "2026-10-20T19:07:51Z", + "updated_at": "2026-10-20T19:07:52Z", + "download_count": 0, + "size": 9292828 }, { - "name": "conduit-connector-kafka_0.12.5_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:21Z", - "updated_at": "2026-07-23T12:02:22Z", - "download_count": 3, - "size": 8157466 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T19:07:50Z", + "updated_at": "2026-10-20T19:07:51Z", + "download_count": 0, + "size": 9709935 }, { - "name": "conduit-connector-kafka_0.12.5_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_arm64.tar.gz", - "created_at": "2026-07-23T12:02:21Z", - "updated_at": "2026-07-23T12:02:22Z", - "download_count": 3, - "size": 7609924 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Windows_arm64.tar.gz", + "created_at": "2026-10-20T19:07:52Z", + "updated_at": "2026-10-20T19:07:52Z", + "download_count": 0, + "size": 8866774 }, { - "name": "conduit-connector-kafka_0.12.5_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_i386.tar.gz", - "created_at": "2026-07-23T12:02:21Z", - "updated_at": "2026-07-23T12:02:22Z", - "download_count": 3, - "size": 8124866 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Windows_i386.tar.gz", + "created_at": "2026-10-20T19:07:51Z", + "updated_at": "2026-10-20T19:07:52Z", + "download_count": 0, + "size": 9677542 }, { - "name": "conduit-connector-kafka_0.12.5_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.14.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:21Z", - "updated_at": "2026-07-23T12:02:22Z", - "download_count": 3, - "size": 8400874 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/conduit-connector-kafka_0.14.2_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T19:07:52Z", + "updated_at": "2026-10-20T19:07:53Z", + "download_count": 0, + "size": 9975469 }, { - "name": "kafka_v0.12.5_darwin_amd64.tar.gz", + "name": "kafka_v0.14.2_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_amd64.tar.gz", - "created_at": "2026-07-23T12:00:05Z", - "updated_at": "2026-07-23T12:00:06Z", - "download_count": 3, - "size": 16277926 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_darwin_amd64.tar.gz", + "created_at": "2026-10-20T19:08:02Z", + "updated_at": "2026-10-20T19:08:03Z", + "download_count": 0, + "size": 19399932 }, { - "name": "kafka_v0.12.5_darwin_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.14.2_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T12:00:05Z", - "updated_at": "2026-07-23T12:00:05Z", - "download_count": 13, - "size": 9726 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T19:08:02Z", + "updated_at": "2026-10-20T19:08:03Z", + "download_count": 0, + "size": 9751 }, { - "name": "kafka_v0.12.5_darwin_arm64.tar.gz", + "name": "kafka_v0.14.2_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:00:42Z", - "updated_at": "2026-07-23T12:00:43Z", - "download_count": 4, - "size": 15524409 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_darwin_arm64.tar.gz", + "created_at": "2026-10-20T19:08:34Z", + "updated_at": "2026-10-20T19:08:35Z", + "download_count": 0, + "size": 18227054 }, { - "name": "kafka_v0.12.5_darwin_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.14.2_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T12:00:42Z", - "updated_at": "2026-07-23T12:00:42Z", - "download_count": 14, - "size": 9867 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T19:08:34Z", + "updated_at": "2026-10-20T19:08:34Z", + "download_count": 0, + "size": 9704 }, { - "name": "kafka_v0.12.5_linux_amd64.tar.gz", + "name": "kafka_v0.14.2_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_amd64.tar.gz", - "created_at": "2026-07-23T11:58:52Z", - "updated_at": "2026-07-23T11:58:53Z", - "download_count": 3, - "size": 16348241 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_linux_amd64.tar.gz", + "created_at": "2026-10-20T19:07:01Z", + "updated_at": "2026-10-20T19:07:02Z", + "download_count": 0, + "size": 18628275 }, { - "name": "kafka_v0.12.5_linux_amd64.tar.gz.sigstore.json", + "name": "kafka_v0.14.2_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:58:52Z", - "updated_at": "2026-07-23T11:58:53Z", - "download_count": 13, - "size": 9773 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T19:07:01Z", + "updated_at": "2026-10-20T19:07:01Z", + "download_count": 0, + "size": 9798 }, { - "name": "kafka_v0.12.5_linux_arm64.tar.gz", + "name": "kafka_v0.14.2_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_arm64.tar.gz", - "created_at": "2026-07-23T11:59:29Z", - "updated_at": "2026-07-23T11:59:29Z", - "download_count": 3, - "size": 15295954 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_linux_arm64.tar.gz", + "created_at": "2026-10-20T19:07:32Z", + "updated_at": "2026-10-20T19:07:33Z", + "download_count": 0, + "size": 17065292 }, { - "name": "kafka_v0.12.5_linux_arm64.tar.gz.sigstore.json", + "name": "kafka_v0.14.2_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:59:29Z", - "updated_at": "2026-07-23T11:59:29Z", - "download_count": 13, - "size": 9632 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.2/kafka_v0.14.2_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T19:07:32Z", + "updated_at": "2026-10-20T19:07:32Z", + "download_count": 0, + "size": 9798 } ], "is_latest": false }, { - "tag_name": "v0.12.4", - "name": "v0.12.4", - "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-commons from 0.5.4 to 0.6.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/240\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.14.0 to 0.14.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/241\n* docker-compose: bump redpandadata/redpanda from v25.1.4 to v25.1.5 in /test by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/242\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.16.0 to 1.16.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/245\n* go.mod: bump go.uber.org/mock from 0.5.2 to 0.6.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/248\n* go.mod: bump github.com/twmb/franz-go from 1.19.5 to 1.20.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/257\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.16.1 to 1.17.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/256\n* go.mod: bump github.com/twmb/franz-go from 1.20.0 to 1.20.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/258\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.17.0 to 1.17.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/259\n* go.mod: bump github.com/twmb/franz-go from 1.20.1 to 1.20.2 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/260\n* go.mod: bump github.com/twmb/franz-go from 1.20.2 to 1.20.3 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/262\n* go.mod: bump github.com/twmb/franz-go from 1.20.3 to 1.20.4 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/265\n* go.mod: bump github.com/twmb/franz-go from 1.20.4 to 1.20.5 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/267\n* go.mod: bump github.com/twmb/franz-go from 1.20.5 to 1.20.6 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/270\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.17.1 to 1.17.2 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/275\n* go.mod: bump github.com/twmb/franz-go from 1.20.6 to 1.20.7 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/279\n* go.mod: bump github.com/goccy/go-json from 0.10.5 to 0.10.6 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/283\n* go.mod: bump github.com/rs/zerolog from 1.34.0 to 1.35.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/284\n* go.mod: bump github.com/rs/zerolog from 1.35.0 to 1.35.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/289\n* feat: registry seed — publish.yml + bump to v0.12.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/305\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-kafka/pull/305\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.3...v0.12.4", + "tag_name": "v0.14.1", + "name": "v0.14.1", + "body": "", "draft": false, "prerelease": false, - "published_at": "2026-07-23T02:18:18Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.4", + "published_at": "2026-10-19T19:22:14Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.14.1", + "assets": null, + "is_latest": false + }, + { + "tag_name": "v0.14.0", + "name": "v0.14.0", + "body": "", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T02:58:47Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.14.0", "assets": [ { - "name": "conduit-connector-kafka_0.12.4_Darwin_arm64.tar.gz", + "name": "kafka_v0.14.0_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz", + "created_at": "2026-10-19T02:58:51Z", + "updated_at": "2026-10-19T02:58:51Z", + "download_count": 0, + "size": 18173754 + }, + { + "name": "kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.14.0/kafka_v0.14.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T02:58:51Z", + "updated_at": "2026-10-19T02:58:51Z", + "download_count": 0, + "size": 9508 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.13.0", + "name": "v0.13.0", + "body": "## conduit-connector-kafka v0.13.0\n\n**Go 1.26.9 is now the minimum** to build from source. A minor release because of that and because the SDK moves to v0.15.0. Pipeline configuration is unchanged.\n\n### Fixed\n\n- **The destination could acknowledge a record that failed to write** (#308, #312). In a batch, the connector reported progress as the position of the first error in callback completion order, not record order. If record 2 failed but its callback finished after a later record's, records up to the later one were acknowledged upstream and the failed record was never retried. Each record now has its own result slot and the connector reports the index of the first failed record in record order. Records after the failure are retried, so they can be delivered twice (at-least-once). This is also shipped as v0.12.6 for the v0.12.x line. Everyone on v0.12.5 and earlier is affected.\n\n### Changed\n\n- `conduit-commons` v0.8.0, `conduit-connector-sdk` v0.15.0; `hamba/avro` is no longer in the dependency graph.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends); a batch that arrives after teardown started is redelivered on restart (conduit-connector-sdk#401).\n- Test infrastructure: the Redpanda image is pinned by digest (#307).\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.5...v0.13.0\n", + "draft": false, + "prerelease": false, + "published_at": "2026-10-13T07:30:39Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.13.0", + "assets": [ + { + "name": "conduit-connector-kafka_0.13.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T02:22:11Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 7879663 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:34:47Z", + "updated_at": "2026-10-13T07:34:47Z", + "download_count": 7, + "size": 8668058 }, { - "name": "conduit-connector-kafka_0.12.4_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:11Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 8361234 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:47Z", + "updated_at": "2026-10-13T07:34:48Z", + "download_count": 0, + "size": 9363207 }, { - "name": "conduit-connector-kafka_0.12.4_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_arm64.tar.gz", - "created_at": "2026-07-23T02:22:11Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 7507872 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_arm64.tar.gz", + "created_at": "2026-10-13T07:34:47Z", + "updated_at": "2026-10-13T07:34:48Z", + "download_count": 0, + "size": 8254536 }, { - "name": "conduit-connector-kafka_0.12.4_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_i386.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:12Z", - "download_count": 3, - "size": 7780176 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_i386.tar.gz", + "created_at": "2026-10-13T07:34:47Z", + "updated_at": "2026-10-13T07:34:48Z", + "download_count": 0, + "size": 8736097 }, { - "name": "conduit-connector-kafka_0.12.4_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:11Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 8157452 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:45Z", + "updated_at": "2026-10-13T07:34:46Z", + "download_count": 0, + "size": 9138529 }, { - "name": "conduit-connector-kafka_0.12.4_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_arm64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:12Z", - "download_count": 3, - "size": 7609916 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_arm64.tar.gz", + "created_at": "2026-10-13T07:34:45Z", + "updated_at": "2026-10-13T07:34:46Z", + "download_count": 0, + "size": 8351137 }, { - "name": "conduit-connector-kafka_0.12.4_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_i386.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:12Z", - "download_count": 3, - "size": 8124863 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_i386.tar.gz", + "created_at": "2026-10-13T07:34:46Z", + "updated_at": "2026-10-13T07:34:46Z", + "download_count": 0, + "size": 9110097 }, { - "name": "conduit-connector-kafka_0.12.4_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.13.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:13Z", - "download_count": 3, - "size": 8400877 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/conduit-connector-kafka_0.13.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:45Z", + "updated_at": "2026-10-13T07:34:46Z", + "download_count": 0, + "size": 9392595 }, { - "name": "kafka_v0.12.4_darwin_amd64", + "name": "kafka_v0.13.0_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_amd64", - "created_at": "2026-07-23T02:20:22Z", - "updated_at": "2026-07-23T02:20:24Z", - "download_count": 3, - "size": 33544736 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_amd64.tar.gz", + "created_at": "2026-10-13T07:32:35Z", + "updated_at": "2026-10-13T07:32:36Z", + "download_count": 0, + "size": 18266648 }, { - "name": "kafka_v0.12.4_darwin_amd64.sigstore.json", + "name": "kafka_v0.13.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_amd64.sigstore.json", - "created_at": "2026-07-23T02:20:22Z", - "updated_at": "2026-07-23T02:20:22Z", - "download_count": 1, - "size": 8977 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:32:35Z", + "updated_at": "2026-10-13T07:32:35Z", + "download_count": 0, + "size": 9422 }, { - "name": "kafka_v0.12.4_darwin_arm64", + "name": "kafka_v0.13.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_arm64", - "created_at": "2026-07-23T02:21:02Z", - "updated_at": "2026-07-23T02:21:05Z", - "download_count": 3, - "size": 32318162 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:33:12Z", + "updated_at": "2026-10-13T07:33:13Z", + "download_count": 0, + "size": 17176155 }, { - "name": "kafka_v0.12.4_darwin_arm64.sigstore.json", + "name": "kafka_v0.13.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_arm64.sigstore.json", - "created_at": "2026-07-23T02:21:02Z", - "updated_at": "2026-07-23T02:21:02Z", - "download_count": 1, - "size": 8985 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:33:11Z", + "updated_at": "2026-10-13T07:33:12Z", + "download_count": 0, + "size": 9273 }, { - "name": "kafka_v0.12.4_linux_amd64", + "name": "kafka_v0.13.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_amd64", - "created_at": "2026-07-23T02:19:11Z", - "updated_at": "2026-07-23T02:19:13Z", - "download_count": 3, - "size": 33313208 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_amd64.tar.gz", + "created_at": "2026-10-13T07:31:22Z", + "updated_at": "2026-10-13T07:31:23Z", + "download_count": 0, + "size": 17539246 }, { - "name": "kafka_v0.12.4_linux_amd64.sigstore.json", + "name": "kafka_v0.13.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_amd64.sigstore.json", - "created_at": "2026-07-23T02:19:11Z", - "updated_at": "2026-07-23T02:19:11Z", - "download_count": 12, - "size": 8977 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:22Z", + "updated_at": "2026-10-13T07:31:23Z", + "download_count": 0, + "size": 9238 }, { - "name": "kafka_v0.12.4_linux_arm64", + "name": "kafka_v0.13.0_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_arm64", - "created_at": "2026-07-23T02:19:46Z", - "updated_at": "2026-07-23T02:19:48Z", - "download_count": 3, - "size": 31845270 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_arm64.tar.gz", + "created_at": "2026-10-13T07:31:59Z", + "updated_at": "2026-10-13T07:32:00Z", + "download_count": 0, + "size": 16082957 }, { - "name": "kafka_v0.12.4_linux_arm64.sigstore.json", + "name": "kafka_v0.13.0_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_arm64.sigstore.json", - "created_at": "2026-07-23T02:19:46Z", - "updated_at": "2026-07-23T02:19:46Z", - "download_count": 1, - "size": 8977 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.13.0/kafka_v0.13.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:59Z", + "updated_at": "2026-10-13T07:31:59Z", + "download_count": 0, + "size": 9332 } ], "is_latest": false }, { - "tag_name": "v0.12.3", - "name": "v0.12.3", - "body": "## Changelog\n* 9213d53a85f942fd98cb46179ae9adfad80cb61f: Commit records periodically (#231) (@hariso)\n* d1c7e660fb86e01af48a977623d153b941e9fab9: Configure dependabot to update Docker Compose files (#234) (@hariso)\n* 55a9c5414d7ac722d0c052fd317d2c76639956d8: Update version to v0.12.3 (#239) (@hariso)\n* 2d89490ec3682be4567ff6ff84636ea90e8d5b99: docker-compose: bump apache/kafka-native from 3.8.0 to 4.0.0 in /test (#236) (@dependabot[bot])\n* e1a08c94887d0abe0bd1524d475b33939af5c9a4: docker-compose: bump redpandadata/redpanda in /test (#235) (@dependabot[bot])\n\n", + "tag_name": "v0.12.6", + "name": "v0.12.6", + "body": "## v0.12.6\n\nPatch release from the `release/v0.12.x` line. Upgrade if you run the Kafka destination.\n\n### Fixed\n\n- **The destination could acknowledge a record that failed to write** (#308, fixed in #312, backported in #313). When the destination wrote a batch, it reported progress as the position of the first error in the order callbacks completed, not in record order. If record 2 of a batch failed but its callback finished after a later record's, the connector told Conduit that records 0 through 8 were written, and the failed record was acknowledged upstream and never retried. The result list was also appended to from several producer goroutines without a lock.\n\n Each record now has its own result slot, and the connector reports the index of the first failed record in record order. Records after the failure are not acknowledged, so Conduit retries from the failed record. Those later records may have already reached Kafka, so they can be delivered twice. That is at-least-once delivery, not loss.\n\n### Who is affected\n\nEveryone on v0.12.5 and earlier, back to v0.7.0, when the destination writes more than one record per batch (the franz-go rewrite introduced this). The failure needs a per-record produce error, for example `MESSAGE_TOO_LARGE`, in a batch where another record completes first. There was no error or metric when it happened; the symptom was fewer rows in Kafka than in the source.\n\nSingle-record writes were not affected.\n\n### Upgrading\n\nNo configuration changes. No change to positions or the connector protocol. To roll back, install v0.12.5.\n\nA known ordering caveat is unchanged: after a fatal batch failure, a retried record can land behind records that came after it in the same partition. This predates v0.12.6 and is not made worse by it.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.5...v0.12.6\n", "draft": false, "prerelease": false, - "published_at": "2025-06-03T13:11:18Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.3", + "published_at": "2026-10-13T05:35:07Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.6", "assets": [ { - "name": "conduit-connector-kafka_0.12.3_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Darwin_arm64.tar.gz", - "created_at": "2025-06-03T13:11:16Z", - "updated_at": "2025-06-03T13:11:17Z", - "download_count": 53, - "size": 7813639 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Darwin_arm64.tar.gz", + "created_at": "2026-10-13T05:38:08Z", + "updated_at": "2026-10-13T05:38:09Z", + "download_count": 0, + "size": 7850259 }, { - "name": "conduit-connector-kafka_0.12.3_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Darwin_x86_64.tar.gz", - "created_at": "2025-06-03T13:11:16Z", - "updated_at": "2025-06-03T13:11:17Z", - "download_count": 55, - "size": 8286931 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Darwin_x86_64.tar.gz", + "created_at": "2026-10-13T05:38:09Z", + "updated_at": "2026-10-13T05:38:10Z", + "download_count": 0, + "size": 8345631 }, { - "name": "conduit-connector-kafka_0.12.3_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_arm64.tar.gz", - "created_at": "2025-06-03T13:11:16Z", - "updated_at": "2025-06-03T13:11:17Z", - "download_count": 51, - "size": 7445306 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_arm64.tar.gz", + "created_at": "2026-10-13T05:38:08Z", + "updated_at": "2026-10-13T05:38:09Z", + "download_count": 0, + "size": 7469610 }, { - "name": "conduit-connector-kafka_0.12.3_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_i386.tar.gz", - "created_at": "2025-06-03T13:11:17Z", - "updated_at": "2025-06-03T13:11:18Z", - "download_count": 64, - "size": 7719338 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_i386.tar.gz", + "created_at": "2026-10-13T05:38:09Z", + "updated_at": "2026-10-13T05:38:10Z", + "download_count": 0, + "size": 7759208 }, { - "name": "conduit-connector-kafka_0.12.3_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_x86_64.tar.gz", - "created_at": "2025-06-03T13:11:16Z", - "updated_at": "2025-06-03T13:11:17Z", - "download_count": 56, - "size": 8085122 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Linux_x86_64.tar.gz", + "created_at": "2026-10-13T05:38:08Z", + "updated_at": "2026-10-13T05:38:09Z", + "download_count": 0, + "size": 8136790 }, { - "name": "conduit-connector-kafka_0.12.3_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_arm64.tar.gz", - "created_at": "2025-06-03T13:11:17Z", - "updated_at": "2025-06-03T13:11:18Z", - "download_count": 55, - "size": 7549231 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_arm64.tar.gz", + "created_at": "2026-10-13T05:38:08Z", + "updated_at": "2026-10-13T05:38:09Z", + "download_count": 0, + "size": 7573721 }, { - "name": "conduit-connector-kafka_0.12.3_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_i386.tar.gz", - "created_at": "2025-06-03T13:11:17Z", - "updated_at": "2025-06-03T13:11:18Z", - "download_count": 56, - "size": 8057410 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_i386.tar.gz", + "created_at": "2026-10-13T05:38:09Z", + "updated_at": "2026-10-13T05:38:10Z", + "download_count": 0, + "size": 8097734 }, { - "name": "conduit-connector-kafka_0.12.3_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.6_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_x86_64.tar.gz", - "created_at": "2025-06-03T13:11:17Z", - "updated_at": "2025-06-03T13:11:18Z", - "download_count": 56, - "size": 8327355 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.12.2", - "name": "v0.12.2", - "body": "## Changelog\n* 0c8b8fef7aded9cc4ae59f1b6f2725aaeac67e81: Bump SDK version to v0.13.4 (#228) (@raulb)\n* 47bcb33f4b161599cb143bbd0026a61981d72dc6: chore: bump (#229) (@raulb)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-05-19T15:09:06Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.2", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/conduit-connector-kafka_0.12.6_Windows_x86_64.tar.gz", + "created_at": "2026-10-13T05:38:09Z", + "updated_at": "2026-10-13T05:38:10Z", + "download_count": 0, + "size": 8390113 + }, { - "name": "conduit-connector-kafka_0.12.2_Darwin_arm64.tar.gz", + "name": "kafka_v0.12.6_darwin_amd64.tar.gz", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Darwin_arm64.tar.gz", - "created_at": "2025-05-19T15:09:05Z", - "updated_at": "2025-05-19T15:09:06Z", - "download_count": 8, - "size": 7811396 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_amd64.tar.gz", + "created_at": "2026-10-13T05:36:59Z", + "updated_at": "2026-10-13T05:37:00Z", + "download_count": 1, + "size": 16277353 }, { - "name": "conduit-connector-kafka_0.12.2_Darwin_x86_64.tar.gz", + "name": "kafka_v0.12.6_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Darwin_x86_64.tar.gz", - "created_at": "2025-05-19T15:09:04Z", - "updated_at": "2025-05-19T15:09:05Z", - "download_count": 5, - "size": 8278047 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T05:36:59Z", + "updated_at": "2026-10-13T05:36:59Z", + "download_count": 0, + "size": 9610 }, { - "name": "conduit-connector-kafka_0.12.2_Linux_arm64.tar.gz", - "os": "linux", + "name": "kafka_v0.12.6_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_arm64.tar.gz", - "created_at": "2025-05-19T15:09:04Z", - "updated_at": "2025-05-19T15:09:05Z", - "download_count": 6, - "size": 7439163 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_arm64.tar.gz", + "created_at": "2026-10-13T05:37:34Z", + "updated_at": "2026-10-13T05:37:35Z", + "download_count": 2, + "size": 15525535 }, { - "name": "conduit-connector-kafka_0.12.2_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_i386.tar.gz", - "created_at": "2025-05-19T15:09:04Z", - "updated_at": "2025-05-19T15:09:05Z", - "download_count": 5, - "size": 7714983 + "name": "kafka_v0.12.6_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T05:37:34Z", + "updated_at": "2026-10-13T05:37:34Z", + "download_count": 1, + "size": 9751 }, { - "name": "conduit-connector-kafka_0.12.2_Linux_x86_64.tar.gz", + "name": "kafka_v0.12.6_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_x86_64.tar.gz", - "created_at": "2025-05-19T15:09:03Z", - "updated_at": "2025-05-19T15:09:04Z", - "download_count": 6, - "size": 8078506 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_amd64.tar.gz", + "created_at": "2026-10-13T05:35:48Z", + "updated_at": "2026-10-13T05:35:49Z", + "download_count": 1, + "size": 16344914 }, { - "name": "conduit-connector-kafka_0.12.2_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_arm64.tar.gz", - "created_at": "2025-05-19T15:09:03Z", - "updated_at": "2025-05-19T15:09:04Z", - "download_count": 5, - "size": 7545453 + "name": "kafka_v0.12.6_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T05:35:48Z", + "updated_at": "2026-10-13T05:35:49Z", + "download_count": 0, + "size": 9614 }, { - "name": "conduit-connector-kafka_0.12.2_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_i386.tar.gz", - "created_at": "2025-05-19T15:09:03Z", - "updated_at": "2025-05-19T15:09:04Z", - "download_count": 5, - "size": 8051854 + "name": "kafka_v0.12.6_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_arm64.tar.gz", + "created_at": "2026-10-13T05:36:23Z", + "updated_at": "2026-10-13T05:36:24Z", + "download_count": 1, + "size": 15300080 }, { - "name": "conduit-connector-kafka_0.12.2_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_x86_64.tar.gz", - "created_at": "2025-05-19T15:09:03Z", - "updated_at": "2025-05-19T15:09:04Z", - "download_count": 5, - "size": 8321410 + "name": "kafka_v0.12.6_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.6/kafka_v0.12.6_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T05:36:23Z", + "updated_at": "2026-10-13T05:36:23Z", + "download_count": 0, + "size": 9563 } ], "is_latest": false }, { - "tag_name": "v0.12.1", - "name": "v0.12.1", - "body": "## Changelog\n* d4c25b1971076382816bf0ffc775f3f9c53d27ea: Update version to v0.12.1 (#213) (@hariso)\n* f31c8352baf768b1401535c8c85b8fb2d1505c3d: fix nil key (#205) (@maha-hajja)\n* 9fe14163b04b89a18a73d310912de6908bce33bd: use check connector tag action from automation (#201) (@lovromazgon)\n\n", + "tag_name": "v0.12.5", + "name": "v0.12.5", + "body": "## What's Changed\n* chore: re-release v0.12.5 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/306\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.4...v0.12.5", "draft": false, "prerelease": false, - "published_at": "2025-03-20T11:35:16Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.1", + "published_at": "2026-07-23T11:58:09Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.5", "assets": [ { - "name": "conduit-connector-kafka_0.12.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Darwin_arm64.tar.gz", - "created_at": "2025-03-20T11:35:15Z", - "updated_at": "2025-03-20T11:35:16Z", - "download_count": 7, - "size": 7543051 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:02:22Z", + "updated_at": "2026-07-23T12:02:23Z", + "download_count": 4, + "size": 7879685 }, { - "name": "conduit-connector-kafka_0.12.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Darwin_x86_64.tar.gz", - "created_at": "2025-03-20T11:35:14Z", - "updated_at": "2025-03-20T11:35:15Z", - "download_count": 6, - "size": 7970941 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:22Z", + "updated_at": "2026-07-23T12:02:23Z", + "download_count": 3, + "size": 8361244 }, { - "name": "conduit-connector-kafka_0.12.1_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_arm64.tar.gz", - "created_at": "2025-03-20T11:35:14Z", - "updated_at": "2025-03-20T11:35:15Z", - "download_count": 5, - "size": 7190989 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_arm64.tar.gz", + "created_at": "2026-07-23T12:02:22Z", + "updated_at": "2026-07-23T12:02:23Z", + "download_count": 3, + "size": 7507888 }, { - "name": "conduit-connector-kafka_0.12.1_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_i386.tar.gz", - "created_at": "2025-03-20T11:35:15Z", - "updated_at": "2025-03-20T11:35:16Z", - "download_count": 5, - "size": 7345955 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_i386.tar.gz", + "created_at": "2026-07-23T12:02:22Z", + "updated_at": "2026-07-23T12:02:23Z", + "download_count": 3, + "size": 7780191 }, { - "name": "conduit-connector-kafka_0.12.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_x86_64.tar.gz", - "created_at": "2025-03-20T11:35:14Z", - "updated_at": "2025-03-20T11:35:15Z", - "download_count": 6, - "size": 7774673 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:21Z", + "updated_at": "2026-07-23T12:02:22Z", + "download_count": 3, + "size": 8157466 }, { - "name": "conduit-connector-kafka_0.12.1_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_arm64.tar.gz", - "created_at": "2025-03-20T11:35:14Z", - "updated_at": "2025-03-20T11:35:15Z", - "download_count": 5, - "size": 7287581 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_arm64.tar.gz", + "created_at": "2026-07-23T12:02:21Z", + "updated_at": "2026-07-23T12:02:22Z", + "download_count": 3, + "size": 7609924 }, { - "name": "conduit-connector-kafka_0.12.1_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_i386.tar.gz", - "created_at": "2025-03-20T11:35:15Z", - "updated_at": "2025-03-20T11:35:16Z", - "download_count": 6, - "size": 7669028 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_i386.tar.gz", + "created_at": "2026-07-23T12:02:21Z", + "updated_at": "2026-07-23T12:02:22Z", + "download_count": 3, + "size": 8124866 }, { - "name": "conduit-connector-kafka_0.12.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.5_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_x86_64.tar.gz", - "created_at": "2025-03-20T11:35:15Z", - "updated_at": "2025-03-20T11:35:16Z", - "download_count": 7, - "size": 8022267 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.11.2", - "name": "v0.11.2", - "body": "## Changelog\n* 5169489ca87009409aa4bf700f80baaa8e6ca45d: fix nil key (#205) (#207) (@maha-hajja)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-02-24T22:28:02Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.2", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/conduit-connector-kafka_0.12.5_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:21Z", + "updated_at": "2026-07-23T12:02:22Z", + "download_count": 3, + "size": 8400874 + }, { - "name": "conduit-connector-kafka_0.11.2_Darwin_arm64.tar.gz", + "name": "kafka_v0.12.5_darwin_amd64.tar.gz", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Darwin_arm64.tar.gz", - "created_at": "2025-02-24T22:28:00Z", - "updated_at": "2025-02-24T22:28:00Z", - "download_count": 5, - "size": 7102683 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_amd64.tar.gz", + "created_at": "2026-07-23T12:00:05Z", + "updated_at": "2026-07-23T12:00:06Z", + "download_count": 3, + "size": 16277926 }, { - "name": "conduit-connector-kafka_0.11.2_Darwin_x86_64.tar.gz", + "name": "kafka_v0.12.5_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Darwin_x86_64.tar.gz", - "created_at": "2025-02-24T22:28:01Z", - "updated_at": "2025-02-24T22:28:01Z", - "download_count": 5, - "size": 7499564 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T12:00:05Z", + "updated_at": "2026-07-23T12:00:05Z", + "download_count": 13, + "size": 9726 }, { - "name": "conduit-connector-kafka_0.11.2_Linux_arm64.tar.gz", - "os": "linux", + "name": "kafka_v0.12.5_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_arm64.tar.gz", - "created_at": "2025-02-24T22:28:01Z", - "updated_at": "2025-02-24T22:28:01Z", - "download_count": 5, - "size": 6765322 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:00:42Z", + "updated_at": "2026-07-23T12:00:43Z", + "download_count": 4, + "size": 15524409 }, { - "name": "conduit-connector-kafka_0.11.2_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_i386.tar.gz", - "created_at": "2025-02-24T22:28:00Z", - "updated_at": "2025-02-24T22:28:00Z", - "download_count": 5, - "size": 6920099 + "name": "kafka_v0.12.5_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T12:00:42Z", + "updated_at": "2026-07-23T12:00:42Z", + "download_count": 14, + "size": 9867 }, { - "name": "conduit-connector-kafka_0.11.2_Linux_x86_64.tar.gz", + "name": "kafka_v0.12.5_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_x86_64.tar.gz", - "created_at": "2025-02-24T22:28:01Z", - "updated_at": "2025-02-24T22:28:01Z", - "download_count": 6, - "size": 7310113 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_amd64.tar.gz", + "created_at": "2026-07-23T11:58:52Z", + "updated_at": "2026-07-23T11:58:53Z", + "download_count": 3, + "size": 16348241 }, { - "name": "conduit-connector-kafka_0.11.2_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_arm64.tar.gz", - "created_at": "2025-02-24T22:28:00Z", - "updated_at": "2025-02-24T22:28:00Z", - "download_count": 5, - "size": 6860482 + "name": "kafka_v0.12.5_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:58:52Z", + "updated_at": "2026-07-23T11:58:53Z", + "download_count": 13, + "size": 9773 }, { - "name": "conduit-connector-kafka_0.11.2_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_i386.tar.gz", - "created_at": "2025-02-24T22:28:00Z", - "updated_at": "2025-02-24T22:28:00Z", - "download_count": 5, - "size": 7236129 + "name": "kafka_v0.12.5_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_arm64.tar.gz", + "created_at": "2026-07-23T11:59:29Z", + "updated_at": "2026-07-23T11:59:29Z", + "download_count": 3, + "size": 15295954 }, { - "name": "conduit-connector-kafka_0.11.2_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_x86_64.tar.gz", - "created_at": "2025-02-24T22:28:01Z", - "updated_at": "2025-02-24T22:28:01Z", - "download_count": 6, - "size": 7548675 + "name": "kafka_v0.12.5_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.5/kafka_v0.12.5_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:59:29Z", + "updated_at": "2026-07-23T11:59:29Z", + "download_count": 13, + "size": 9632 } ], "is_latest": false }, { - "tag_name": "v0.12.0", - "name": "v0.12.0", - "body": "## Changelog\n* 42c3104165c01566347e776f8a783893f6b8cfc5: Generate connector yaml (#180) (@lovromazgon)\n* 130e372526c58862399cdfd4ac516a7bdb04c04b: Move scarf pixel to the bottom of the readme (#191) (@lovromazgon)\n* fbc51051820aa677c9ff2bfba34fd48be03fca72: Update version to v0.12.0 (#199) (@hariso)\n\n", + "tag_name": "v0.12.4", + "name": "v0.12.4", + "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-commons from 0.5.4 to 0.6.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/240\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.14.0 to 0.14.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/241\n* docker-compose: bump redpandadata/redpanda from v25.1.4 to v25.1.5 in /test by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/242\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.16.0 to 1.16.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/245\n* go.mod: bump go.uber.org/mock from 0.5.2 to 0.6.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/248\n* go.mod: bump github.com/twmb/franz-go from 1.19.5 to 1.20.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/257\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.16.1 to 1.17.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/256\n* go.mod: bump github.com/twmb/franz-go from 1.20.0 to 1.20.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/258\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.17.0 to 1.17.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/259\n* go.mod: bump github.com/twmb/franz-go from 1.20.1 to 1.20.2 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/260\n* go.mod: bump github.com/twmb/franz-go from 1.20.2 to 1.20.3 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/262\n* go.mod: bump github.com/twmb/franz-go from 1.20.3 to 1.20.4 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/265\n* go.mod: bump github.com/twmb/franz-go from 1.20.4 to 1.20.5 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/267\n* go.mod: bump github.com/twmb/franz-go from 1.20.5 to 1.20.6 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/270\n* go.mod: bump github.com/twmb/franz-go/pkg/kadm from 1.17.1 to 1.17.2 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/275\n* go.mod: bump github.com/twmb/franz-go from 1.20.6 to 1.20.7 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/279\n* go.mod: bump github.com/goccy/go-json from 0.10.5 to 0.10.6 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/283\n* go.mod: bump github.com/rs/zerolog from 1.34.0 to 1.35.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/284\n* go.mod: bump github.com/rs/zerolog from 1.35.0 to 1.35.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-kafka/pull/289\n* feat: registry seed — publish.yml + bump to v0.12.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-kafka/pull/305\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-kafka/pull/305\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-kafka/compare/v0.12.3...v0.12.4", "draft": false, "prerelease": false, - "published_at": "2025-02-04T13:47:19Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.0", + "published_at": "2026-07-23T02:18:18Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.4", "assets": [ { - "name": "conduit-connector-kafka_0.12.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Darwin_arm64.tar.gz", - "created_at": "2025-02-04T13:47:16Z", - "updated_at": "2025-02-04T13:47:17Z", - "download_count": 6, - "size": 7537522 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T02:22:11Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 7879663 }, { - "name": "conduit-connector-kafka_0.12.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Darwin_x86_64.tar.gz", - "created_at": "2025-02-04T13:47:16Z", - "updated_at": "2025-02-04T13:47:17Z", - "download_count": 6, - "size": 7957567 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:11Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 8361234 }, { - "name": "conduit-connector-kafka_0.12.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_arm64.tar.gz", - "created_at": "2025-02-04T13:47:16Z", - "updated_at": "2025-02-04T13:47:17Z", - "download_count": 6, - "size": 7182631 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_arm64.tar.gz", + "created_at": "2026-07-23T02:22:11Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 7507872 }, { - "name": "conduit-connector-kafka_0.12.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_i386.tar.gz", - "created_at": "2025-02-04T13:47:17Z", - "updated_at": "2025-02-04T13:47:18Z", - "download_count": 7, - "size": 7342881 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_i386.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:12Z", + "download_count": 3, + "size": 7780176 }, { - "name": "conduit-connector-kafka_0.12.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_x86_64.tar.gz", - "created_at": "2025-02-04T13:47:16Z", - "updated_at": "2025-02-04T13:47:17Z", - "download_count": 7, - "size": 7763130 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:11Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 8157452 }, { - "name": "conduit-connector-kafka_0.12.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_arm64.tar.gz", - "created_at": "2025-02-04T13:47:17Z", - "updated_at": "2025-02-04T13:47:18Z", - "download_count": 6, - "size": 7281274 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_arm64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:12Z", + "download_count": 3, + "size": 7609916 }, { - "name": "conduit-connector-kafka_0.12.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_i386.tar.gz", - "created_at": "2025-02-04T13:47:17Z", - "updated_at": "2025-02-04T13:47:18Z", - "download_count": 8, - "size": 7662671 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_i386.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:12Z", + "download_count": 3, + "size": 8124863 }, { - "name": "conduit-connector-kafka_0.12.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_x86_64.tar.gz", - "created_at": "2025-02-04T13:47:17Z", - "updated_at": "2025-02-04T13:47:18Z", - "download_count": 8, - "size": 8009820 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.11.1", - "name": "v0.11.1", - "body": "## Changelog\n\n", - "draft": false, - "prerelease": false, - "published_at": "2024-11-08T15:38:58Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.1", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/conduit-connector-kafka_0.12.4_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:13Z", + "download_count": 3, + "size": 8400877 + }, { - "name": "conduit-connector-kafka_0.11.1_Darwin_arm64.tar.gz", + "name": "kafka_v0.12.4_darwin_amd64", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Darwin_arm64.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:57Z", - "download_count": 7, - "size": 7102693 + "arch": "amd64", + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_amd64", + "created_at": "2026-07-23T02:20:22Z", + "updated_at": "2026-07-23T02:20:24Z", + "download_count": 3, + "size": 33544736 }, { - "name": "conduit-connector-kafka_0.11.1_Darwin_x86_64.tar.gz", + "name": "kafka_v0.12.4_darwin_amd64.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Darwin_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:57Z", - "download_count": 7, - "size": 7499582 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_amd64.sigstore.json", + "created_at": "2026-07-23T02:20:22Z", + "updated_at": "2026-07-23T02:20:22Z", + "download_count": 1, + "size": 8977 }, { - "name": "conduit-connector-kafka_0.11.1_Linux_arm64.tar.gz", - "os": "linux", + "name": "kafka_v0.12.4_darwin_arm64", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_arm64.tar.gz", - "created_at": "2024-11-08T15:38:58Z", - "updated_at": "2024-11-08T15:38:58Z", - "download_count": 7, - "size": 6765248 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_arm64", + "created_at": "2026-07-23T02:21:02Z", + "updated_at": "2026-07-23T02:21:05Z", + "download_count": 3, + "size": 32318162 }, { - "name": "conduit-connector-kafka_0.11.1_Linux_i386.tar.gz", + "name": "kafka_v0.12.4_darwin_arm64.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_darwin_arm64.sigstore.json", + "created_at": "2026-07-23T02:21:02Z", + "updated_at": "2026-07-23T02:21:02Z", + "download_count": 1, + "size": 8985 + }, + { + "name": "kafka_v0.12.4_linux_amd64", "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_i386.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:58Z", - "download_count": 6, - "size": 6920091 + "arch": "amd64", + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_amd64", + "created_at": "2026-07-23T02:19:11Z", + "updated_at": "2026-07-23T02:19:13Z", + "download_count": 3, + "size": 33313208 }, { - "name": "conduit-connector-kafka_0.11.1_Linux_x86_64.tar.gz", + "name": "kafka_v0.12.4_linux_amd64.sigstore.json", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:58Z", - "updated_at": "2024-11-08T15:38:58Z", - "download_count": 7, - "size": 7310143 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_amd64.sigstore.json", + "created_at": "2026-07-23T02:19:11Z", + "updated_at": "2026-07-23T02:19:11Z", + "download_count": 12, + "size": 8977 }, { - "name": "conduit-connector-kafka_0.11.1_Windows_arm64.tar.gz", - "os": "windows", + "name": "kafka_v0.12.4_linux_arm64", + "os": "linux", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_arm64.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:57Z", - "download_count": 7, - "size": 6860460 - }, - { - "name": "conduit-connector-kafka_0.11.1_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_i386.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:58Z", - "download_count": 6, - "size": 7236077 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_arm64", + "created_at": "2026-07-23T02:19:46Z", + "updated_at": "2026-07-23T02:19:48Z", + "download_count": 3, + "size": 31845270 }, { - "name": "conduit-connector-kafka_0.11.1_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:57Z", - "updated_at": "2024-11-08T15:38:57Z", - "download_count": 6, - "size": 7548644 + "name": "kafka_v0.12.4_linux_arm64.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.4/kafka_v0.12.4_linux_arm64.sigstore.json", + "created_at": "2026-07-23T02:19:46Z", + "updated_at": "2026-07-23T02:19:46Z", + "download_count": 1, + "size": 8977 } ], "is_latest": false }, { - "tag_name": "v0.11.0", - "name": "v0.11.0", - "body": "## Changelog\n\n", + "tag_name": "v0.12.3", + "name": "v0.12.3", + "body": "## Changelog\n* 9213d53a85f942fd98cb46179ae9adfad80cb61f: Commit records periodically (#231) (@hariso)\n* d1c7e660fb86e01af48a977623d153b941e9fab9: Configure dependabot to update Docker Compose files (#234) (@hariso)\n* 55a9c5414d7ac722d0c052fd317d2c76639956d8: Update version to v0.12.3 (#239) (@hariso)\n* 2d89490ec3682be4567ff6ff84636ea90e8d5b99: docker-compose: bump apache/kafka-native from 3.8.0 to 4.0.0 in /test (#236) (@dependabot[bot])\n* e1a08c94887d0abe0bd1524d475b33939af5c9a4: docker-compose: bump redpandadata/redpanda in /test (#235) (@dependabot[bot])\n\n", "draft": false, "prerelease": false, - "published_at": "2024-11-08T15:37:31Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.0", + "published_at": "2025-06-03T13:11:18Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.3", "assets": [ { - "name": "conduit-connector-kafka_0.11.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Darwin_arm64.tar.gz", - "created_at": "2024-11-08T15:37:28Z", - "updated_at": "2024-11-08T15:37:29Z", - "download_count": 5, - "size": 7086250 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Darwin_arm64.tar.gz", + "created_at": "2025-06-03T13:11:16Z", + "updated_at": "2025-06-03T13:11:17Z", + "download_count": 53, + "size": 7813639 }, { - "name": "conduit-connector-kafka_0.11.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Darwin_x86_64.tar.gz", - "created_at": "2024-11-08T15:37:30Z", - "updated_at": "2024-11-08T15:37:30Z", - "download_count": 5, - "size": 7479799 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Darwin_x86_64.tar.gz", + "created_at": "2025-06-03T13:11:16Z", + "updated_at": "2025-06-03T13:11:17Z", + "download_count": 56, + "size": 8286931 }, { - "name": "conduit-connector-kafka_0.11.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_arm64.tar.gz", - "created_at": "2024-11-08T15:37:29Z", - "updated_at": "2024-11-08T15:37:30Z", - "download_count": 5, - "size": 6749558 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_arm64.tar.gz", + "created_at": "2025-06-03T13:11:16Z", + "updated_at": "2025-06-03T13:11:17Z", + "download_count": 51, + "size": 7445306 }, { - "name": "conduit-connector-kafka_0.11.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_i386.tar.gz", - "created_at": "2024-11-08T15:37:28Z", - "updated_at": "2024-11-08T15:37:29Z", - "download_count": 5, - "size": 6905971 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_i386.tar.gz", + "created_at": "2025-06-03T13:11:17Z", + "updated_at": "2025-06-03T13:11:18Z", + "download_count": 64, + "size": 7719338 }, { - "name": "conduit-connector-kafka_0.11.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_x86_64.tar.gz", - "created_at": "2024-11-08T15:37:28Z", - "updated_at": "2024-11-08T15:37:29Z", - "download_count": 5, - "size": 7292401 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Linux_x86_64.tar.gz", + "created_at": "2025-06-03T13:11:16Z", + "updated_at": "2025-06-03T13:11:17Z", + "download_count": 56, + "size": 8085122 }, { - "name": "conduit-connector-kafka_0.11.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_arm64.tar.gz", - "created_at": "2024-11-08T15:37:29Z", - "updated_at": "2024-11-08T15:37:30Z", - "download_count": 5, - "size": 6845857 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_arm64.tar.gz", + "created_at": "2025-06-03T13:11:17Z", + "updated_at": "2025-06-03T13:11:18Z", + "download_count": 55, + "size": 7549231 }, { - "name": "conduit-connector-kafka_0.11.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_i386.tar.gz", - "created_at": "2024-11-08T15:37:28Z", - "updated_at": "2024-11-08T15:37:29Z", - "download_count": 5, - "size": 7214537 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_i386.tar.gz", + "created_at": "2025-06-03T13:11:17Z", + "updated_at": "2025-06-03T13:11:18Z", + "download_count": 56, + "size": 8057410 }, { - "name": "conduit-connector-kafka_0.11.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.3_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_x86_64.tar.gz", - "created_at": "2024-11-08T15:37:29Z", - "updated_at": "2024-11-08T15:37:30Z", - "download_count": 5, - "size": 7532337 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.3/conduit-connector-kafka_0.12.3_Windows_x86_64.tar.gz", + "created_at": "2025-06-03T13:11:17Z", + "updated_at": "2025-06-03T13:11:18Z", + "download_count": 56, + "size": 8327355 } ], "is_latest": false }, { - "tag_name": "v0.10.0", - "name": "v0.10.0", - "body": "## Changelog\n* 3602a69939dbc82b07713ab8198a9bdf5a8ecb1b: change bytes.Buffer for strings.Builder (#168) (@alarbada)\n* 48137ad0eb0d573346fa9e679d49b8091c8671db: golangic-lint configuration updates (#164) (@hariso)\n\n", + "tag_name": "v0.12.2", + "name": "v0.12.2", + "body": "## Changelog\n* 0c8b8fef7aded9cc4ae59f1b6f2725aaeac67e81: Bump SDK version to v0.13.4 (#228) (@raulb)\n* 47bcb33f4b161599cb143bbd0026a61981d72dc6: chore: bump (#229) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-10-09T13:05:24Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.10.0", + "published_at": "2025-05-19T15:09:06Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.2", "assets": [ { - "name": "conduit-connector-kafka_0.10.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Darwin_arm64.tar.gz", - "created_at": "2024-10-09T13:05:22Z", - "updated_at": "2024-10-09T13:05:23Z", - "download_count": 5, - "size": 7072100 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Darwin_arm64.tar.gz", + "created_at": "2025-05-19T15:09:05Z", + "updated_at": "2025-05-19T15:09:06Z", + "download_count": 8, + "size": 7811396 }, { - "name": "conduit-connector-kafka_0.10.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Darwin_x86_64.tar.gz", - "created_at": "2024-10-09T13:05:23Z", - "updated_at": "2024-10-09T13:05:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Darwin_x86_64.tar.gz", + "created_at": "2025-05-19T15:09:04Z", + "updated_at": "2025-05-19T15:09:05Z", "download_count": 5, - "size": 7463677 + "size": 8278047 }, { - "name": "conduit-connector-kafka_0.10.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_arm64.tar.gz", - "created_at": "2024-10-09T13:05:23Z", - "updated_at": "2024-10-09T13:05:23Z", - "download_count": 5, - "size": 6736593 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_arm64.tar.gz", + "created_at": "2025-05-19T15:09:04Z", + "updated_at": "2025-05-19T15:09:05Z", + "download_count": 6, + "size": 7439163 }, { - "name": "conduit-connector-kafka_0.10.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_i386.tar.gz", - "created_at": "2024-10-09T13:05:22Z", - "updated_at": "2024-10-09T13:05:22Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_i386.tar.gz", + "created_at": "2025-05-19T15:09:04Z", + "updated_at": "2025-05-19T15:09:05Z", "download_count": 5, - "size": 6894850 + "size": 7714983 }, { - "name": "conduit-connector-kafka_0.10.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_x86_64.tar.gz", - "created_at": "2024-10-09T13:05:22Z", - "updated_at": "2024-10-09T13:05:22Z", - "download_count": 5, - "size": 7275923 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Linux_x86_64.tar.gz", + "created_at": "2025-05-19T15:09:03Z", + "updated_at": "2025-05-19T15:09:04Z", + "download_count": 7, + "size": 8078506 }, { - "name": "conduit-connector-kafka_0.10.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_arm64.tar.gz", - "created_at": "2024-10-09T13:05:22Z", - "updated_at": "2024-10-09T13:05:22Z", - "download_count": 6, - "size": 6835119 - }, - { - "name": "conduit-connector-kafka_0.10.0_Windows_i386.tar.gz", - "os": "windows", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_arm64.tar.gz", + "created_at": "2025-05-19T15:09:03Z", + "updated_at": "2025-05-19T15:09:04Z", + "download_count": 5, + "size": 7545453 + }, + { + "name": "conduit-connector-kafka_0.12.2_Windows_i386.tar.gz", + "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_i386.tar.gz", - "created_at": "2024-10-09T13:05:22Z", - "updated_at": "2024-10-09T13:05:22Z", - "download_count": 6, - "size": 7203007 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_i386.tar.gz", + "created_at": "2025-05-19T15:09:03Z", + "updated_at": "2025-05-19T15:09:04Z", + "download_count": 5, + "size": 8051854 }, { - "name": "conduit-connector-kafka_0.10.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_x86_64.tar.gz", - "created_at": "2024-10-09T13:05:23Z", - "updated_at": "2024-10-09T13:05:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.2/conduit-connector-kafka_0.12.2_Windows_x86_64.tar.gz", + "created_at": "2025-05-19T15:09:03Z", + "updated_at": "2025-05-19T15:09:04Z", "download_count": 5, - "size": 7514612 + "size": 8321410 } ], "is_latest": false }, { - "tag_name": "v0.9.0", - "name": "v0.9.0", - "body": "## Changelog\n* f740e4ba8d0bbbb545819c4f036bc25666c9016e: --- (#142) (@dependabot[bot])\n* 607d878a668eb7c41dbb2d80df094dcbff3b8d71: Udpate SDK (#157) (@lovromazgon)\n* 87c01cf39a06560c84bd1b5e081f3f43d894a57f: Update connector SDK (#152) (@lovromazgon)\n* d92779b95e5becfe014c3d1dc891731673a364d4: chore: update sdk (#162) (@raulb)\n* e152b7265a5d324b590c44bff28927bfdddb85fc: chore: update to latest commons and remove ptr fn (#161) (@raulb)\n* 9f09470e501a7f446859ce31ba79c77cc6ab6e7b: handle empty parsed topic (#150) (@alarbada)\n* 032784ee0149d42272b73098c0158d7276ee19d3: remove deprecated flag (#151) (@lovromazgon)\n* 3eb3b3ae184e065a363b2a3521b7096c24262de1: retry on franz consumer group session errors (#154) (@samirketema)\n* 1a2c2e21ec7addaea732e4c5675d8f08e9ede797: upgrade conduit-connector-sdk to v0.10.0 (#163) (@lovromazgon)\n* 34be835edabf847fa7adbdcb33657429238d26c7: use the new kafka native container for faster test runs (#160) (@lovromazgon)\n\n", + "tag_name": "v0.12.1", + "name": "v0.12.1", + "body": "## Changelog\n* d4c25b1971076382816bf0ffc775f3f9c53d27ea: Update version to v0.12.1 (#213) (@hariso)\n* f31c8352baf768b1401535c8c85b8fb2d1505c3d: fix nil key (#205) (@maha-hajja)\n* 9fe14163b04b89a18a73d310912de6908bce33bd: use check connector tag action from automation (#201) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-08-07T09:20:51Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.9.0", + "published_at": "2025-03-20T11:35:16Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.1", "assets": [ { - "name": "conduit-connector-kafka_0.9.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Darwin_arm64.tar.gz", - "created_at": "2024-08-07T09:20:49Z", - "updated_at": "2024-08-07T09:20:50Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Darwin_arm64.tar.gz", + "created_at": "2025-03-20T11:35:15Z", + "updated_at": "2025-03-20T11:35:16Z", "download_count": 7, - "size": 6874430 + "size": 7543051 }, { - "name": "conduit-connector-kafka_0.9.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Darwin_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:49Z", - "updated_at": "2024-08-07T09:20:50Z", - "download_count": 12, - "size": 7246476 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Darwin_x86_64.tar.gz", + "created_at": "2025-03-20T11:35:14Z", + "updated_at": "2025-03-20T11:35:15Z", + "download_count": 6, + "size": 7970941 }, { - "name": "conduit-connector-kafka_0.9.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_arm64.tar.gz", - "created_at": "2024-08-07T09:20:49Z", - "updated_at": "2024-08-07T09:20:50Z", - "download_count": 12, - "size": 6542935 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_arm64.tar.gz", + "created_at": "2025-03-20T11:35:14Z", + "updated_at": "2025-03-20T11:35:15Z", + "download_count": 5, + "size": 7190989 }, { - "name": "conduit-connector-kafka_0.9.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_i386.tar.gz", - "created_at": "2024-08-07T09:20:50Z", - "updated_at": "2024-08-07T09:20:51Z", - "download_count": 8, - "size": 6687274 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_i386.tar.gz", + "created_at": "2025-03-20T11:35:15Z", + "updated_at": "2025-03-20T11:35:16Z", + "download_count": 5, + "size": 7345955 }, { - "name": "conduit-connector-kafka_0.9.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:49Z", - "updated_at": "2024-08-07T09:20:50Z", - "download_count": 9, - "size": 7060519 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Linux_x86_64.tar.gz", + "created_at": "2025-03-20T11:35:14Z", + "updated_at": "2025-03-20T11:35:15Z", + "download_count": 6, + "size": 7774673 }, { - "name": "conduit-connector-kafka_0.9.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_arm64.tar.gz", - "created_at": "2024-08-07T09:20:50Z", - "updated_at": "2024-08-07T09:20:51Z", - "download_count": 9, - "size": 6638943 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_arm64.tar.gz", + "created_at": "2025-03-20T11:35:14Z", + "updated_at": "2025-03-20T11:35:15Z", + "download_count": 5, + "size": 7287581 }, { - "name": "conduit-connector-kafka_0.9.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_i386.tar.gz", - "created_at": "2024-08-07T09:20:50Z", - "updated_at": "2024-08-07T09:20:50Z", - "download_count": 9, - "size": 6988061 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_i386.tar.gz", + "created_at": "2025-03-20T11:35:15Z", + "updated_at": "2025-03-20T11:35:16Z", + "download_count": 6, + "size": 7669028 }, { - "name": "conduit-connector-kafka_0.9.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:50Z", - "updated_at": "2024-08-07T09:20:51Z", - "download_count": 9, - "size": 7289326 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.1/conduit-connector-kafka_0.12.1_Windows_x86_64.tar.gz", + "created_at": "2025-03-20T11:35:15Z", + "updated_at": "2025-03-20T11:35:16Z", + "download_count": 7, + "size": 8022267 } ], "is_latest": false }, { - "tag_name": "v0.8.2", - "name": "v0.8.2", - "body": "## Changelog\n* 41ece4c8fea976e39589828ab846af2d65765c6e: retract v0.8.1 (@samirketema)\n\n", + "tag_name": "v0.11.2", + "name": "v0.11.2", + "body": "## Changelog\n* 5169489ca87009409aa4bf700f80baaa8e6ca45d: fix nil key (#205) (#207) (@maha-hajja)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-07-12T17:06:04Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.2", + "published_at": "2025-02-24T22:28:02Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.2", "assets": [ { - "name": "conduit-connector-kafka_0.8.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Darwin_arm64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:03Z", - "download_count": 8, - "size": 6230063 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Darwin_arm64.tar.gz", + "created_at": "2025-02-24T22:28:00Z", + "updated_at": "2025-02-24T22:28:00Z", + "download_count": 5, + "size": 7102683 }, { - "name": "conduit-connector-kafka_0.8.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Darwin_x86_64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:03Z", - "download_count": 9, - "size": 6568539 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Darwin_x86_64.tar.gz", + "created_at": "2025-02-24T22:28:01Z", + "updated_at": "2025-02-24T22:28:01Z", + "download_count": 5, + "size": 7499564 }, { - "name": "conduit-connector-kafka_0.8.2_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_arm64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:03Z", - "download_count": 9, - "size": 5934996 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_arm64.tar.gz", + "created_at": "2025-02-24T22:28:01Z", + "updated_at": "2025-02-24T22:28:01Z", + "download_count": 5, + "size": 6765322 }, { - "name": "conduit-connector-kafka_0.8.2_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_i386.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:04Z", - "download_count": 10, - "size": 6066446 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_i386.tar.gz", + "created_at": "2025-02-24T22:28:00Z", + "updated_at": "2025-02-24T22:28:00Z", + "download_count": 5, + "size": 6920099 }, { - "name": "conduit-connector-kafka_0.8.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_x86_64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:03Z", - "download_count": 10, - "size": 6404704 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Linux_x86_64.tar.gz", + "created_at": "2025-02-24T22:28:01Z", + "updated_at": "2025-02-24T22:28:01Z", + "download_count": 7, + "size": 7310113 }, { - "name": "conduit-connector-kafka_0.8.2_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_arm64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:04Z", - "download_count": 9, - "size": 6030602 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_arm64.tar.gz", + "created_at": "2025-02-24T22:28:00Z", + "updated_at": "2025-02-24T22:28:00Z", + "download_count": 5, + "size": 6860482 }, { - "name": "conduit-connector-kafka_0.8.2_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_i386.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:04Z", - "download_count": 10, - "size": 6350417 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_i386.tar.gz", + "created_at": "2025-02-24T22:28:00Z", + "updated_at": "2025-02-24T22:28:00Z", + "download_count": 5, + "size": 7236129 }, { - "name": "conduit-connector-kafka_0.8.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_x86_64.tar.gz", - "created_at": "2024-07-12T17:06:03Z", - "updated_at": "2024-07-12T17:06:04Z", - "download_count": 9, - "size": 6616003 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.2/conduit-connector-kafka_0.11.2_Windows_x86_64.tar.gz", + "created_at": "2025-02-24T22:28:01Z", + "updated_at": "2025-02-24T22:28:01Z", + "download_count": 6, + "size": 7548675 } ], "is_latest": false }, { - "tag_name": "v0.8.1", - "name": "v0.8.1", - "body": "## Changelog\n* 51eea634c9a96bc31323e2268223f785357ea4d3: regen sdk parameter types (@samirketema)\n* 8e7bc744fa0f403829baec803297245b37a5d7fb: retry on franz consumer group session errors (#154) (@samirketema)\n\n", + "tag_name": "v0.12.0", + "name": "v0.12.0", + "body": "## Changelog\n* 42c3104165c01566347e776f8a783893f6b8cfc5: Generate connector yaml (#180) (@lovromazgon)\n* 130e372526c58862399cdfd4ac516a7bdb04c04b: Move scarf pixel to the bottom of the readme (#191) (@lovromazgon)\n* fbc51051820aa677c9ff2bfba34fd48be03fca72: Update version to v0.12.0 (#199) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-07-12T16:44:30Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.1", + "published_at": "2025-02-04T13:47:19Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.12.0", "assets": [ { - "name": "conduit-connector-kafka_0.8.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Darwin_arm64.tar.gz", - "created_at": "2024-07-12T16:44:29Z", - "updated_at": "2024-07-12T16:44:30Z", - "download_count": 7, - "size": 6230066 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Darwin_arm64.tar.gz", + "created_at": "2025-02-04T13:47:16Z", + "updated_at": "2025-02-04T13:47:17Z", + "download_count": 6, + "size": 7537522 }, { - "name": "conduit-connector-kafka_0.8.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Darwin_x86_64.tar.gz", - "created_at": "2024-07-12T16:44:28Z", - "updated_at": "2024-07-12T16:44:29Z", - "download_count": 9, - "size": 6568518 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Darwin_x86_64.tar.gz", + "created_at": "2025-02-04T13:47:16Z", + "updated_at": "2025-02-04T13:47:17Z", + "download_count": 6, + "size": 7957567 }, { - "name": "conduit-connector-kafka_0.8.1_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_arm64.tar.gz", - "created_at": "2024-07-12T16:44:29Z", - "updated_at": "2024-07-12T16:44:30Z", - "download_count": 9, - "size": 5934995 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_arm64.tar.gz", + "created_at": "2025-02-04T13:47:16Z", + "updated_at": "2025-02-04T13:47:17Z", + "download_count": 6, + "size": 7182631 }, { - "name": "conduit-connector-kafka_0.8.1_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_i386.tar.gz", - "created_at": "2024-07-12T16:44:28Z", - "updated_at": "2024-07-12T16:44:29Z", - "download_count": 9, - "size": 6066445 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_i386.tar.gz", + "created_at": "2025-02-04T13:47:17Z", + "updated_at": "2025-02-04T13:47:18Z", + "download_count": 7, + "size": 7342881 }, { - "name": "conduit-connector-kafka_0.8.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_x86_64.tar.gz", - "created_at": "2024-07-12T16:44:29Z", - "updated_at": "2024-07-12T16:44:30Z", - "download_count": 9, - "size": 6404712 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Linux_x86_64.tar.gz", + "created_at": "2025-02-04T13:47:16Z", + "updated_at": "2025-02-04T13:47:17Z", + "download_count": 8, + "size": 7763130 }, { - "name": "conduit-connector-kafka_0.8.1_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_arm64.tar.gz", - "created_at": "2024-07-12T16:44:29Z", - "updated_at": "2024-07-12T16:44:29Z", - "download_count": 9, - "size": 6030601 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_arm64.tar.gz", + "created_at": "2025-02-04T13:47:17Z", + "updated_at": "2025-02-04T13:47:18Z", + "download_count": 6, + "size": 7281274 }, { - "name": "conduit-connector-kafka_0.8.1_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_i386.tar.gz", - "created_at": "2024-07-12T16:44:28Z", - "updated_at": "2024-07-12T16:44:29Z", - "download_count": 9, - "size": 6350408 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_i386.tar.gz", + "created_at": "2025-02-04T13:47:17Z", + "updated_at": "2025-02-04T13:47:18Z", + "download_count": 8, + "size": 7662671 }, { - "name": "conduit-connector-kafka_0.8.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.12.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_x86_64.tar.gz", - "created_at": "2024-07-12T16:44:28Z", - "updated_at": "2024-07-12T16:44:29Z", - "download_count": 9, - "size": 6615999 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.12.0/conduit-connector-kafka_0.12.0_Windows_x86_64.tar.gz", + "created_at": "2025-02-04T13:47:17Z", + "updated_at": "2025-02-04T13:47:18Z", + "download_count": 8, + "size": 8009820 } ], "is_latest": false }, { - "tag_name": "v0.8.0", - "name": "v0.8.0", - "body": "## Changelog\n* fb070a658dc83c83cf5c8260d07bf861f6bb9d8e: Destination - route records to topic based on metadata (#130) (@lovromazgon)\n* bdd435dbda15e5efdc39bc2478f92b5aaaf6ca34: Set `opencdc.collection` metadata (#129) (@lovromazgon)\n* 4aa60573e900a7036d0254b0f24db9e299346313: add scarf pixel (#135) (@maha-hajja)\n* a545a62969f200b86cdb728093a7950036280a42: add the ability to read from multiple Kafka topics (#131) (@maha-hajja)\n\n", + "tag_name": "v0.11.1", + "name": "v0.11.1", + "body": "## Changelog\n\n", "draft": false, "prerelease": false, - "published_at": "2024-04-25T13:10:00Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.0", + "published_at": "2024-11-08T15:38:58Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.1", "assets": [ { - "name": "conduit-connector-kafka_0.8.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Darwin_arm64.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:59Z", - "download_count": 10, - "size": 6228903 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Darwin_arm64.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:57Z", + "download_count": 7, + "size": 7102693 }, { - "name": "conduit-connector-kafka_0.8.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Darwin_x86_64.tar.gz", - "created_at": "2024-04-25T13:09:59Z", - "updated_at": "2024-04-25T13:09:59Z", - "download_count": 10, - "size": 6567934 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Darwin_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:57Z", + "download_count": 7, + "size": 7499582 }, { - "name": "conduit-connector-kafka_0.8.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_arm64.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:59Z", - "download_count": 10, - "size": 5934075 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_arm64.tar.gz", + "created_at": "2024-11-08T15:38:58Z", + "updated_at": "2024-11-08T15:38:58Z", + "download_count": 7, + "size": 6765248 }, { - "name": "conduit-connector-kafka_0.8.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_i386.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:59Z", - "download_count": 9, - "size": 6066386 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_i386.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:58Z", + "download_count": 6, + "size": 6920091 }, { - "name": "conduit-connector-kafka_0.8.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_x86_64.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:58Z", - "download_count": 10, - "size": 6403975 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Linux_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:58Z", + "updated_at": "2024-11-08T15:38:58Z", + "download_count": 8, + "size": 7310143 }, { - "name": "conduit-connector-kafka_0.8.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_arm64.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:58Z", - "download_count": 8, - "size": 6029677 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_arm64.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:57Z", + "download_count": 7, + "size": 6860460 }, { - "name": "conduit-connector-kafka_0.8.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_i386.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:58Z", - "download_count": 10, - "size": 6349891 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_i386.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:58Z", + "download_count": 6, + "size": 7236077 }, { - "name": "conduit-connector-kafka_0.8.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_x86_64.tar.gz", - "created_at": "2024-04-25T13:09:58Z", - "updated_at": "2024-04-25T13:09:58Z", - "download_count": 12, - "size": 6614876 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.1/conduit-connector-kafka_0.11.1_Windows_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:57Z", + "updated_at": "2024-11-08T15:38:57Z", + "download_count": 6, + "size": 7548644 } ], "is_latest": false }, { - "tag_name": "v0.7.2", - "name": "v0.7.2", - "body": "## Changelog\n* 2b5429874fd6549bdda3327d44788f68a8300635: Add message headers to produced record (#126) (@hariso)\n\n", + "tag_name": "v0.11.0", + "name": "v0.11.0", + "body": "## Changelog\n\n", "draft": false, "prerelease": false, - "published_at": "2024-03-19T17:28:56Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.2", + "published_at": "2024-11-08T15:37:31Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.11.0", "assets": [ { - "name": "conduit-connector-kafka_0.7.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Darwin_arm64.tar.gz", - "created_at": "2024-03-19T17:28:57Z", - "updated_at": "2024-03-19T17:28:57Z", - "download_count": 8, - "size": 6347864 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Darwin_arm64.tar.gz", + "created_at": "2024-11-08T15:37:28Z", + "updated_at": "2024-11-08T15:37:29Z", + "download_count": 5, + "size": 7086250 }, { - "name": "conduit-connector-kafka_0.7.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Darwin_x86_64.tar.gz", - "created_at": "2024-03-19T17:28:57Z", - "updated_at": "2024-03-19T17:28:58Z", - "download_count": 9, - "size": 6555555 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Darwin_x86_64.tar.gz", + "created_at": "2024-11-08T15:37:30Z", + "updated_at": "2024-11-08T15:37:30Z", + "download_count": 5, + "size": 7479799 }, { - "name": "conduit-connector-kafka_0.7.2_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_arm64.tar.gz", - "created_at": "2024-03-19T17:28:57Z", - "updated_at": "2024-03-19T17:28:57Z", - "download_count": 9, - "size": 5788647 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_arm64.tar.gz", + "created_at": "2024-11-08T15:37:29Z", + "updated_at": "2024-11-08T15:37:30Z", + "download_count": 5, + "size": 6749558 }, { - "name": "conduit-connector-kafka_0.7.2_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_i386.tar.gz", - "created_at": "2024-03-19T17:28:58Z", - "updated_at": "2024-03-19T17:28:58Z", - "download_count": 10, - "size": 5976210 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_i386.tar.gz", + "created_at": "2024-11-08T15:37:28Z", + "updated_at": "2024-11-08T15:37:29Z", + "download_count": 5, + "size": 6905971 }, { - "name": "conduit-connector-kafka_0.7.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_x86_64.tar.gz", - "created_at": "2024-03-19T17:28:57Z", - "updated_at": "2024-03-19T17:28:57Z", - "download_count": 10, - "size": 6256570 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Linux_x86_64.tar.gz", + "created_at": "2024-11-08T15:37:28Z", + "updated_at": "2024-11-08T15:37:29Z", + "download_count": 5, + "size": 7292401 }, { - "name": "conduit-connector-kafka_0.7.2_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_arm64.tar.gz", - "created_at": "2024-03-19T17:28:58Z", - "updated_at": "2024-03-19T17:28:58Z", - "download_count": 11, - "size": 5868609 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_arm64.tar.gz", + "created_at": "2024-11-08T15:37:29Z", + "updated_at": "2024-11-08T15:37:30Z", + "download_count": 5, + "size": 6845857 }, { - "name": "conduit-connector-kafka_0.7.2_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_i386.tar.gz", - "created_at": "2024-03-19T17:28:58Z", - "updated_at": "2024-03-19T17:28:58Z", - "download_count": 9, - "size": 6241162 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_i386.tar.gz", + "created_at": "2024-11-08T15:37:28Z", + "updated_at": "2024-11-08T15:37:29Z", + "download_count": 5, + "size": 7214537 }, { - "name": "conduit-connector-kafka_0.7.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.11.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_x86_64.tar.gz", - "created_at": "2024-03-19T17:28:58Z", - "updated_at": "2024-03-19T17:28:59Z", - "download_count": 9, - "size": 6446639 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.11.0/conduit-connector-kafka_0.11.0_Windows_x86_64.tar.gz", + "created_at": "2024-11-08T15:37:29Z", + "updated_at": "2024-11-08T15:37:30Z", + "download_count": 5, + "size": 7532337 } ], "is_latest": false }, { - "tag_name": "v0.7.1", - "name": "v0.7.1", - "body": "## Changelog\n* 1b20004202c1e732ecb678de32a2b364dd74ba8d: support TLS without authentication (#118) (@samirketema)\n\n", + "tag_name": "v0.10.0", + "name": "v0.10.0", + "body": "## Changelog\n* 3602a69939dbc82b07713ab8198a9bdf5a8ecb1b: change bytes.Buffer for strings.Builder (#168) (@alarbada)\n* 48137ad0eb0d573346fa9e679d49b8091c8671db: golangic-lint configuration updates (#164) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-01-19T16:30:37Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.1", + "published_at": "2024-10-09T13:05:24Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.10.0", "assets": [ { - "name": "conduit-connector-kafka_0.7.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Darwin_arm64.tar.gz", - "created_at": "2024-01-19T16:30:38Z", - "updated_at": "2024-01-19T16:30:38Z", - "download_count": 8, - "size": 6339748 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Darwin_arm64.tar.gz", + "created_at": "2024-10-09T13:05:22Z", + "updated_at": "2024-10-09T13:05:23Z", + "download_count": 5, + "size": 7072100 }, { - "name": "conduit-connector-kafka_0.7.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Darwin_x86_64.tar.gz", - "created_at": "2024-01-19T16:30:38Z", - "updated_at": "2024-01-19T16:30:38Z", - "download_count": 10, - "size": 6550518 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Darwin_x86_64.tar.gz", + "created_at": "2024-10-09T13:05:23Z", + "updated_at": "2024-10-09T13:05:23Z", + "download_count": 5, + "size": 7463677 }, { - "name": "conduit-connector-kafka_0.7.1_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_arm64.tar.gz", - "created_at": "2024-01-19T16:30:38Z", - "updated_at": "2024-01-19T16:30:38Z", - "download_count": 9, - "size": 5782282 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_arm64.tar.gz", + "created_at": "2024-10-09T13:05:23Z", + "updated_at": "2024-10-09T13:05:23Z", + "download_count": 5, + "size": 6736593 }, { - "name": "conduit-connector-kafka_0.7.1_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_i386.tar.gz", - "created_at": "2024-01-19T16:30:38Z", - "updated_at": "2024-01-19T16:30:38Z", - "download_count": 9, - "size": 5969355 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_i386.tar.gz", + "created_at": "2024-10-09T13:05:22Z", + "updated_at": "2024-10-09T13:05:22Z", + "download_count": 5, + "size": 6894850 }, { - "name": "conduit-connector-kafka_0.7.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_x86_64.tar.gz", - "created_at": "2024-01-19T16:30:39Z", - "updated_at": "2024-01-19T16:30:39Z", - "download_count": 12, - "size": 6249448 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Linux_x86_64.tar.gz", + "created_at": "2024-10-09T13:05:22Z", + "updated_at": "2024-10-09T13:05:22Z", + "download_count": 5, + "size": 7275923 }, { - "name": "conduit-connector-kafka_0.7.1_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_arm64.tar.gz", - "created_at": "2024-01-19T16:30:39Z", - "updated_at": "2024-01-19T16:30:39Z", - "download_count": 8, - "size": 5860762 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_arm64.tar.gz", + "created_at": "2024-10-09T13:05:22Z", + "updated_at": "2024-10-09T13:05:22Z", + "download_count": 6, + "size": 6835119 }, { - "name": "conduit-connector-kafka_0.7.1_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_i386.tar.gz", - "created_at": "2024-01-19T16:30:38Z", - "updated_at": "2024-01-19T16:30:39Z", - "download_count": 9, - "size": 6233138 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_i386.tar.gz", + "created_at": "2024-10-09T13:05:22Z", + "updated_at": "2024-10-09T13:05:22Z", + "download_count": 6, + "size": 7203007 }, { - "name": "conduit-connector-kafka_0.7.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.10.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_x86_64.tar.gz", - "created_at": "2024-01-19T16:30:39Z", - "updated_at": "2024-01-19T16:30:39Z", - "download_count": 11, - "size": 6438907 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.10.0/conduit-connector-kafka_0.10.0_Windows_x86_64.tar.gz", + "created_at": "2024-10-09T13:05:23Z", + "updated_at": "2024-10-09T13:05:23Z", + "download_count": 5, + "size": 7514612 } ], "is_latest": false }, { - "tag_name": "v0.7.0", - "name": "v0.7.0", - "body": "## Changelog\n* caeb1e06f65f6fe99bae48b20b0983774737050c: Rewrite using franz-go (#107) (@lovromazgon)\n* 5ac57a424fb5609dc533bd975e35df9b757c221e: update readme (#111) (@lovromazgon)\n\n", + "tag_name": "v0.9.0", + "name": "v0.9.0", + "body": "## Changelog\n* f740e4ba8d0bbbb545819c4f036bc25666c9016e: --- (#142) (@dependabot[bot])\n* 607d878a668eb7c41dbb2d80df094dcbff3b8d71: Udpate SDK (#157) (@lovromazgon)\n* 87c01cf39a06560c84bd1b5e081f3f43d894a57f: Update connector SDK (#152) (@lovromazgon)\n* d92779b95e5becfe014c3d1dc891731673a364d4: chore: update sdk (#162) (@raulb)\n* e152b7265a5d324b590c44bff28927bfdddb85fc: chore: update to latest commons and remove ptr fn (#161) (@raulb)\n* 9f09470e501a7f446859ce31ba79c77cc6ab6e7b: handle empty parsed topic (#150) (@alarbada)\n* 032784ee0149d42272b73098c0158d7276ee19d3: remove deprecated flag (#151) (@lovromazgon)\n* 3eb3b3ae184e065a363b2a3521b7096c24262de1: retry on franz consumer group session errors (#154) (@samirketema)\n* 1a2c2e21ec7addaea732e4c5675d8f08e9ede797: upgrade conduit-connector-sdk to v0.10.0 (#163) (@lovromazgon)\n* 34be835edabf847fa7adbdcb33657429238d26c7: use the new kafka native container for faster test runs (#160) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-11-09T15:27:42Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.0", + "published_at": "2024-08-07T09:20:51Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.9.0", "assets": [ { - "name": "conduit-connector-kafka_0.7.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Darwin_arm64.tar.gz", - "created_at": "2023-11-09T15:27:43Z", - "updated_at": "2023-11-09T15:27:44Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Darwin_arm64.tar.gz", + "created_at": "2024-08-07T09:20:49Z", + "updated_at": "2024-08-07T09:20:50Z", "download_count": 7, - "size": 6349842 + "size": 6874430 }, { - "name": "conduit-connector-kafka_0.7.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Darwin_x86_64.tar.gz", - "created_at": "2023-11-09T15:27:43Z", - "updated_at": "2023-11-09T15:27:44Z", - "download_count": 10, - "size": 6558933 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Darwin_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:49Z", + "updated_at": "2024-08-07T09:20:50Z", + "download_count": 12, + "size": 7246476 }, { - "name": "conduit-connector-kafka_0.7.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_arm64.tar.gz", - "created_at": "2023-11-09T15:27:43Z", - "updated_at": "2023-11-09T15:27:44Z", - "download_count": 9, - "size": 5789305 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_arm64.tar.gz", + "created_at": "2024-08-07T09:20:49Z", + "updated_at": "2024-08-07T09:20:50Z", + "download_count": 12, + "size": 6542935 }, { - "name": "conduit-connector-kafka_0.7.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_i386.tar.gz", - "created_at": "2023-11-09T15:27:44Z", - "updated_at": "2023-11-09T15:27:44Z", - "download_count": 9, - "size": 5977183 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_i386.tar.gz", + "created_at": "2024-08-07T09:20:50Z", + "updated_at": "2024-08-07T09:20:51Z", + "download_count": 8, + "size": 6687274 }, { - "name": "conduit-connector-kafka_0.7.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_x86_64.tar.gz", - "created_at": "2023-11-09T15:27:43Z", - "updated_at": "2023-11-09T15:27:44Z", - "download_count": 9, - "size": 6259041 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Linux_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:49Z", + "updated_at": "2024-08-07T09:20:50Z", + "download_count": 10, + "size": 7060519 }, { - "name": "conduit-connector-kafka_0.7.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_arm64.tar.gz", - "created_at": "2023-11-09T15:27:44Z", - "updated_at": "2023-11-09T15:27:45Z", - "download_count": 10, - "size": 5868072 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_arm64.tar.gz", + "created_at": "2024-08-07T09:20:50Z", + "updated_at": "2024-08-07T09:20:51Z", + "download_count": 9, + "size": 6638943 }, { - "name": "conduit-connector-kafka_0.7.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_i386.tar.gz", - "created_at": "2023-11-09T15:27:44Z", - "updated_at": "2023-11-09T15:27:45Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_i386.tar.gz", + "created_at": "2024-08-07T09:20:50Z", + "updated_at": "2024-08-07T09:20:50Z", "download_count": 9, - "size": 6239048 + "size": 6988061 }, { - "name": "conduit-connector-kafka_0.7.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.9.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_x86_64.tar.gz", - "created_at": "2023-11-09T15:27:44Z", - "updated_at": "2023-11-09T15:27:45Z", - "download_count": 11, - "size": 6447942 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.9.0/conduit-connector-kafka_0.9.0_Windows_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:50Z", + "updated_at": "2024-08-07T09:20:51Z", + "download_count": 9, + "size": 7289326 } ], "is_latest": false }, { - "tag_name": "v0.6.0", - "name": "v0.6.0", - "body": "## Changelog\n* 4f9173b9c68ac035d0630c6ec080f11005aa85f6: Bump SDK version to v0.7.0 (#97) (@hariso)\n\n", + "tag_name": "v0.8.2", + "name": "v0.8.2", + "body": "## Changelog\n* 41ece4c8fea976e39589828ab846af2d65765c6e: retract v0.8.1 (@samirketema)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-07-19T11:47:05Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.6.0", + "published_at": "2024-07-12T17:06:04Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.2", "assets": [ { - "name": "conduit-connector-kafka_0.6.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Darwin_arm64.tar.gz", - "created_at": "2023-07-19T11:47:08Z", - "updated_at": "2023-07-19T11:47:09Z", - "download_count": 7, - "size": 5481960 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Darwin_arm64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:03Z", + "download_count": 8, + "size": 6230063 }, { - "name": "conduit-connector-kafka_0.6.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Darwin_x86_64.tar.gz", - "created_at": "2023-07-19T11:47:09Z", - "updated_at": "2023-07-19T11:47:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Darwin_x86_64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:03Z", "download_count": 9, - "size": 5678109 + "size": 6568539 }, { - "name": "conduit-connector-kafka_0.6.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_arm64.tar.gz", - "created_at": "2023-07-19T11:47:10Z", - "updated_at": "2023-07-19T11:47:11Z", - "download_count": 10, - "size": 4951843 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_arm64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:03Z", + "download_count": 9, + "size": 5934996 }, { - "name": "conduit-connector-kafka_0.6.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_i386.tar.gz", - "created_at": "2023-07-19T11:47:06Z", - "updated_at": "2023-07-19T11:47:07Z", - "download_count": 9, - "size": 5201949 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_i386.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:04Z", + "download_count": 10, + "size": 6066446 }, { - "name": "conduit-connector-kafka_0.6.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_x86_64.tar.gz", - "created_at": "2023-07-19T11:47:11Z", - "updated_at": "2023-07-19T11:47:11Z", - "download_count": 21, - "size": 5421349 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Linux_x86_64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:03Z", + "download_count": 11, + "size": 6404704 }, { - "name": "conduit-connector-kafka_0.6.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_arm64.tar.gz", - "created_at": "2023-07-19T11:47:08Z", - "updated_at": "2023-07-19T11:47:08Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_arm64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:04Z", "download_count": 9, - "size": 5033970 + "size": 6030602 }, { - "name": "conduit-connector-kafka_0.6.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_i386.tar.gz", - "created_at": "2023-07-19T11:47:07Z", - "updated_at": "2023-07-19T11:47:08Z", - "download_count": 9, - "size": 5421315 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_i386.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:04Z", + "download_count": 10, + "size": 6350417 }, { - "name": "conduit-connector-kafka_0.6.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_x86_64.tar.gz", - "created_at": "2023-07-19T11:47:06Z", - "updated_at": "2023-07-19T11:47:07Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.2/conduit-connector-kafka_0.8.2_Windows_x86_64.tar.gz", + "created_at": "2024-07-12T17:06:03Z", + "updated_at": "2024-07-12T17:06:04Z", "download_count": 9, - "size": 5509484 + "size": 6616003 } ], "is_latest": false }, { - "tag_name": "v0.5.1", - "name": "v0.5.1", - "body": "## Changelog\n* dc9611ff2b31aa4bd03f0a23b8db20e1c79b02cd: Make it possible to configure client.id (#89) (@hariso)\n\n", + "tag_name": "v0.8.1", + "name": "v0.8.1", + "body": "## Changelog\n* 51eea634c9a96bc31323e2268223f785357ea4d3: regen sdk parameter types (@samirketema)\n* 8e7bc744fa0f403829baec803297245b37a5d7fb: retry on franz consumer group session errors (#154) (@samirketema)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-05-17T12:27:17Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.5.1", + "published_at": "2024-07-12T16:44:30Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.1", "assets": [ { - "name": "conduit-connector-kafka_0.5.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Darwin_arm64.tar.gz", - "created_at": "2023-05-17T12:27:20Z", - "updated_at": "2023-05-17T12:27:21Z", - "download_count": 8, - "size": 5479876 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Darwin_arm64.tar.gz", + "created_at": "2024-07-12T16:44:29Z", + "updated_at": "2024-07-12T16:44:30Z", + "download_count": 7, + "size": 6230066 }, { - "name": "conduit-connector-kafka_0.5.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Darwin_x86_64.tar.gz", - "created_at": "2023-05-17T12:27:19Z", - "updated_at": "2023-05-17T12:27:20Z", - "download_count": 10, - "size": 5674384 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Darwin_x86_64.tar.gz", + "created_at": "2024-07-12T16:44:28Z", + "updated_at": "2024-07-12T16:44:29Z", + "download_count": 9, + "size": 6568518 }, { - "name": "conduit-connector-kafka_0.5.1_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_arm64.tar.gz", - "created_at": "2023-05-17T12:27:18Z", - "updated_at": "2023-05-17T12:27:18Z", - "download_count": 10, - "size": 4946305 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_arm64.tar.gz", + "created_at": "2024-07-12T16:44:29Z", + "updated_at": "2024-07-12T16:44:30Z", + "download_count": 9, + "size": 5934995 }, { - "name": "conduit-connector-kafka_0.5.1_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_i386.tar.gz", - "created_at": "2023-05-17T12:27:18Z", - "updated_at": "2023-05-17T12:27:18Z", - "download_count": 14, - "size": 5195923 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_i386.tar.gz", + "created_at": "2024-07-12T16:44:28Z", + "updated_at": "2024-07-12T16:44:29Z", + "download_count": 9, + "size": 6066445 }, { - "name": "conduit-connector-kafka_0.5.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_x86_64.tar.gz", - "created_at": "2023-05-17T12:27:20Z", - "updated_at": "2023-05-17T12:27:21Z", - "download_count": 9, - "size": 5417575 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Linux_x86_64.tar.gz", + "created_at": "2024-07-12T16:44:29Z", + "updated_at": "2024-07-12T16:44:30Z", + "download_count": 10, + "size": 6404712 }, { - "name": "conduit-connector-kafka_0.5.1_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_arm64.tar.gz", - "created_at": "2023-05-17T12:27:18Z", - "updated_at": "2023-05-17T12:27:19Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_arm64.tar.gz", + "created_at": "2024-07-12T16:44:29Z", + "updated_at": "2024-07-12T16:44:29Z", "download_count": 9, - "size": 5030172 + "size": 6030601 }, { - "name": "conduit-connector-kafka_0.5.1_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_i386.tar.gz", - "created_at": "2023-05-17T12:27:19Z", - "updated_at": "2023-05-17T12:27:20Z", - "download_count": 10, - "size": 5416424 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_i386.tar.gz", + "created_at": "2024-07-12T16:44:28Z", + "updated_at": "2024-07-12T16:44:29Z", + "download_count": 9, + "size": 6350408 }, { - "name": "conduit-connector-kafka_0.5.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_x86_64.tar.gz", - "created_at": "2023-05-17T12:27:18Z", - "updated_at": "2023-05-17T12:27:19Z", - "download_count": 10, - "size": 5505782 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.1/conduit-connector-kafka_0.8.1_Windows_x86_64.tar.gz", + "created_at": "2024-07-12T16:44:28Z", + "updated_at": "2024-07-12T16:44:29Z", + "download_count": 9, + "size": 6615999 } ], "is_latest": false }, { - "tag_name": "v0.5.0", - "name": "v0.5.0", - "body": "## Changelog\n* f35498ef53594f9ea783510854996ecbef48514d: Add tests for Redpanda (#84) (@hariso)\n* 3c4a9f4b36bceffbc96f931df80550d4bd6cf598: Bump SDK version to v0.6.0 (#86) (@hariso)\n* b75e1f9dac6e1f2a5e438345176ec24fdd55a77b: Upgrade Go to 1.20, remove abandoned linters (#79) (@hariso)\n\n", + "tag_name": "v0.8.0", + "name": "v0.8.0", + "body": "## Changelog\n* fb070a658dc83c83cf5c8260d07bf861f6bb9d8e: Destination - route records to topic based on metadata (#130) (@lovromazgon)\n* bdd435dbda15e5efdc39bc2478f92b5aaaf6ca34: Set `opencdc.collection` metadata (#129) (@lovromazgon)\n* 4aa60573e900a7036d0254b0f24db9e299346313: add scarf pixel (#135) (@maha-hajja)\n* a545a62969f200b86cdb728093a7950036280a42: add the ability to read from multiple Kafka topics (#131) (@maha-hajja)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-04-11T12:34:00Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.5.0", + "published_at": "2024-04-25T13:10:00Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.8.0", "assets": [ { - "name": "conduit-connector-kafka_0.5.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Darwin_arm64.tar.gz", - "created_at": "2023-04-11T12:34:03Z", - "updated_at": "2023-04-11T12:34:04Z", - "download_count": 9, - "size": 5427988 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Darwin_arm64.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:59Z", + "download_count": 10, + "size": 6228903 }, { - "name": "conduit-connector-kafka_0.5.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Darwin_x86_64.tar.gz", - "created_at": "2023-04-11T12:34:02Z", - "updated_at": "2023-04-11T12:34:03Z", - "download_count": 15, - "size": 5668754 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Darwin_x86_64.tar.gz", + "created_at": "2024-04-25T13:09:59Z", + "updated_at": "2024-04-25T13:09:59Z", + "download_count": 10, + "size": 6567934 }, { - "name": "conduit-connector-kafka_0.5.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_arm64.tar.gz", - "created_at": "2023-04-11T12:34:04Z", - "updated_at": "2023-04-11T12:34:06Z", - "download_count": 11, - "size": 4944046 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_arm64.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:59Z", + "download_count": 10, + "size": 5934075 }, { - "name": "conduit-connector-kafka_0.5.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_i386.tar.gz", - "created_at": "2023-04-11T12:34:05Z", - "updated_at": "2023-04-11T12:34:06Z", - "download_count": 10, - "size": 5191717 - }, - { - "name": "conduit-connector-kafka_0.5.0_Linux_x86_64.tar.gz", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_i386.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:59Z", + "download_count": 9, + "size": 6066386 + }, + { + "name": "conduit-connector-kafka_0.8.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_x86_64.tar.gz", - "created_at": "2023-04-11T12:34:04Z", - "updated_at": "2023-04-11T12:34:05Z", - "download_count": 14, - "size": 5414257 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Linux_x86_64.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:58Z", + "download_count": 11, + "size": 6403975 }, { - "name": "conduit-connector-kafka_0.5.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_arm64.tar.gz", - "created_at": "2023-04-11T12:34:01Z", - "updated_at": "2023-04-11T12:34:02Z", - "download_count": 10, - "size": 5025811 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_arm64.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:58Z", + "download_count": 8, + "size": 6029677 }, { - "name": "conduit-connector-kafka_0.5.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_i386.tar.gz", - "created_at": "2023-04-11T12:34:02Z", - "updated_at": "2023-04-11T12:34:03Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_i386.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:58Z", "download_count": 10, - "size": 5411665 + "size": 6349891 }, { - "name": "conduit-connector-kafka_0.5.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.8.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_x86_64.tar.gz", - "created_at": "2023-04-11T12:34:01Z", - "updated_at": "2023-04-11T12:34:02Z", - "download_count": 10, - "size": 5503693 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.8.0/conduit-connector-kafka_0.8.0_Windows_x86_64.tar.gz", + "created_at": "2024-04-25T13:09:58Z", + "updated_at": "2024-04-25T13:09:58Z", + "download_count": 12, + "size": 6614876 } ], "is_latest": false }, { - "tag_name": "v0.4.1", - "name": "v0.4.1", - "body": "## Changelog\n* 02a37c3e657a498be63c5083ec0e3c36c262f9cb: Add support for producer compression (#76) (@hariso)\n* 41a168ba00113c16ab3f52c915bbe4607a9dcbec: GoReleaser: archive name replacements (#69) (@hariso)\n* c5a11d7749a5eb711b44f69107159c2734271251: Housekeeping: version and release name template (#70) (@lovromazgon)\n* be22f48a9a40ca32d48570ddd19fd5cbc4d93b04: Producer: retry on any temp. error (#72) (@hariso)\n* 9fb7d4170914ff80a8794e7e92e45aabe65fd6ca: update sdk to 0.5.1 (#71) (@lovromazgon)\n\n", + "tag_name": "v0.7.2", + "name": "v0.7.2", + "body": "## Changelog\n* 2b5429874fd6549bdda3327d44788f68a8300635: Add message headers to produced record (#126) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-03-01T16:49:31Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.4.1", + "published_at": "2024-03-19T17:28:56Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.2", "assets": [ { - "name": "conduit-connector-kafka_0.4.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Darwin_arm64.tar.gz", - "created_at": "2023-03-01T16:49:35Z", - "updated_at": "2023-03-01T16:49:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Darwin_arm64.tar.gz", + "created_at": "2024-03-19T17:28:57Z", + "updated_at": "2024-03-19T17:28:57Z", "download_count": 8, - "size": 5272707 + "size": 6347864 }, { - "name": "conduit-connector-kafka_0.4.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Darwin_x86_64.tar.gz", - "created_at": "2023-03-01T16:49:34Z", - "updated_at": "2023-03-01T16:49:35Z", - "download_count": 10, - "size": 5445000 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Darwin_x86_64.tar.gz", + "created_at": "2024-03-19T17:28:57Z", + "updated_at": "2024-03-19T17:28:58Z", + "download_count": 9, + "size": 6555555 }, { - "name": "conduit-connector-kafka_0.4.1_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_arm64.tar.gz", - "created_at": "2023-03-01T16:49:32Z", - "updated_at": "2023-03-01T16:49:32Z", - "download_count": 10, - "size": 4821898 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_arm64.tar.gz", + "created_at": "2024-03-19T17:28:57Z", + "updated_at": "2024-03-19T17:28:57Z", + "download_count": 9, + "size": 5788647 }, { - "name": "conduit-connector-kafka_0.4.1_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_i386.tar.gz", - "created_at": "2023-03-01T16:49:33Z", - "updated_at": "2023-03-01T16:49:33Z", - "download_count": 11, - "size": 5052621 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_i386.tar.gz", + "created_at": "2024-03-19T17:28:58Z", + "updated_at": "2024-03-19T17:28:58Z", + "download_count": 10, + "size": 5976210 }, { - "name": "conduit-connector-kafka_0.4.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_x86_64.tar.gz", - "created_at": "2023-03-01T16:49:32Z", - "updated_at": "2023-03-01T16:49:33Z", - "download_count": 12, - "size": 5237204 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Linux_x86_64.tar.gz", + "created_at": "2024-03-19T17:28:57Z", + "updated_at": "2024-03-19T17:28:57Z", + "download_count": 10, + "size": 6256570 }, { - "name": "conduit-connector-kafka_0.4.1_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_arm64.tar.gz", - "created_at": "2023-03-01T16:49:34Z", - "updated_at": "2023-03-01T16:49:34Z", - "download_count": 10, - "size": 4847460 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_arm64.tar.gz", + "created_at": "2024-03-19T17:28:58Z", + "updated_at": "2024-03-19T17:28:58Z", + "download_count": 11, + "size": 5868609 }, { - "name": "conduit-connector-kafka_0.4.1_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_i386.tar.gz", - "created_at": "2023-03-01T16:49:34Z", - "updated_at": "2023-03-01T16:49:34Z", - "download_count": 10, - "size": 5212570 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_i386.tar.gz", + "created_at": "2024-03-19T17:28:58Z", + "updated_at": "2024-03-19T17:28:58Z", + "download_count": 9, + "size": 6241162 }, { - "name": "conduit-connector-kafka_0.4.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_x86_64.tar.gz", - "created_at": "2023-03-01T16:49:33Z", - "updated_at": "2023-03-01T16:49:33Z", - "download_count": 10, - "size": 5260830 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.2/conduit-connector-kafka_0.7.2_Windows_x86_64.tar.gz", + "created_at": "2024-03-19T17:28:58Z", + "updated_at": "2024-03-19T17:28:59Z", + "download_count": 9, + "size": 6446639 } ], "is_latest": false }, { - "tag_name": "v0.4.0", - "name": "v0.4.0", - "body": "## Changelog\n* 8d79a023d7cfdd053402a177222ceae760bef256: Fix: copyright year doesn't have to be the current year (#62) (@hariso)\n* 098cfd47405c0a4056d1e1ff667b65b595f3e327: Produce debezium key (#64) (@lovromazgon)\n* 7a3ea32e7e2954700af9ea1dee128b5bc6ead201: default to empty saslMechanism (#65) (@maha-hajja)\n* 0808ebd29f7135d989ffdf51c9c8b0962eefc4ab: update connector SDK to v0.5.0 (#68) (@lovromazgon)\n\n", + "tag_name": "v0.7.1", + "name": "v0.7.1", + "body": "## Changelog\n* 1b20004202c1e732ecb678de32a2b364dd74ba8d: support TLS without authentication (#118) (@samirketema)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-01-31T17:13:23Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.4.0", + "published_at": "2024-01-19T16:30:37Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.1", "assets": [ { - "name": "conduit-connector-kafka_0.4.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Darwin_arm64.tar.gz", - "created_at": "2023-01-31T17:13:25Z", - "updated_at": "2023-01-31T17:13:26Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Darwin_arm64.tar.gz", + "created_at": "2024-01-19T16:30:38Z", + "updated_at": "2024-01-19T16:30:38Z", "download_count": 8, - "size": 5270302 + "size": 6339748 }, { - "name": "conduit-connector-kafka_0.4.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Darwin_x86_64.tar.gz", - "created_at": "2023-01-31T17:13:25Z", - "updated_at": "2023-01-31T17:13:26Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Darwin_x86_64.tar.gz", + "created_at": "2024-01-19T16:30:38Z", + "updated_at": "2024-01-19T16:30:38Z", "download_count": 10, - "size": 5444132 + "size": 6550518 }, { - "name": "conduit-connector-kafka_0.4.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_arm64.tar.gz", - "created_at": "2023-01-31T17:13:26Z", - "updated_at": "2023-01-31T17:13:27Z", - "download_count": 10, - "size": 4819730 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_arm64.tar.gz", + "created_at": "2024-01-19T16:30:38Z", + "updated_at": "2024-01-19T16:30:38Z", + "download_count": 9, + "size": 5782282 }, { - "name": "conduit-connector-kafka_0.4.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_i386.tar.gz", - "created_at": "2023-01-31T17:13:27Z", - "updated_at": "2023-01-31T17:13:28Z", - "download_count": 10, - "size": 5049496 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_i386.tar.gz", + "created_at": "2024-01-19T16:30:38Z", + "updated_at": "2024-01-19T16:30:38Z", + "download_count": 9, + "size": 5969355 }, { - "name": "conduit-connector-kafka_0.4.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_x86_64.tar.gz", - "created_at": "2023-01-31T17:13:26Z", - "updated_at": "2023-01-31T17:13:27Z", - "download_count": 10, - "size": 5235836 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Linux_x86_64.tar.gz", + "created_at": "2024-01-19T16:30:39Z", + "updated_at": "2024-01-19T16:30:39Z", + "download_count": 12, + "size": 6249448 }, { - "name": "conduit-connector-kafka_0.4.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_arm64.tar.gz", - "created_at": "2023-01-31T17:13:24Z", - "updated_at": "2023-01-31T17:13:24Z", - "download_count": 10, - "size": 4843901 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_arm64.tar.gz", + "created_at": "2024-01-19T16:30:39Z", + "updated_at": "2024-01-19T16:30:39Z", + "download_count": 8, + "size": 5860762 }, { - "name": "conduit-connector-kafka_0.4.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_i386.tar.gz", - "created_at": "2023-01-31T17:13:24Z", - "updated_at": "2023-01-31T17:13:24Z", - "download_count": 11, - "size": 5208428 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_i386.tar.gz", + "created_at": "2024-01-19T16:30:38Z", + "updated_at": "2024-01-19T16:30:39Z", + "download_count": 9, + "size": 6233138 }, { - "name": "conduit-connector-kafka_0.4.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_x86_64.tar.gz", - "created_at": "2023-01-31T17:13:27Z", - "updated_at": "2023-01-31T17:13:28Z", - "download_count": 10, - "size": 5260065 - } - ], + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.1/conduit-connector-kafka_0.7.1_Windows_x86_64.tar.gz", + "created_at": "2024-01-19T16:30:39Z", + "updated_at": "2024-01-19T16:30:39Z", + "download_count": 11, + "size": 6438907 + } + ], "is_latest": false }, { - "tag_name": "v0.3.0", - "name": "v0.3.0", - "body": "## Changelog\n* 61821f3a48e99eaa292bea30a49eb1587b0f6bf7: Acceptance tests (#33) (@hariso)\n* 3f28b6914d74d77e87382ac75abc878f5b258d11: Add Goreleaser (#49) (@lovromazgon)\n* 9cd679a5cf7f858063810f62b69e50acb5fd7b42: Better error handling in teardowns (#36) (@hariso)\n* 6f70e777aae2c941da6883ddeb08fc2212465a75: Make Kafka Consumer Group Configurable (#48) (@ahmeroxa)\n* ed28a67e55eab756e50b50200b625acee14f74c1: OpenCDC integration (#38) (@lovromazgon)\n* f9ede6b2bc4479a3f7fd2024b9290b97506fcea4: Update to latest SDK (#41) (@lovromazgon)\n* cb42846f82998c61591ede38d63983e60f4ebef0: Use asynchronous writes (#35) (@hariso)\n* b8bcf173313262cd5ab5200efe729a43e97c1531: update version string (builtin plugins need proper version) (#50) (@lovromazgon)\n\n", + "tag_name": "v0.7.0", + "name": "v0.7.0", + "body": "## Changelog\n* caeb1e06f65f6fe99bae48b20b0983774737050c: Rewrite using franz-go (#107) (@lovromazgon)\n* 5ac57a424fb5609dc533bd975e35df9b757c221e: update readme (#111) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2022-09-27T14:06:50Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.3.0", + "published_at": "2023-11-09T15:27:42Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.7.0", "assets": [ { - "name": "conduit-connector-kafka_0.3.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Darwin_arm64.tar.gz", - "created_at": "2022-09-27T14:06:52Z", - "updated_at": "2022-09-27T14:06:52Z", - "download_count": 11, - "size": 4949511 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Darwin_arm64.tar.gz", + "created_at": "2023-11-09T15:27:43Z", + "updated_at": "2023-11-09T15:27:44Z", + "download_count": 7, + "size": 6349842 }, { - "name": "conduit-connector-kafka_0.3.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Darwin_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:51Z", - "updated_at": "2022-09-27T14:06:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Darwin_x86_64.tar.gz", + "created_at": "2023-11-09T15:27:43Z", + "updated_at": "2023-11-09T15:27:44Z", "download_count": 10, - "size": 5103452 + "size": 6558933 }, { - "name": "conduit-connector-kafka_0.3.0_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_arm64.tar.gz", - "created_at": "2022-09-27T14:06:52Z", - "updated_at": "2022-09-27T14:06:53Z", - "download_count": 13, - "size": 4523491 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_arm64.tar.gz", + "created_at": "2023-11-09T15:27:43Z", + "updated_at": "2023-11-09T15:27:44Z", + "download_count": 9, + "size": 5789305 }, { - "name": "conduit-connector-kafka_0.3.0_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_i386.tar.gz", - "created_at": "2022-09-27T14:06:53Z", - "updated_at": "2022-09-27T14:06:54Z", - "download_count": 10, - "size": 4724357 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_i386.tar.gz", + "created_at": "2023-11-09T15:27:44Z", + "updated_at": "2023-11-09T15:27:44Z", + "download_count": 9, + "size": 5977183 }, { - "name": "conduit-connector-kafka_0.3.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:53Z", - "updated_at": "2022-09-27T14:06:54Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Linux_x86_64.tar.gz", + "created_at": "2023-11-09T15:27:43Z", + "updated_at": "2023-11-09T15:27:44Z", "download_count": 9, - "size": 4906110 + "size": 6259041 }, { - "name": "conduit-connector-kafka_0.3.0_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_arm64.tar.gz", - "created_at": "2022-09-27T14:06:54Z", - "updated_at": "2022-09-27T14:06:54Z", - "download_count": 11, - "size": 4534336 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_arm64.tar.gz", + "created_at": "2023-11-09T15:27:44Z", + "updated_at": "2023-11-09T15:27:45Z", + "download_count": 10, + "size": 5868072 }, { - "name": "conduit-connector-kafka_0.3.0_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_i386.tar.gz", - "created_at": "2022-09-27T14:06:51Z", - "updated_at": "2022-09-27T14:06:52Z", - "download_count": 11, - "size": 4859765 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_i386.tar.gz", + "created_at": "2023-11-09T15:27:44Z", + "updated_at": "2023-11-09T15:27:45Z", + "download_count": 9, + "size": 6239048 }, { - "name": "conduit-connector-kafka_0.3.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.7.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:54Z", - "updated_at": "2022-09-27T14:06:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.7.0/conduit-connector-kafka_0.7.0_Windows_x86_64.tar.gz", + "created_at": "2023-11-09T15:27:44Z", + "updated_at": "2023-11-09T15:27:45Z", "download_count": 11, - "size": 4917105 + "size": 6447942 } ], "is_latest": false - } - ] - }, - { - "name_with_owner": "ConduitIO/conduit-connector-log", - "description": "Conduit connector that logs records", - "created_at": "2022-11-04 17:21:08 +0000 UTC", - "url": "https://github.com/ConduitIO/conduit-connector-log", - "stargazer_count": 1, - "fork_count": 2, - "releases": [ + }, { - "tag_name": "v0.7.6", - "name": "v0.7.6", - "body": "## conduit-connector-log v0.7.6\n\nToolchain and SDK release. No connector code changes.\n\n- Built with Go 1.26.9; `go.mod` moves to `go 1.26.9`.\n- `conduit-commons` v0.8.0 and `conduit-connector-sdk` v0.15.0. The SDK carries the per-record schema extraction speedups and the Avro schema inference ordering fix.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends) instead of tearing down underneath it; a batch that arrives after teardown started is redelivered on restart, not acknowledged (conduit-connector-sdk#401).\n- `hamba/avro` is no longer in the dependency graph.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.5...v0.7.6\n", + "tag_name": "v0.6.0", + "name": "v0.6.0", + "body": "## Changelog\n* 4f9173b9c68ac035d0630c6ec080f11005aa85f6: Bump SDK version to v0.7.0 (#97) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2026-10-13T07:30:31Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.6", + "published_at": "2023-07-19T11:47:05Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.6.0", "assets": [ { - "name": "conduit-connector-log_0.7.6_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:34:04Z", - "updated_at": "2026-10-13T07:34:04Z", - "download_count": 0, - "size": 7266529 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Darwin_arm64.tar.gz", + "created_at": "2023-07-19T11:47:08Z", + "updated_at": "2023-07-19T11:47:09Z", + "download_count": 7, + "size": 5481960 }, { - "name": "conduit-connector-log_0.7.6_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Darwin_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:04Z", - "updated_at": "2026-10-13T07:34:04Z", - "download_count": 0, - "size": 7847618 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Darwin_x86_64.tar.gz", + "created_at": "2023-07-19T11:47:09Z", + "updated_at": "2023-07-19T11:47:10Z", + "download_count": 9, + "size": 5678109 }, { - "name": "conduit-connector-log_0.7.6_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_arm64.tar.gz", - "created_at": "2026-10-13T07:34:03Z", - "updated_at": "2026-10-13T07:34:04Z", - "download_count": 0, - "size": 6916028 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_arm64.tar.gz", + "created_at": "2023-07-19T11:47:10Z", + "updated_at": "2023-07-19T11:47:11Z", + "download_count": 10, + "size": 4951843 }, { - "name": "conduit-connector-log_0.7.6_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_i386.tar.gz", - "created_at": "2026-10-13T07:34:03Z", - "updated_at": "2026-10-13T07:34:04Z", - "download_count": 0, - "size": 7288838 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_i386.tar.gz", + "created_at": "2023-07-19T11:47:06Z", + "updated_at": "2023-07-19T11:47:07Z", + "download_count": 9, + "size": 5201949 }, { - "name": "conduit-connector-log_0.7.6_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:02Z", - "updated_at": "2026-10-13T07:34:03Z", - "download_count": 0, - "size": 7657422 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Linux_x86_64.tar.gz", + "created_at": "2023-07-19T11:47:11Z", + "updated_at": "2023-07-19T11:47:11Z", + "download_count": 21, + "size": 5421349 }, { - "name": "conduit-connector-log_0.7.6_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_arm64.tar.gz", - "created_at": "2026-10-13T07:34:02Z", - "updated_at": "2026-10-13T07:34:03Z", - "download_count": 0, - "size": 7009346 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_arm64.tar.gz", + "created_at": "2023-07-19T11:47:08Z", + "updated_at": "2023-07-19T11:47:08Z", + "download_count": 9, + "size": 5033970 }, { - "name": "conduit-connector-log_0.7.6_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_i386.tar.gz", - "created_at": "2026-10-13T07:34:02Z", - "updated_at": "2026-10-13T07:34:03Z", - "download_count": 0, - "size": 7609204 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_i386.tar.gz", + "created_at": "2023-07-19T11:47:07Z", + "updated_at": "2023-07-19T11:47:08Z", + "download_count": 9, + "size": 5421315 }, { - "name": "conduit-connector-log_0.7.6_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.6.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_x86_64.tar.gz", - "created_at": "2026-10-13T07:34:02Z", - "updated_at": "2026-10-13T07:34:03Z", - "download_count": 0, - "size": 7884439 - }, + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.6.0/conduit-connector-kafka_0.6.0_Windows_x86_64.tar.gz", + "created_at": "2023-07-19T11:47:06Z", + "updated_at": "2023-07-19T11:47:07Z", + "download_count": 9, + "size": 5509484 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.5.1", + "name": "v0.5.1", + "body": "## Changelog\n* dc9611ff2b31aa4bd03f0a23b8db20e1c79b02cd: Make it possible to configure client.id (#89) (@hariso)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2023-05-17T12:27:17Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.5.1", + "assets": [ { - "name": "log_v0.7.6_darwin_amd64.tar.gz", + "name": "conduit-connector-kafka_0.5.1_Darwin_arm64.tar.gz", "os": "darwin", - "arch": "amd64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_amd64.tar.gz", - "created_at": "2026-10-13T07:32:09Z", - "updated_at": "2026-10-13T07:32:10Z", - "download_count": 0, - "size": 15195211 + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Darwin_arm64.tar.gz", + "created_at": "2023-05-17T12:27:20Z", + "updated_at": "2023-05-17T12:27:21Z", + "download_count": 8, + "size": 5479876 }, { - "name": "log_v0.7.6_darwin_amd64.tar.gz.sigstore.json", + "name": "conduit-connector-kafka_0.5.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:32:09Z", - "updated_at": "2026-10-13T07:32:09Z", - "download_count": 0, - "size": 9205 - }, - { - "name": "log_v0.7.6_darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:32:39Z", - "updated_at": "2026-10-13T07:32:40Z", - "download_count": 0, - "size": 14284628 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Darwin_x86_64.tar.gz", + "created_at": "2023-05-17T12:27:19Z", + "updated_at": "2023-05-17T12:27:20Z", + "download_count": 10, + "size": 5674384 }, { - "name": "log_v0.7.6_darwin_arm64.tar.gz.sigstore.json", - "os": "darwin", + "name": "conduit-connector-kafka_0.5.1_Linux_arm64.tar.gz", + "os": "linux", "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:32:39Z", - "updated_at": "2026-10-13T07:32:39Z", - "download_count": 0, - "size": 9350 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_arm64.tar.gz", + "created_at": "2023-05-17T12:27:18Z", + "updated_at": "2023-05-17T12:27:18Z", + "download_count": 10, + "size": 4946305 }, { - "name": "log_v0.7.6_linux_amd64.tar.gz", + "name": "conduit-connector-kafka_0.5.1_Linux_i386.tar.gz", "os": "linux", - "arch": "amd64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_amd64.tar.gz", - "created_at": "2026-10-13T07:31:08Z", - "updated_at": "2026-10-13T07:31:09Z", - "download_count": 0, - "size": 14612025 + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_i386.tar.gz", + "created_at": "2023-05-17T12:27:18Z", + "updated_at": "2023-05-17T12:27:18Z", + "download_count": 14, + "size": 5195923 }, { - "name": "log_v0.7.6_linux_amd64.tar.gz.sigstore.json", + "name": "conduit-connector-kafka_0.5.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:08Z", - "updated_at": "2026-10-13T07:31:08Z", - "download_count": 0, - "size": 9773 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Linux_x86_64.tar.gz", + "created_at": "2023-05-17T12:27:20Z", + "updated_at": "2023-05-17T12:27:21Z", + "download_count": 9, + "size": 5417575 }, { - "name": "log_v0.7.6_linux_arm64.tar.gz", - "os": "linux", + "name": "conduit-connector-kafka_0.5.1_Windows_arm64.tar.gz", + "os": "windows", "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_arm64.tar.gz", - "created_at": "2026-10-13T07:31:39Z", - "updated_at": "2026-10-13T07:31:40Z", - "download_count": 0, - "size": 13402762 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_arm64.tar.gz", + "created_at": "2023-05-17T12:27:18Z", + "updated_at": "2023-05-17T12:27:19Z", + "download_count": 9, + "size": 5030172 }, { - "name": "log_v0.7.6_linux_arm64.tar.gz.sigstore.json", - "os": "linux", - "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:39Z", - "updated_at": "2026-10-13T07:31:39Z", - "download_count": 0, - "size": 9095 + "name": "conduit-connector-kafka_0.5.1_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_i386.tar.gz", + "created_at": "2023-05-17T12:27:19Z", + "updated_at": "2023-05-17T12:27:20Z", + "download_count": 10, + "size": 5416424 + }, + { + "name": "conduit-connector-kafka_0.5.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.1/conduit-connector-kafka_0.5.1_Windows_x86_64.tar.gz", + "created_at": "2023-05-17T12:27:18Z", + "updated_at": "2023-05-17T12:27:19Z", + "download_count": 10, + "size": 5505782 } ], - "is_latest": true + "is_latest": false }, { - "tag_name": "v0.7.5", - "name": "v0.7.5", - "body": "## What's Changed\n* chore: re-release v0.7.5 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-log/pull/93\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.4...v0.7.5", + "tag_name": "v0.5.0", + "name": "v0.5.0", + "body": "## Changelog\n* f35498ef53594f9ea783510854996ecbef48514d: Add tests for Redpanda (#84) (@hariso)\n* 3c4a9f4b36bceffbc96f931df80550d4bd6cf598: Bump SDK version to v0.6.0 (#86) (@hariso)\n* b75e1f9dac6e1f2a5e438345176ec24fdd55a77b: Upgrade Go to 1.20, remove abandoned linters (#79) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2026-07-23T11:58:26Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.5", + "published_at": "2023-04-11T12:34:00Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.5.0", "assets": [ { - "name": "conduit-connector-log_0.7.5_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:02:06Z", - "updated_at": "2026-07-23T12:02:07Z", - "download_count": 2, - "size": 6451504 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Darwin_arm64.tar.gz", + "created_at": "2023-04-11T12:34:03Z", + "updated_at": "2023-04-11T12:34:04Z", + "download_count": 9, + "size": 5427988 }, { - "name": "conduit-connector-log_0.7.5_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:06Z", - "updated_at": "2026-07-23T12:02:07Z", - "download_count": 1, - "size": 6848034 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Darwin_x86_64.tar.gz", + "created_at": "2023-04-11T12:34:02Z", + "updated_at": "2023-04-11T12:34:03Z", + "download_count": 15, + "size": 5668754 }, { - "name": "conduit-connector-log_0.7.5_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_arm64.tar.gz", - "created_at": "2026-07-23T12:02:06Z", - "updated_at": "2026-07-23T12:02:07Z", - "download_count": 1, - "size": 6141999 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_arm64.tar.gz", + "created_at": "2023-04-11T12:34:04Z", + "updated_at": "2023-04-11T12:34:06Z", + "download_count": 11, + "size": 4944046 }, { - "name": "conduit-connector-log_0.7.5_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_i386.tar.gz", - "created_at": "2026-07-23T12:02:05Z", - "updated_at": "2026-07-23T12:02:06Z", - "download_count": 1, - "size": 6337578 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_i386.tar.gz", + "created_at": "2023-04-11T12:34:05Z", + "updated_at": "2023-04-11T12:34:06Z", + "download_count": 10, + "size": 5191717 }, { - "name": "conduit-connector-log_0.7.5_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:06Z", - "updated_at": "2026-07-23T12:02:07Z", - "download_count": 1, - "size": 6671955 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Linux_x86_64.tar.gz", + "created_at": "2023-04-11T12:34:04Z", + "updated_at": "2023-04-11T12:34:05Z", + "download_count": 14, + "size": 5414257 }, { - "name": "conduit-connector-log_0.7.5_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_arm64.tar.gz", - "created_at": "2026-07-23T12:02:05Z", - "updated_at": "2026-07-23T12:02:06Z", - "download_count": 1, - "size": 6242241 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_arm64.tar.gz", + "created_at": "2023-04-11T12:34:01Z", + "updated_at": "2023-04-11T12:34:02Z", + "download_count": 10, + "size": 5025811 }, { - "name": "conduit-connector-log_0.7.5_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_i386.tar.gz", - "created_at": "2026-07-23T12:02:05Z", - "updated_at": "2026-07-23T12:02:06Z", - "download_count": 1, - "size": 6632786 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_i386.tar.gz", + "created_at": "2023-04-11T12:34:02Z", + "updated_at": "2023-04-11T12:34:03Z", + "download_count": 10, + "size": 5411665 }, { - "name": "conduit-connector-log_0.7.5_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.5.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T12:02:05Z", - "updated_at": "2026-07-23T12:02:06Z", - "download_count": 1, - "size": 6888809 - }, + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.5.0/conduit-connector-kafka_0.5.0_Windows_x86_64.tar.gz", + "created_at": "2023-04-11T12:34:01Z", + "updated_at": "2023-04-11T12:34:02Z", + "download_count": 10, + "size": 5503693 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.4.1", + "name": "v0.4.1", + "body": "## Changelog\n* 02a37c3e657a498be63c5083ec0e3c36c262f9cb: Add support for producer compression (#76) (@hariso)\n* 41a168ba00113c16ab3f52c915bbe4607a9dcbec: GoReleaser: archive name replacements (#69) (@hariso)\n* c5a11d7749a5eb711b44f69107159c2734271251: Housekeeping: version and release name template (#70) (@lovromazgon)\n* be22f48a9a40ca32d48570ddd19fd5cbc4d93b04: Producer: retry on any temp. error (#72) (@hariso)\n* 9fb7d4170914ff80a8794e7e92e45aabe65fd6ca: update sdk to 0.5.1 (#71) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2023-03-01T16:49:31Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.4.1", + "assets": [ { - "name": "log_v0.7.5_darwin_amd64.tar.gz", + "name": "conduit-connector-kafka_0.4.1_Darwin_arm64.tar.gz", "os": "darwin", - "arch": "amd64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_amd64.tar.gz", - "created_at": "2026-07-23T11:59:47Z", - "updated_at": "2026-07-23T11:59:48Z", - "download_count": 1, - "size": 13225428 + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Darwin_arm64.tar.gz", + "created_at": "2023-03-01T16:49:35Z", + "updated_at": "2023-03-01T16:49:36Z", + "download_count": 8, + "size": 5272707 }, { - "name": "log_v0.7.5_darwin_amd64.tar.gz.sigstore.json", + "name": "conduit-connector-kafka_0.4.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:59:47Z", - "updated_at": "2026-07-23T11:59:47Z", - "download_count": 13, - "size": 9560 - }, - { - "name": "log_v0.7.5_darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:00:12Z", - "updated_at": "2026-07-23T12:00:13Z", - "download_count": 2, - "size": 12598311 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Darwin_x86_64.tar.gz", + "created_at": "2023-03-01T16:49:34Z", + "updated_at": "2023-03-01T16:49:35Z", + "download_count": 10, + "size": 5445000 }, { - "name": "log_v0.7.5_darwin_arm64.tar.gz.sigstore.json", - "os": "darwin", + "name": "conduit-connector-kafka_0.4.1_Linux_arm64.tar.gz", + "os": "linux", "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T12:00:12Z", - "updated_at": "2026-07-23T12:00:12Z", - "download_count": 14, - "size": 9595 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_arm64.tar.gz", + "created_at": "2023-03-01T16:49:32Z", + "updated_at": "2023-03-01T16:49:32Z", + "download_count": 10, + "size": 4821898 }, { - "name": "log_v0.7.5_linux_amd64.tar.gz", + "name": "conduit-connector-kafka_0.4.1_Linux_i386.tar.gz", "os": "linux", - "arch": "amd64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_amd64.tar.gz", - "created_at": "2026-07-23T11:58:58Z", - "updated_at": "2026-07-23T11:58:59Z", - "download_count": 1, - "size": 13269276 + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_i386.tar.gz", + "created_at": "2023-03-01T16:49:33Z", + "updated_at": "2023-03-01T16:49:33Z", + "download_count": 11, + "size": 5052621 }, { - "name": "log_v0.7.5_linux_amd64.tar.gz.sigstore.json", + "name": "conduit-connector-kafka_0.4.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:58:58Z", - "updated_at": "2026-07-23T11:58:58Z", - "download_count": 13, - "size": 9607 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Linux_x86_64.tar.gz", + "created_at": "2023-03-01T16:49:32Z", + "updated_at": "2023-03-01T16:49:33Z", + "download_count": 12, + "size": 5237204 }, { - "name": "log_v0.7.5_linux_arm64.tar.gz", - "os": "linux", + "name": "conduit-connector-kafka_0.4.1_Windows_arm64.tar.gz", + "os": "windows", "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_arm64.tar.gz", - "created_at": "2026-07-23T11:59:22Z", - "updated_at": "2026-07-23T11:59:23Z", - "download_count": 1, - "size": 12409868 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_arm64.tar.gz", + "created_at": "2023-03-01T16:49:34Z", + "updated_at": "2023-03-01T16:49:34Z", + "download_count": 10, + "size": 4847460 }, { - "name": "log_v0.7.5_linux_arm64.tar.gz.sigstore.json", - "os": "linux", - "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:59:23Z", - "updated_at": "2026-07-23T11:59:23Z", - "download_count": 13, - "size": 9599 + "name": "conduit-connector-kafka_0.4.1_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_i386.tar.gz", + "created_at": "2023-03-01T16:49:34Z", + "updated_at": "2023-03-01T16:49:34Z", + "download_count": 10, + "size": 5212570 + }, + { + "name": "conduit-connector-kafka_0.4.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.1/conduit-connector-kafka_0.4.1_Windows_x86_64.tar.gz", + "created_at": "2023-03-01T16:49:33Z", + "updated_at": "2023-03-01T16:49:33Z", + "download_count": 10, + "size": 5260830 } ], "is_latest": false }, { - "tag_name": "v0.7.4", - "name": "v0.7.4", - "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.14.0 to 0.14.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-log/pull/85\n* feat: registry seed — publish.yml + bump to v0.7.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-log/pull/92\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-log/pull/92\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.3...v0.7.4", + "tag_name": "v0.4.0", + "name": "v0.4.0", + "body": "## Changelog\n* 8d79a023d7cfdd053402a177222ceae760bef256: Fix: copyright year doesn't have to be the current year (#62) (@hariso)\n* 098cfd47405c0a4056d1e1ff667b65b595f3e327: Produce debezium key (#64) (@lovromazgon)\n* 7a3ea32e7e2954700af9ea1dee128b5bc6ead201: default to empty saslMechanism (#65) (@maha-hajja)\n* 0808ebd29f7135d989ffdf51c9c8b0962eefc4ab: update connector SDK to v0.5.0 (#68) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2026-07-23T02:18:16Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.4", + "published_at": "2023-01-31T17:13:23Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.4.0", "assets": [ { - "name": "conduit-connector-log_0.7.4_Darwin_arm64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:13Z", - "download_count": 1, - "size": 6451506 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Darwin_arm64.tar.gz", + "created_at": "2023-01-31T17:13:25Z", + "updated_at": "2023-01-31T17:13:26Z", + "download_count": 8, + "size": 5270302 }, { - "name": "conduit-connector-log_0.7.4_Darwin_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:13Z", - "download_count": 1, - "size": 6848038 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Darwin_x86_64.tar.gz", + "created_at": "2023-01-31T17:13:25Z", + "updated_at": "2023-01-31T17:13:26Z", + "download_count": 10, + "size": 5444132 }, { - "name": "conduit-connector-log_0.7.4_Linux_arm64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_arm64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:12Z", - "download_count": 1, - "size": 6141996 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_arm64.tar.gz", + "created_at": "2023-01-31T17:13:26Z", + "updated_at": "2023-01-31T17:13:27Z", + "download_count": 10, + "size": 4819730 }, { - "name": "conduit-connector-log_0.7.4_Linux_i386.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_i386.tar.gz", - "created_at": "2026-07-23T02:22:13Z", - "updated_at": "2026-07-23T02:22:13Z", - "download_count": 1, - "size": 6337581 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_i386.tar.gz", + "created_at": "2023-01-31T17:13:27Z", + "updated_at": "2023-01-31T17:13:28Z", + "download_count": 10, + "size": 5049496 }, { - "name": "conduit-connector-log_0.7.4_Linux_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:13Z", - "updated_at": "2026-07-23T02:22:14Z", - "download_count": 1, - "size": 6671956 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Linux_x86_64.tar.gz", + "created_at": "2023-01-31T17:13:26Z", + "updated_at": "2023-01-31T17:13:27Z", + "download_count": 10, + "size": 5235836 }, { - "name": "conduit-connector-log_0.7.4_Windows_arm64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_arm64.tar.gz", - "created_at": "2026-07-23T02:22:12Z", - "updated_at": "2026-07-23T02:22:12Z", - "download_count": 1, - "size": 6242215 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_arm64.tar.gz", + "created_at": "2023-01-31T17:13:24Z", + "updated_at": "2023-01-31T17:13:24Z", + "download_count": 10, + "size": 4843901 }, { - "name": "conduit-connector-log_0.7.4_Windows_i386.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_i386.tar.gz", - "created_at": "2026-07-23T02:22:13Z", - "updated_at": "2026-07-23T02:22:13Z", - "download_count": 1, - "size": 6632787 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_i386.tar.gz", + "created_at": "2023-01-31T17:13:24Z", + "updated_at": "2023-01-31T17:13:24Z", + "download_count": 11, + "size": 5208428 }, { - "name": "conduit-connector-log_0.7.4_Windows_x86_64.tar.gz", + "name": "conduit-connector-kafka_0.4.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:13Z", - "updated_at": "2026-07-23T02:22:14Z", - "download_count": 1, - "size": 6888808 - }, + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.4.0/conduit-connector-kafka_0.4.0_Windows_x86_64.tar.gz", + "created_at": "2023-01-31T17:13:27Z", + "updated_at": "2023-01-31T17:13:28Z", + "download_count": 10, + "size": 5260065 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.3.0", + "name": "v0.3.0", + "body": "## Changelog\n* 61821f3a48e99eaa292bea30a49eb1587b0f6bf7: Acceptance tests (#33) (@hariso)\n* 3f28b6914d74d77e87382ac75abc878f5b258d11: Add Goreleaser (#49) (@lovromazgon)\n* 9cd679a5cf7f858063810f62b69e50acb5fd7b42: Better error handling in teardowns (#36) (@hariso)\n* 6f70e777aae2c941da6883ddeb08fc2212465a75: Make Kafka Consumer Group Configurable (#48) (@ahmeroxa)\n* ed28a67e55eab756e50b50200b625acee14f74c1: OpenCDC integration (#38) (@lovromazgon)\n* f9ede6b2bc4479a3f7fd2024b9290b97506fcea4: Update to latest SDK (#41) (@lovromazgon)\n* cb42846f82998c61591ede38d63983e60f4ebef0: Use asynchronous writes (#35) (@hariso)\n* b8bcf173313262cd5ab5200efe729a43e97c1531: update version string (builtin plugins need proper version) (#50) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2022-09-27T14:06:50Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-kafka/releases/tag/v0.3.0", + "assets": [ { - "name": "log_v0.7.4_darwin_amd64", + "name": "conduit-connector-kafka_0.3.0_Darwin_arm64.tar.gz", "os": "darwin", - "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_amd64", - "created_at": "2026-07-23T02:19:53Z", - "updated_at": "2026-07-23T02:19:54Z", - "download_count": 1, - "size": 26772480 + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Darwin_arm64.tar.gz", + "created_at": "2022-09-27T14:06:52Z", + "updated_at": "2022-09-27T14:06:52Z", + "download_count": 11, + "size": 4949511 }, { - "name": "log_v0.7.4_darwin_amd64.sigstore.json", + "name": "conduit-connector-kafka_0.3.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_amd64.sigstore.json", - "created_at": "2026-07-23T02:19:53Z", - "updated_at": "2026-07-23T02:19:53Z", - "download_count": 1, - "size": 8881 - }, - { - "name": "log_v0.7.4_darwin_arm64", - "os": "darwin", - "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_arm64", - "created_at": "2026-07-23T02:20:23Z", - "updated_at": "2026-07-23T02:20:24Z", - "download_count": 1, - "size": 25821170 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Darwin_x86_64.tar.gz", + "created_at": "2022-09-27T14:06:51Z", + "updated_at": "2022-09-27T14:06:52Z", + "download_count": 10, + "size": 5103452 }, { - "name": "log_v0.7.4_darwin_arm64.sigstore.json", - "os": "darwin", + "name": "conduit-connector-kafka_0.3.0_Linux_arm64.tar.gz", + "os": "linux", "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_arm64.sigstore.json", - "created_at": "2026-07-23T02:20:23Z", - "updated_at": "2026-07-23T02:20:23Z", - "download_count": 1, - "size": 8881 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_arm64.tar.gz", + "created_at": "2022-09-27T14:06:52Z", + "updated_at": "2022-09-27T14:06:53Z", + "download_count": 13, + "size": 4523491 }, { - "name": "log_v0.7.4_linux_amd64", + "name": "conduit-connector-kafka_0.3.0_Linux_i386.tar.gz", "os": "linux", - "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_amd64", - "created_at": "2026-07-23T02:18:54Z", - "updated_at": "2026-07-23T02:18:55Z", - "download_count": 1, - "size": 26557746 + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_i386.tar.gz", + "created_at": "2022-09-27T14:06:53Z", + "updated_at": "2022-09-27T14:06:54Z", + "download_count": 10, + "size": 4724357 }, { - "name": "log_v0.7.4_linux_amd64.sigstore.json", + "name": "conduit-connector-kafka_0.3.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_amd64.sigstore.json", - "created_at": "2026-07-23T02:18:54Z", - "updated_at": "2026-07-23T02:18:54Z", - "download_count": 12, - "size": 8881 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Linux_x86_64.tar.gz", + "created_at": "2022-09-27T14:06:53Z", + "updated_at": "2022-09-27T14:06:54Z", + "download_count": 9, + "size": 4906110 }, { - "name": "log_v0.7.4_linux_arm64", - "os": "linux", + "name": "conduit-connector-kafka_0.3.0_Windows_arm64.tar.gz", + "os": "windows", "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_arm64", - "created_at": "2026-07-23T02:19:23Z", - "updated_at": "2026-07-23T02:19:24Z", - "download_count": 1, - "size": 25451667 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_arm64.tar.gz", + "created_at": "2022-09-27T14:06:54Z", + "updated_at": "2022-09-27T14:06:54Z", + "download_count": 11, + "size": 4534336 }, { - "name": "log_v0.7.4_linux_arm64.sigstore.json", - "os": "linux", - "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_arm64.sigstore.json", - "created_at": "2026-07-23T02:19:23Z", - "updated_at": "2026-07-23T02:19:24Z", - "download_count": 1, - "size": 8881 + "name": "conduit-connector-kafka_0.3.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_i386.tar.gz", + "created_at": "2022-09-27T14:06:51Z", + "updated_at": "2022-09-27T14:06:52Z", + "download_count": 11, + "size": 4859765 + }, + { + "name": "conduit-connector-kafka_0.3.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-kafka/releases/download/v0.3.0/conduit-connector-kafka_0.3.0_Windows_x86_64.tar.gz", + "created_at": "2022-09-27T14:06:54Z", + "updated_at": "2022-09-27T14:06:55Z", + "download_count": 11, + "size": 4917105 } ], "is_latest": false - }, + } + ] + }, + { + "name_with_owner": "ConduitIO/conduit-connector-log", + "description": "Conduit connector that logs records", + "created_at": "2022-11-04 17:21:08 +0000 UTC", + "url": "https://github.com/ConduitIO/conduit-connector-log", + "stargazer_count": 1, + "fork_count": 2, + "releases": [ { - "tag_name": "v0.7.3", - "name": "v0.7.3", - "body": "## Changelog\n* e90ba6d33188ab95ce43c5983ff2e50633aca599: Update version to v0.7.3 (#84) (@hariso)\n* 6c717f1182b4d33baefa83fd60c11738a5e1aaa3: document logging issue (#82) (@raulb)\n\n", + "tag_name": "v0.7.6", + "name": "v0.7.6", + "body": "## conduit-connector-log v0.7.6\n\nToolchain and SDK release. No connector code changes.\n\n- Built with Go 1.26.9; `go.mod` moves to `go 1.26.9`.\n- `conduit-commons` v0.8.0 and `conduit-connector-sdk` v0.15.0. The SDK carries the per-record schema extraction speedups and the Avro schema inference ordering fix.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends) instead of tearing down underneath it; a batch that arrives after teardown started is redelivered on restart, not acknowledged (conduit-connector-sdk#401).\n- `hamba/avro` is no longer in the dependency graph.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.5...v0.7.6\n", "draft": false, "prerelease": false, - "published_at": "2025-06-03T13:21:32Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.3", + "published_at": "2026-10-13T07:30:31Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.6", "assets": [ { - "name": "conduit-connector-log_0.7.3_Darwin_arm64.tar.gz", + "name": "conduit-connector-log_0.7.6_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Darwin_arm64.tar.gz", - "created_at": "2025-06-03T13:21:31Z", - "updated_at": "2025-06-03T13:21:31Z", - "download_count": 45, - "size": 6449505 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:34:04Z", + "updated_at": "2026-10-13T07:34:04Z", + "download_count": 0, + "size": 7266529 }, { - "name": "conduit-connector-log_0.7.3_Darwin_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.6_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Darwin_x86_64.tar.gz", - "created_at": "2025-06-03T13:21:31Z", - "updated_at": "2025-06-03T13:21:31Z", - "download_count": 42, - "size": 6846322 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Darwin_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:04Z", + "updated_at": "2026-10-13T07:34:04Z", + "download_count": 0, + "size": 7847618 }, { - "name": "conduit-connector-log_0.7.3_Linux_arm64.tar.gz", + "name": "conduit-connector-log_0.7.6_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_arm64.tar.gz", - "created_at": "2025-06-03T13:21:31Z", - "updated_at": "2025-06-03T13:21:31Z", - "download_count": 47, - "size": 6140471 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_arm64.tar.gz", + "created_at": "2026-10-13T07:34:03Z", + "updated_at": "2026-10-13T07:34:04Z", + "download_count": 0, + "size": 6916028 }, { - "name": "conduit-connector-log_0.7.3_Linux_i386.tar.gz", + "name": "conduit-connector-log_0.7.6_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_i386.tar.gz", - "created_at": "2025-06-03T13:21:30Z", - "updated_at": "2025-06-03T13:21:30Z", - "download_count": 52, - "size": 6335542 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_i386.tar.gz", + "created_at": "2026-10-13T07:34:03Z", + "updated_at": "2026-10-13T07:34:04Z", + "download_count": 0, + "size": 7288838 }, { - "name": "conduit-connector-log_0.7.3_Linux_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.6_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_x86_64.tar.gz", - "created_at": "2025-06-03T13:21:31Z", - "updated_at": "2025-06-03T13:21:31Z", - "download_count": 44, - "size": 6669867 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Linux_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:02Z", + "updated_at": "2026-10-13T07:34:03Z", + "download_count": 0, + "size": 7657422 }, { - "name": "conduit-connector-log_0.7.3_Windows_arm64.tar.gz", + "name": "conduit-connector-log_0.7.6_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_arm64.tar.gz", - "created_at": "2025-06-03T13:21:30Z", - "updated_at": "2025-06-03T13:21:30Z", - "download_count": 49, - "size": 6239358 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_arm64.tar.gz", + "created_at": "2026-10-13T07:34:02Z", + "updated_at": "2026-10-13T07:34:03Z", + "download_count": 0, + "size": 7009346 }, { - "name": "conduit-connector-log_0.7.3_Windows_i386.tar.gz", + "name": "conduit-connector-log_0.7.6_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_i386.tar.gz", - "created_at": "2025-06-03T13:21:30Z", - "updated_at": "2025-06-03T13:21:30Z", - "download_count": 43, - "size": 6631178 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_i386.tar.gz", + "created_at": "2026-10-13T07:34:02Z", + "updated_at": "2026-10-13T07:34:03Z", + "download_count": 0, + "size": 7609204 }, { - "name": "conduit-connector-log_0.7.3_Windows_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.6_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_x86_64.tar.gz", - "created_at": "2025-06-03T13:21:30Z", - "updated_at": "2025-06-03T13:21:30Z", - "download_count": 43, - "size": 6885819 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.7.2", - "name": "v0.7.2", - "body": "## Changelog\n* 4858749f48718dc07e0e3d4cd9d2daf95a819072: Bump SDK version to v0.13.4 (#79) (@raulb)\n* 72dcfad0d07fc4c128433062af0c030ae9f6d2ac: chore: bump (#80) (@raulb)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-05-19T15:24:25Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.2", - "assets": [ - { - "name": "conduit-connector-log_0.7.2_Darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Darwin_arm64.tar.gz", - "created_at": "2025-05-19T15:24:22Z", - "updated_at": "2025-05-19T15:24:23Z", - "download_count": 5, - "size": 6447795 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/conduit-connector-log_0.7.6_Windows_x86_64.tar.gz", + "created_at": "2026-10-13T07:34:02Z", + "updated_at": "2026-10-13T07:34:03Z", + "download_count": 0, + "size": 7884439 }, { - "name": "conduit-connector-log_0.7.2_Darwin_x86_64.tar.gz", + "name": "log_v0.7.6_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Darwin_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:23Z", - "updated_at": "2025-05-19T15:24:24Z", - "download_count": 8, - "size": 6841650 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_amd64.tar.gz", + "created_at": "2026-10-13T07:32:09Z", + "updated_at": "2026-10-13T07:32:10Z", + "download_count": 0, + "size": 15195211 }, { - "name": "conduit-connector-log_0.7.2_Linux_arm64.tar.gz", - "os": "linux", + "name": "log_v0.7.6_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:32:09Z", + "updated_at": "2026-10-13T07:32:09Z", + "download_count": 0, + "size": 9205 + }, + { + "name": "log_v0.7.6_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_arm64.tar.gz", - "created_at": "2025-05-19T15:24:22Z", - "updated_at": "2025-05-19T15:24:23Z", - "download_count": 6, - "size": 6137487 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:32:39Z", + "updated_at": "2026-10-13T07:32:40Z", + "download_count": 0, + "size": 14284628 }, { - "name": "conduit-connector-log_0.7.2_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_i386.tar.gz", - "created_at": "2025-05-19T15:24:23Z", - "updated_at": "2025-05-19T15:24:24Z", - "download_count": 5, - "size": 6333803 + "name": "log_v0.7.6_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:32:39Z", + "updated_at": "2026-10-13T07:32:39Z", + "download_count": 0, + "size": 9350 }, { - "name": "conduit-connector-log_0.7.2_Linux_x86_64.tar.gz", + "name": "log_v0.7.6_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:22Z", - "updated_at": "2025-05-19T15:24:23Z", - "download_count": 5, - "size": 6666946 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_amd64.tar.gz", + "created_at": "2026-10-13T07:31:08Z", + "updated_at": "2026-10-13T07:31:09Z", + "download_count": 0, + "size": 14612025 }, { - "name": "conduit-connector-log_0.7.2_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_arm64.tar.gz", - "created_at": "2025-05-19T15:24:22Z", - "updated_at": "2025-05-19T15:24:23Z", - "download_count": 5, - "size": 6236295 + "name": "log_v0.7.6_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:08Z", + "updated_at": "2026-10-13T07:31:08Z", + "download_count": 0, + "size": 9773 }, { - "name": "conduit-connector-log_0.7.2_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_i386.tar.gz", - "created_at": "2025-05-19T15:24:23Z", - "updated_at": "2025-05-19T15:24:24Z", - "download_count": 7, - "size": 6629323 + "name": "log_v0.7.6_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_arm64.tar.gz", + "created_at": "2026-10-13T07:31:39Z", + "updated_at": "2026-10-13T07:31:40Z", + "download_count": 0, + "size": 13402762 }, { - "name": "conduit-connector-log_0.7.2_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:23Z", - "updated_at": "2025-05-19T15:24:24Z", - "download_count": 5, - "size": 6884365 + "name": "log_v0.7.6_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.6/log_v0.7.6_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:39Z", + "updated_at": "2026-10-13T07:31:39Z", + "download_count": 0, + "size": 9095 } ], - "is_latest": false + "is_latest": true }, { - "tag_name": "v0.7.1", - "name": "v0.7.1", - "body": "## Changelog\n* b9390f9fef3be5a76cfd9b57e4dce5a81ebc8876: Update connector.yaml (#73) (@raulb)\n* b6d3d981405cbac946f9c4c06e0eefaae61eaaab: use check connector tag action from automation (#63) (@lovromazgon)\n\n", + "tag_name": "v0.7.5", + "name": "v0.7.5", + "body": "## What's Changed\n* chore: re-release v0.7.5 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-log/pull/93\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.4...v0.7.5", "draft": false, "prerelease": false, - "published_at": "2025-03-20T12:16:16Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.1", + "published_at": "2026-07-23T11:58:26Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.5", "assets": [ { - "name": "conduit-connector-log_0.7.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-log_0.7.5_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Darwin_arm64.tar.gz", - "created_at": "2025-03-20T12:16:14Z", - "updated_at": "2025-03-20T12:16:14Z", - "download_count": 5, - "size": 6255747 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:02:06Z", + "updated_at": "2026-07-23T12:02:07Z", + "download_count": 2, + "size": 6451504 }, { - "name": "conduit-connector-log_0.7.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.5_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Darwin_x86_64.tar.gz", - "created_at": "2025-03-20T12:16:14Z", - "updated_at": "2025-03-20T12:16:14Z", - "download_count": 5, - "size": 6607686 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:06Z", + "updated_at": "2026-07-23T12:02:07Z", + "download_count": 1, + "size": 6848034 }, { - "name": "conduit-connector-log_0.7.1_Linux_arm64.tar.gz", + "name": "conduit-connector-log_0.7.5_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_arm64.tar.gz", - "created_at": "2025-03-20T12:16:15Z", - "updated_at": "2025-03-20T12:16:15Z", - "download_count": 5, - "size": 5962146 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_arm64.tar.gz", + "created_at": "2026-07-23T12:02:06Z", + "updated_at": "2026-07-23T12:02:07Z", + "download_count": 1, + "size": 6141999 }, { - "name": "conduit-connector-log_0.7.1_Linux_i386.tar.gz", + "name": "conduit-connector-log_0.7.5_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_i386.tar.gz", - "created_at": "2025-03-20T12:16:15Z", - "updated_at": "2025-03-20T12:16:15Z", - "download_count": 5, - "size": 6049973 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_i386.tar.gz", + "created_at": "2026-07-23T12:02:05Z", + "updated_at": "2026-07-23T12:02:06Z", + "download_count": 1, + "size": 6337578 }, { - "name": "conduit-connector-log_0.7.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.5_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_x86_64.tar.gz", - "created_at": "2025-03-20T12:16:14Z", - "updated_at": "2025-03-20T12:16:14Z", - "download_count": 5, - "size": 6441671 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:06Z", + "updated_at": "2026-07-23T12:02:07Z", + "download_count": 1, + "size": 6671955 }, { - "name": "conduit-connector-log_0.7.1_Windows_arm64.tar.gz", + "name": "conduit-connector-log_0.7.5_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_arm64.tar.gz", - "created_at": "2025-03-20T12:16:15Z", - "updated_at": "2025-03-20T12:16:15Z", - "download_count": 6, - "size": 6055633 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_arm64.tar.gz", + "created_at": "2026-07-23T12:02:05Z", + "updated_at": "2026-07-23T12:02:06Z", + "download_count": 1, + "size": 6242241 }, { - "name": "conduit-connector-log_0.7.1_Windows_i386.tar.gz", + "name": "conduit-connector-log_0.7.5_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_i386.tar.gz", - "created_at": "2025-03-20T12:16:15Z", - "updated_at": "2025-03-20T12:16:15Z", - "download_count": 5, - "size": 6335340 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_i386.tar.gz", + "created_at": "2026-07-23T12:02:05Z", + "updated_at": "2026-07-23T12:02:06Z", + "download_count": 1, + "size": 6632786 }, { - "name": "conduit-connector-log_0.7.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.5_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_x86_64.tar.gz", - "created_at": "2025-03-20T12:16:14Z", - "updated_at": "2025-03-20T12:16:14Z", - "download_count": 6, - "size": 6660650 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.7.0", - "name": "v0.7.0", - "body": "## Changelog\n* 7d025997027e4e5f3abf9bebe382b7801f69f32f: Generate connector.yaml (#59) (@lovromazgon)\n* 95314be7a1994259178d64d8856ebbc46d99b5be: Update version to v0.7.0 (#61) (@hariso)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-02-04T15:32:52Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.0", - "assets": [ - { - "name": "conduit-connector-log_0.7.0_Darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Darwin_arm64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:52Z", - "download_count": 8, - "size": 6237692 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/conduit-connector-log_0.7.5_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T12:02:05Z", + "updated_at": "2026-07-23T12:02:06Z", + "download_count": 1, + "size": 6888809 }, { - "name": "conduit-connector-log_0.7.0_Darwin_x86_64.tar.gz", + "name": "log_v0.7.5_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Darwin_x86_64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:52Z", - "download_count": 7, - "size": 6593033 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_amd64.tar.gz", + "created_at": "2026-07-23T11:59:47Z", + "updated_at": "2026-07-23T11:59:48Z", + "download_count": 1, + "size": 13225428 }, { - "name": "conduit-connector-log_0.7.0_Linux_arm64.tar.gz", - "os": "linux", + "name": "log_v0.7.5_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:59:47Z", + "updated_at": "2026-07-23T11:59:47Z", + "download_count": 13, + "size": 9560 + }, + { + "name": "log_v0.7.5_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_arm64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:52Z", - "download_count": 7, - "size": 5942733 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:00:12Z", + "updated_at": "2026-07-23T12:00:13Z", + "download_count": 2, + "size": 12598311 }, { - "name": "conduit-connector-log_0.7.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_i386.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:51Z", - "download_count": 7, - "size": 6035178 + "name": "log_v0.7.5_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T12:00:12Z", + "updated_at": "2026-07-23T12:00:12Z", + "download_count": 14, + "size": 9595 }, { - "name": "conduit-connector-log_0.7.0_Linux_x86_64.tar.gz", + "name": "log_v0.7.5_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_x86_64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:52Z", - "download_count": 7, - "size": 6426317 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_amd64.tar.gz", + "created_at": "2026-07-23T11:58:58Z", + "updated_at": "2026-07-23T11:58:59Z", + "download_count": 1, + "size": 13269276 }, { - "name": "conduit-connector-log_0.7.0_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_arm64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:51Z", - "download_count": 6, - "size": 6033950 + "name": "log_v0.7.5_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:58:58Z", + "updated_at": "2026-07-23T11:58:58Z", + "download_count": 13, + "size": 9607 }, { - "name": "conduit-connector-log_0.7.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_i386.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:51Z", - "download_count": 7, - "size": 6317278 + "name": "log_v0.7.5_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_arm64.tar.gz", + "created_at": "2026-07-23T11:59:22Z", + "updated_at": "2026-07-23T11:59:23Z", + "download_count": 1, + "size": 12409868 }, { - "name": "conduit-connector-log_0.7.0_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_x86_64.tar.gz", - "created_at": "2025-02-04T15:32:51Z", - "updated_at": "2025-02-04T15:32:51Z", - "download_count": 6, - "size": 6640692 + "name": "log_v0.7.5_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.5/log_v0.7.5_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:59:23Z", + "updated_at": "2026-07-23T11:59:23Z", + "download_count": 13, + "size": 9599 } ], "is_latest": false }, { - "tag_name": "v0.6.0", - "name": "v0.6.0", - "body": "## Changelog\n\n", + "tag_name": "v0.7.4", + "name": "v0.7.4", + "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.14.0 to 0.14.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-log/pull/85\n* feat: registry seed — publish.yml + bump to v0.7.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-log/pull/92\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-log/pull/92\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-log/compare/v0.7.3...v0.7.4", "draft": false, "prerelease": false, - "published_at": "2024-11-08T15:34:53Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.6.0", + "published_at": "2026-07-23T02:18:16Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.4", "assets": [ { - "name": "conduit-connector-log_0.6.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-log_0.7.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Darwin_arm64.tar.gz", - "created_at": "2024-11-08T15:34:52Z", - "updated_at": "2024-11-08T15:34:53Z", - "download_count": 6, - "size": 5771572 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:13Z", + "download_count": 1, + "size": 6451506 }, { - "name": "conduit-connector-log_0.6.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Darwin_x86_64.tar.gz", - "created_at": "2024-11-08T15:34:51Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 5, - "size": 6099895 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:13Z", + "download_count": 1, + "size": 6848038 }, { - "name": "conduit-connector-log_0.6.0_Linux_arm64.tar.gz", + "name": "conduit-connector-log_0.7.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_arm64.tar.gz", - "created_at": "2024-11-08T15:34:51Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 6, - "size": 5492336 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_arm64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:12Z", + "download_count": 1, + "size": 6141996 }, { - "name": "conduit-connector-log_0.6.0_Linux_i386.tar.gz", + "name": "conduit-connector-log_0.7.4_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_i386.tar.gz", - "created_at": "2024-11-08T15:34:52Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 10, - "size": 5584633 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_i386.tar.gz", + "created_at": "2026-07-23T02:22:13Z", + "updated_at": "2026-07-23T02:22:13Z", + "download_count": 1, + "size": 6337581 }, { - "name": "conduit-connector-log_0.6.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.4_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_x86_64.tar.gz", - "created_at": "2024-11-08T15:34:51Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 7, - "size": 5941030 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:13Z", + "updated_at": "2026-07-23T02:22:14Z", + "download_count": 1, + "size": 6671956 }, { - "name": "conduit-connector-log_0.6.0_Windows_arm64.tar.gz", + "name": "conduit-connector-log_0.7.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_arm64.tar.gz", - "created_at": "2024-11-08T15:34:52Z", - "updated_at": "2024-11-08T15:34:53Z", - "download_count": 5, - "size": 5585009 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_arm64.tar.gz", + "created_at": "2026-07-23T02:22:12Z", + "updated_at": "2026-07-23T02:22:12Z", + "download_count": 1, + "size": 6242215 }, { - "name": "conduit-connector-log_0.6.0_Windows_i386.tar.gz", + "name": "conduit-connector-log_0.7.4_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_i386.tar.gz", - "created_at": "2024-11-08T15:34:52Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 5, - "size": 5855882 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_i386.tar.gz", + "created_at": "2026-07-23T02:22:13Z", + "updated_at": "2026-07-23T02:22:13Z", + "download_count": 1, + "size": 6632787 }, { - "name": "conduit-connector-log_0.6.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_x86_64.tar.gz", - "created_at": "2024-11-08T15:34:51Z", - "updated_at": "2024-11-08T15:34:52Z", - "download_count": 5, - "size": 6144961 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.5.0", - "name": "v0.5.0", - "body": "## Changelog\n\n", - "draft": false, - "prerelease": false, - "published_at": "2024-10-09T13:13:57Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.5.0", - "assets": [ - { - "name": "conduit-connector-log_0.5.0_Darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Darwin_arm64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:57Z", - "download_count": 5, - "size": 5752224 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/conduit-connector-log_0.7.4_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:13Z", + "updated_at": "2026-07-23T02:22:14Z", + "download_count": 1, + "size": 6888808 }, { - "name": "conduit-connector-log_0.5.0_Darwin_x86_64.tar.gz", + "name": "log_v0.7.4_darwin_amd64", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Darwin_x86_64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:57Z", - "download_count": 5, - "size": 6078222 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_amd64", + "created_at": "2026-07-23T02:19:53Z", + "updated_at": "2026-07-23T02:19:54Z", + "download_count": 1, + "size": 26772480 }, { - "name": "conduit-connector-log_0.5.0_Linux_arm64.tar.gz", - "os": "linux", + "name": "log_v0.7.4_darwin_amd64.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_amd64.sigstore.json", + "created_at": "2026-07-23T02:19:53Z", + "updated_at": "2026-07-23T02:19:53Z", + "download_count": 1, + "size": 8881 + }, + { + "name": "log_v0.7.4_darwin_arm64", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_arm64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:56Z", - "download_count": 6, - "size": 5475294 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_arm64", + "created_at": "2026-07-23T02:20:23Z", + "updated_at": "2026-07-23T02:20:24Z", + "download_count": 1, + "size": 25821170 }, { - "name": "conduit-connector-log_0.5.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_i386.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:56Z", - "download_count": 5, - "size": 5569323 + "name": "log_v0.7.4_darwin_arm64.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_darwin_arm64.sigstore.json", + "created_at": "2026-07-23T02:20:23Z", + "updated_at": "2026-07-23T02:20:23Z", + "download_count": 1, + "size": 8881 }, { - "name": "conduit-connector-log_0.5.0_Linux_x86_64.tar.gz", + "name": "log_v0.7.4_linux_amd64", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_x86_64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:57Z", - "download_count": 5, - "size": 5922556 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_amd64", + "created_at": "2026-07-23T02:18:54Z", + "updated_at": "2026-07-23T02:18:55Z", + "download_count": 1, + "size": 26557746 }, { - "name": "conduit-connector-log_0.5.0_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_arm64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:56Z", - "download_count": 5, - "size": 5569511 + "name": "log_v0.7.4_linux_amd64.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_amd64.sigstore.json", + "created_at": "2026-07-23T02:18:54Z", + "updated_at": "2026-07-23T02:18:54Z", + "download_count": 12, + "size": 8881 }, { - "name": "conduit-connector-log_0.5.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_i386.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:56Z", - "download_count": 5, - "size": 5841155 + "name": "log_v0.7.4_linux_arm64", + "os": "linux", + "arch": "arm64", + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_arm64", + "created_at": "2026-07-23T02:19:23Z", + "updated_at": "2026-07-23T02:19:24Z", + "download_count": 1, + "size": 25451667 }, { - "name": "conduit-connector-log_0.5.0_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_x86_64.tar.gz", - "created_at": "2024-10-09T13:13:56Z", - "updated_at": "2024-10-09T13:13:57Z", - "download_count": 5, - "size": 6128202 + "name": "log_v0.7.4_linux_arm64.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.4/log_v0.7.4_linux_arm64.sigstore.json", + "created_at": "2026-07-23T02:19:23Z", + "updated_at": "2026-07-23T02:19:24Z", + "download_count": 1, + "size": 8881 } ], "is_latest": false }, { - "tag_name": "v0.4.0", - "name": "v0.4.0", - "body": "## Changelog\n* 58f2cc3c963d019e1c3c6b4ba498506ce49b6c30: chore: upgrade go and connector-sdk (#38) (@raulb)\n* e2f0f04a35a41f89e0976fe47d3a61b472cb9e25: update to newest sdk (#40) (@lovromazgon)\n* afd26d7863311506c8f8bc7757682787ff015d80: upgrade conduit-connector-sdk to v0.10.0 (#42) (@lovromazgon)\n\n", + "tag_name": "v0.7.3", + "name": "v0.7.3", + "body": "## Changelog\n* e90ba6d33188ab95ce43c5983ff2e50633aca599: Update version to v0.7.3 (#84) (@hariso)\n* 6c717f1182b4d33baefa83fd60c11738a5e1aaa3: document logging issue (#82) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-08-07T09:20:45Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.4.0", + "published_at": "2025-06-03T13:21:32Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.3", "assets": [ { - "name": "conduit-connector-log_0.4.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-log_0.7.3_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Darwin_arm64.tar.gz", - "created_at": "2024-08-07T09:20:44Z", - "updated_at": "2024-08-07T09:20:45Z", - "download_count": 7, - "size": 5545308 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Darwin_arm64.tar.gz", + "created_at": "2025-06-03T13:21:31Z", + "updated_at": "2025-06-03T13:21:31Z", + "download_count": 46, + "size": 6449505 }, { - "name": "conduit-connector-log_0.4.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.3_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Darwin_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:44Z", - "updated_at": "2024-08-07T09:20:45Z", - "download_count": 9, - "size": 5853142 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Darwin_x86_64.tar.gz", + "created_at": "2025-06-03T13:21:31Z", + "updated_at": "2025-06-03T13:21:31Z", + "download_count": 42, + "size": 6846322 }, { - "name": "conduit-connector-log_0.4.0_Linux_arm64.tar.gz", + "name": "conduit-connector-log_0.7.3_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_arm64.tar.gz", - "created_at": "2024-08-07T09:20:44Z", - "updated_at": "2024-08-07T09:20:44Z", - "download_count": 9, - "size": 5271055 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_arm64.tar.gz", + "created_at": "2025-06-03T13:21:31Z", + "updated_at": "2025-06-03T13:21:31Z", + "download_count": 47, + "size": 6140471 }, { - "name": "conduit-connector-log_0.4.0_Linux_i386.tar.gz", + "name": "conduit-connector-log_0.7.3_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_i386.tar.gz", - "created_at": "2024-08-07T09:20:44Z", - "updated_at": "2024-08-07T09:20:45Z", - "download_count": 9, - "size": 5354115 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_i386.tar.gz", + "created_at": "2025-06-03T13:21:30Z", + "updated_at": "2025-06-03T13:21:30Z", + "download_count": 52, + "size": 6335542 }, { - "name": "conduit-connector-log_0.4.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.3_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:44Z", - "updated_at": "2024-08-07T09:20:45Z", - "download_count": 10, - "size": 5698596 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Linux_x86_64.tar.gz", + "created_at": "2025-06-03T13:21:31Z", + "updated_at": "2025-06-03T13:21:31Z", + "download_count": 45, + "size": 6669867 }, { - "name": "conduit-connector-log_0.4.0_Windows_arm64.tar.gz", + "name": "conduit-connector-log_0.7.3_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_arm64.tar.gz", - "created_at": "2024-08-07T09:20:43Z", - "updated_at": "2024-08-07T09:20:44Z", - "download_count": 9, - "size": 5363081 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_arm64.tar.gz", + "created_at": "2025-06-03T13:21:30Z", + "updated_at": "2025-06-03T13:21:30Z", + "download_count": 49, + "size": 6239358 }, { - "name": "conduit-connector-log_0.4.0_Windows_i386.tar.gz", + "name": "conduit-connector-log_0.7.3_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_i386.tar.gz", - "created_at": "2024-08-07T09:20:43Z", - "updated_at": "2024-08-07T09:20:44Z", - "download_count": 9, - "size": 5614035 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_i386.tar.gz", + "created_at": "2025-06-03T13:21:30Z", + "updated_at": "2025-06-03T13:21:30Z", + "download_count": 43, + "size": 6631178 }, { - "name": "conduit-connector-log_0.4.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-log_0.7.3_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_x86_64.tar.gz", - "created_at": "2024-08-07T09:20:43Z", - "updated_at": "2024-08-07T09:20:44Z", - "download_count": 12, - "size": 5894175 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.3/conduit-connector-log_0.7.3_Windows_x86_64.tar.gz", + "created_at": "2025-06-03T13:21:30Z", + "updated_at": "2025-06-03T13:21:30Z", + "download_count": 43, + "size": 6885819 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.7.2", + "name": "v0.7.2", + "body": "## Changelog\n* 4858749f48718dc07e0e3d4cd9d2daf95a819072: Bump SDK version to v0.13.4 (#79) (@raulb)\n* 72dcfad0d07fc4c128433062af0c030ae9f6d2ac: chore: bump (#80) (@raulb)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2025-05-19T15:24:25Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.2", + "assets": [ + { + "name": "conduit-connector-log_0.7.2_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Darwin_arm64.tar.gz", + "created_at": "2025-05-19T15:24:22Z", + "updated_at": "2025-05-19T15:24:23Z", + "download_count": 5, + "size": 6447795 + }, + { + "name": "conduit-connector-log_0.7.2_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Darwin_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:23Z", + "updated_at": "2025-05-19T15:24:24Z", + "download_count": 8, + "size": 6841650 + }, + { + "name": "conduit-connector-log_0.7.2_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_arm64.tar.gz", + "created_at": "2025-05-19T15:24:22Z", + "updated_at": "2025-05-19T15:24:23Z", + "download_count": 6, + "size": 6137487 + }, + { + "name": "conduit-connector-log_0.7.2_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_i386.tar.gz", + "created_at": "2025-05-19T15:24:23Z", + "updated_at": "2025-05-19T15:24:24Z", + "download_count": 5, + "size": 6333803 + }, + { + "name": "conduit-connector-log_0.7.2_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Linux_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:22Z", + "updated_at": "2025-05-19T15:24:23Z", + "download_count": 6, + "size": 6666946 + }, + { + "name": "conduit-connector-log_0.7.2_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_arm64.tar.gz", + "created_at": "2025-05-19T15:24:22Z", + "updated_at": "2025-05-19T15:24:23Z", + "download_count": 5, + "size": 6236295 + }, + { + "name": "conduit-connector-log_0.7.2_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_i386.tar.gz", + "created_at": "2025-05-19T15:24:23Z", + "updated_at": "2025-05-19T15:24:24Z", + "download_count": 7, + "size": 6629323 + }, + { + "name": "conduit-connector-log_0.7.2_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.2/conduit-connector-log_0.7.2_Windows_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:23Z", + "updated_at": "2025-05-19T15:24:24Z", + "download_count": 5, + "size": 6884365 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.7.1", + "name": "v0.7.1", + "body": "## Changelog\n* b9390f9fef3be5a76cfd9b57e4dce5a81ebc8876: Update connector.yaml (#73) (@raulb)\n* b6d3d981405cbac946f9c4c06e0eefaae61eaaab: use check connector tag action from automation (#63) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2025-03-20T12:16:16Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.1", + "assets": [ + { + "name": "conduit-connector-log_0.7.1_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Darwin_arm64.tar.gz", + "created_at": "2025-03-20T12:16:14Z", + "updated_at": "2025-03-20T12:16:14Z", + "download_count": 5, + "size": 6255747 + }, + { + "name": "conduit-connector-log_0.7.1_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Darwin_x86_64.tar.gz", + "created_at": "2025-03-20T12:16:14Z", + "updated_at": "2025-03-20T12:16:14Z", + "download_count": 5, + "size": 6607686 + }, + { + "name": "conduit-connector-log_0.7.1_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_arm64.tar.gz", + "created_at": "2025-03-20T12:16:15Z", + "updated_at": "2025-03-20T12:16:15Z", + "download_count": 5, + "size": 5962146 + }, + { + "name": "conduit-connector-log_0.7.1_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_i386.tar.gz", + "created_at": "2025-03-20T12:16:15Z", + "updated_at": "2025-03-20T12:16:15Z", + "download_count": 5, + "size": 6049973 + }, + { + "name": "conduit-connector-log_0.7.1_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Linux_x86_64.tar.gz", + "created_at": "2025-03-20T12:16:14Z", + "updated_at": "2025-03-20T12:16:14Z", + "download_count": 6, + "size": 6441671 + }, + { + "name": "conduit-connector-log_0.7.1_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_arm64.tar.gz", + "created_at": "2025-03-20T12:16:15Z", + "updated_at": "2025-03-20T12:16:15Z", + "download_count": 6, + "size": 6055633 + }, + { + "name": "conduit-connector-log_0.7.1_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_i386.tar.gz", + "created_at": "2025-03-20T12:16:15Z", + "updated_at": "2025-03-20T12:16:15Z", + "download_count": 5, + "size": 6335340 + }, + { + "name": "conduit-connector-log_0.7.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.1/conduit-connector-log_0.7.1_Windows_x86_64.tar.gz", + "created_at": "2025-03-20T12:16:14Z", + "updated_at": "2025-03-20T12:16:14Z", + "download_count": 6, + "size": 6660650 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.7.0", + "name": "v0.7.0", + "body": "## Changelog\n* 7d025997027e4e5f3abf9bebe382b7801f69f32f: Generate connector.yaml (#59) (@lovromazgon)\n* 95314be7a1994259178d64d8856ebbc46d99b5be: Update version to v0.7.0 (#61) (@hariso)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2025-02-04T15:32:52Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.7.0", + "assets": [ + { + "name": "conduit-connector-log_0.7.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Darwin_arm64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:52Z", + "download_count": 8, + "size": 6237692 + }, + { + "name": "conduit-connector-log_0.7.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Darwin_x86_64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:52Z", + "download_count": 7, + "size": 6593033 + }, + { + "name": "conduit-connector-log_0.7.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_arm64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:52Z", + "download_count": 7, + "size": 5942733 + }, + { + "name": "conduit-connector-log_0.7.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_i386.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:51Z", + "download_count": 7, + "size": 6035178 + }, + { + "name": "conduit-connector-log_0.7.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Linux_x86_64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:52Z", + "download_count": 8, + "size": 6426317 + }, + { + "name": "conduit-connector-log_0.7.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_arm64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:51Z", + "download_count": 6, + "size": 6033950 + }, + { + "name": "conduit-connector-log_0.7.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_i386.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:51Z", + "download_count": 7, + "size": 6317278 + }, + { + "name": "conduit-connector-log_0.7.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.7.0/conduit-connector-log_0.7.0_Windows_x86_64.tar.gz", + "created_at": "2025-02-04T15:32:51Z", + "updated_at": "2025-02-04T15:32:51Z", + "download_count": 6, + "size": 6640692 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.6.0", + "name": "v0.6.0", + "body": "## Changelog\n\n", + "draft": false, + "prerelease": false, + "published_at": "2024-11-08T15:34:53Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.6.0", + "assets": [ + { + "name": "conduit-connector-log_0.6.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Darwin_arm64.tar.gz", + "created_at": "2024-11-08T15:34:52Z", + "updated_at": "2024-11-08T15:34:53Z", + "download_count": 6, + "size": 5771572 + }, + { + "name": "conduit-connector-log_0.6.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Darwin_x86_64.tar.gz", + "created_at": "2024-11-08T15:34:51Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 5, + "size": 6099895 + }, + { + "name": "conduit-connector-log_0.6.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_arm64.tar.gz", + "created_at": "2024-11-08T15:34:51Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 6, + "size": 5492336 + }, + { + "name": "conduit-connector-log_0.6.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_i386.tar.gz", + "created_at": "2024-11-08T15:34:52Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 10, + "size": 5584633 + }, + { + "name": "conduit-connector-log_0.6.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Linux_x86_64.tar.gz", + "created_at": "2024-11-08T15:34:51Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 8, + "size": 5941030 + }, + { + "name": "conduit-connector-log_0.6.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_arm64.tar.gz", + "created_at": "2024-11-08T15:34:52Z", + "updated_at": "2024-11-08T15:34:53Z", + "download_count": 5, + "size": 5585009 + }, + { + "name": "conduit-connector-log_0.6.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_i386.tar.gz", + "created_at": "2024-11-08T15:34:52Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 5, + "size": 5855882 + }, + { + "name": "conduit-connector-log_0.6.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.6.0/conduit-connector-log_0.6.0_Windows_x86_64.tar.gz", + "created_at": "2024-11-08T15:34:51Z", + "updated_at": "2024-11-08T15:34:52Z", + "download_count": 5, + "size": 6144961 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.5.0", + "name": "v0.5.0", + "body": "## Changelog\n\n", + "draft": false, + "prerelease": false, + "published_at": "2024-10-09T13:13:57Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.5.0", + "assets": [ + { + "name": "conduit-connector-log_0.5.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Darwin_arm64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:57Z", + "download_count": 5, + "size": 5752224 + }, + { + "name": "conduit-connector-log_0.5.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Darwin_x86_64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:57Z", + "download_count": 5, + "size": 6078222 + }, + { + "name": "conduit-connector-log_0.5.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_arm64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:56Z", + "download_count": 6, + "size": 5475294 + }, + { + "name": "conduit-connector-log_0.5.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_i386.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:56Z", + "download_count": 5, + "size": 5569323 + }, + { + "name": "conduit-connector-log_0.5.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Linux_x86_64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:57Z", + "download_count": 6, + "size": 5922556 + }, + { + "name": "conduit-connector-log_0.5.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_arm64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:56Z", + "download_count": 5, + "size": 5569511 + }, + { + "name": "conduit-connector-log_0.5.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_i386.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:56Z", + "download_count": 5, + "size": 5841155 + }, + { + "name": "conduit-connector-log_0.5.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.5.0/conduit-connector-log_0.5.0_Windows_x86_64.tar.gz", + "created_at": "2024-10-09T13:13:56Z", + "updated_at": "2024-10-09T13:13:57Z", + "download_count": 5, + "size": 6128202 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.4.0", + "name": "v0.4.0", + "body": "## Changelog\n* 58f2cc3c963d019e1c3c6b4ba498506ce49b6c30: chore: upgrade go and connector-sdk (#38) (@raulb)\n* e2f0f04a35a41f89e0976fe47d3a61b472cb9e25: update to newest sdk (#40) (@lovromazgon)\n* afd26d7863311506c8f8bc7757682787ff015d80: upgrade conduit-connector-sdk to v0.10.0 (#42) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2024-08-07T09:20:45Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.4.0", + "assets": [ + { + "name": "conduit-connector-log_0.4.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Darwin_arm64.tar.gz", + "created_at": "2024-08-07T09:20:44Z", + "updated_at": "2024-08-07T09:20:45Z", + "download_count": 7, + "size": 5545308 + }, + { + "name": "conduit-connector-log_0.4.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Darwin_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:44Z", + "updated_at": "2024-08-07T09:20:45Z", + "download_count": 9, + "size": 5853142 + }, + { + "name": "conduit-connector-log_0.4.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_arm64.tar.gz", + "created_at": "2024-08-07T09:20:44Z", + "updated_at": "2024-08-07T09:20:44Z", + "download_count": 9, + "size": 5271055 + }, + { + "name": "conduit-connector-log_0.4.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_i386.tar.gz", + "created_at": "2024-08-07T09:20:44Z", + "updated_at": "2024-08-07T09:20:45Z", + "download_count": 9, + "size": 5354115 + }, + { + "name": "conduit-connector-log_0.4.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Linux_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:44Z", + "updated_at": "2024-08-07T09:20:45Z", + "download_count": 11, + "size": 5698596 + }, + { + "name": "conduit-connector-log_0.4.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_arm64.tar.gz", + "created_at": "2024-08-07T09:20:43Z", + "updated_at": "2024-08-07T09:20:44Z", + "download_count": 9, + "size": 5363081 + }, + { + "name": "conduit-connector-log_0.4.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_i386.tar.gz", + "created_at": "2024-08-07T09:20:43Z", + "updated_at": "2024-08-07T09:20:44Z", + "download_count": 9, + "size": 5614035 + }, + { + "name": "conduit-connector-log_0.4.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.4.0/conduit-connector-log_0.4.0_Windows_x86_64.tar.gz", + "created_at": "2024-08-07T09:20:43Z", + "updated_at": "2024-08-07T09:20:44Z", + "download_count": 12, + "size": 5894175 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.3.0", + "name": "v0.3.0", + "body": "## Changelog\n* 5816768b3aee248224e8a342a834cb9898505f58: Bump SDK version to v0.7.0 (#24) (@hariso)\n* 7f9e36d7896d4d40e5cb8a43858da29621e03942: support output record formats by using destination default middleware (#20) (@maha-hajja)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2023-07-19T11:56:00Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.3.0", + "assets": [ + { + "name": "conduit-connector-log_0.3.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Darwin_arm64.tar.gz", + "created_at": "2023-07-19T11:56:02Z", + "updated_at": "2023-07-19T11:56:03Z", + "download_count": 7, + "size": 4583656 + }, + { + "name": "conduit-connector-log_0.3.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Darwin_x86_64.tar.gz", + "created_at": "2023-07-19T11:56:02Z", + "updated_at": "2023-07-19T11:56:03Z", + "download_count": 9, + "size": 4746834 + }, + { + "name": "conduit-connector-log_0.3.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_arm64.tar.gz", + "created_at": "2023-07-19T11:56:03Z", + "updated_at": "2023-07-19T11:56:04Z", + "download_count": 10, + "size": 4131648 + }, + { + "name": "conduit-connector-log_0.3.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_i386.tar.gz", + "created_at": "2023-07-19T11:56:01Z", + "updated_at": "2023-07-19T11:56:01Z", + "download_count": 9, + "size": 4297147 + }, + { + "name": "conduit-connector-log_0.3.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_x86_64.tar.gz", + "created_at": "2023-07-19T11:56:03Z", + "updated_at": "2023-07-19T11:56:04Z", + "download_count": 12, + "size": 4519963 + }, + { + "name": "conduit-connector-log_0.3.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_arm64.tar.gz", + "created_at": "2023-07-19T11:56:01Z", + "updated_at": "2023-07-19T11:56:02Z", + "download_count": 9, + "size": 4209684 + }, + { + "name": "conduit-connector-log_0.3.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_i386.tar.gz", + "created_at": "2023-07-19T11:56:02Z", + "updated_at": "2023-07-19T11:56:02Z", + "download_count": 8, + "size": 4487945 + }, + { + "name": "conduit-connector-log_0.3.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_x86_64.tar.gz", + "created_at": "2023-07-19T11:56:01Z", + "updated_at": "2023-07-19T11:56:01Z", + "download_count": 9, + "size": 4607331 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.2.0", + "name": "v0.2.0", + "body": "## Changelog\n* 6c6dee80a4ece21ac5c6e01282d4e6ac3cdf6b80: Bump SDK version to v0.6.0 (#17) (@hariso)\n* db6b2ab680973341208f1cfc64be01aee8bd47ae: Fix: copyright year doesn't have to be the current year (#7) (@lovromazgon)\n* 844deba0c92f47ad4947d15ea2dfe7ce75f0cb9c: Housekeeping: version and release name template (#12) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2023-04-11T12:33:29Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.2.0", + "assets": [ + { + "name": "conduit-connector-log_0.2.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Darwin_arm64.tar.gz", + "created_at": "2023-04-11T12:33:32Z", + "updated_at": "2023-04-11T12:33:33Z", + "download_count": 8, + "size": 4492424 + }, + { + "name": "conduit-connector-log_0.2.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Darwin_x86_64.tar.gz", + "created_at": "2023-04-11T12:33:32Z", + "updated_at": "2023-04-11T12:33:32Z", + "download_count": 10, + "size": 4696271 + }, + { + "name": "conduit-connector-log_0.2.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_arm64.tar.gz", + "created_at": "2023-04-11T12:33:30Z", + "updated_at": "2023-04-11T12:33:30Z", + "download_count": 10, + "size": 4088228 + }, + { + "name": "conduit-connector-log_0.2.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_i386.tar.gz", + "created_at": "2023-04-11T12:33:31Z", + "updated_at": "2023-04-11T12:33:31Z", + "download_count": 10, + "size": 4251957 + }, + { + "name": "conduit-connector-log_0.2.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_x86_64.tar.gz", + "created_at": "2023-04-11T12:33:30Z", + "updated_at": "2023-04-11T12:33:31Z", + "download_count": 10, + "size": 4474505 + }, + { + "name": "conduit-connector-log_0.2.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_arm64.tar.gz", + "created_at": "2023-04-11T12:33:31Z", + "updated_at": "2023-04-11T12:33:32Z", + "download_count": 10, + "size": 4166105 + }, + { + "name": "conduit-connector-log_0.2.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_i386.tar.gz", + "created_at": "2023-04-11T12:33:32Z", + "updated_at": "2023-04-11T12:33:32Z", + "download_count": 10, + "size": 4443705 + }, + { + "name": "conduit-connector-log_0.2.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_x86_64.tar.gz", + "created_at": "2023-04-11T12:33:31Z", + "updated_at": "2023-04-11T12:33:31Z", + "download_count": 12, + "size": 4560192 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.1.2", + "name": "v0.1.2", + "body": "## Changelog\n* 563b00a8bdf590a0158fed59e83d0680aa413faa: Add ability to control log message (#3) (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2022-11-28T18:28:18Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.1.2", + "assets": [ + { + "name": "conduit-connector-log_0.1.2_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Darwin_arm64.tar.gz", + "created_at": "2022-11-28T18:28:18Z", + "updated_at": "2022-11-28T18:28:19Z", + "download_count": 9, + "size": 4178983 + }, + { + "name": "conduit-connector-log_0.1.2_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Darwin_x86_64.tar.gz", + "created_at": "2022-11-28T18:28:21Z", + "updated_at": "2022-11-28T18:28:21Z", + "download_count": 11, + "size": 4324836 + }, + { + "name": "conduit-connector-log_0.1.2_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_arm64.tar.gz", + "created_at": "2022-11-28T18:28:19Z", + "updated_at": "2022-11-28T18:28:20Z", + "download_count": 11, + "size": 3817409 + }, + { + "name": "conduit-connector-log_0.1.2_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_i386.tar.gz", + "created_at": "2022-11-28T18:28:19Z", + "updated_at": "2022-11-28T18:28:20Z", + "download_count": 11, + "size": 3979052 + }, + { + "name": "conduit-connector-log_0.1.2_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_x86_64.tar.gz", + "created_at": "2022-11-28T18:28:18Z", + "updated_at": "2022-11-28T18:28:19Z", + "download_count": 11, + "size": 4153308 + }, + { + "name": "conduit-connector-log_0.1.2_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_arm64.tar.gz", + "created_at": "2022-11-28T18:28:20Z", + "updated_at": "2022-11-28T18:28:20Z", + "download_count": 11, + "size": 3876332 + }, + { + "name": "conduit-connector-log_0.1.2_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_i386.tar.gz", + "created_at": "2022-11-28T18:28:21Z", + "updated_at": "2022-11-28T18:28:21Z", + "download_count": 10, + "size": 4141488 + }, + { + "name": "conduit-connector-log_0.1.2_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_x86_64.tar.gz", + "created_at": "2022-11-28T18:28:20Z", + "updated_at": "2022-11-28T18:28:21Z", + "download_count": 12, + "size": 4220695 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.1.1", + "name": "v0.1.1", + "body": "## Changelog\n* b1f13b2e945a548344eaf4b86284d23482bd2805: Fix module name (#2) (@lovromazgon)\n* a8fa194245a3086fe7e54cac23c1ccaa266a1645: Implement log connector (#1) (@lovromazgon)\n* 2d5946ef8eba32fd00a60f17c8f3c6bb41860e86: bump version to v0.1.1 (@lovromazgon)\n* 9fb2e3e10a59a20464048cf54a3e63a72bcf7552: clarify base64 encoding (@lovromazgon)\n* b7e4949a28e89af40b9098f476c673706b2855a7: remove integration testing (not needed) (@lovromazgon)\n* 55599a68c1a99a9ebe9439fbade60fe16af2a637: run setup.sh (@lovromazgon)\n* b209e83112ec97ec38fa06a8f54030abe8691e62: update readme, codeowners, pr template (@lovromazgon)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2022-11-08T13:54:56Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.1.1", + "assets": [ + { + "name": "conduit-connector-log_0.1.1_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Darwin_arm64.tar.gz", + "created_at": "2022-11-08T13:54:59Z", + "updated_at": "2022-11-08T13:55:00Z", + "download_count": 8, + "size": 4178266 + }, + { + "name": "conduit-connector-log_0.1.1_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Darwin_x86_64.tar.gz", + "created_at": "2022-11-08T13:54:59Z", + "updated_at": "2022-11-08T13:55:00Z", + "download_count": 11, + "size": 4324663 + }, + { + "name": "conduit-connector-log_0.1.1_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_arm64.tar.gz", + "created_at": "2022-11-08T13:55:00Z", + "updated_at": "2022-11-08T13:55:01Z", + "download_count": 11, + "size": 3816240 + }, + { + "name": "conduit-connector-log_0.1.1_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_i386.tar.gz", + "created_at": "2022-11-08T13:54:57Z", + "updated_at": "2022-11-08T13:54:58Z", + "download_count": 11, + "size": 3978509 + }, + { + "name": "conduit-connector-log_0.1.1_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_x86_64.tar.gz", + "created_at": "2022-11-08T13:55:01Z", + "updated_at": "2022-11-08T13:55:01Z", + "download_count": 11, + "size": 4152837 + }, + { + "name": "conduit-connector-log_0.1.1_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_arm64.tar.gz", + "created_at": "2022-11-08T13:54:58Z", + "updated_at": "2022-11-08T13:54:59Z", + "download_count": 11, + "size": 3875788 + }, + { + "name": "conduit-connector-log_0.1.1_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_i386.tar.gz", + "created_at": "2022-11-08T13:54:58Z", + "updated_at": "2022-11-08T13:54:59Z", + "download_count": 11, + "size": 4141014 + }, + { + "name": "conduit-connector-log_0.1.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_x86_64.tar.gz", + "created_at": "2022-11-08T13:54:57Z", + "updated_at": "2022-11-08T13:54:58Z", + "download_count": 11, + "size": 4220105 + } + ], + "is_latest": false + } + ] + }, + { + "name_with_owner": "ConduitIO/conduit-connector-mysql", + "description": "Conduit connector for MySQL", + "created_at": "2024-06-04 14:47:18 +0000 UTC", + "url": "https://github.com/ConduitIO/conduit-connector-mysql", + "stargazer_count": 2, + "fork_count": 4, + "releases": [ + { + "tag_name": "v0.6.0", + "name": "v0.6.0", + "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-commons from 0.10.0 to 0.11.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-mysql/pull/251\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.17.0 to 0.17.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-mysql/pull/250\n* go.mod: bump github.com/conduitio/conduit-commons from 0.11.0 to 0.12.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-mysql/pull/255\n* fix(source): keep primary key values and row data out of logs by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/252\n* feat: let the host supply a dialer for network connections by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/254\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-mysql/compare/v0.5.2...v0.6.0", + "draft": false, + "prerelease": false, + "published_at": "2026-10-25T00:45:35Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.6.0", + "assets": [ + { + "name": "conduit-connector-mysql_0.6.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:49:16Z", + "updated_at": "2026-10-25T00:49:17Z", + "download_count": 0, + "size": 10324875 + }, + { + "name": "conduit-connector-mysql_0.6.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-25T00:49:16Z", + "updated_at": "2026-10-25T00:49:17Z", + "download_count": 0, + "size": 11076548 + }, + { + "name": "conduit-connector-mysql_0.6.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Linux_arm64.tar.gz", + "created_at": "2026-10-25T00:49:16Z", + "updated_at": "2026-10-25T00:49:17Z", + "download_count": 0, + "size": 9791583 + }, + { + "name": "conduit-connector-mysql_0.6.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-25T00:49:16Z", + "updated_at": "2026-10-25T00:49:17Z", + "download_count": 0, + "size": 10818430 + }, + { + "name": "conduit-connector-mysql_0.6.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Windows_arm64.tar.gz", + "created_at": "2026-10-25T00:49:17Z", + "updated_at": "2026-10-25T00:49:18Z", + "download_count": 0, + "size": 9893573 + }, + { + "name": "conduit-connector-mysql_0.6.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/conduit-connector-mysql_0.6.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-25T00:49:17Z", + "updated_at": "2026-10-25T00:49:18Z", + "download_count": 0, + "size": 11101228 + }, + { + "name": "mysql_v0.6.0_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_amd64.tar.gz", + "created_at": "2026-10-25T00:48:07Z", + "updated_at": "2026-10-25T00:48:07Z", + "download_count": 0, + "size": 10898231 + }, + { + "name": "mysql_v0.6.0_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:48:07Z", + "updated_at": "2026-10-25T00:48:07Z", + "download_count": 0, + "size": 9517 + }, + { + "name": "mysql_v0.6.0_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:48:54Z", + "updated_at": "2026-10-25T00:48:55Z", + "download_count": 0, + "size": 10096259 + }, + { + "name": "mysql_v0.6.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:48:54Z", + "updated_at": "2026-10-25T00:48:54Z", + "download_count": 0, + "size": 9466 + }, + { + "name": "mysql_v0.6.0_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_amd64.tar.gz", + "created_at": "2026-10-25T00:46:33Z", + "updated_at": "2026-10-25T00:46:34Z", + "download_count": 0, + "size": 10655712 + }, + { + "name": "mysql_v0.6.0_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:46:33Z", + "updated_at": "2026-10-25T00:46:33Z", + "download_count": 0, + "size": 9466 + }, + { + "name": "mysql_v0.6.0_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_arm64.tar.gz", + "created_at": "2026-10-25T00:47:20Z", + "updated_at": "2026-10-25T00:47:21Z", + "download_count": 0, + "size": 9581138 + }, + { + "name": "mysql_v0.6.0_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.6.0/mysql_v0.6.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:47:20Z", + "updated_at": "2026-10-25T00:47:20Z", + "download_count": 0, + "size": 9564 + } + ], + "is_latest": true + }, + { + "tag_name": "v0.5.2", + "name": "v0.5.2", + "body": "### Fixed\n\n- **A restart after a column type change no longer halts on rows that were already delivered** (#247). In v0.5.0\n and v0.5.1 (#232), stopping a pipeline, changing a captured table's column type (for example\n `MODIFY COLUMN b VARCHAR(10)`), writing rows and starting again halted with `mysql.cdc.row_columns_mismatch` on\n every restart, and the rows written after the change were never delivered. The column check ran on events\n that the restart reads again but had already delivered. It now runs only on events that are about to be\n delivered. The same halt hit the first restart after upgrading from an older position, when the binlog file\n held an earlier DDL on a captured table.\n\n If a pipeline is halted this way, upgrade to v0.5.2 and start it again. It resumes from its saved position; no\n position reset is needed.\n\n- **Signedness and text/binary changes are detected with the default `binlog_row_metadata=MINIMAL`** (#248).\n Changing a column between `INT` and `INT UNSIGNED`, or between `VARCHAR`/`TEXT` and `BLOB`, while the connector\n was stopped used to map values silently: -5 read as 4294967291, text read as bytes. The connector now halts\n with `mysql.cdc.row_columns_mismatch`, as it already did for other type changes. Widening a column still does\n not halt. A change of text character set (latin1 to utf8mb4) is not detected.\n\n### Behavior change\n\n- A pipeline that changed a column's signedness or its text/binary kind while stopped, and used to deliver\n mapped values, now halts. To continue, reset the position so the table is snapshotted again, as the error's\n fix text says.\n- The halt message for `mysql.cdc.row_columns_mismatch` no longer says that every restart halts. Only an event\n that is still to be delivered halts.\n\n### Dependencies\n\n- The `go-mysql` replace now points at the tag `github.com/ConduitIO/go-mysql v1.14.0-conduit.2` instead of a\n pseudo-version. It is the same commit (4554b8ef), so the code is unchanged.\n\n### Upgrading\n\n- From v0.5.0 or v0.5.1: drop-in. Positions are unchanged.\n- From v0.4.x or earlier: read the v0.5.0 notes first.\n\n---\n\n## What's Changed\n* fix(source): check re-read columns only on events the resume delivers by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/247\n* fix(source): halt on a signedness or text/binary change under MINIMAL metadata by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/248\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-mysql/compare/v0.5.1...v0.5.2\n", + "draft": false, + "prerelease": false, + "published_at": "2026-10-20T02:02:44Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.5.2", + "assets": [ + { + "name": "conduit-connector-mysql_0.5.2_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:06:03Z", + "updated_at": "2026-10-20T02:06:04Z", + "download_count": 0, + "size": 10292636 + }, + { + "name": "conduit-connector-mysql_0.5.2_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T02:06:03Z", + "updated_at": "2026-10-20T02:06:04Z", + "download_count": 0, + "size": 11037908 + }, + { + "name": "conduit-connector-mysql_0.5.2_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Linux_arm64.tar.gz", + "created_at": "2026-10-20T02:06:03Z", + "updated_at": "2026-10-20T02:06:04Z", + "download_count": 0, + "size": 9759434 + }, + { + "name": "conduit-connector-mysql_0.5.2_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T02:06:03Z", + "updated_at": "2026-10-20T02:06:04Z", + "download_count": 0, + "size": 10782353 + }, + { + "name": "conduit-connector-mysql_0.5.2_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Windows_arm64.tar.gz", + "created_at": "2026-10-20T02:06:05Z", + "updated_at": "2026-10-20T02:06:06Z", + "download_count": 0, + "size": 9867303 + }, + { + "name": "conduit-connector-mysql_0.5.2_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/conduit-connector-mysql_0.5.2_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T02:06:05Z", + "updated_at": "2026-10-20T02:06:06Z", + "download_count": 0, + "size": 11068955 + }, + { + "name": "mysql_v0.5.2_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_darwin_amd64.tar.gz", + "created_at": "2026-10-20T02:05:15Z", + "updated_at": "2026-10-20T02:05:16Z", + "download_count": 0, + "size": 10862797 + }, + { + "name": "mysql_v0.5.2_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:05:15Z", + "updated_at": "2026-10-20T02:05:15Z", + "download_count": 0, + "size": 9607 + }, + { + "name": "mysql_v0.5.2_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:06:02Z", + "updated_at": "2026-10-20T02:06:03Z", + "download_count": 0, + "size": 10064392 + }, + { + "name": "mysql_v0.5.2_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:06:02Z", + "updated_at": "2026-10-20T02:06:02Z", + "download_count": 0, + "size": 9701 + }, + { + "name": "mysql_v0.5.2_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_linux_amd64.tar.gz", + "created_at": "2026-10-20T02:03:41Z", + "updated_at": "2026-10-20T02:03:42Z", + "download_count": 0, + "size": 10623677 + }, + { + "name": "mysql_v0.5.2_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:03:41Z", + "updated_at": "2026-10-20T02:03:42Z", + "download_count": 0, + "size": 9701 + }, + { + "name": "mysql_v0.5.2_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_linux_arm64.tar.gz", + "created_at": "2026-10-20T02:04:28Z", + "updated_at": "2026-10-20T02:04:29Z", + "download_count": 0, + "size": 9553175 + }, + { + "name": "mysql_v0.5.2_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.2/mysql_v0.5.2_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:04:28Z", + "updated_at": "2026-10-20T02:04:28Z", + "download_count": 0, + "size": 9666 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.5.1", + "name": "v0.5.1", + "body": "perf(destination): batch writes by default (3000 rows; ~17x fewer allocs, ~3000x fewer round-trips) (#246)", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T19:17:58Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.5.1", + "assets": [ + { + "name": "conduit-connector-mysql_0.5.1_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Darwin_arm64.tar.gz", + "created_at": "2026-10-19T19:22:35Z", + "updated_at": "2026-10-19T19:22:36Z", + "download_count": 0, + "size": 10296242 + }, + { + "name": "conduit-connector-mysql_0.5.1_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Darwin_x86_64.tar.gz", + "created_at": "2026-10-19T19:22:36Z", + "updated_at": "2026-10-19T19:22:36Z", + "download_count": 0, + "size": 11038119 + }, + { + "name": "conduit-connector-mysql_0.5.1_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Linux_arm64.tar.gz", + "created_at": "2026-10-19T19:22:35Z", + "updated_at": "2026-10-19T19:22:36Z", + "download_count": 0, + "size": 9756579 + }, + { + "name": "conduit-connector-mysql_0.5.1_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Linux_x86_64.tar.gz", + "created_at": "2026-10-19T19:22:37Z", + "updated_at": "2026-10-19T19:22:38Z", + "download_count": 1, + "size": 10782179 + }, + { + "name": "conduit-connector-mysql_0.5.1_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Windows_arm64.tar.gz", + "created_at": "2026-10-19T19:22:37Z", + "updated_at": "2026-10-19T19:22:38Z", + "download_count": 0, + "size": 9866217 + }, + { + "name": "conduit-connector-mysql_0.5.1_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/conduit-connector-mysql_0.5.1_Windows_x86_64.tar.gz", + "created_at": "2026-10-19T19:22:35Z", + "updated_at": "2026-10-19T19:22:36Z", + "download_count": 0, + "size": 11068068 + }, + { + "name": "mysql_v0.5.1_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_darwin_amd64.tar.gz", + "created_at": "2026-10-19T19:20:34Z", + "updated_at": "2026-10-19T19:20:35Z", + "download_count": 0, + "size": 10861561 + }, + { + "name": "mysql_v0.5.1_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:20:34Z", + "updated_at": "2026-10-19T19:20:34Z", + "download_count": 0, + "size": 9607 + }, + { + "name": "mysql_v0.5.1_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_darwin_arm64.tar.gz", + "created_at": "2026-10-19T19:21:20Z", + "updated_at": "2026-10-19T19:21:20Z", + "download_count": 0, + "size": 10063666 + }, + { + "name": "mysql_v0.5.1_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:21:20Z", + "updated_at": "2026-10-19T19:21:20Z", + "download_count": 0, + "size": 9560 + }, + { + "name": "mysql_v0.5.1_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_linux_amd64.tar.gz", + "created_at": "2026-10-19T19:19:03Z", + "updated_at": "2026-10-19T19:19:03Z", + "download_count": 0, + "size": 10623209 + }, + { + "name": "mysql_v0.5.1_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:19:03Z", + "updated_at": "2026-10-19T19:19:03Z", + "download_count": 0, + "size": 9705 + }, + { + "name": "mysql_v0.5.1_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_linux_arm64.tar.gz", + "created_at": "2026-10-19T19:19:48Z", + "updated_at": "2026-10-19T19:19:49Z", + "download_count": 0, + "size": 9551540 + }, + { + "name": "mysql_v0.5.1_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.1/mysql_v0.5.1_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T19:19:48Z", + "updated_at": "2026-10-19T19:19:48Z", + "download_count": 0, + "size": 9752 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.5.0", + "name": "v0.5.0", + "body": "feat: protocol-v3 stack (sdk v0.17.0, commons v0.10.0, protocol v0.11.0) (#245)", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T02:54:54Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.5.0", + "assets": [ + { + "name": "conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-19T02:57:31Z", + "updated_at": "2026-10-19T02:57:32Z", + "download_count": 0, + "size": 10296234 + }, + { + "name": "conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-19T02:57:31Z", + "updated_at": "2026-10-19T02:57:32Z", + "download_count": 0, + "size": 11038099 + }, + { + "name": "conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz", + "created_at": "2026-10-19T02:57:31Z", + "updated_at": "2026-10-19T02:57:32Z", + "download_count": 0, + "size": 9756530 + }, + { + "name": "conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-19T02:57:31Z", + "updated_at": "2026-10-19T02:57:32Z", + "download_count": 0, + "size": 10782152 + }, + { + "name": "conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz", + "created_at": "2026-10-19T02:57:32Z", + "updated_at": "2026-10-19T02:57:33Z", + "download_count": 0, + "size": 9866175 + }, + { + "name": "conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-19T02:57:32Z", + "updated_at": "2026-10-19T02:57:33Z", + "download_count": 0, + "size": 11067987 + }, + { + "name": "mysql_v0.5.0_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz", + "created_at": "2026-10-19T02:57:37Z", + "updated_at": "2026-10-19T02:57:38Z", + "download_count": 0, + "size": 10861444 + }, + { + "name": "mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T02:57:37Z", + "updated_at": "2026-10-19T02:57:37Z", + "download_count": 0, + "size": 9607 + }, + { + "name": "mysql_v0.5.0_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz", + "created_at": "2026-10-19T02:58:24Z", + "updated_at": "2026-10-19T02:58:25Z", + "download_count": 0, + "size": 10063635 + }, + { + "name": "mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T02:58:24Z", + "updated_at": "2026-10-19T02:58:25Z", + "download_count": 0, + "size": 9513 + }, + { + "name": "mysql_v0.5.0_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz", + "created_at": "2026-10-19T02:56:01Z", + "updated_at": "2026-10-19T02:56:02Z", + "download_count": 0, + "size": 10623214 + }, + { + "name": "mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-19T02:56:01Z", + "updated_at": "2026-10-19T02:56:02Z", + "download_count": 0, + "size": 9654 + }, + { + "name": "mysql_v0.5.0_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz", + "created_at": "2026-10-19T02:56:48Z", + "updated_at": "2026-10-19T02:56:50Z", + "download_count": 0, + "size": 9551512 + }, + { + "name": "mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-19T02:56:48Z", + "updated_at": "2026-10-19T02:56:49Z", + "download_count": 0, + "size": 9599 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.4.0", + "name": "v0.4.0", + "body": "## What's Changed\n* go.mod: bump github.com/go-sql-driver/mysql from 1.10.0 to 1.10.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-mysql/pull/184\n* chore: add Apache-2.0 LICENSE file by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/185\n* ci: test main on a weekly schedule and on demand by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/186\n* feat(source): halt on CDC rows whose image skipped columns by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/211\n* fix(source): resume CDC from a cdc_position without re-running the snapshot by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/195\n* fix(source): hold the table lock on one connection and always release it by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/208\n* ci: add signed publish workflow (cosign keyless, SLSA L3, registry PR) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/201\n* fix(source): write snapshot position keys type-exactly by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/206\n* fix(source)!: reject sorting columns that are nullable or not unique by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/203\n* fix(source): composite-key snapshot loses rows after the first chunk (#189) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/202\n* feat(source)!: remove the unsafe LIMIT/OFFSET snapshot, fail fast on keyless tables by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/196\n* docs: state delivery semantics and limits (no GTID, failover, heartbeat, DDL, types) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/197\n* fix: rename skipped-columns error codes to the mysql.\u003carea\u003e.\u003creason\u003e family by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/215\n* chore: move to Go 1.26.9, replace archived hamba/avro with iskorotkov/avro (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/214\n* fix(common): make the table coverage hash input injective by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/217\n* chore(deps): bump conduit-connector-sdk to v0.16.0 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/219\n* fix(source): resume CDC inside binlog events without losing rows by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/228\n* fix(source): wait for snapshot acks without leaking a goroutine per wait by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/224\n* fix(destination): ack nothing on failure, refuse keyless deletes, keep every field, quote identifiers, exact delete keys by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/193\n* fix(destination): bound how long a dead session's locks block recovery by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/234\n* fix(cdc): order binlog file names by sequence number, not as text by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/239\n* test: SIGKILL the source as a process and check resume by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/229\n* test(common): property tests for positions and table coverage by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/237\n* ci: fail a PR whose rapid test would miss the nightly long run by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/242\n* fix(cdc): make binlog position order transitive over unnumbered names by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/241\n* test(common): make the total-order property find a transitivity bug by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/243\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-mysql/compare/v0.3.0...v0.4.0", + "draft": false, + "prerelease": false, + "published_at": "2026-10-16T18:33:02Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.4.0", + "assets": [ + { + "name": "conduit-connector-mysql_0.4.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-16T18:36:35Z", + "updated_at": "2026-10-16T18:36:36Z", + "download_count": 0, + "size": 10201647 + }, + { + "name": "conduit-connector-mysql_0.4.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-16T18:36:36Z", + "updated_at": "2026-10-16T18:36:37Z", + "download_count": 0, + "size": 10942811 + }, + { + "name": "conduit-connector-mysql_0.4.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Linux_arm64.tar.gz", + "created_at": "2026-10-16T18:36:35Z", + "updated_at": "2026-10-16T18:36:36Z", + "download_count": 0, + "size": 9668489 + }, + { + "name": "conduit-connector-mysql_0.4.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-16T18:36:35Z", + "updated_at": "2026-10-16T18:36:36Z", + "download_count": 0, + "size": 10687181 + }, + { + "name": "conduit-connector-mysql_0.4.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Windows_arm64.tar.gz", + "created_at": "2026-10-16T18:36:35Z", + "updated_at": "2026-10-16T18:36:36Z", + "download_count": 0, + "size": 9776604 + }, + { + "name": "conduit-connector-mysql_0.4.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-16T18:36:36Z", + "updated_at": "2026-10-16T18:36:37Z", + "download_count": 0, + "size": 10965761 + }, + { + "name": "mysql_v0.4.0_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_amd64.tar.gz", + "created_at": "2026-10-16T18:35:35Z", + "updated_at": "2026-10-16T18:35:35Z", + "download_count": 0, + "size": 10768478 + }, + { + "name": "mysql_v0.4.0_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-16T18:35:35Z", + "updated_at": "2026-10-16T18:35:35Z", + "download_count": 0, + "size": 9517 + }, + { + "name": "mysql_v0.4.0_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_arm64.tar.gz", + "created_at": "2026-10-16T18:36:21Z", + "updated_at": "2026-10-16T18:36:22Z", + "download_count": 0, + "size": 9976072 + }, + { + "name": "mysql_v0.4.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-16T18:36:21Z", + "updated_at": "2026-10-16T18:36:22Z", + "download_count": 0, + "size": 9654 + }, + { + "name": "mysql_v0.4.0_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_amd64.tar.gz", + "created_at": "2026-10-16T18:34:01Z", + "updated_at": "2026-10-16T18:34:01Z", + "download_count": 0, + "size": 10531723 + }, + { + "name": "mysql_v0.4.0_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-16T18:34:01Z", + "updated_at": "2026-10-16T18:34:01Z", + "download_count": 0, + "size": 9658 + }, + { + "name": "mysql_v0.4.0_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_arm64.tar.gz", + "created_at": "2026-10-16T18:34:48Z", + "updated_at": "2026-10-16T18:34:48Z", + "download_count": 0, + "size": 9466012 + }, + { + "name": "mysql_v0.4.0_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-16T18:34:48Z", + "updated_at": "2026-10-16T18:34:48Z", + "download_count": 0, + "size": 9595 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.3.0", + "name": "v0.3.0", + "body": "## Changelog\n* 5f9e30a148143e168414e5bae43b10904b9bbe4c: docs(design): persist CDC start position across snapshot (fix #180 mid-snapshot data loss) (#181) (@devarismeroxa)\n* 084c09b58d082105c337da31c2965adfa9d265c8: fix(source): bound Teardown's snapshot-ack wait so graceful shutdown can finish (#183) (@devarismeroxa)\n* ad0808a66e56d0d15f91451bdee8624f1a0c7dc5: fix: persist CDC start position across snapshot to close mid-snapshot data loss (#180) (#182) (@devarismeroxa)\n* 35b2100d7216be3135d16d9a0035a12d69331185: remove dead config.tables parameter (#147) (@alarbada)\n* b37de47b9f4ae830e006c05d9a83db293f577c9d: use ReadN for the source (#133) (@maha-mstfa)\n\n", + "draft": false, + "prerelease": false, + "published_at": "2026-08-05T05:53:18Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.3.0", + "assets": [ + { + "name": "conduit-connector-mysql_0.3.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Darwin_arm64.tar.gz", + "created_at": "2026-08-05T05:53:16Z", + "updated_at": "2026-08-05T05:53:17Z", + "download_count": 1, + "size": 9357267 + }, + { + "name": "conduit-connector-mysql_0.3.0_Darwin_x86_64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Darwin_x86_64.tar.gz", + "created_at": "2026-08-05T05:53:16Z", + "updated_at": "2026-08-05T05:53:17Z", + "download_count": 0, + "size": 9870659 + }, + { + "name": "conduit-connector-mysql_0.3.0_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Linux_arm64.tar.gz", + "created_at": "2026-08-05T05:53:16Z", + "updated_at": "2026-08-05T05:53:17Z", + "download_count": 0, + "size": 8878018 + }, + { + "name": "conduit-connector-mysql_0.3.0_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Linux_x86_64.tar.gz", + "created_at": "2026-08-05T05:53:16Z", + "updated_at": "2026-08-05T05:53:17Z", + "download_count": 11, + "size": 9644592 + }, + { + "name": "conduit-connector-mysql_0.3.0_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Windows_arm64.tar.gz", + "created_at": "2026-08-05T05:53:17Z", + "updated_at": "2026-08-05T05:53:18Z", + "download_count": 0, + "size": 8983071 + }, + { + "name": "conduit-connector-mysql_0.3.0_Windows_x86_64.tar.gz", + "os": "windows", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Windows_x86_64.tar.gz", + "created_at": "2026-08-05T05:53:17Z", + "updated_at": "2026-08-05T05:53:18Z", + "download_count": 0, + "size": 9906167 } ], "is_latest": false }, { - "tag_name": "v0.3.0", - "name": "v0.3.0", - "body": "## Changelog\n* 5816768b3aee248224e8a342a834cb9898505f58: Bump SDK version to v0.7.0 (#24) (@hariso)\n* 7f9e36d7896d4d40e5cb8a43858da29621e03942: support output record formats by using destination default middleware (#20) (@maha-hajja)\n\n", + "tag_name": "v0.2.0", + "name": "v0.2.0", + "body": "## Changelog\n* 182fca1c49451f5f64f1e93181c3642366c85106: prepare 0.2.0 (#142) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-07-19T11:56:00Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.3.0", + "published_at": "2025-05-12T10:59:40Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.2.0", "assets": [ { - "name": "conduit-connector-log_0.3.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Darwin_arm64.tar.gz", - "created_at": "2023-07-19T11:56:02Z", - "updated_at": "2023-07-19T11:56:03Z", - "download_count": 7, - "size": 4583656 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Darwin_arm64.tar.gz", + "created_at": "2025-05-12T10:59:39Z", + "updated_at": "2025-05-12T10:59:39Z", + "download_count": 60, + "size": 9219942 }, { - "name": "conduit-connector-log_0.3.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Darwin_x86_64.tar.gz", - "created_at": "2023-07-19T11:56:02Z", - "updated_at": "2023-07-19T11:56:03Z", - "download_count": 9, - "size": 4746834 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Darwin_x86_64.tar.gz", + "created_at": "2025-05-12T10:59:39Z", + "updated_at": "2025-05-12T10:59:39Z", + "download_count": 66, + "size": 9725848 }, { - "name": "conduit-connector-log_0.3.0_Linux_arm64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_arm64.tar.gz", - "created_at": "2023-07-19T11:56:03Z", - "updated_at": "2023-07-19T11:56:04Z", - "download_count": 10, - "size": 4131648 - }, - { - "name": "conduit-connector-log_0.3.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_i386.tar.gz", - "created_at": "2023-07-19T11:56:01Z", - "updated_at": "2023-07-19T11:56:01Z", - "download_count": 9, - "size": 4297147 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Linux_arm64.tar.gz", + "created_at": "2025-05-12T10:59:38Z", + "updated_at": "2025-05-12T10:59:38Z", + "download_count": 65, + "size": 8744809 }, { - "name": "conduit-connector-log_0.3.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Linux_x86_64.tar.gz", - "created_at": "2023-07-19T11:56:03Z", - "updated_at": "2023-07-19T11:56:04Z", - "download_count": 12, - "size": 4519963 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Linux_x86_64.tar.gz", + "created_at": "2025-05-12T10:59:38Z", + "updated_at": "2025-05-12T10:59:38Z", + "download_count": 88, + "size": 9504027 }, { - "name": "conduit-connector-log_0.3.0_Windows_arm64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_arm64.tar.gz", - "created_at": "2023-07-19T11:56:01Z", - "updated_at": "2023-07-19T11:56:02Z", - "download_count": 9, - "size": 4209684 - }, - { - "name": "conduit-connector-log_0.3.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_i386.tar.gz", - "created_at": "2023-07-19T11:56:02Z", - "updated_at": "2023-07-19T11:56:02Z", - "download_count": 8, - "size": 4487945 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Windows_arm64.tar.gz", + "created_at": "2025-05-12T10:59:38Z", + "updated_at": "2025-05-12T10:59:38Z", + "download_count": 56, + "size": 8849330 }, { - "name": "conduit-connector-log_0.3.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.2.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.3.0/conduit-connector-log_0.3.0_Windows_x86_64.tar.gz", - "created_at": "2023-07-19T11:56:01Z", - "updated_at": "2023-07-19T11:56:01Z", - "download_count": 9, - "size": 4607331 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Windows_x86_64.tar.gz", + "created_at": "2025-05-12T10:59:38Z", + "updated_at": "2025-05-12T10:59:38Z", + "download_count": 67, + "size": 9760336 } ], "is_latest": false }, { - "tag_name": "v0.2.0", - "name": "v0.2.0", - "body": "## Changelog\n* 6c6dee80a4ece21ac5c6e01282d4e6ac3cdf6b80: Bump SDK version to v0.6.0 (#17) (@hariso)\n* db6b2ab680973341208f1cfc64be01aee8bd47ae: Fix: copyright year doesn't have to be the current year (#7) (@lovromazgon)\n* 844deba0c92f47ad4947d15ea2dfe7ce75f0cb9c: Housekeeping: version and release name template (#12) (@lovromazgon)\n\n", + "tag_name": "v0.1.4", + "name": "v0.1.4", + "body": "## Changelog\n* bf9780ad2cf67b5bac9ff1bdc99c0aaa8be88224: Add record batch support and multicollection mode (#114) (@alarbada)\n* 3f29cf07562986e345134c69bc8d1fe9b829349b: Bug: some records could be lost during CDC-iterator read (#120) (@derElektrobesen)\n* 390ae593d22ef19046039f35fda57d450902f710: Composite key (#107) (@alarbada)\n* e1077087bf52f72b0ec5b12c32bdc18bd7a35339: Feature: add new noSnapshot source config parameter (#131) (@alarbada)\n* fbbc3eec85eccfe11937b1152cd941a38dedab22: Fix snapshot.enabled functionality (#141) (@alarbada)\n* b5af108cb210deb6ff03bca5f561cccb8af26052: Schema generation fix: some mysql types could contain integers in parenthesis (#115) (@derElektrobesen)\n* 929bb19f2b8f436ee1c425dd7d4e09728a41579f: add record structure description (#132) (@alarbada)\n* 0741573303fd9629bd37a25713f2ad092f57f1de: pass regexes to canal cdc iterator (#124) (@nickchomey)\n\n", "draft": false, "prerelease": false, - "published_at": "2023-04-11T12:33:29Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.2.0", + "published_at": "2025-05-12T10:19:33Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.4", "assets": [ { - "name": "conduit-connector-log_0.2.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Darwin_arm64.tar.gz", - "created_at": "2023-04-11T12:33:32Z", - "updated_at": "2023-04-11T12:33:33Z", - "download_count": 8, - "size": 4492424 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Darwin_arm64.tar.gz", + "created_at": "2025-05-12T10:19:31Z", + "updated_at": "2025-05-12T10:19:32Z", + "download_count": 6, + "size": 9219939 }, { - "name": "conduit-connector-log_0.2.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Darwin_x86_64.tar.gz", - "created_at": "2023-04-11T12:33:32Z", - "updated_at": "2023-04-11T12:33:32Z", - "download_count": 10, - "size": 4696271 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Darwin_x86_64.tar.gz", + "created_at": "2025-05-12T10:19:31Z", + "updated_at": "2025-05-12T10:19:31Z", + "download_count": 5, + "size": 9725842 }, { - "name": "conduit-connector-log_0.2.0_Linux_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_arm64.tar.gz", - "created_at": "2023-04-11T12:33:30Z", - "updated_at": "2023-04-11T12:33:30Z", - "download_count": 10, - "size": 4088228 - }, - { - "name": "conduit-connector-log_0.2.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_i386.tar.gz", - "created_at": "2023-04-11T12:33:31Z", - "updated_at": "2023-04-11T12:33:31Z", - "download_count": 10, - "size": 4251957 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Linux_arm64.tar.gz", + "created_at": "2025-05-12T10:19:31Z", + "updated_at": "2025-05-12T10:19:31Z", + "download_count": 7, + "size": 8744805 }, { - "name": "conduit-connector-log_0.2.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Linux_x86_64.tar.gz", - "created_at": "2023-04-11T12:33:30Z", - "updated_at": "2023-04-11T12:33:31Z", - "download_count": 10, - "size": 4474505 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Linux_x86_64.tar.gz", + "created_at": "2025-05-12T10:19:32Z", + "updated_at": "2025-05-12T10:19:32Z", + "download_count": 6, + "size": 9504011 }, { - "name": "conduit-connector-log_0.2.0_Windows_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_arm64.tar.gz", - "created_at": "2023-04-11T12:33:31Z", - "updated_at": "2023-04-11T12:33:32Z", - "download_count": 10, - "size": 4166105 - }, - { - "name": "conduit-connector-log_0.2.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_i386.tar.gz", - "created_at": "2023-04-11T12:33:32Z", - "updated_at": "2023-04-11T12:33:32Z", - "download_count": 10, - "size": 4443705 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Windows_arm64.tar.gz", + "created_at": "2025-05-12T10:19:32Z", + "updated_at": "2025-05-12T10:19:32Z", + "download_count": 5, + "size": 8849330 }, { - "name": "conduit-connector-log_0.2.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.2.0/conduit-connector-log_0.2.0_Windows_x86_64.tar.gz", - "created_at": "2023-04-11T12:33:31Z", - "updated_at": "2023-04-11T12:33:31Z", - "download_count": 12, - "size": 4560192 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Windows_x86_64.tar.gz", + "created_at": "2025-05-12T10:19:31Z", + "updated_at": "2025-05-12T10:19:32Z", + "download_count": 5, + "size": 9760330 } ], "is_latest": false }, { - "tag_name": "v0.1.2", - "name": "v0.1.2", - "body": "## Changelog\n* 563b00a8bdf590a0158fed59e83d0680aa413faa: Add ability to control log message (#3) (@lovromazgon)\n\n", + "tag_name": "v0.1.3", + "name": "v0.1.3", + "body": "## Changelog\n* f8a5e2aba6239aeecbb6096d9ea92d069c27253c: Rename project_automation.yaml to project-automation.yml (#103) (@simonl2002)\n* fa1a9392e839c09bee752265feba63d1d2bd5b26: Update SDK to v0.13.2 (#112) (@hariso)\n* 61bc508b85ea6fc8c902457fa7eb4c1aa759192c: update connector spec description (#104) (@alarbada)\n\n", "draft": false, "prerelease": false, - "published_at": "2022-11-28T18:28:18Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.1.2", + "published_at": "2025-03-18T12:52:02Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.3", "assets": [ { - "name": "conduit-connector-log_0.1.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Darwin_arm64.tar.gz", - "created_at": "2022-11-28T18:28:18Z", - "updated_at": "2022-11-28T18:28:19Z", - "download_count": 9, - "size": 4178983 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Darwin_arm64.tar.gz", + "created_at": "2025-03-18T12:52:00Z", + "updated_at": "2025-03-18T12:52:01Z", + "download_count": 8, + "size": 9000963 }, { - "name": "conduit-connector-log_0.1.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Darwin_x86_64.tar.gz", - "created_at": "2022-11-28T18:28:21Z", - "updated_at": "2022-11-28T18:28:21Z", - "download_count": 11, - "size": 4324836 - }, - { - "name": "conduit-connector-log_0.1.2_Linux_arm64.tar.gz", - "os": "linux", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_arm64.tar.gz", - "created_at": "2022-11-28T18:28:19Z", - "updated_at": "2022-11-28T18:28:20Z", - "download_count": 11, - "size": 3817409 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Darwin_x86_64.tar.gz", + "created_at": "2025-03-18T12:52:00Z", + "updated_at": "2025-03-18T12:52:01Z", + "download_count": 9, + "size": 9457997 }, { - "name": "conduit-connector-log_0.1.2_Linux_i386.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Linux_arm64.tar.gz", "os": "linux", - "arch": "386", + "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_i386.tar.gz", - "created_at": "2022-11-28T18:28:19Z", - "updated_at": "2022-11-28T18:28:20Z", - "download_count": 11, - "size": 3979052 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Linux_arm64.tar.gz", + "created_at": "2025-03-18T12:52:00Z", + "updated_at": "2025-03-18T12:52:01Z", + "download_count": 7, + "size": 8536980 }, { - "name": "conduit-connector-log_0.1.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Linux_x86_64.tar.gz", - "created_at": "2022-11-28T18:28:18Z", - "updated_at": "2022-11-28T18:28:19Z", - "download_count": 11, - "size": 4153308 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Linux_x86_64.tar.gz", + "created_at": "2025-03-18T12:52:01Z", + "updated_at": "2025-03-18T12:52:02Z", + "download_count": 10, + "size": 9238529 }, { - "name": "conduit-connector-log_0.1.2_Windows_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_arm64.tar.gz", - "created_at": "2022-11-28T18:28:20Z", - "updated_at": "2022-11-28T18:28:20Z", - "download_count": 11, - "size": 3876332 - }, - { - "name": "conduit-connector-log_0.1.2_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_i386.tar.gz", - "created_at": "2022-11-28T18:28:21Z", - "updated_at": "2022-11-28T18:28:21Z", - "download_count": 10, - "size": 4141488 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Windows_arm64.tar.gz", + "created_at": "2025-03-18T12:52:01Z", + "updated_at": "2025-03-18T12:52:02Z", + "download_count": 8, + "size": 8643208 }, { - "name": "conduit-connector-log_0.1.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.3_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.2/conduit-connector-log_0.1.2_Windows_x86_64.tar.gz", - "created_at": "2022-11-28T18:28:20Z", - "updated_at": "2022-11-28T18:28:21Z", - "download_count": 12, - "size": 4220695 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Windows_x86_64.tar.gz", + "created_at": "2025-03-18T12:52:00Z", + "updated_at": "2025-03-18T12:52:01Z", + "download_count": 9, + "size": 9503195 } ], "is_latest": false }, { - "tag_name": "v0.1.1", - "name": "v0.1.1", - "body": "## Changelog\n* b1f13b2e945a548344eaf4b86284d23482bd2805: Fix module name (#2) (@lovromazgon)\n* a8fa194245a3086fe7e54cac23c1ccaa266a1645: Implement log connector (#1) (@lovromazgon)\n* 2d5946ef8eba32fd00a60f17c8f3c6bb41860e86: bump version to v0.1.1 (@lovromazgon)\n* 9fb2e3e10a59a20464048cf54a3e63a72bcf7552: clarify base64 encoding (@lovromazgon)\n* b7e4949a28e89af40b9098f476c673706b2855a7: remove integration testing (not needed) (@lovromazgon)\n* 55599a68c1a99a9ebe9439fbade60fe16af2a637: run setup.sh (@lovromazgon)\n* b209e83112ec97ec38fa06a8f54030abe8691e62: update readme, codeowners, pr template (@lovromazgon)\n\n", + "tag_name": "v0.1.2", + "name": "v0.1.2", + "body": "## Changelog\n* 1d0d0ee58f3c98669812e81d3b8aad8f02ddb5c3: fix (#101) (@alarbada)\n\n", "draft": false, "prerelease": false, - "published_at": "2022-11-08T13:54:56Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-log/releases/tag/v0.1.1", + "published_at": "2025-02-25T07:06:33Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.2", "assets": [ { - "name": "conduit-connector-log_0.1.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Darwin_arm64.tar.gz", - "created_at": "2022-11-08T13:54:59Z", - "updated_at": "2022-11-08T13:55:00Z", - "download_count": 8, - "size": 4178266 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Darwin_arm64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:33Z", + "download_count": 7, + "size": 9000909 }, { - "name": "conduit-connector-log_0.1.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Darwin_x86_64.tar.gz", - "created_at": "2022-11-08T13:54:59Z", - "updated_at": "2022-11-08T13:55:00Z", - "download_count": 11, - "size": 4324663 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Darwin_x86_64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:33Z", + "download_count": 6, + "size": 9458964 }, { - "name": "conduit-connector-log_0.1.1_Linux_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_arm64.tar.gz", - "created_at": "2022-11-08T13:55:00Z", - "updated_at": "2022-11-08T13:55:01Z", - "download_count": 11, - "size": 3816240 - }, - { - "name": "conduit-connector-log_0.1.1_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_i386.tar.gz", - "created_at": "2022-11-08T13:54:57Z", - "updated_at": "2022-11-08T13:54:58Z", - "download_count": 11, - "size": 3978509 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Linux_arm64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:32Z", + "download_count": 7, + "size": 8537878 }, { - "name": "conduit-connector-log_0.1.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Linux_x86_64.tar.gz", - "created_at": "2022-11-08T13:55:01Z", - "updated_at": "2022-11-08T13:55:01Z", - "download_count": 11, - "size": 4152837 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Linux_x86_64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:32Z", + "download_count": 7, + "size": 9239906 }, { - "name": "conduit-connector-log_0.1.1_Windows_arm64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_arm64.tar.gz", - "created_at": "2022-11-08T13:54:58Z", - "updated_at": "2022-11-08T13:54:59Z", - "download_count": 11, - "size": 3875788 - }, - { - "name": "conduit-connector-log_0.1.1_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_i386.tar.gz", - "created_at": "2022-11-08T13:54:58Z", - "updated_at": "2022-11-08T13:54:59Z", - "download_count": 11, - "size": 4141014 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Windows_arm64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:32Z", + "download_count": 5, + "size": 8639383 }, { - "name": "conduit-connector-log_0.1.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-mysql_0.1.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-log/releases/download/v0.1.1/conduit-connector-log_0.1.1_Windows_x86_64.tar.gz", - "created_at": "2022-11-08T13:54:57Z", - "updated_at": "2022-11-08T13:54:58Z", - "download_count": 11, - "size": 4220105 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Windows_x86_64.tar.gz", + "created_at": "2025-02-25T07:06:32Z", + "updated_at": "2025-02-25T07:06:32Z", + "download_count": 7, + "size": 9506121 } ], "is_latest": false + }, + { + "tag_name": "v0.1.1", + "name": "v0.1.1", + "body": "## What's Changed\r\n* Select tables via a list of include/exclude regexes by @nickchomey in https://github.com/conduitio-labs/conduit-connector-mysql/pull/54\r\n* MySQL 5.5 support (with CI fix) by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/94\r\n\r\n**Full Changelog**: https://github.com/conduitio-labs/conduit-connector-mysql/compare/v0.1.0...v0.1.1", + "draft": false, + "prerelease": false, + "published_at": "2025-02-13T16:10:23Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.1", + "assets": null, + "is_latest": false + }, + { + "tag_name": "v0.1.0", + "name": "v0.1.0", + "body": "## What's Changed\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.58.1 to 1.59.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/1\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.59.0 to 1.59.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/3\r\n* .github: Bump goreleaser/goreleaser-action from 5 to 6 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/2\r\n* Setup source snapshot iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/4\r\n* go.mod: bump github.com/jmoiron/sqlx from 1.3.5 to 1.4.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/9\r\n* update readme by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/7\r\n* fix code owners by @raulb in https://github.com/conduitio-labs/conduit-connector-mysql/pull/11\r\n* .github: Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/14\r\n* Setup test utilities and restructure project by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/21\r\n* change params to url by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/10\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.2.0 to 0.3.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/39\r\n* Add project automation by @hariso in https://github.com/conduitio-labs/conduit-connector-mysql/pull/37\r\n* Add cdc iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/22\r\n* Add combined iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/23\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.9.1 to 0.10.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/38\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.59.1 to 1.60.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/40\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.8.0 to 1.9.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/42\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.1 to 1.60.2 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/41\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.2 to 1.60.3 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/43\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.3 to 1.61.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/46\r\n* Implement consistent snapshot strategy by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/24\r\n* Update docs by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/44\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.10.0 to 0.10.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/48\r\n* Update README.md by @maha-hajja in https://github.com/conduitio-labs/conduit-connector-mysql/pull/47\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.9.0 to 1.9.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/49\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.10.1 to 0.11.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/60\r\n* prevent avro uint64 encoding failure by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/58\r\n* Add destination connector by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/45\r\n* Fixes naïve snapshot iteration by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/59\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.11.0 to 0.11.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/71\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.4.0 to 0.5.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/72\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.61.0 to 1.62.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/74\r\n* Destination docs by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/67\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.62.0 to 1.62.2 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/77\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.9.1 to 1.10.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/76\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.11.1 to 0.12.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/73\r\n* Smarter and more flexible table configuration by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/69\r\n* Add unsafe snapshot parameter by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/75\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.62.2 to 1.63.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/80\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.63.1 to 1.63.3 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/81\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.63.3 to 1.63.4 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/82\r\n* migrate tests to gorm by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/78\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.10.0 to 1.11.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/84\r\n* .github: Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/85\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.12.0 to 0.13.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/87\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.5.0 to 0.5.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/88\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.13.0 to 0.13.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/89\r\n* Schema support by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/79\r\n* Add support for get all tables wildcard by @nickchomey in https://github.com/conduitio-labs/conduit-connector-mysql/pull/51\r\n* Fix config parsing by @derElektrobesen in https://github.com/conduitio-labs/conduit-connector-mysql/pull/90\r\n\r\n## New Contributors\r\n* @raulb made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/11\r\n* @hariso made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/37\r\n* @maha-hajja made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/47\r\n* @nickchomey made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/51\r\n* @derElektrobesen made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/90\r\n\r\n**Full Changelog**: https://github.com/conduitio-labs/conduit-connector-mysql/commits/v0.1.0", + "draft": false, + "prerelease": false, + "published_at": "2025-02-10T12:41:08Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.0", + "assets": null, + "is_latest": false } ] }, { - "name_with_owner": "ConduitIO/conduit-connector-mysql", - "description": "Conduit connector for MySQL", - "created_at": "2024-06-04 14:47:18 +0000 UTC", - "url": "https://github.com/ConduitIO/conduit-connector-mysql", - "stargazer_count": 2, - "fork_count": 4, + "name_with_owner": "ConduitIO/conduit-connector-pgvector", + "description": "Conduit destination connector for pgvector (Postgres vector store). RAG-from-Postgres sink. Part of Conduit v0.20 (WS8).", + "created_at": "2026-07-26 21:12:04 +0000 UTC", + "url": "https://github.com/ConduitIO/conduit-connector-pgvector", + "stargazer_count": 0, + "fork_count": 0, "releases": [ { - "tag_name": "v0.5.0", - "name": "v0.5.0", - "body": "feat: protocol-v3 stack (sdk v0.17.0, commons v0.10.0, protocol v0.11.0) (#245)", + "tag_name": "v0.1.1", + "name": "v0.1.1", + "body": "## conduit-connector-pgvector v0.1.1\n\nToolchain and SDK release. No connector code changes.\n\n- Built with Go 1.26.9; `go.mod` moves to `go 1.26.9`.\n- `conduit-commons` v0.8.0 and `conduit-connector-sdk` v0.15.0.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends) instead of tearing down underneath it; a batch that arrives after teardown started is redelivered on restart, not acknowledged (conduit-connector-sdk#401).\n- `hamba/avro` is no longer in the dependency graph.\n\nInstall with `conduit connectors install pgvector`.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-pgvector/compare/v0.1.0...v0.1.1\n", "draft": false, "prerelease": false, - "published_at": "2026-10-19T02:54:54Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.5.0", + "published_at": "2026-10-13T07:30:40Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-pgvector/releases/tag/v0.1.1", "assets": [ { - "name": "conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_arm64.tar.gz", - "created_at": "2026-10-19T02:57:31Z", - "updated_at": "2026-10-19T02:57:32Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:33:46Z", + "updated_at": "2026-10-13T07:33:48Z", "download_count": 0, - "size": 10296234 + "size": 8246311 }, { - "name": "conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-pgvector_0.1.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Darwin_x86_64.tar.gz", - "created_at": "2026-10-19T02:57:31Z", - "updated_at": "2026-10-19T02:57:32Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Darwin_x86_64.tar.gz", + "created_at": "2026-10-13T07:33:48Z", + "updated_at": "2026-10-13T07:33:49Z", "download_count": 0, - "size": 11038099 + "size": 8896318 + }, + { + "name": "conduit-connector-pgvector_0.1.1_Linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_arm64.tar.gz", + "created_at": "2026-10-13T07:33:48Z", + "updated_at": "2026-10-13T07:33:48Z", + "download_count": 0, + "size": 7843348 + }, + { + "name": "conduit-connector-pgvector_0.1.1_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_i386.tar.gz", + "created_at": "2026-10-13T07:33:48Z", + "updated_at": "2026-10-13T07:33:49Z", + "download_count": 0, + "size": 8248758 }, { - "name": "conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.1_Linux_x86_64.tar.gz", "os": "linux", - "arch": "arm64", + "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_arm64.tar.gz", - "created_at": "2026-10-19T02:57:31Z", - "updated_at": "2026-10-19T02:57:32Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_x86_64.tar.gz", + "created_at": "2026-10-13T07:33:46Z", + "updated_at": "2026-10-13T07:33:47Z", "download_count": 0, - "size": 9756530 + "size": 8676505 }, { - "name": "conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz", - "os": "linux", - "arch": "amd64", + "name": "conduit-connector-pgvector_0.1.1_Windows_arm64.tar.gz", + "os": "windows", + "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Linux_x86_64.tar.gz", - "created_at": "2026-10-19T02:57:31Z", - "updated_at": "2026-10-19T02:57:32Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_arm64.tar.gz", + "created_at": "2026-10-13T07:33:46Z", + "updated_at": "2026-10-13T07:33:47Z", "download_count": 0, - "size": 10782152 + "size": 7944303 }, { - "name": "conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.1_Windows_i386.tar.gz", "os": "windows", - "arch": "arm64", + "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_arm64.tar.gz", - "created_at": "2026-10-19T02:57:32Z", - "updated_at": "2026-10-19T02:57:33Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_i386.tar.gz", + "created_at": "2026-10-13T07:33:46Z", + "updated_at": "2026-10-13T07:33:47Z", "download_count": 0, - "size": 9866175 + "size": 8626006 }, { - "name": "conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-pgvector_0.1.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/conduit-connector-mysql_0.5.0_Windows_x86_64.tar.gz", - "created_at": "2026-10-19T02:57:32Z", - "updated_at": "2026-10-19T02:57:33Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_x86_64.tar.gz", + "created_at": "2026-10-13T07:33:48Z", + "updated_at": "2026-10-13T07:33:49Z", "download_count": 0, - "size": 11067987 + "size": 8941599 }, { - "name": "mysql_v0.5.0_darwin_amd64.tar.gz", + "name": "pgvector_v0.1.1_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz", - "created_at": "2026-10-19T02:57:37Z", - "updated_at": "2026-10-19T02:57:38Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_amd64.tar.gz", + "created_at": "2026-10-13T07:32:23Z", + "updated_at": "2026-10-13T07:32:23Z", "download_count": 0, - "size": 10861444 + "size": 8761770 }, { - "name": "mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.1_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-19T02:57:37Z", - "updated_at": "2026-10-19T02:57:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:32:23Z", + "updated_at": "2026-10-13T07:32:23Z", "download_count": 0, - "size": 9607 + "size": 9460 }, { - "name": "mysql_v0.5.0_darwin_arm64.tar.gz", + "name": "pgvector_v0.1.1_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz", - "created_at": "2026-10-19T02:58:24Z", - "updated_at": "2026-10-19T02:58:25Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_arm64.tar.gz", + "created_at": "2026-10-13T07:32:54Z", + "updated_at": "2026-10-13T07:32:55Z", "download_count": 0, - "size": 10063635 + "size": 8077294 }, { - "name": "mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.1_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-19T02:58:24Z", - "updated_at": "2026-10-19T02:58:25Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:32:54Z", + "updated_at": "2026-10-13T07:32:55Z", "download_count": 0, - "size": 9513 + "size": 9413 }, { - "name": "mysql_v0.5.0_linux_amd64.tar.gz", + "name": "pgvector_v0.1.1_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz", - "created_at": "2026-10-19T02:56:01Z", - "updated_at": "2026-10-19T02:56:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_amd64.tar.gz", + "created_at": "2026-10-13T07:31:18Z", + "updated_at": "2026-10-13T07:31:19Z", "download_count": 0, - "size": 10623214 + "size": 8549818 }, { - "name": "mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.1_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-19T02:56:01Z", - "updated_at": "2026-10-19T02:56:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:18Z", + "updated_at": "2026-10-13T07:31:19Z", "download_count": 0, - "size": 9654 + "size": 9370 }, { - "name": "mysql_v0.5.0_linux_arm64.tar.gz", + "name": "pgvector_v0.1.1_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz", - "created_at": "2026-10-19T02:56:48Z", - "updated_at": "2026-10-19T02:56:50Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_arm64.tar.gz", + "created_at": "2026-10-13T07:31:51Z", + "updated_at": "2026-10-13T07:31:51Z", "download_count": 0, - "size": 9551512 + "size": 7682398 }, { - "name": "mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.1_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.5.0/mysql_v0.5.0_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-19T02:56:48Z", - "updated_at": "2026-10-19T02:56:49Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-13T07:31:50Z", + "updated_at": "2026-10-13T07:31:51Z", "download_count": 0, - "size": 9599 + "size": 9323 } ], "is_latest": true }, { - "tag_name": "v0.4.0", - "name": "v0.4.0", - "body": "## What's Changed\n* go.mod: bump github.com/go-sql-driver/mysql from 1.10.0 to 1.10.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-mysql/pull/184\n* chore: add Apache-2.0 LICENSE file by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/185\n* ci: test main on a weekly schedule and on demand by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/186\n* feat(source): halt on CDC rows whose image skipped columns by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/211\n* fix(source): resume CDC from a cdc_position without re-running the snapshot by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/195\n* fix(source): hold the table lock on one connection and always release it by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/208\n* ci: add signed publish workflow (cosign keyless, SLSA L3, registry PR) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/201\n* fix(source): write snapshot position keys type-exactly by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/206\n* fix(source)!: reject sorting columns that are nullable or not unique by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/203\n* fix(source): composite-key snapshot loses rows after the first chunk (#189) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/202\n* feat(source)!: remove the unsafe LIMIT/OFFSET snapshot, fail fast on keyless tables by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/196\n* docs: state delivery semantics and limits (no GTID, failover, heartbeat, DDL, types) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/197\n* fix: rename skipped-columns error codes to the mysql.\u003carea\u003e.\u003creason\u003e family by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/215\n* chore: move to Go 1.26.9, replace archived hamba/avro with iskorotkov/avro (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/214\n* fix(common): make the table coverage hash input injective by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/217\n* chore(deps): bump conduit-connector-sdk to v0.16.0 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/219\n* fix(source): resume CDC inside binlog events without losing rows by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/228\n* fix(source): wait for snapshot acks without leaking a goroutine per wait by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/224\n* fix(destination): ack nothing on failure, refuse keyless deletes, keep every field, quote identifiers, exact delete keys by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/193\n* fix(destination): bound how long a dead session's locks block recovery by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/234\n* fix(cdc): order binlog file names by sequence number, not as text by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/239\n* test: SIGKILL the source as a process and check resume by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/229\n* test(common): property tests for positions and table coverage by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/237\n* ci: fail a PR whose rapid test would miss the nightly long run by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/242\n* fix(cdc): make binlog position order transitive over unnumbered names by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/241\n* test(common): make the total-order property find a transitivity bug by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-mysql/pull/243\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-mysql/compare/v0.3.0...v0.4.0", + "tag_name": "v0.1.0", + "name": "v0.1.0", + "body": "## What's Changed\n* feat(destination): pgvector destination — slice 1 (config, dimension validation, upsert) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/1\n* feat(destination): delete-by-source_key fan-out + SDK acceptance suite (slice 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/8\n* fix(deps): bump grpc, x/text, pgx to clear reachable CVEs (22 -\u003e 18) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/10\n* ci: add release + registry-publish plumbing by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/9\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-pgvector/pull/1\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-pgvector/commits/v0.1.0", "draft": false, "prerelease": false, - "published_at": "2026-10-16T18:33:02Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.4.0", + "published_at": "2026-08-24T22:38:43Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-pgvector/releases/tag/v0.1.0", "assets": [ { - "name": "conduit-connector-mysql_0.4.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Darwin_arm64.tar.gz", - "created_at": "2026-10-16T18:36:35Z", - "updated_at": "2026-10-16T18:36:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Darwin_arm64.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:42Z", "download_count": 0, - "size": 10201647 + "size": 7415455 }, { - "name": "conduit-connector-mysql_0.4.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Darwin_x86_64.tar.gz", - "created_at": "2026-10-16T18:36:36Z", - "updated_at": "2026-10-16T18:36:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Darwin_x86_64.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:41Z", "download_count": 0, - "size": 10942811 + "size": 7966172 }, { - "name": "conduit-connector-mysql_0.4.0_Linux_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Linux_arm64.tar.gz", - "created_at": "2026-10-16T18:36:35Z", - "updated_at": "2026-10-16T18:36:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_arm64.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:42Z", "download_count": 0, - "size": 9668489 + "size": 7062162 }, { - "name": "conduit-connector-mysql_0.4.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_i386.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:41Z", + "download_count": 0, + "size": 7395949 + }, + { + "name": "conduit-connector-pgvector_0.1.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Linux_x86_64.tar.gz", - "created_at": "2026-10-16T18:36:35Z", - "updated_at": "2026-10-16T18:36:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_x86_64.tar.gz", + "created_at": "2026-08-24T22:42:42Z", + "updated_at": "2026-08-24T22:42:43Z", "download_count": 0, - "size": 10687181 + "size": 7777081 }, { - "name": "conduit-connector-mysql_0.4.0_Windows_arm64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Windows_arm64.tar.gz", - "created_at": "2026-10-16T18:36:35Z", - "updated_at": "2026-10-16T18:36:36Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_arm64.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:42Z", "download_count": 0, - "size": 9776604 + "size": 7159415 }, { - "name": "conduit-connector-mysql_0.4.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-pgvector_0.1.0_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_i386.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:41Z", + "download_count": 0, + "size": 7732265 + }, + { + "name": "conduit-connector-pgvector_0.1.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/conduit-connector-mysql_0.4.0_Windows_x86_64.tar.gz", - "created_at": "2026-10-16T18:36:36Z", - "updated_at": "2026-10-16T18:36:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_x86_64.tar.gz", + "created_at": "2026-08-24T22:42:41Z", + "updated_at": "2026-08-24T22:42:42Z", "download_count": 0, - "size": 10965761 + "size": 8030066 }, { - "name": "mysql_v0.4.0_darwin_amd64.tar.gz", + "name": "pgvector_v0.1.0_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_amd64.tar.gz", - "created_at": "2026-10-16T18:35:35Z", - "updated_at": "2026-10-16T18:35:35Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_amd64.tar.gz", + "created_at": "2026-08-24T22:40:22Z", + "updated_at": "2026-08-24T22:40:23Z", "download_count": 0, - "size": 10768478 + "size": 7851691 }, { - "name": "mysql_v0.4.0_darwin_amd64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-16T18:35:35Z", - "updated_at": "2026-10-16T18:35:35Z", - "download_count": 0, - "size": 9517 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-08-24T22:40:22Z", + "updated_at": "2026-08-24T22:40:22Z", + "download_count": 10, + "size": 9576 }, { - "name": "mysql_v0.4.0_darwin_arm64.tar.gz", + "name": "pgvector_v0.1.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_arm64.tar.gz", - "created_at": "2026-10-16T18:36:21Z", - "updated_at": "2026-10-16T18:36:22Z", - "download_count": 0, - "size": 9976072 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_arm64.tar.gz", + "created_at": "2026-08-24T22:40:54Z", + "updated_at": "2026-08-24T22:40:54Z", + "download_count": 1, + "size": 7279055 }, { - "name": "mysql_v0.4.0_darwin_arm64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-16T18:36:21Z", - "updated_at": "2026-10-16T18:36:22Z", - "download_count": 0, - "size": 9654 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-08-24T22:40:54Z", + "updated_at": "2026-08-24T22:40:54Z", + "download_count": 11, + "size": 9486 }, { - "name": "mysql_v0.4.0_linux_amd64.tar.gz", + "name": "pgvector_v0.1.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_amd64.tar.gz", - "created_at": "2026-10-16T18:34:01Z", - "updated_at": "2026-10-16T18:34:01Z", - "download_count": 0, - "size": 10531723 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_amd64.tar.gz", + "created_at": "2026-08-24T22:39:20Z", + "updated_at": "2026-08-24T22:39:20Z", + "download_count": 1, + "size": 7676247 }, { - "name": "mysql_v0.4.0_linux_amd64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-16T18:34:01Z", - "updated_at": "2026-10-16T18:34:01Z", - "download_count": 0, - "size": 9658 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-08-24T22:39:20Z", + "updated_at": "2026-08-24T22:39:20Z", + "download_count": 11, + "size": 9670 }, { - "name": "mysql_v0.4.0_linux_arm64.tar.gz", + "name": "pgvector_v0.1.0_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_arm64.tar.gz", - "created_at": "2026-10-16T18:34:48Z", - "updated_at": "2026-10-16T18:34:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_arm64.tar.gz", + "created_at": "2026-08-24T22:39:51Z", + "updated_at": "2026-08-24T22:39:52Z", "download_count": 0, - "size": 9466012 + "size": 6932996 }, { - "name": "mysql_v0.4.0_linux_arm64.tar.gz.sigstore.json", + "name": "pgvector_v0.1.0_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.4.0/mysql_v0.4.0_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-16T18:34:48Z", - "updated_at": "2026-10-16T18:34:48Z", - "download_count": 0, - "size": 9595 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-08-24T22:39:51Z", + "updated_at": "2026-08-24T22:39:51Z", + "download_count": 11, + "size": 9670 } ], "is_latest": false - }, + } + ] + }, + { + "name_with_owner": "ConduitIO/conduit-connector-postgres", + "description": "Conduit connector for PostgreSQL", + "created_at": "2022-03-07 16:06:24 +0000 UTC", + "url": "https://github.com/ConduitIO/conduit-connector-postgres", + "stargazer_count": 20, + "fork_count": 13, + "releases": [ { - "tag_name": "v0.3.0", - "name": "v0.3.0", - "body": "## Changelog\n* 5f9e30a148143e168414e5bae43b10904b9bbe4c: docs(design): persist CDC start position across snapshot (fix #180 mid-snapshot data loss) (#181) (@devarismeroxa)\n* 084c09b58d082105c337da31c2965adfa9d265c8: fix(source): bound Teardown's snapshot-ack wait so graceful shutdown can finish (#183) (@devarismeroxa)\n* ad0808a66e56d0d15f91451bdee8624f1a0c7dc5: fix: persist CDC start position across snapshot to close mid-snapshot data loss (#180) (#182) (@devarismeroxa)\n* 35b2100d7216be3135d16d9a0035a12d69331185: remove dead config.tables parameter (#147) (@alarbada)\n* b37de47b9f4ae830e006c05d9a83db293f577c9d: use ReadN for the source (#133) (@maha-mstfa)\n\n", + "tag_name": "v0.18.0", + "name": "v0.18.0", + "body": "## What's Changed\n* feat: let the host supply a dialer for network connections by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/455\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.17.5...v0.18.0", "draft": false, "prerelease": false, - "published_at": "2026-08-05T05:53:18Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.3.0", + "published_at": "2026-10-25T00:30:36Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.18.0", "assets": [ { - "name": "conduit-connector-mysql_0.3.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Darwin_arm64.tar.gz", - "created_at": "2026-08-05T05:53:16Z", - "updated_at": "2026-08-05T05:53:17Z", - "download_count": 1, - "size": 9357267 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:35:01Z", + "updated_at": "2026-10-25T00:35:01Z", + "download_count": 0, + "size": 8908983 }, { - "name": "conduit-connector-mysql_0.3.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Darwin_x86_64.tar.gz", - "created_at": "2026-08-05T05:53:16Z", - "updated_at": "2026-08-05T05:53:17Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-25T00:34:59Z", + "updated_at": "2026-10-25T00:35:00Z", "download_count": 0, - "size": 9870659 + "size": 9602747 }, { - "name": "conduit-connector-mysql_0.3.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Linux_arm64.tar.gz", - "created_at": "2026-08-05T05:53:16Z", - "updated_at": "2026-08-05T05:53:17Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_arm64.tar.gz", + "created_at": "2026-10-25T00:35:00Z", + "updated_at": "2026-10-25T00:35:01Z", "download_count": 0, - "size": 8878018 + "size": 8474645 }, { - "name": "conduit-connector-mysql_0.3.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_i386.tar.gz", + "created_at": "2026-10-25T00:35:00Z", + "updated_at": "2026-10-25T00:35:01Z", + "download_count": 0, + "size": 8902361 + }, + { + "name": "conduit-connector-postgres_0.18.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Linux_x86_64.tar.gz", - "created_at": "2026-08-05T05:53:16Z", - "updated_at": "2026-08-05T05:53:17Z", - "download_count": 11, - "size": 9644592 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-25T00:34:59Z", + "updated_at": "2026-10-25T00:35:00Z", + "download_count": 0, + "size": 9364734 }, { - "name": "conduit-connector-mysql_0.3.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Windows_arm64.tar.gz", - "created_at": "2026-08-05T05:53:17Z", - "updated_at": "2026-08-05T05:53:18Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_arm64.tar.gz", + "created_at": "2026-10-25T00:34:59Z", + "updated_at": "2026-10-25T00:35:00Z", "download_count": 0, - "size": 8983071 + "size": 8572701 }, { - "name": "conduit-connector-mysql_0.3.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.18.0_Windows_i386.tar.gz", "os": "windows", - "arch": "amd64", + "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.3.0/conduit-connector-mysql_0.3.0_Windows_x86_64.tar.gz", - "created_at": "2026-08-05T05:53:17Z", - "updated_at": "2026-08-05T05:53:18Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_i386.tar.gz", + "created_at": "2026-10-25T00:35:00Z", + "updated_at": "2026-10-25T00:35:01Z", "download_count": 0, - "size": 9906167 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.2.0", - "name": "v0.2.0", - "body": "## Changelog\n* 182fca1c49451f5f64f1e93181c3642366c85106: prepare 0.2.0 (#142) (@raulb)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-05-12T10:59:40Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.2.0", - "assets": [ - { - "name": "conduit-connector-mysql_0.2.0_Darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Darwin_arm64.tar.gz", - "created_at": "2025-05-12T10:59:39Z", - "updated_at": "2025-05-12T10:59:39Z", - "download_count": 60, - "size": 9219942 + "size": 9303314 }, { - "name": "conduit-connector-mysql_0.2.0_Darwin_x86_64.tar.gz", - "os": "darwin", + "name": "conduit-connector-postgres_0.18.0_Windows_x86_64.tar.gz", + "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Darwin_x86_64.tar.gz", - "created_at": "2025-05-12T10:59:39Z", - "updated_at": "2025-05-12T10:59:39Z", - "download_count": 66, - "size": 9725848 - }, - { - "name": "conduit-connector-mysql_0.2.0_Linux_arm64.tar.gz", - "os": "linux", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Linux_arm64.tar.gz", - "created_at": "2025-05-12T10:59:38Z", - "updated_at": "2025-05-12T10:59:38Z", - "download_count": 65, - "size": 8744809 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/conduit-connector-postgres_0.18.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-25T00:34:59Z", + "updated_at": "2026-10-25T00:35:00Z", + "download_count": 0, + "size": 9648663 }, { - "name": "conduit-connector-mysql_0.2.0_Linux_x86_64.tar.gz", - "os": "linux", + "name": "postgres_v0.18.0_darwin_amd64.tar.gz", + "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Linux_x86_64.tar.gz", - "created_at": "2025-05-12T10:59:38Z", - "updated_at": "2025-05-12T10:59:38Z", - "download_count": 87, - "size": 9504027 - }, - { - "name": "conduit-connector-mysql_0.2.0_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Windows_arm64.tar.gz", - "created_at": "2025-05-12T10:59:38Z", - "updated_at": "2025-05-12T10:59:38Z", - "download_count": 56, - "size": 8849330 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_amd64.tar.gz", + "created_at": "2026-10-25T00:31:58Z", + "updated_at": "2026-10-25T00:31:59Z", + "download_count": 0, + "size": 18682250 }, { - "name": "conduit-connector-mysql_0.2.0_Windows_x86_64.tar.gz", - "os": "windows", + "name": "postgres_v0.18.0_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.2.0/conduit-connector-mysql_0.2.0_Windows_x86_64.tar.gz", - "created_at": "2025-05-12T10:59:38Z", - "updated_at": "2025-05-12T10:59:38Z", - "download_count": 67, - "size": 9760336 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.1.4", - "name": "v0.1.4", - "body": "## Changelog\n* bf9780ad2cf67b5bac9ff1bdc99c0aaa8be88224: Add record batch support and multicollection mode (#114) (@alarbada)\n* 3f29cf07562986e345134c69bc8d1fe9b829349b: Bug: some records could be lost during CDC-iterator read (#120) (@derElektrobesen)\n* 390ae593d22ef19046039f35fda57d450902f710: Composite key (#107) (@alarbada)\n* e1077087bf52f72b0ec5b12c32bdc18bd7a35339: Feature: add new noSnapshot source config parameter (#131) (@alarbada)\n* fbbc3eec85eccfe11937b1152cd941a38dedab22: Fix snapshot.enabled functionality (#141) (@alarbada)\n* b5af108cb210deb6ff03bca5f561cccb8af26052: Schema generation fix: some mysql types could contain integers in parenthesis (#115) (@derElektrobesen)\n* 929bb19f2b8f436ee1c425dd7d4e09728a41579f: add record structure description (#132) (@alarbada)\n* 0741573303fd9629bd37a25713f2ad092f57f1de: pass regexes to canal cdc iterator (#124) (@nickchomey)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-05-12T10:19:33Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.4", - "assets": [ + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:31:58Z", + "updated_at": "2026-10-25T00:31:59Z", + "download_count": 0, + "size": 9502 + }, { - "name": "conduit-connector-mysql_0.1.4_Darwin_arm64.tar.gz", + "name": "postgres_v0.18.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Darwin_arm64.tar.gz", - "created_at": "2025-05-12T10:19:31Z", - "updated_at": "2025-05-12T10:19:32Z", - "download_count": 6, - "size": 9219939 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:32:23Z", + "updated_at": "2026-10-25T00:32:24Z", + "download_count": 0, + "size": 17608558 }, { - "name": "conduit-connector-mysql_0.1.4_Darwin_x86_64.tar.gz", + "name": "postgres_v0.18.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Darwin_x86_64.tar.gz", - "created_at": "2025-05-12T10:19:31Z", - "updated_at": "2025-05-12T10:19:31Z", - "download_count": 5, - "size": 9725842 + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:32:23Z", + "updated_at": "2026-10-25T00:32:23Z", + "download_count": 0, + "size": 9408 }, { - "name": "conduit-connector-mysql_0.1.4_Linux_arm64.tar.gz", + "name": "postgres_v0.18.0_linux_amd64.tar.gz", "os": "linux", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Linux_arm64.tar.gz", - "created_at": "2025-05-12T10:19:31Z", - "updated_at": "2025-05-12T10:19:31Z", - "download_count": 7, - "size": 8744805 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_amd64.tar.gz", + "created_at": "2026-10-25T00:31:08Z", + "updated_at": "2026-10-25T00:31:09Z", + "download_count": 0, + "size": 17875231 }, { - "name": "conduit-connector-mysql_0.1.4_Linux_x86_64.tar.gz", + "name": "postgres_v0.18.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Linux_x86_64.tar.gz", - "created_at": "2025-05-12T10:19:32Z", - "updated_at": "2025-05-12T10:19:32Z", - "download_count": 5, - "size": 9504011 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:31:08Z", + "updated_at": "2026-10-25T00:31:08Z", + "download_count": 0, + "size": 9490 }, { - "name": "conduit-connector-mysql_0.1.4_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Windows_arm64.tar.gz", - "created_at": "2025-05-12T10:19:32Z", - "updated_at": "2025-05-12T10:19:32Z", - "download_count": 5, - "size": 8849330 + "name": "postgres_v0.18.0_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_arm64.tar.gz", + "created_at": "2026-10-25T00:31:34Z", + "updated_at": "2026-10-25T00:31:35Z", + "download_count": 0, + "size": 16434514 }, { - "name": "conduit-connector-mysql_0.1.4_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.4/conduit-connector-mysql_0.1.4_Windows_x86_64.tar.gz", - "created_at": "2025-05-12T10:19:31Z", - "updated_at": "2025-05-12T10:19:32Z", - "download_count": 5, - "size": 9760330 + "name": "postgres_v0.18.0_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.18.0/postgres_v0.18.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:31:34Z", + "updated_at": "2026-10-25T00:31:34Z", + "download_count": 0, + "size": 9490 } ], - "is_latest": false + "is_latest": true }, { - "tag_name": "v0.1.3", - "name": "v0.1.3", - "body": "## Changelog\n* f8a5e2aba6239aeecbb6096d9ea92d069c27253c: Rename project_automation.yaml to project-automation.yml (#103) (@simonl2002)\n* fa1a9392e839c09bee752265feba63d1d2bd5b26: Update SDK to v0.13.2 (#112) (@hariso)\n* 61bc508b85ea6fc8c902457fa7eb4c1aa759192c: update connector spec description (#104) (@alarbada)\n\n", + "tag_name": "v0.17.5", + "name": "v0.17.5", + "body": "## What's Changed\n* fix: keep record keys and row data out of trace and debug logs by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/446\n* ci: external-state chaos suite (slot, privileges, network, volume restore) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/451\n* ci: guard mutation gate for source/logrepl by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/452\n* fix(source): do not put primary key values or out-of-range timestamps in errors by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/450\n* fix(destination): do not repeat row values in statement errors by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/453\n* fix(source): log hashes of the snapshot fetcher's key bounds by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/454\n* fix(source): refuse a replication slot that was replaced under the same name (#442, Tier 1, v0.17.5) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/447\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.17.4...v0.17.5", "draft": false, "prerelease": false, - "published_at": "2025-03-18T12:52:02Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.3", + "published_at": "2026-10-24T17:13:20Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.5", "assets": [ { - "name": "conduit-connector-mysql_0.1.3_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Darwin_arm64.tar.gz", - "created_at": "2025-03-18T12:52:00Z", - "updated_at": "2025-03-18T12:52:01Z", - "download_count": 8, - "size": 9000963 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Darwin_arm64.tar.gz", + "created_at": "2026-10-24T17:19:05Z", + "updated_at": "2026-10-24T17:19:05Z", + "download_count": 0, + "size": 8885344 }, { - "name": "conduit-connector-mysql_0.1.3_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Darwin_x86_64.tar.gz", - "created_at": "2025-03-18T12:52:00Z", - "updated_at": "2025-03-18T12:52:01Z", - "download_count": 9, - "size": 9457997 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Darwin_x86_64.tar.gz", + "created_at": "2026-10-24T17:19:03Z", + "updated_at": "2026-10-24T17:19:04Z", + "download_count": 0, + "size": 9581431 }, { - "name": "conduit-connector-mysql_0.1.3_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Linux_arm64.tar.gz", - "created_at": "2025-03-18T12:52:00Z", - "updated_at": "2025-03-18T12:52:01Z", - "download_count": 7, - "size": 8536980 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Linux_arm64.tar.gz", + "created_at": "2026-10-24T17:19:03Z", + "updated_at": "2026-10-24T17:19:04Z", + "download_count": 0, + "size": 8454502 }, { - "name": "conduit-connector-mysql_0.1.3_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Linux_i386.tar.gz", + "created_at": "2026-10-24T17:19:05Z", + "updated_at": "2026-10-24T17:19:05Z", + "download_count": 0, + "size": 8883742 + }, + { + "name": "conduit-connector-postgres_0.17.5_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Linux_x86_64.tar.gz", - "created_at": "2025-03-18T12:52:01Z", - "updated_at": "2025-03-18T12:52:02Z", - "download_count": 9, - "size": 9238529 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Linux_x86_64.tar.gz", + "created_at": "2026-10-24T17:19:03Z", + "updated_at": "2026-10-24T17:19:04Z", + "download_count": 0, + "size": 9341821 }, { - "name": "conduit-connector-mysql_0.1.3_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Windows_arm64.tar.gz", - "created_at": "2025-03-18T12:52:01Z", - "updated_at": "2025-03-18T12:52:02Z", - "download_count": 8, - "size": 8643208 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Windows_arm64.tar.gz", + "created_at": "2026-10-24T17:19:03Z", + "updated_at": "2026-10-24T17:19:04Z", + "download_count": 0, + "size": 8554458 }, { - "name": "conduit-connector-mysql_0.1.3_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.5_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Windows_i386.tar.gz", + "created_at": "2026-10-24T17:19:05Z", + "updated_at": "2026-10-24T17:19:06Z", + "download_count": 0, + "size": 9286614 + }, + { + "name": "conduit-connector-postgres_0.17.5_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.3/conduit-connector-mysql_0.1.3_Windows_x86_64.tar.gz", - "created_at": "2025-03-18T12:52:00Z", - "updated_at": "2025-03-18T12:52:01Z", - "download_count": 9, - "size": 9503195 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/conduit-connector-postgres_0.17.5_Windows_x86_64.tar.gz", + "created_at": "2026-10-24T17:19:05Z", + "updated_at": "2026-10-24T17:19:06Z", + "download_count": 0, + "size": 9623185 + }, + { + "name": "postgres_v0.17.5_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_darwin_amd64.tar.gz", + "created_at": "2026-10-24T17:14:57Z", + "updated_at": "2026-10-24T17:14:58Z", + "download_count": 0, + "size": 18637459 + }, + { + "name": "postgres_v0.17.5_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-24T17:14:57Z", + "updated_at": "2026-10-24T17:14:58Z", + "download_count": 0, + "size": 9549 + }, + { + "name": "postgres_v0.17.5_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_darwin_arm64.tar.gz", + "created_at": "2026-10-24T17:15:27Z", + "updated_at": "2026-10-24T17:15:28Z", + "download_count": 0, + "size": 17563720 + }, + { + "name": "postgres_v0.17.5_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-24T17:15:27Z", + "updated_at": "2026-10-24T17:15:27Z", + "download_count": 0, + "size": 9361 + }, + { + "name": "postgres_v0.17.5_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_linux_amd64.tar.gz", + "created_at": "2026-10-24T17:13:58Z", + "updated_at": "2026-10-24T17:13:59Z", + "download_count": 0, + "size": 17831256 + }, + { + "name": "postgres_v0.17.5_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-24T17:13:58Z", + "updated_at": "2026-10-24T17:13:58Z", + "download_count": 0, + "size": 9541 + }, + { + "name": "postgres_v0.17.5_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_linux_arm64.tar.gz", + "created_at": "2026-10-24T17:14:28Z", + "updated_at": "2026-10-24T17:14:29Z", + "download_count": 0, + "size": 16391963 + }, + { + "name": "postgres_v0.17.5_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.5/postgres_v0.17.5_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-24T17:14:28Z", + "updated_at": "2026-10-24T17:14:28Z", + "download_count": 0, + "size": 9506 } ], "is_latest": false }, { - "tag_name": "v0.1.2", - "name": "v0.1.2", - "body": "## Changelog\n* 1d0d0ee58f3c98669812e81d3b8aad8f02ddb5c3: fix (#101) (@alarbada)\n\n", + "tag_name": "v0.17.4", + "name": "v0.17.4", + "body": "## What's Changed\n* fix(source): warn when allowWALGap recreates a slot dropped after the check by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/445\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.17.3...v0.17.4", "draft": false, "prerelease": false, - "published_at": "2025-02-25T07:06:33Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.2", + "published_at": "2026-10-21T22:17:08Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.4", "assets": [ { - "name": "conduit-connector-mysql_0.1.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Darwin_arm64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:33Z", - "download_count": 7, - "size": 9000909 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Darwin_arm64.tar.gz", + "created_at": "2026-10-21T22:20:04Z", + "updated_at": "2026-10-21T22:20:05Z", + "download_count": 0, + "size": 8837918 }, { - "name": "conduit-connector-mysql_0.1.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Darwin_x86_64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:33Z", - "download_count": 6, - "size": 9458964 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Darwin_x86_64.tar.gz", + "created_at": "2026-10-21T22:20:03Z", + "updated_at": "2026-10-21T22:20:03Z", + "download_count": 0, + "size": 9523542 }, { - "name": "conduit-connector-mysql_0.1.2_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Linux_arm64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:32Z", - "download_count": 7, - "size": 8537878 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Linux_arm64.tar.gz", + "created_at": "2026-10-21T22:20:04Z", + "updated_at": "2026-10-21T22:20:05Z", + "download_count": 0, + "size": 8401551 }, { - "name": "conduit-connector-mysql_0.1.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Linux_i386.tar.gz", + "os": "linux", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Linux_i386.tar.gz", + "created_at": "2026-10-21T22:20:04Z", + "updated_at": "2026-10-21T22:20:05Z", + "download_count": 0, + "size": 8827809 + }, + { + "name": "conduit-connector-postgres_0.17.4_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Linux_x86_64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:32Z", - "download_count": 6, - "size": 9239906 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Linux_x86_64.tar.gz", + "created_at": "2026-10-21T22:20:03Z", + "updated_at": "2026-10-21T22:20:06Z", + "download_count": 0, + "size": 9286021 }, { - "name": "conduit-connector-mysql_0.1.2_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Windows_arm64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:32Z", - "download_count": 5, - "size": 8639383 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Windows_arm64.tar.gz", + "created_at": "2026-10-21T22:20:03Z", + "updated_at": "2026-10-21T22:20:03Z", + "download_count": 0, + "size": 8504142 }, { - "name": "conduit-connector-mysql_0.1.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.4_Windows_i386.tar.gz", + "os": "windows", + "arch": "386", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Windows_i386.tar.gz", + "created_at": "2026-10-21T22:20:03Z", + "updated_at": "2026-10-21T22:20:03Z", + "download_count": 0, + "size": 9229082 + }, + { + "name": "conduit-connector-postgres_0.17.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-mysql/releases/download/v0.1.2/conduit-connector-mysql_0.1.2_Windows_x86_64.tar.gz", - "created_at": "2025-02-25T07:06:32Z", - "updated_at": "2025-02-25T07:06:32Z", - "download_count": 7, - "size": 9506121 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.1.1", - "name": "v0.1.1", - "body": "## What's Changed\r\n* Select tables via a list of include/exclude regexes by @nickchomey in https://github.com/conduitio-labs/conduit-connector-mysql/pull/54\r\n* MySQL 5.5 support (with CI fix) by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/94\r\n\r\n**Full Changelog**: https://github.com/conduitio-labs/conduit-connector-mysql/compare/v0.1.0...v0.1.1", - "draft": false, - "prerelease": false, - "published_at": "2025-02-13T16:10:23Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.1", - "assets": null, - "is_latest": false - }, - { - "tag_name": "v0.1.0", - "name": "v0.1.0", - "body": "## What's Changed\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.58.1 to 1.59.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/1\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.59.0 to 1.59.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/3\r\n* .github: Bump goreleaser/goreleaser-action from 5 to 6 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/2\r\n* Setup source snapshot iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/4\r\n* go.mod: bump github.com/jmoiron/sqlx from 1.3.5 to 1.4.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/9\r\n* update readme by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/7\r\n* fix code owners by @raulb in https://github.com/conduitio-labs/conduit-connector-mysql/pull/11\r\n* .github: Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/14\r\n* Setup test utilities and restructure project by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/21\r\n* change params to url by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/10\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.2.0 to 0.3.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/39\r\n* Add project automation by @hariso in https://github.com/conduitio-labs/conduit-connector-mysql/pull/37\r\n* Add cdc iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/22\r\n* Add combined iterator by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/23\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.9.1 to 0.10.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/38\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.59.1 to 1.60.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/40\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.8.0 to 1.9.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/42\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.1 to 1.60.2 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/41\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.2 to 1.60.3 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/43\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.60.3 to 1.61.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/46\r\n* Implement consistent snapshot strategy by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/24\r\n* Update docs by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/44\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.10.0 to 0.10.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/48\r\n* Update README.md by @maha-hajja in https://github.com/conduitio-labs/conduit-connector-mysql/pull/47\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.9.0 to 1.9.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/49\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.10.1 to 0.11.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/60\r\n* prevent avro uint64 encoding failure by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/58\r\n* Add destination connector by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/45\r\n* Fixes naïve snapshot iteration by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/59\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.11.0 to 0.11.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/71\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.4.0 to 0.5.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/72\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.61.0 to 1.62.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/74\r\n* Destination docs by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/67\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.62.0 to 1.62.2 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/77\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.9.1 to 1.10.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/76\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.11.1 to 0.12.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/73\r\n* Smarter and more flexible table configuration by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/69\r\n* Add unsafe snapshot parameter by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/75\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.62.2 to 1.63.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/80\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.63.1 to 1.63.3 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/81\r\n* go.mod: bump github.com/golangci/golangci-lint from 1.63.3 to 1.63.4 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/82\r\n* migrate tests to gorm by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/78\r\n* go.mod: bump github.com/go-mysql-org/go-mysql from 1.10.0 to 1.11.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/84\r\n* .github: Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/85\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.12.0 to 0.13.0 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/87\r\n* go.mod: bump github.com/conduitio/conduit-commons from 0.5.0 to 0.5.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/88\r\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.13.0 to 0.13.1 by @dependabot in https://github.com/conduitio-labs/conduit-connector-mysql/pull/89\r\n* Schema support by @alarbada in https://github.com/conduitio-labs/conduit-connector-mysql/pull/79\r\n* Add support for get all tables wildcard by @nickchomey in https://github.com/conduitio-labs/conduit-connector-mysql/pull/51\r\n* Fix config parsing by @derElektrobesen in https://github.com/conduitio-labs/conduit-connector-mysql/pull/90\r\n\r\n## New Contributors\r\n* @raulb made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/11\r\n* @hariso made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/37\r\n* @maha-hajja made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/47\r\n* @nickchomey made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/51\r\n* @derElektrobesen made their first contribution in https://github.com/conduitio-labs/conduit-connector-mysql/pull/90\r\n\r\n**Full Changelog**: https://github.com/conduitio-labs/conduit-connector-mysql/commits/v0.1.0", - "draft": false, - "prerelease": false, - "published_at": "2025-02-10T12:41:08Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-mysql/releases/tag/v0.1.0", - "assets": null, + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/conduit-connector-postgres_0.17.4_Windows_x86_64.tar.gz", + "created_at": "2026-10-21T22:20:05Z", + "updated_at": "2026-10-21T22:20:06Z", + "download_count": 0, + "size": 9568696 + }, + { + "name": "postgres_v0.17.4_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_darwin_amd64.tar.gz", + "created_at": "2026-10-21T22:19:27Z", + "updated_at": "2026-10-21T22:19:28Z", + "download_count": 0, + "size": 18543636 + }, + { + "name": "postgres_v0.17.4_darwin_amd64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:19:27Z", + "updated_at": "2026-10-21T22:19:27Z", + "download_count": 0, + "size": 9443 + }, + { + "name": "postgres_v0.17.4_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_darwin_arm64.tar.gz", + "created_at": "2026-10-21T22:20:18Z", + "updated_at": "2026-10-21T22:20:19Z", + "download_count": 0, + "size": 17481136 + }, + { + "name": "postgres_v0.17.4_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:20:18Z", + "updated_at": "2026-10-21T22:20:18Z", + "download_count": 0, + "size": 9549 + }, + { + "name": "postgres_v0.17.4_linux_amd64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_linux_amd64.tar.gz", + "created_at": "2026-10-21T22:18:01Z", + "updated_at": "2026-10-21T22:18:02Z", + "download_count": 0, + "size": 17742087 + }, + { + "name": "postgres_v0.17.4_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:18:01Z", + "updated_at": "2026-10-21T22:18:01Z", + "download_count": 0, + "size": 9549 + }, + { + "name": "postgres_v0.17.4_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_linux_arm64.tar.gz", + "created_at": "2026-10-21T22:18:44Z", + "updated_at": "2026-10-21T22:18:45Z", + "download_count": 0, + "size": 16315536 + }, + { + "name": "postgres_v0.17.4_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.4/postgres_v0.17.4_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:18:44Z", + "updated_at": "2026-10-21T22:18:44Z", + "download_count": 0, + "size": 9459 + } + ], "is_latest": false - } - ] - }, - { - "name_with_owner": "ConduitIO/conduit-connector-pgvector", - "description": "Conduit destination connector for pgvector (Postgres vector store). RAG-from-Postgres sink. Part of Conduit v0.20 (WS8).", - "created_at": "2026-07-26 21:12:04 +0000 UTC", - "url": "https://github.com/ConduitIO/conduit-connector-pgvector", - "stargazer_count": 0, - "fork_count": 0, - "releases": [ + }, { - "tag_name": "v0.1.1", - "name": "v0.1.1", - "body": "## conduit-connector-pgvector v0.1.1\n\nToolchain and SDK release. No connector code changes.\n\n- Built with Go 1.26.9; `go.mod` moves to `go 1.26.9`.\n- `conduit-commons` v0.8.0 and `conduit-connector-sdk` v0.15.0.\n- Through SDK v0.15.0, the destination's `Teardown` now waits for a running `Write` (at most one minute or until its context ends) instead of tearing down underneath it; a batch that arrives after teardown started is redelivered on restart, not acknowledged (conduit-connector-sdk#401).\n- `hamba/avro` is no longer in the dependency graph.\n\nInstall with `conduit connectors install pgvector`.\n\n**Full changelog**: https://github.com/ConduitIO/conduit-connector-pgvector/compare/v0.1.0...v0.1.1\n", + "tag_name": "v0.17.3", + "name": "v0.17.3", + "body": "## What's Changed\n* fix(source): fail loudly when the replication slot no longer covers the saved position by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/441\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.17.2...v0.17.3", "draft": false, "prerelease": false, - "published_at": "2026-10-13T07:30:40Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-pgvector/releases/tag/v0.1.1", + "published_at": "2026-10-21T19:19:07Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.3", "assets": [ { - "name": "conduit-connector-pgvector_0.1.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:33:46Z", - "updated_at": "2026-10-13T07:33:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Darwin_arm64.tar.gz", + "created_at": "2026-10-21T19:23:12Z", + "updated_at": "2026-10-21T19:23:13Z", "download_count": 0, - "size": 8246311 + "size": 8835603 }, { - "name": "conduit-connector-pgvector_0.1.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Darwin_x86_64.tar.gz", - "created_at": "2026-10-13T07:33:48Z", - "updated_at": "2026-10-13T07:33:49Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Darwin_x86_64.tar.gz", + "created_at": "2026-10-21T19:23:12Z", + "updated_at": "2026-10-21T19:23:13Z", "download_count": 0, - "size": 8896318 + "size": 9522991 }, { - "name": "conduit-connector-pgvector_0.1.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_arm64.tar.gz", - "created_at": "2026-10-13T07:33:48Z", - "updated_at": "2026-10-13T07:33:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Linux_arm64.tar.gz", + "created_at": "2026-10-21T19:23:12Z", + "updated_at": "2026-10-21T19:23:13Z", "download_count": 0, - "size": 7843348 + "size": 8400124 }, { - "name": "conduit-connector-pgvector_0.1.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_i386.tar.gz", - "created_at": "2026-10-13T07:33:48Z", - "updated_at": "2026-10-13T07:33:49Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Linux_i386.tar.gz", + "created_at": "2026-10-21T19:23:12Z", + "updated_at": "2026-10-21T19:23:13Z", "download_count": 0, - "size": 8248758 + "size": 8826215 }, { - "name": "conduit-connector-pgvector_0.1.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Linux_x86_64.tar.gz", - "created_at": "2026-10-13T07:33:46Z", - "updated_at": "2026-10-13T07:33:47Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Linux_x86_64.tar.gz", + "created_at": "2026-10-21T19:23:14Z", + "updated_at": "2026-10-21T19:23:14Z", "download_count": 0, - "size": 8676505 + "size": 9284838 }, { - "name": "conduit-connector-pgvector_0.1.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_arm64.tar.gz", - "created_at": "2026-10-13T07:33:46Z", - "updated_at": "2026-10-13T07:33:47Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Windows_arm64.tar.gz", + "created_at": "2026-10-21T19:23:13Z", + "updated_at": "2026-10-21T19:23:14Z", "download_count": 0, - "size": 7944303 + "size": 8501151 }, { - "name": "conduit-connector-pgvector_0.1.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_i386.tar.gz", - "created_at": "2026-10-13T07:33:46Z", - "updated_at": "2026-10-13T07:33:47Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Windows_i386.tar.gz", + "created_at": "2026-10-21T19:23:13Z", + "updated_at": "2026-10-21T19:23:14Z", "download_count": 0, - "size": 8626006 + "size": 9227595 }, { - "name": "conduit-connector-pgvector_0.1.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.3_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/conduit-connector-pgvector_0.1.1_Windows_x86_64.tar.gz", - "created_at": "2026-10-13T07:33:48Z", - "updated_at": "2026-10-13T07:33:49Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/conduit-connector-postgres_0.17.3_Windows_x86_64.tar.gz", + "created_at": "2026-10-21T19:23:13Z", + "updated_at": "2026-10-21T19:23:14Z", "download_count": 0, - "size": 8941599 + "size": 9566839 }, { - "name": "pgvector_v0.1.1_darwin_amd64.tar.gz", + "name": "postgres_v0.17.3_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_amd64.tar.gz", - "created_at": "2026-10-13T07:32:23Z", - "updated_at": "2026-10-13T07:32:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_darwin_amd64.tar.gz", + "created_at": "2026-10-21T19:20:32Z", + "updated_at": "2026-10-21T19:20:34Z", "download_count": 0, - "size": 8761770 + "size": 18542047 }, { - "name": "pgvector_v0.1.1_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.17.3_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:32:23Z", - "updated_at": "2026-10-13T07:32:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T19:20:32Z", + "updated_at": "2026-10-21T19:20:33Z", "download_count": 0, - "size": 9460 + "size": 9600 }, { - "name": "pgvector_v0.1.1_darwin_arm64.tar.gz", + "name": "postgres_v0.17.3_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_arm64.tar.gz", - "created_at": "2026-10-13T07:32:54Z", - "updated_at": "2026-10-13T07:32:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_darwin_arm64.tar.gz", + "created_at": "2026-10-21T19:20:57Z", + "updated_at": "2026-10-21T19:20:58Z", "download_count": 0, - "size": 8077294 + "size": 17478203 }, { - "name": "pgvector_v0.1.1_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.17.3_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:32:54Z", - "updated_at": "2026-10-13T07:32:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T19:20:57Z", + "updated_at": "2026-10-21T19:20:57Z", "download_count": 0, - "size": 9413 + "size": 9455 }, { - "name": "pgvector_v0.1.1_linux_amd64.tar.gz", + "name": "postgres_v0.17.3_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_amd64.tar.gz", - "created_at": "2026-10-13T07:31:18Z", - "updated_at": "2026-10-13T07:31:19Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_linux_amd64.tar.gz", + "created_at": "2026-10-21T19:19:40Z", + "updated_at": "2026-10-21T19:19:42Z", "download_count": 0, - "size": 8549818 + "size": 17738901 }, { - "name": "pgvector_v0.1.1_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.17.3_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:18Z", - "updated_at": "2026-10-13T07:31:19Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T19:19:40Z", + "updated_at": "2026-10-21T19:19:41Z", "download_count": 0, - "size": 9370 + "size": 9408 }, { - "name": "pgvector_v0.1.1_linux_arm64.tar.gz", + "name": "postgres_v0.17.3_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_arm64.tar.gz", - "created_at": "2026-10-13T07:31:51Z", - "updated_at": "2026-10-13T07:31:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_linux_arm64.tar.gz", + "created_at": "2026-10-21T19:20:07Z", + "updated_at": "2026-10-21T19:20:08Z", "download_count": 0, - "size": 7682398 + "size": 16312463 }, { - "name": "pgvector_v0.1.1_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.17.3_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.1/pgvector_v0.1.1_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-13T07:31:50Z", - "updated_at": "2026-10-13T07:31:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.3/postgres_v0.17.3_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T19:20:07Z", + "updated_at": "2026-10-21T19:20:07Z", "download_count": 0, - "size": 9323 + "size": 9506 } ], - "is_latest": true + "is_latest": false }, { - "tag_name": "v0.1.0", - "name": "v0.1.0", - "body": "## What's Changed\n* feat(destination): pgvector destination — slice 1 (config, dimension validation, upsert) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/1\n* feat(destination): delete-by-source_key fan-out + SDK acceptance suite (slice 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/8\n* fix(deps): bump grpc, x/text, pgx to clear reachable CVEs (22 -\u003e 18) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/10\n* ci: add release + registry-publish plumbing by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-pgvector/pull/9\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-pgvector/pull/1\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-pgvector/commits/v0.1.0", + "tag_name": "v0.14.6", + "name": "v0.14.6", + "body": "## What's Changed\n* fix(source): fail loudly when the replication slot no longer covers the saved position (backport #441) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/444\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.5...v0.14.6", "draft": false, "prerelease": false, - "published_at": "2026-08-24T22:38:43Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-pgvector/releases/tag/v0.1.0", + "published_at": "2026-10-21T22:22:56Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.6", "assets": [ { - "name": "conduit-connector-pgvector_0.1.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Darwin_arm64.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:42Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Darwin_arm64.tar.gz", + "created_at": "2026-10-21T22:30:25Z", + "updated_at": "2026-10-21T22:30:25Z", "download_count": 0, - "size": 7415455 + "size": 7790146 }, { - "name": "conduit-connector-pgvector_0.1.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Darwin_x86_64.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:41Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Darwin_x86_64.tar.gz", + "created_at": "2026-10-21T22:30:25Z", + "updated_at": "2026-10-21T22:30:25Z", "download_count": 0, - "size": 7966172 + "size": 8367875 }, { - "name": "conduit-connector-pgvector_0.1.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_arm64.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:42Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Linux_arm64.tar.gz", + "created_at": "2026-10-21T22:30:26Z", + "updated_at": "2026-10-21T22:30:27Z", "download_count": 0, - "size": 7062162 + "size": 7422920 }, { - "name": "conduit-connector-pgvector_0.1.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_i386.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:41Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Linux_i386.tar.gz", + "created_at": "2026-10-21T22:30:25Z", + "updated_at": "2026-10-21T22:30:25Z", "download_count": 0, - "size": 7395949 + "size": 7758252 }, { - "name": "conduit-connector-pgvector_0.1.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Linux_x86_64.tar.gz", - "created_at": "2026-08-24T22:42:42Z", - "updated_at": "2026-08-24T22:42:43Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Linux_x86_64.tar.gz", + "created_at": "2026-10-21T22:30:25Z", + "updated_at": "2026-10-21T22:30:25Z", "download_count": 0, - "size": 7777081 + "size": 8172090 }, { - "name": "conduit-connector-pgvector_0.1.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_arm64.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:42Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Windows_arm64.tar.gz", + "created_at": "2026-10-21T22:30:26Z", + "updated_at": "2026-10-21T22:30:27Z", "download_count": 0, - "size": 7159415 + "size": 7510559 }, { - "name": "conduit-connector-pgvector_0.1.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_i386.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:41Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Windows_i386.tar.gz", + "created_at": "2026-10-21T22:30:26Z", + "updated_at": "2026-10-21T22:30:27Z", "download_count": 0, - "size": 7732265 + "size": 8105646 }, { - "name": "conduit-connector-pgvector_0.1.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.6_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/conduit-connector-pgvector_0.1.0_Windows_x86_64.tar.gz", - "created_at": "2026-08-24T22:42:41Z", - "updated_at": "2026-08-24T22:42:42Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/conduit-connector-postgres_0.14.6_Windows_x86_64.tar.gz", + "created_at": "2026-10-21T22:30:26Z", + "updated_at": "2026-10-21T22:30:27Z", "download_count": 0, - "size": 8030066 + "size": 8428752 }, { - "name": "pgvector_v0.1.0_darwin_amd64.tar.gz", + "name": "postgres_v0.14.6_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_amd64.tar.gz", - "created_at": "2026-08-24T22:40:22Z", - "updated_at": "2026-08-24T22:40:23Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_darwin_amd64.tar.gz", + "created_at": "2026-10-21T22:24:46Z", + "updated_at": "2026-10-21T22:24:47Z", "download_count": 0, - "size": 7851691 + "size": 16296270 }, { - "name": "pgvector_v0.1.0_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.6_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-08-24T22:40:22Z", - "updated_at": "2026-08-24T22:40:22Z", - "download_count": 10, - "size": 9576 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:24:46Z", + "updated_at": "2026-10-21T22:24:46Z", + "download_count": 0, + "size": 9490 }, { - "name": "pgvector_v0.1.0_darwin_arm64.tar.gz", + "name": "postgres_v0.14.6_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_arm64.tar.gz", - "created_at": "2026-08-24T22:40:54Z", - "updated_at": "2026-08-24T22:40:54Z", - "download_count": 1, - "size": 7279055 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_darwin_arm64.tar.gz", + "created_at": "2026-10-21T22:25:20Z", + "updated_at": "2026-10-21T22:25:21Z", + "download_count": 0, + "size": 15396304 }, { - "name": "pgvector_v0.1.0_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.6_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-08-24T22:40:54Z", - "updated_at": "2026-08-24T22:40:54Z", - "download_count": 11, - "size": 9486 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:25:20Z", + "updated_at": "2026-10-21T22:25:21Z", + "download_count": 0, + "size": 9635 }, { - "name": "pgvector_v0.1.0_linux_amd64.tar.gz", + "name": "postgres_v0.14.6_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_amd64.tar.gz", - "created_at": "2026-08-24T22:39:20Z", - "updated_at": "2026-08-24T22:39:20Z", - "download_count": 1, - "size": 7676247 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_linux_amd64.tar.gz", + "created_at": "2026-10-21T22:23:38Z", + "updated_at": "2026-10-21T22:23:39Z", + "download_count": 0, + "size": 15630708 }, { - "name": "pgvector_v0.1.0_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.6_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-08-24T22:39:20Z", - "updated_at": "2026-08-24T22:39:20Z", - "download_count": 11, - "size": 9670 - }, - { - "name": "pgvector_v0.1.0_linux_arm64.tar.gz", - "os": "linux", - "arch": "arm64", - "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_arm64.tar.gz", - "created_at": "2026-08-24T22:39:51Z", - "updated_at": "2026-08-24T22:39:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:23:38Z", + "updated_at": "2026-10-21T22:23:38Z", "download_count": 0, - "size": 6932996 + "size": 9635 }, { - "name": "pgvector_v0.1.0_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.6_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", - "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-pgvector/releases/download/v0.1.0/pgvector_v0.1.0_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-08-24T22:39:51Z", - "updated_at": "2026-08-24T22:39:51Z", - "download_count": 11, - "size": 9670 - } - ], - "is_latest": false - } - ] - }, - { - "name_with_owner": "ConduitIO/conduit-connector-postgres", - "description": "Conduit connector for PostgreSQL", - "created_at": "2022-03-07 16:06:24 +0000 UTC", - "url": "https://github.com/ConduitIO/conduit-connector-postgres", - "stargazer_count": 20, - "fork_count": 13, - "releases": [ - { - "tag_name": "v0.17.0", - "name": "v0.17.0", - "body": "", - "draft": false, - "prerelease": false, - "published_at": "2026-10-19T05:58:08Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.0", - "assets": null, - "is_latest": true - }, - { - "tag_name": "v0.16.0", - "name": "v0.16.0", - "body": "", - "draft": false, - "prerelease": false, - "published_at": "2026-10-17T14:46:54Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.16.0", - "assets": [ - { - "name": "postgres_v0.16.0_darwin_arm64.tar.gz", - "os": "darwin", - "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.16.0/postgres_v0.16.0_darwin_arm64.tar.gz", - "created_at": "2026-10-17T14:47:09Z", - "updated_at": "2026-10-17T14:47:10Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_linux_arm64.tar.gz", + "created_at": "2026-10-21T22:24:12Z", + "updated_at": "2026-10-21T22:24:12Z", "download_count": 0, - "size": 17436782 + "size": 14422421 }, - { - "name": "postgres_v0.16.0_darwin_arm64.tar.gz.sigstore.json", - "os": "darwin", + { + "name": "postgres_v0.14.6_linux_arm64.tar.gz.sigstore.json", + "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.16.0/postgres_v0.16.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-17T14:47:09Z", - "updated_at": "2026-10-17T14:47:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.6/postgres_v0.14.6_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-21T22:24:12Z", + "updated_at": "2026-10-21T22:24:12Z", "download_count": 0, - "size": 9737 + "size": 9549 } ], "is_latest": false }, { - "tag_name": "v0.15.0", - "name": "v0.15.0", - "body": "## What's Changed\n* fix(logrepl): stop emitting unchanged TOASTed columns as NULL by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/317\n* docs(design): DBZ-3 Postgres CDC parity (v0.20 WS7) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/316\n* feat(source): DBZ-3 slice 1 — versioned position format + CDC carry-forward by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/318\n* feat(source): DBZ-3 Area 1 — resumable-snapshot low watermark + handoff re-seed by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/319\n* docs(design): record DeVaris's four DBZ-3 decisions by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/320\n* feat(source): DBZ-3 Area 1 step 3 — announce a resumed snapshot's degraded mode by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/321\n* feat(logrepl): DBZ-3 Area 2 step 1 — detect schema drift by diffing RelationMessages by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/322\n* feat(cdc): durable per-table schema history in the position (DBZ-3 Area 2 step 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/323\n* feat(chaos): fault-injection seam for the DBZ-3 kill harness (B0-1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/324\n* feat(chaos): process-kill harness core + no-kill smoke test (DBZ-3 B0-2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/325\n* refactor(logrepl): rename IsNarrowing to IsIncompatible (B1 prep) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/328\n* docs(design): DBZ-3 B1 schema-drift escape hatch (checkpoint-before-halt) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/327\n* feat(cdc): DBZ-3 B1 — schema-drift policy (halt/evolve, checkpoint-before-halt escape hatch) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/329\n* feat(cdc): DBZ-3 B2 - gate the slot advance on walFlushed == walWritten (heartbeat writer cut) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/332\n* fix(logrepl): key changes by (commit LSN, ordinal) so interleaved and COPY records are not lost (#331, main, stacked on #332) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/334\n* fix(logrepl): decide schema drift on the first delivered change, not the replayed Relation message (#335) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/337\n* fix(logrepl): the approving restart delivers the row that decided the drift (#338) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/339\n* fix(destination): batch acked although the commit failed (#342) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/350\n* chore: move to Go 1.26.9, replace archived hamba/avro with iskorotkov/avro (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/349\n* test: make RandomIdentifier unique within a process by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/355\n* fix(destination): Teardown closes the connection under a running Write (#354) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/356\n* fix(snapshot): wait for acks without leaking a goroutine on stop by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/362\n* docs(design): resume from a Debezium offset without a re-snapshot by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/341\n* fix(logrepl): ReadN deadline wedges CDC; panic when stopped during start (#346, #347) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/352\n* fix(logrepl): no Before for key-only old tuples; refuse identities without the key (#379, #380) (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/384\n* feat(logrepl): warn when a TRUNCATE is not propagated (#344, v0.20.1 part) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/359\n* fix(destination): let Postgres apply the live NUMERIC scale (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/365\n* fix(deps): bump grpc to v1.84.0 in tools/go.mod (alerts 60, 61, 63, 64) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/396\n* docs(source): runbook says how to check what the slot skip would drop (Tier 3) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/394\n* fix(logrepl): publish the drift marker state before queuing the marker (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/373\n* test: fix flaky TestSubscription_WithRepmgr, snapshot fetcher and CDC batching tests (#389, #390, #393) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/400\n* fix(types): host-timezone- and pgx-independent values; pgx \u003e= 5.9.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/361\n* fix(source): halt on NaN/Infinity numerics under Avro, emit them as text otherwise (#368) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/371\n* fix(source): unconstrained numeric is an Avro string holding the exact text (#375) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/381\n* fix(deps): keep pgx 5.7's SCRAM behaviour on main (channel_binding prefer -\u003e disable) (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/404\n* ci: run the SCRAM channel-binding TLS tests instead of skipping them by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/405\n* ci: pin GitHub Actions by commit SHA by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/409\n* fix(position): make the schema shape hash input injective by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/408\n* chore(deps): bump conduit-connector-sdk to v0.16.0 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/412\n* test: run the SDK acceptance suite v2 in CI (Tier 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/416\n* feat(dbzoffset): parse a Debezium Postgres offset and compute the resume point (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/411\n* feat(source): resume from a Debezium offset, logrepl.import.debeziumOffset (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/413\n* test(debezium): end-to-end offset import against real Debezium (Tier 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/414\n* fix(destination): keep records intact, write all-key tables, exact JSON integers, quote identifiers by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/415\n* test(position): property tests for the position format and resume by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/420\n* test: name the import rapid tests Property so the nightly runs them by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/426\n* ci: fail a PR whose rapid test would miss the nightly long run by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/428\n* fix(source): give Key, Before and After their own values (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/427\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.2...v0.15.0", + "tag_name": "v0.17.2", + "name": "v0.17.2", + "body": "**Security advisory:** [GHSA-rcwq-pcpp-gx9v](https://github.com/ConduitIO/conduit-connector-postgres/security/advisories/GHSA-rcwq-pcpp-gx9v)\n\n**Upgrade from v0.17.0 or v0.17.1 if the destination writes through PgBouncer.** Behind PgBouncer with\n`max_prepared_statements` above 0, those versions can store wrong values after a column type change, without an\nerror .\n\n### Fixed\n\n- **The destination's default query mode is `describe_exec` again** (#436). v0.17.0 made cached prepared\n statements (`cache_statement`) the default, with a check that throws the cache away when a table's columns\n change. That check only covers the destination's own statements. PgBouncer with `max_prepared_statements`\n above 0 shares prepared statements between its clients, so a destination that connected after an\n `ALTER TABLE ... ALTER COLUMN ... TYPE` could be handed a statement another client had prepared before it.\n Postgres then converted the values to the new type: 5/2 stored as 3, 5.5 stored as 5. The rows were written and\n the records acknowledged.\n\n `describe_exec` describes every statement before it runs it, so it always uses the current column types.\n `cache_statement` and `cache_describe` are still available and still checked, but only use them on a direct\n connection or behind a pooler that does not share prepared statements.\n\n- **A failed batch no longer wedges the destination.** When a value failed to encode partway through a batch\n (for example a value that no longer fit a cached parameter type after a column was widened), the connection was\n closed and every later write failed until the pipeline restarted. The destination now reconnects with an empty\n statement cache and retries the batch once. Nothing of such a batch was committed. If the value really does not\n fit, the error names the record that holds it.\n- **Lost or duplicate prepared statements are retried.** Behind PgBouncer with `max_prepared_statements=0`, batches\n in the cached modes failed with SQLSTATE 26000 or 42P05. They are now retried within the existing bound. With\n the new default this no longer comes up.\n- **A `default_query_exec_mode` set in a service file is respected** (`service=` or `PGSERVICE`). The destination\n used to replace it with its own default.\n- **A missing table fails with `postgres.destination.table_not_found`** and a fix hint. Running out of retries\n while the schema keeps changing fails with `postgres.destination.schema_churn`.\n\n### Behavior change\n\n- The default query mode changes from `cache_statement` to `describe_exec`: one extra round trip per batch. Only\n set a cached mode if you have measured the gain on your setup and connect directly or through a pooler that\n does not share prepared statements.\n- If you set `default_query_exec_mode=cache_statement` or `cache_describe` yourself, this release does not change\n it. Remove it behind PgBouncer.\n- Schema-check fires, reconnects and prepared-statement retries are logged at Info with the table name and running\n counts (`schema_changes_total`, `reconnects_total`, `stale_statement_retries_total`). They were logged at Debug.\n\n### Tests\n\n- The integration test stack now includes PgBouncer in transaction mode with prepared-statement tracking. A new\n test prepares a statement from one client, changes the column type, and writes from another: every stored\n value must be exact, or the write must be refused.\n\n### If you ran v0.17.0 or v0.17.1\n\nIf the destination wrote through PgBouncer or another statement-sharing pooler, list the column type changes on\nits tables while those versions ran, and compare the rows written after each change with the source. Look for\nnumbers rounded or truncated to the new type.\n\n### Upgrading\n\nDrop-in. No configuration or position change.\n\n---\n\n## What's Changed\n* fix(destination): default to describe_exec again, and recover from a closed connection and lost prepared statements (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/436\n* chore: update version to v0.17.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/439\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.17.1...v0.17.2\n", "draft": false, "prerelease": false, - "published_at": "2026-10-16T17:49:54Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.15.0", + "published_at": "2026-10-20T02:33:14Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.2", "assets": [ { - "name": "conduit-connector-postgres_0.15.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Darwin_arm64.tar.gz", - "created_at": "2026-10-16T17:53:52Z", - "updated_at": "2026-10-16T17:53:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:37:22Z", + "updated_at": "2026-10-20T02:37:23Z", "download_count": 0, - "size": 8715422 + "size": 8828756 }, { - "name": "conduit-connector-postgres_0.15.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Darwin_x86_64.tar.gz", - "created_at": "2026-10-16T17:53:50Z", - "updated_at": "2026-10-16T17:53:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:21Z", + "updated_at": "2026-10-20T02:37:22Z", "download_count": 0, - "size": 9397557 + "size": 9516887 }, { - "name": "conduit-connector-postgres_0.15.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_arm64.tar.gz", - "created_at": "2026-10-16T17:53:52Z", - "updated_at": "2026-10-16T17:53:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Linux_arm64.tar.gz", + "created_at": "2026-10-20T02:37:23Z", + "updated_at": "2026-10-20T02:37:23Z", "download_count": 0, - "size": 8287605 + "size": 8392816 }, { - "name": "conduit-connector-postgres_0.15.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_i386.tar.gz", - "created_at": "2026-10-16T17:53:51Z", - "updated_at": "2026-10-16T17:53:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Linux_i386.tar.gz", + "created_at": "2026-10-20T02:37:22Z", + "updated_at": "2026-10-20T02:37:23Z", "download_count": 0, - "size": 8702592 + "size": 8818085 }, { - "name": "conduit-connector-postgres_0.15.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_x86_64.tar.gz", - "created_at": "2026-10-16T17:53:50Z", - "updated_at": "2026-10-16T17:53:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:21Z", + "updated_at": "2026-10-20T02:37:22Z", "download_count": 0, - "size": 9163398 + "size": 9277291 }, { - "name": "conduit-connector-postgres_0.15.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_arm64.tar.gz", - "created_at": "2026-10-16T17:53:50Z", - "updated_at": "2026-10-16T17:53:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Windows_arm64.tar.gz", + "created_at": "2026-10-20T02:37:22Z", + "updated_at": "2026-10-20T02:37:22Z", "download_count": 0, - "size": 8390554 + "size": 8494194 }, { - "name": "conduit-connector-postgres_0.15.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_i386.tar.gz", - "created_at": "2026-10-16T17:53:52Z", - "updated_at": "2026-10-16T17:53:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Windows_i386.tar.gz", + "created_at": "2026-10-20T02:37:23Z", + "updated_at": "2026-10-20T02:37:23Z", "download_count": 0, - "size": 9101028 + "size": 9221567 }, { - "name": "conduit-connector-postgres_0.15.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.17.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_x86_64.tar.gz", - "created_at": "2026-10-16T17:53:50Z", - "updated_at": "2026-10-16T17:53:51Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/conduit-connector-postgres_0.17.2_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:21Z", + "updated_at": "2026-10-20T02:37:22Z", "download_count": 0, - "size": 9437692 + "size": 9560965 }, { - "name": "postgres_v0.15.0_darwin_amd64.tar.gz", + "name": "postgres_v0.17.2_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_amd64.tar.gz", - "created_at": "2026-10-16T17:52:01Z", - "updated_at": "2026-10-16T17:52:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_darwin_amd64.tar.gz", + "created_at": "2026-10-20T02:35:09Z", + "updated_at": "2026-10-20T02:35:10Z", "download_count": 0, - "size": 18309026 + "size": 18531437 }, { - "name": "postgres_v0.15.0_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.17.2_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-16T17:52:01Z", - "updated_at": "2026-10-16T17:52:01Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:35:09Z", + "updated_at": "2026-10-20T02:35:09Z", "download_count": 0, - "size": 9784 + "size": 9670 }, { - "name": "postgres_v0.15.0_darwin_arm64.tar.gz", + "name": "postgres_v0.17.2_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_arm64.tar.gz", - "created_at": "2026-10-16T17:52:41Z", - "updated_at": "2026-10-16T17:52:42Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:35:47Z", + "updated_at": "2026-10-20T02:35:48Z", "download_count": 0, - "size": 17260031 + "size": 17467822 }, { - "name": "postgres_v0.15.0_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.17.2_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-16T17:52:41Z", - "updated_at": "2026-10-16T17:52:41Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:35:47Z", + "updated_at": "2026-10-20T02:35:47Z", "download_count": 0, - "size": 9725 + "size": 9772 }, { - "name": "postgres_v0.15.0_linux_amd64.tar.gz", + "name": "postgres_v0.17.2_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_amd64.tar.gz", - "created_at": "2026-10-16T17:50:40Z", - "updated_at": "2026-10-16T17:50:41Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_linux_amd64.tar.gz", + "created_at": "2026-10-20T02:33:57Z", + "updated_at": "2026-10-20T02:33:58Z", "download_count": 0, - "size": 17521576 + "size": 17727753 }, { - "name": "postgres_v0.15.0_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.17.2_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-16T17:50:40Z", - "updated_at": "2026-10-16T17:50:40Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:33:56Z", + "updated_at": "2026-10-20T02:33:57Z", "download_count": 0, - "size": 9537 + "size": 9408 }, { - "name": "postgres_v0.15.0_linux_arm64.tar.gz", + "name": "postgres_v0.17.2_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_arm64.tar.gz", - "created_at": "2026-10-16T17:51:19Z", - "updated_at": "2026-10-16T17:51:21Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_linux_arm64.tar.gz", + "created_at": "2026-10-20T02:34:33Z", + "updated_at": "2026-10-20T02:34:34Z", "download_count": 0, - "size": 16104344 + "size": 16305401 }, { - "name": "postgres_v0.15.0_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.17.2_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-16T17:51:19Z", - "updated_at": "2026-10-16T17:51:20Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.17.2/postgres_v0.17.2_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:34:33Z", + "updated_at": "2026-10-20T02:34:33Z", "download_count": 0, - "size": 9596 + "size": 9318 } ], "is_latest": false }, { - "tag_name": "v0.14.4", - "name": "v0.14.4", - "body": "Patch release from the `release/v0.14.x` line. It ships in Conduit v0.20.1. Upgrade if you run the Postgres source or destination, and read \"Behaviour changes\" first: a few pipelines will stop after the upgrade on purpose.\n\n## Fixes\n\n### Data loss and wrong values\n\n- **The destination acked a batch whose commit failed (#342, fixed in #351).** `Write` sent the records as one batch, read one result per statement and discarded the error from closing the batch. Anything Postgres reports at COMMIT (deferred constraints, serialization failures) arrives only there. The transaction rolled back, `Write` reported every record written and the engine acked them. `Write` now returns the commit error with nothing written, so the records are retried. Present since v0.6.0.\n- **`DELETE` stopped Avro pipelines (#379, fixed in #385).** Since v0.11.0, with the default `logrepl.withAvroSchema: true`, a `DELETE` on a table with the default `REPLICA IDENTITY` and any column besides the primary key failed Avro encoding. The pipeline restarted on the same record forever while the slot retained WAL. A primary-key-changing `UPDATE` failed the same way.\n- **Deletes with a null key (#380, fixed in #385).** With `REPLICA IDENTITY USING INDEX` on an index that does not have the primary key among its key columns, deletes were emitted with a null key. The Postgres destination applied them as a no-op, so deleted rows stayed in the destination. The source now refuses this at `Open` (see below).\n- **Unchanged large (TOASTed) columns were written as NULL on `UPDATE` (#317, backported in #387).** Postgres does not resend an unchanged out-of-line value. The connector decoded the marker as `nil`, so a destination that replaces the whole row wrote NULL over the real value, and under `REPLICA IDENTITY FULL` with Avro on the source halted. The column is now omitted from the record under the default identity and carries the real value under `FULL`. Still open under the default identity with Avro on: #383.\n- **Destination NUMERIC scale (#364, fixed in #366).** The destination looked up and cached a column's scale and rounded client-side. After an `ALTER` it kept using the old scale, and unconstrained `numeric` columns were rounded to integers (2.50 stored as 3). It now sends an exact decimal string and Postgres applies the live precision and scale.\n- **`NaN` and `Infinity` in `numeric` panicked the source (#368, fixed in #372).** Under Avro the source now halts with `postgres.source.numeric_not_representable`; with Avro off it emits `\"NaN\"`, `\"Infinity\"` and `\"-Infinity\"` as text. Arrays are handled per element.\n- **Infinite dates and timestamps were silently rewritten (#372).** Under Avro, `date`, `timestamp` and `timestamptz` values of `infinity` / `-infinity` were written as `1970-01-02` / `1969-12-31`. The source now halts with `postgres.source.temporal_not_representable`; with Avro off they are the strings `\"infinity\"` and `\"-infinity\"`. Same per-element handling for arrays.\n- **Unconstrained `numeric` stopped at 10000 (#375, fixed in #382).** The Avro schema `decimal(65535, 65531)` leaves four digits before the point, so any value of 10000 or more failed to encode, and the source failed again after every restart. Such columns are now an Avro `string` holding the exact value.\n\n### Lifecycle and shutdown\n\n- **A read deadline could wedge CDC (#347, fixed in #353).** When the snapshot finished inside a `ReadN` call, the replication subscription started on that call's context. After the deadline expired, the subscription spun without delivering records, and `Stop` and `Teardown` could not end it. It now runs on the context the source was opened with.\n- **Panic when stopped while the subscription starts (#346, fixed in #353).** A stop between releasing the pooled connection and acquiring the replication connection dereferenced a nil connection. `Stop` could also be lost in that window. `Teardown` now waits for a starting subscription, the pooled connection is released exactly once, and a hung server is bounded to two seconds instead of holding the connection and the slot.\n- **Teardown closed the connection under a running `Write` (#354, fixed in #357).** This was a data race, and the SDK calls `Teardown` without `Stop` when a pipeline stops on an error. `Teardown` now cancels the in-flight write. The batch rolls back client side and `Write` returns an error, so nothing is acked and the records are redelivered. Postgres may still finish a statement that was waiting on a row lock, so a cancelled write can be applied and then redelivered. Keyed upserts absorb that; a table without a key can see a duplicate (at-least-once, as before).\n- **Snapshot goroutine leak on stop (fixed in #363).** Stopping with unacked snapshot records left one goroutine, and everything it referenced, parked forever. In an embedded engine the leak grew with every pipeline restart.\n- **TRUNCATE warning (#344, #360).** A `TRUNCATE` produces no record and used to produce no log line. The source now logs a WARN per truncated table, at most once a minute, with `table`, `lsn`, `cascade`, `restart_identity` and `suppressed` (each WARN stands for 1 + `suppressed` truncates). Nothing is emitted or acked differently. The warning appears only if the publication publishes `truncate`, which the one the connector creates does.\n\n### Dependencies\n\n- **pgx 5.7.5 to 5.9.2 (#398).** Fixes GO-2026-5004, which is reachable through `Destination.Write`, and the two advisories fixed in 5.9.0 (GO-2026-4771, GO-2026-4772; imported, not called). Records, destination writes and authentication are pinned to v0.14.3 behaviour by tests. `tsvector` stays text, and `channel_binding` stays disabled as in v0.14.3 (pgx 5.9 defaults to `prefer`; `require` is still opt-in).\n- **grpc 1.73.0 to 1.83.2 (#397).** Clears three grpc advisories that govulncheck reported as called. The `go` directive moves from 1.24.2 to 1.25.0 because grpc requires it. Building this connector from source now needs Go 1.25 or later.\n\n## Behaviour changes\n\n- **`DELETE` and primary-key-changing `UPDATE` no longer carry `Payload.Before` under `REPLICA IDENTITY DEFAULT` or `USING INDEX`.** The key is in `Key`, and a key-changing update no longer carries the old key. Set `REPLICA IDENTITY FULL` if you need the old row. Under `FULL` nothing changes.\n- **The source refuses `REPLICA IDENTITY USING INDEX` on an index without the primary key among its key columns, at `Open`, with `postgres.replica_identity.excludes_key` (#380).** An `INCLUDE` column does not count. A pipeline that reads such a table stops after the upgrade. Run `ALTER TABLE ... REPLICA IDENTITY FULL`, or use a unique index that has the primary key among its key columns. Check destinations fed from such tables for rows that should have been deleted. The README has a runbook (#395) for a stuck delete after the identity changes while a pipeline runs. It skips the stuck transaction with `pg_replication_slot_advance` on Postgres 11 or later, or with `pg_logical_slot_get_binary_changes` on Postgres 10, and says how to check what the skip would consume first. Skipping data is the operator's decision.\n- **Unchanged TOASTed columns are omitted, not NULL (#387).** A destination that replaces the whole row must treat a missing field as \"unchanged\". This connector's destination does.\n- **Infinite dates and timestamps halt under Avro (#372).** A pipeline that hit one today will stop after the upgrade. For change data capture, restart once with `logrepl.withAvroSchema: false` from the same position (the value arrives as text), then switch back. For a snapshot, `UPDATE` the row and restart. Removing the row does not help for a change already in the WAL, and do not drop the slot. A standalone connector (not built into Conduit) cannot send a finite `numeric` while Avro is off (#378), so the switch only helps there if no finite numeric is read in the meantime. Rows already written downstream as `1970-01-02` or `1969-12-31` are wrong and need to be repaired from the source.\n- **Unconstrained `numeric` is a string under Avro (#382).** The Go type changes from `*big.Rat` to `string` (with Avro off it stays `big.Rat`). `1.50` stays `1.50`. A consumer must handle `\"NaN\"`, `\"Infinity\"` and `\"-Infinity\"`. `numeric(p,s)` columns are unchanged. The table's schema gets a new version on the first record after the upgrade, and a reader that pins the old version does not cope. The Postgres destination writes the string to a numeric column exactly. Downgrading to v0.14.3 brings the stop back for values of 10000 or more.\n- **The destination no longer checks that a column is numeric (#366).** A decimal string is stored in any column whose text input accepts it. `integer`, `real`, `text`, `varchar`, `money` and similar behave as you would expect. `boolean`, `date`, `timestamp`, `timestamptz`, `interval`, `json`, `jsonb`, `bytea` and `bit(n)` also accept it, which is a silent coercion if a schema maps a numeric field to the wrong column. A terminating fraction is sent exactly; any other rational is cut after 1001 fractional digits. `connector.yaml` and the README list the coercions. Rows written earlier by the old rounding (2.50 stored as 3) are not repaired and need a re-sync.\n\n## Known issues\n\n- **#383:** an `UPDATE` that leaves a TOASTed column unchanged halts the source with `avro: missing required field` under `REPLICA IDENTITY DEFAULT` with Avro on. Workaround: `REPLICA IDENTITY FULL`.\n- **#326:** the Avro schema marks every column non-nullable, so a `NULL` in any nullable column can fail Avro encoding.\n- **#386:** the destination does not delete the old row when a primary key changes. A key-changing `UPDATE` leaves a duplicate row, with or without Avro and under `FULL` too.\n- **#391:** a zero `numeric` with a display scale (`0.000`) reads as `0` in the snapshot and as `0.000` in change data capture. The values are numerically equal.\n- **#392:** a `NULL` in a `uuid` column is emitted as `\"\"` instead of `nil`.\n- **#402:** the destination stores an `int8` of 9223372036854775807, sent as a JSON number, as -9223372036854775808 on amd64.\n\n## Upgrading\n\nNo change to the position format. To roll back, install v0.14.3, which re-exposes the fixes above. Test-only changes (#370, #401) are not listed.\n\n## Verification\n\n- Archives are listed in `checksums.txt`.\n- The `postgres_v0.14.4_*` artifacts are cosign-signed (keyless, identity `.github/workflows/publish.yml@refs/tags/v0.14.4`).\n- SLSA L3 provenance is in `multiple.intoto.jsonl`.\n\nFull details are in the PR bodies linked below.\n\n## Changes\n\n## What's Changed\n* fix(destination): batch acked although the commit failed (#342) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/351\n* test: backport RandomIdentifier uniqueness fix to v0.14.x (#355) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/370\n* fix(destination): Teardown closes the connection under a running Write (#354) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/357\n* fix(snapshot): wait for acks without leaking a goroutine on stop (backport to v0.14.x) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/363\n* fix(logrepl): ReadN deadline wedges CDC; panic when stopped during start (#346, #347) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/353\n* fix(logrepl): no Before for key-only old tuples; refuse identities without the key (#379, #380) (Tier 1) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/385\n* fix(logrepl): stop emitting unchanged TOASTed columns as NULL (#317) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/387\n* feat(logrepl): warn when a TRUNCATE is not propagated (#344, v0.20.1 part) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/360\n* fix(destination): let Postgres apply the live NUMERIC scale (Tier 1) [v0.14.x backport] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/366\n* docs(source): runbook says how to check what the slot skip would drop [v0.14.x] (Tier 3) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/395\n* fix(deps): bump grpc to v1.83.2 [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/397\n* fix(source): halt on NaN/Infinity numerics under Avro, emit them as text otherwise (#368) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/372\n* test: fix flaky TestSubscription_WithRepmgr, snapshot fetcher and CDC batching tests (#389, #390, #393) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/401\n* fix(source): unconstrained numeric is an Avro string holding the exact text (#375) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/382\n* fix(deps): bump pgx to 5.9.2 to fix GO-2026-5004 [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/398\n* chore(release): bump connector version to v0.14.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/403\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.3...v0.14.4\n", + "tag_name": "v0.14.5", + "name": "v0.14.5", + "body": "**Fixed: values silently converted after a column type change (#367).** The destination now describes each statement before it runs it (pgx `describe_exec`), so after `ALTER TABLE ... ALTER COLUMN ... TYPE` on a running pipeline the next write is typed for the new column. Before, a value such as 2.5 written to a column that had become `integer` was stored as 3 without an error. Now the write fails and is not acknowledged.\n\n**Throughput cost.** Describing each statement adds a round trip. On main's benchmark (not measured on v0.14.x) this cost 35% of rows per second at `sdk.batch.size: 1` and 16% at 1000. If a pipeline's tables never change type while it runs, add `default_query_exec_mode=cache_statement` to the destination `url` to get the previous behaviour; the destination logs a warning at start. Do not use a cache mode behind PgBouncer or another pooler that shares prepared statements. Any `default_query_exec_mode` already set in the URL or a service file is kept.\n\nThis is a patch on the v0.14.x line, which Conduit v0.20.x bundles. Newer users should run v0.17.2.\n\n---\n\n## What's Changed\n* ci: run the SCRAM channel-binding TLS tests instead of skipping them [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/406\n* docs(position): reserve position format version 3 in the shared history (Tier 3) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/419\n* fix(destination): describe statements by default so column type changes do not convert values silently (#367) (Tier 1) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/438\n* chore: update version to v0.14.5 [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/440\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.4...v0.14.5\n", "draft": false, "prerelease": false, - "published_at": "2026-10-14T04:34:05Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.4", + "published_at": "2026-10-20T02:32:23Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.5", "assets": [ { - "name": "conduit-connector-postgres_0.14.4_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Darwin_arm64.tar.gz", - "created_at": "2026-10-14T04:38:37Z", - "updated_at": "2026-10-14T04:38:38Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:37:24Z", + "updated_at": "2026-10-20T02:37:25Z", "download_count": 0, - "size": 7782777 + "size": 7784915 }, { - "name": "conduit-connector-postgres_0.14.4_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Darwin_x86_64.tar.gz", - "created_at": "2026-10-14T04:38:37Z", - "updated_at": "2026-10-14T04:38:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:25Z", + "updated_at": "2026-10-20T02:37:26Z", "download_count": 0, - "size": 8355272 + "size": 8358857 }, { - "name": "conduit-connector-postgres_0.14.4_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_arm64.tar.gz", - "created_at": "2026-10-14T04:38:37Z", - "updated_at": "2026-10-14T04:38:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Linux_arm64.tar.gz", + "created_at": "2026-10-20T02:37:24Z", + "updated_at": "2026-10-20T02:37:25Z", "download_count": 0, - "size": 7412458 + "size": 7412496 }, { - "name": "conduit-connector-postgres_0.14.4_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_i386.tar.gz", - "created_at": "2026-10-14T04:38:37Z", - "updated_at": "2026-10-14T04:38:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Linux_i386.tar.gz", + "created_at": "2026-10-20T02:37:24Z", + "updated_at": "2026-10-20T02:37:25Z", "download_count": 0, - "size": 7748922 + "size": 7751245 }, { - "name": "conduit-connector-postgres_0.14.4_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_x86_64.tar.gz", - "created_at": "2026-10-14T04:38:38Z", - "updated_at": "2026-10-14T04:38:39Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:24Z", + "updated_at": "2026-10-20T02:37:25Z", "download_count": 0, - "size": 8159229 + "size": 8160540 }, { - "name": "conduit-connector-postgres_0.14.4_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_arm64.tar.gz", - "created_at": "2026-10-14T04:38:38Z", - "updated_at": "2026-10-14T04:38:39Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Windows_arm64.tar.gz", + "created_at": "2026-10-20T02:37:25Z", + "updated_at": "2026-10-20T02:37:26Z", "download_count": 0, - "size": 7503980 + "size": 7505256 }, { - "name": "conduit-connector-postgres_0.14.4_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_i386.tar.gz", - "created_at": "2026-10-14T04:38:38Z", - "updated_at": "2026-10-14T04:38:38Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Windows_i386.tar.gz", + "created_at": "2026-10-20T02:37:25Z", + "updated_at": "2026-10-20T02:37:26Z", "download_count": 0, - "size": 8095367 + "size": 8096519 }, { - "name": "conduit-connector-postgres_0.14.4_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.5_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_x86_64.tar.gz", - "created_at": "2026-10-14T04:38:38Z", - "updated_at": "2026-10-14T04:38:39Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/conduit-connector-postgres_0.14.5_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T02:37:25Z", + "updated_at": "2026-10-20T02:37:26Z", "download_count": 0, - "size": 8417589 + "size": 8418398 }, { - "name": "postgres_v0.14.4_darwin_amd64.tar.gz", + "name": "postgres_v0.14.5_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_amd64.tar.gz", - "created_at": "2026-10-14T04:36:02Z", - "updated_at": "2026-10-14T04:36:03Z", - "download_count": 1, - "size": 16283070 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_darwin_amd64.tar.gz", + "created_at": "2026-10-20T02:33:51Z", + "updated_at": "2026-10-20T02:33:52Z", + "download_count": 0, + "size": 16281243 }, { - "name": "postgres_v0.14.4_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.5_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-14T04:36:02Z", - "updated_at": "2026-10-14T04:36:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:33:51Z", + "updated_at": "2026-10-20T02:33:52Z", "download_count": 0, - "size": 9549 + "size": 9588 }, { - "name": "postgres_v0.14.4_darwin_arm64.tar.gz", + "name": "postgres_v0.14.5_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_arm64.tar.gz", - "created_at": "2026-10-14T04:36:39Z", - "updated_at": "2026-10-14T04:36:39Z", - "download_count": 3, - "size": 15383171 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_darwin_arm64.tar.gz", + "created_at": "2026-10-20T02:34:18Z", + "updated_at": "2026-10-20T02:34:19Z", + "download_count": 0, + "size": 15382981 }, { - "name": "postgres_v0.14.4_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.5_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-14T04:36:39Z", - "updated_at": "2026-10-14T04:36:39Z", - "download_count": 2, - "size": 9502 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:34:18Z", + "updated_at": "2026-10-20T02:34:19Z", + "download_count": 0, + "size": 9494 }, { - "name": "postgres_v0.14.4_linux_amd64.tar.gz", + "name": "postgres_v0.14.5_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_amd64.tar.gz", - "created_at": "2026-10-14T04:34:48Z", - "updated_at": "2026-10-14T04:34:49Z", - "download_count": 1, - "size": 15616337 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_linux_amd64.tar.gz", + "created_at": "2026-10-20T02:32:57Z", + "updated_at": "2026-10-20T02:32:58Z", + "download_count": 0, + "size": 15617492 }, { - "name": "postgres_v0.14.4_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.5_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-14T04:34:48Z", - "updated_at": "2026-10-14T04:34:48Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:32:57Z", + "updated_at": "2026-10-20T02:32:57Z", "download_count": 0, - "size": 9784 + "size": 9643 }, { - "name": "postgres_v0.14.4_linux_arm64.tar.gz", + "name": "postgres_v0.14.5_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_arm64.tar.gz", - "created_at": "2026-10-14T04:35:24Z", - "updated_at": "2026-10-14T04:35:26Z", - "download_count": 1, - "size": 14408247 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_linux_arm64.tar.gz", + "created_at": "2026-10-20T02:33:25Z", + "updated_at": "2026-10-20T02:33:26Z", + "download_count": 0, + "size": 14411250 }, { - "name": "postgres_v0.14.4_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.5_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-14T04:35:24Z", - "updated_at": "2026-10-14T04:35:25Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.5/postgres_v0.14.5_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T02:33:25Z", + "updated_at": "2026-10-20T02:33:25Z", "download_count": 0, - "size": 9788 + "size": 9729 } ], "is_latest": false }, { - "tag_name": "v0.14.3", - "name": "v0.14.3", - "body": "Hotfix release from `release/v0.14.x`. It fixes CDC record loss on restart (#331, fixed in #333). Upgrade if you run logical-replication CDC.\n\n## Fixes\n\n- **Interleaved transactions could lose a row on restart (#331).** A transaction that began before another and committed after it has changes with lower LSNs than changes already delivered. After a restart from a checkpoint between the two, the connector dropped the later-committed transaction's rows, even though Postgres re-sent them. The same situation could also kill the subscription with `walWrite (…) should be \u003e= walFlush (…)`.\n- **COPY and multi-row inserts could lose rows on restart.** All rows of one multi-row insert share one WAL position. After a checkpoint part-way through such an insert, a restart dropped the remaining rows.\n- **The slot could be confirmed past unacked rows.** With rows of a multi-row insert still in flight, the connector could report a flush position past the transaction's commit. Postgres would then not re-send them after a crash. The flush position now advances past acked data only when every emitted record is acked, and it never goes backwards.\n\n## Position format\n\nCDC positions are now **format version 2**. They carry `tx_commit_lsn` and `tx_seq`, the transaction's commit LSN and the change's ordinal within it. A restart uses these to skip exactly what was already delivered. Positions written by v0.14.2 and earlier are still read; no migration step is needed.\n\n## Upgrade note: possible duplicates on the first restart\n\nA position written by v0.14.2 or earlier has no transaction information. The **first restart after upgrading** therefore falls back to a rule that loses nothing but can **re-deliver records that were already acked**. That can be up to everything that committed while the checkpointed record's transaction was open, plus that transaction's already-delivered rows. The amount is bounded by how long that transaction was open, not by a small count. A long-running transaction at the checkpoint means more duplicates. After the first record under v0.14.3 is checkpointed, resumes are exact.\n\n**Sinks or processors that are not idempotent will see these duplicates once.** Upsert-by-key destinations, including this connector's own Postgres destination, absorb them.\n\n## Rollback\n\nRolling back to v0.14.2 or earlier is possible: older versions read the new positions and ignore the extra fields. Doing so **re-exposes the record loss above** and the subscription failure with interleaved transactions. Treat a rollback as temporary.\n\n## Verification\n\n- Archives are listed in `checksums.txt`.\n- The `postgres_v0.14.3_*` artifacts are cosign-signed (keyless, identity `.github/workflows/publish.yml@refs/tags/v0.14.3`).\n- SLSA L3 provenance is in `multiple.intoto.jsonl`.\n\nFull details: `docs/design-documents/20261008-interleaved-tx-resume.md` on `release/v0.14.x`.\n\n## Changes\n\n", + "tag_name": "v0.17.1", + "name": "v0.17.1", + "body": "**Security advisory:** [GHSA-rcwq-pcpp-gx9v](https://github.com/ConduitIO/conduit-connector-postgres/security/advisories/GHSA-rcwq-pcpp-gx9v)\n\n\u003e [!WARNING]\n\u003e **Behind PgBouncer, this release can store wrong values after a column type change. Upgrade to [v0.17.2](https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.2).**\n\u003e\n\u003e v0.17.0 and v0.17.1 use cached prepared statements by default. Behind PgBouncer with `max_prepared_statements` above 0 (or another pooler that shares prepared statements between clients), a destination that connects after `ALTER TABLE ... ALTER COLUMN ... TYPE` can reuse another client's statement prepared before the change. Postgres then converts the values to the new type without an error, for example 5/2 stored as 3 and 5.5 stored as 5, and the records are acknowledged. Direct connections are not affected.\n\u003e\n\u003e Until you upgrade, add `default_query_exec_mode=describe_exec` to the destination's `url`. v0.17.2 makes `describe_exec` the default again. To find affected rows, compare rows written after each column type change with the source.\n", "draft": false, "prerelease": false, - "published_at": "2026-10-08T18:04:38Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.3", + "published_at": "2026-10-19T23:16:12Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.1", + "assets": null, + "is_latest": false + }, + { + "tag_name": "v0.17.0", + "name": "v0.17.0", + "body": "**Security advisory:** [GHSA-rcwq-pcpp-gx9v](https://github.com/ConduitIO/conduit-connector-postgres/security/advisories/GHSA-rcwq-pcpp-gx9v)\n\n\u003e [!WARNING]\n\u003e **Behind PgBouncer, this release can store wrong values after a column type change. Upgrade to [v0.17.2](https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.2).**\n\u003e\n\u003e v0.17.0 and v0.17.1 use cached prepared statements by default. Behind PgBouncer with `max_prepared_statements` above 0 (or another pooler that shares prepared statements between clients), a destination that connects after `ALTER TABLE ... ALTER COLUMN ... TYPE` can reuse another client's statement prepared before the change. Postgres then converts the values to the new type without an error, for example 5/2 stored as 3 and 5.5 stored as 5, and the records are acknowledged. Direct connections are not affected.\n\u003e\n\u003e Until you upgrade, add `default_query_exec_mode=describe_exec` to the destination's `url`. v0.17.2 makes `describe_exec` the default again. To find affected rows, compare rows written after each column type change with the source.\n", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T05:58:08Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.17.0", + "assets": null, + "is_latest": false + }, + { + "tag_name": "v0.16.0", + "name": "v0.16.0", + "body": "", + "draft": false, + "prerelease": false, + "published_at": "2026-10-17T14:46:54Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.16.0", "assets": [ { - "name": "conduit-connector-postgres_0.14.3_Darwin_arm64.tar.gz", + "name": "postgres_v0.16.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Darwin_arm64.tar.gz", - "created_at": "2026-10-08T18:08:32Z", - "updated_at": "2026-10-08T18:08:33Z", - "download_count": 1, - "size": 7708575 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.16.0/postgres_v0.16.0_darwin_arm64.tar.gz", + "created_at": "2026-10-17T14:47:09Z", + "updated_at": "2026-10-17T14:47:10Z", + "download_count": 0, + "size": 17436782 + }, + { + "name": "postgres_v0.16.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.16.0/postgres_v0.16.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-17T14:47:09Z", + "updated_at": "2026-10-17T14:47:09Z", + "download_count": 0, + "size": 9737 + } + ], + "is_latest": false + }, + { + "tag_name": "v0.15.0", + "name": "v0.15.0", + "body": "## What's Changed\n* fix(logrepl): stop emitting unchanged TOASTed columns as NULL by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/317\n* docs(design): DBZ-3 Postgres CDC parity (v0.20 WS7) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/316\n* feat(source): DBZ-3 slice 1 — versioned position format + CDC carry-forward by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/318\n* feat(source): DBZ-3 Area 1 — resumable-snapshot low watermark + handoff re-seed by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/319\n* docs(design): record DeVaris's four DBZ-3 decisions by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/320\n* feat(source): DBZ-3 Area 1 step 3 — announce a resumed snapshot's degraded mode by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/321\n* feat(logrepl): DBZ-3 Area 2 step 1 — detect schema drift by diffing RelationMessages by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/322\n* feat(cdc): durable per-table schema history in the position (DBZ-3 Area 2 step 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/323\n* feat(chaos): fault-injection seam for the DBZ-3 kill harness (B0-1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/324\n* feat(chaos): process-kill harness core + no-kill smoke test (DBZ-3 B0-2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/325\n* refactor(logrepl): rename IsNarrowing to IsIncompatible (B1 prep) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/328\n* docs(design): DBZ-3 B1 schema-drift escape hatch (checkpoint-before-halt) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/327\n* feat(cdc): DBZ-3 B1 — schema-drift policy (halt/evolve, checkpoint-before-halt escape hatch) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/329\n* feat(cdc): DBZ-3 B2 - gate the slot advance on walFlushed == walWritten (heartbeat writer cut) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/332\n* fix(logrepl): key changes by (commit LSN, ordinal) so interleaved and COPY records are not lost (#331, main, stacked on #332) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/334\n* fix(logrepl): decide schema drift on the first delivered change, not the replayed Relation message (#335) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/337\n* fix(logrepl): the approving restart delivers the row that decided the drift (#338) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/339\n* fix(destination): batch acked although the commit failed (#342) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/350\n* chore: move to Go 1.26.9, replace archived hamba/avro with iskorotkov/avro (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/349\n* test: make RandomIdentifier unique within a process by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/355\n* fix(destination): Teardown closes the connection under a running Write (#354) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/356\n* fix(snapshot): wait for acks without leaking a goroutine on stop by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/362\n* docs(design): resume from a Debezium offset without a re-snapshot by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/341\n* fix(logrepl): ReadN deadline wedges CDC; panic when stopped during start (#346, #347) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/352\n* fix(logrepl): no Before for key-only old tuples; refuse identities without the key (#379, #380) (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/384\n* feat(logrepl): warn when a TRUNCATE is not propagated (#344, v0.20.1 part) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/359\n* fix(destination): let Postgres apply the live NUMERIC scale (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/365\n* fix(deps): bump grpc to v1.84.0 in tools/go.mod (alerts 60, 61, 63, 64) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/396\n* docs(source): runbook says how to check what the slot skip would drop (Tier 3) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/394\n* fix(logrepl): publish the drift marker state before queuing the marker (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/373\n* test: fix flaky TestSubscription_WithRepmgr, snapshot fetcher and CDC batching tests (#389, #390, #393) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/400\n* fix(types): host-timezone- and pgx-independent values; pgx \u003e= 5.9.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/361\n* fix(source): halt on NaN/Infinity numerics under Avro, emit them as text otherwise (#368) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/371\n* fix(source): unconstrained numeric is an Avro string holding the exact text (#375) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/381\n* fix(deps): keep pgx 5.7's SCRAM behaviour on main (channel_binding prefer -\u003e disable) (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/404\n* ci: run the SCRAM channel-binding TLS tests instead of skipping them by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/405\n* ci: pin GitHub Actions by commit SHA by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/409\n* fix(position): make the schema shape hash input injective by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/408\n* chore(deps): bump conduit-connector-sdk to v0.16.0 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/412\n* test: run the SDK acceptance suite v2 in CI (Tier 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/416\n* feat(dbzoffset): parse a Debezium Postgres offset and compute the resume point (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/411\n* feat(source): resume from a Debezium offset, logrepl.import.debeziumOffset (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/413\n* test(debezium): end-to-end offset import against real Debezium (Tier 2) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/414\n* fix(destination): keep records intact, write all-key tables, exact JSON integers, quote identifiers by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/415\n* test(position): property tests for the position format and resume by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/420\n* test: name the import rapid tests Property so the nightly runs them by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/426\n* ci: fail a PR whose rapid test would miss the nightly long run by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/428\n* fix(source): give Key, Before and After their own values (Tier 1) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/427\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.2...v0.15.0", + "draft": false, + "prerelease": false, + "published_at": "2026-10-16T17:49:54Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.15.0", + "assets": [ + { + "name": "conduit-connector-postgres_0.15.0_Darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-16T17:53:52Z", + "updated_at": "2026-10-16T17:53:52Z", + "download_count": 0, + "size": 8715422 }, { - "name": "conduit-connector-postgres_0.14.3_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Darwin_x86_64.tar.gz", - "created_at": "2026-10-08T18:08:32Z", - "updated_at": "2026-10-08T18:08:33Z", - "download_count": 1, - "size": 8183824 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-16T17:53:50Z", + "updated_at": "2026-10-16T17:53:51Z", + "download_count": 0, + "size": 9397557 }, { - "name": "conduit-connector-postgres_0.14.3_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_arm64.tar.gz", - "created_at": "2026-10-08T18:08:33Z", - "updated_at": "2026-10-08T18:08:34Z", - "download_count": 1, - "size": 7322952 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_arm64.tar.gz", + "created_at": "2026-10-16T17:53:52Z", + "updated_at": "2026-10-16T17:53:52Z", + "download_count": 0, + "size": 8287605 }, { - "name": "conduit-connector-postgres_0.14.3_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_i386.tar.gz", - "created_at": "2026-10-08T18:08:32Z", - "updated_at": "2026-10-08T18:08:32Z", - "download_count": 1, - "size": 7555430 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_i386.tar.gz", + "created_at": "2026-10-16T17:53:51Z", + "updated_at": "2026-10-16T17:53:52Z", + "download_count": 0, + "size": 8702592 }, { - "name": "conduit-connector-postgres_0.14.3_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_x86_64.tar.gz", - "created_at": "2026-10-08T18:08:33Z", - "updated_at": "2026-10-08T18:08:34Z", - "download_count": 1, - "size": 7977159 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-16T17:53:50Z", + "updated_at": "2026-10-16T17:53:51Z", + "download_count": 0, + "size": 9163398 }, { - "name": "conduit-connector-postgres_0.14.3_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_arm64.tar.gz", - "created_at": "2026-10-08T18:08:33Z", - "updated_at": "2026-10-08T18:08:33Z", - "download_count": 1, - "size": 7429492 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_arm64.tar.gz", + "created_at": "2026-10-16T17:53:50Z", + "updated_at": "2026-10-16T17:53:51Z", + "download_count": 0, + "size": 8390554 }, { - "name": "conduit-connector-postgres_0.14.3_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_i386.tar.gz", - "created_at": "2026-10-08T18:08:32Z", - "updated_at": "2026-10-08T18:08:32Z", - "download_count": 1, - "size": 7904196 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_i386.tar.gz", + "created_at": "2026-10-16T17:53:52Z", + "updated_at": "2026-10-16T17:53:52Z", + "download_count": 0, + "size": 9101028 }, { - "name": "conduit-connector-postgres_0.14.3_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.15.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_x86_64.tar.gz", - "created_at": "2026-10-08T18:08:33Z", - "updated_at": "2026-10-08T18:08:34Z", - "download_count": 1, - "size": 8243500 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/conduit-connector-postgres_0.15.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-16T17:53:50Z", + "updated_at": "2026-10-16T17:53:51Z", + "download_count": 0, + "size": 9437692 }, { - "name": "postgres_v0.14.3_darwin_amd64.tar.gz", + "name": "postgres_v0.15.0_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_amd64.tar.gz", - "created_at": "2026-10-08T18:06:08Z", - "updated_at": "2026-10-08T18:06:09Z", - "download_count": 1, - "size": 16036045 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_amd64.tar.gz", + "created_at": "2026-10-16T17:52:01Z", + "updated_at": "2026-10-16T17:52:02Z", + "download_count": 0, + "size": 18309026 }, { - "name": "postgres_v0.14.3_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.15.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-08T18:06:08Z", - "updated_at": "2026-10-08T18:06:08Z", - "download_count": 1, - "size": 9506 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-16T17:52:01Z", + "updated_at": "2026-10-16T17:52:01Z", + "download_count": 0, + "size": 9784 }, { - "name": "postgres_v0.14.3_darwin_arm64.tar.gz", + "name": "postgres_v0.15.0_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_arm64.tar.gz", - "created_at": "2026-10-08T18:06:35Z", - "updated_at": "2026-10-08T18:06:36Z", - "download_count": 1, - "size": 15299983 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_arm64.tar.gz", + "created_at": "2026-10-16T17:52:41Z", + "updated_at": "2026-10-16T17:52:42Z", + "download_count": 0, + "size": 17260031 }, { - "name": "postgres_v0.14.3_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.15.0_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-08T18:06:35Z", - "updated_at": "2026-10-08T18:06:36Z", - "download_count": 1, - "size": 9541 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-16T17:52:41Z", + "updated_at": "2026-10-16T17:52:41Z", + "download_count": 0, + "size": 9725 }, { - "name": "postgres_v0.14.3_linux_amd64.tar.gz", + "name": "postgres_v0.15.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_amd64.tar.gz", - "created_at": "2026-10-08T18:05:14Z", - "updated_at": "2026-10-08T18:05:15Z", - "download_count": 4, - "size": 16052956 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_amd64.tar.gz", + "created_at": "2026-10-16T17:50:40Z", + "updated_at": "2026-10-16T17:50:41Z", + "download_count": 0, + "size": 17521576 }, { - "name": "postgres_v0.14.3_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.15.0_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-10-08T18:05:14Z", - "updated_at": "2026-10-08T18:05:14Z", - "download_count": 4, - "size": 9302 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-16T17:50:40Z", + "updated_at": "2026-10-16T17:50:40Z", + "download_count": 0, + "size": 9537 }, { - "name": "postgres_v0.14.3_linux_arm64.tar.gz", + "name": "postgres_v0.15.0_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_arm64.tar.gz", - "created_at": "2026-10-08T18:05:41Z", - "updated_at": "2026-10-08T18:05:42Z", - "download_count": 1, - "size": 15012093 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_arm64.tar.gz", + "created_at": "2026-10-16T17:51:19Z", + "updated_at": "2026-10-16T17:51:21Z", + "download_count": 0, + "size": 16104344 }, { - "name": "postgres_v0.14.3_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.15.0_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-10-08T18:05:41Z", - "updated_at": "2026-10-08T18:05:41Z", - "download_count": 1, - "size": 9600 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.15.0/postgres_v0.15.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-16T17:51:19Z", + "updated_at": "2026-10-16T17:51:20Z", + "download_count": 0, + "size": 9596 } ], "is_latest": false }, { - "tag_name": "v0.14.2", - "name": "v0.14.2", - "body": "## What's Changed\n* chore: re-release v0.14.2 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/315\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.1...v0.14.2", + "tag_name": "v0.14.4", + "name": "v0.14.4", + "body": "Patch release from the `release/v0.14.x` line. It ships in Conduit v0.20.1. Upgrade if you run the Postgres source or destination, and read \"Behaviour changes\" first: a few pipelines will stop after the upgrade on purpose.\n\n## Fixes\n\n### Data loss and wrong values\n\n- **The destination acked a batch whose commit failed (#342, fixed in #351).** `Write` sent the records as one batch, read one result per statement and discarded the error from closing the batch. Anything Postgres reports at COMMIT (deferred constraints, serialization failures) arrives only there. The transaction rolled back, `Write` reported every record written and the engine acked them. `Write` now returns the commit error with nothing written, so the records are retried. Present since v0.6.0.\n- **`DELETE` stopped Avro pipelines (#379, fixed in #385).** Since v0.11.0, with the default `logrepl.withAvroSchema: true`, a `DELETE` on a table with the default `REPLICA IDENTITY` and any column besides the primary key failed Avro encoding. The pipeline restarted on the same record forever while the slot retained WAL. A primary-key-changing `UPDATE` failed the same way.\n- **Deletes with a null key (#380, fixed in #385).** With `REPLICA IDENTITY USING INDEX` on an index that does not have the primary key among its key columns, deletes were emitted with a null key. The Postgres destination applied them as a no-op, so deleted rows stayed in the destination. The source now refuses this at `Open` (see below).\n- **Unchanged large (TOASTed) columns were written as NULL on `UPDATE` (#317, backported in #387).** Postgres does not resend an unchanged out-of-line value. The connector decoded the marker as `nil`, so a destination that replaces the whole row wrote NULL over the real value, and under `REPLICA IDENTITY FULL` with Avro on the source halted. The column is now omitted from the record under the default identity and carries the real value under `FULL`. Still open under the default identity with Avro on: #383.\n- **Destination NUMERIC scale (#364, fixed in #366).** The destination looked up and cached a column's scale and rounded client-side. After an `ALTER` it kept using the old scale, and unconstrained `numeric` columns were rounded to integers (2.50 stored as 3). It now sends an exact decimal string and Postgres applies the live precision and scale.\n- **`NaN` and `Infinity` in `numeric` panicked the source (#368, fixed in #372).** Under Avro the source now halts with `postgres.source.numeric_not_representable`; with Avro off it emits `\"NaN\"`, `\"Infinity\"` and `\"-Infinity\"` as text. Arrays are handled per element.\n- **Infinite dates and timestamps were silently rewritten (#372).** Under Avro, `date`, `timestamp` and `timestamptz` values of `infinity` / `-infinity` were written as `1970-01-02` / `1969-12-31`. The source now halts with `postgres.source.temporal_not_representable`; with Avro off they are the strings `\"infinity\"` and `\"-infinity\"`. Same per-element handling for arrays.\n- **Unconstrained `numeric` stopped at 10000 (#375, fixed in #382).** The Avro schema `decimal(65535, 65531)` leaves four digits before the point, so any value of 10000 or more failed to encode, and the source failed again after every restart. Such columns are now an Avro `string` holding the exact value.\n\n### Lifecycle and shutdown\n\n- **A read deadline could wedge CDC (#347, fixed in #353).** When the snapshot finished inside a `ReadN` call, the replication subscription started on that call's context. After the deadline expired, the subscription spun without delivering records, and `Stop` and `Teardown` could not end it. It now runs on the context the source was opened with.\n- **Panic when stopped while the subscription starts (#346, fixed in #353).** A stop between releasing the pooled connection and acquiring the replication connection dereferenced a nil connection. `Stop` could also be lost in that window. `Teardown` now waits for a starting subscription, the pooled connection is released exactly once, and a hung server is bounded to two seconds instead of holding the connection and the slot.\n- **Teardown closed the connection under a running `Write` (#354, fixed in #357).** This was a data race, and the SDK calls `Teardown` without `Stop` when a pipeline stops on an error. `Teardown` now cancels the in-flight write. The batch rolls back client side and `Write` returns an error, so nothing is acked and the records are redelivered. Postgres may still finish a statement that was waiting on a row lock, so a cancelled write can be applied and then redelivered. Keyed upserts absorb that; a table without a key can see a duplicate (at-least-once, as before).\n- **Snapshot goroutine leak on stop (fixed in #363).** Stopping with unacked snapshot records left one goroutine, and everything it referenced, parked forever. In an embedded engine the leak grew with every pipeline restart.\n- **TRUNCATE warning (#344, #360).** A `TRUNCATE` produces no record and used to produce no log line. The source now logs a WARN per truncated table, at most once a minute, with `table`, `lsn`, `cascade`, `restart_identity` and `suppressed` (each WARN stands for 1 + `suppressed` truncates). Nothing is emitted or acked differently. The warning appears only if the publication publishes `truncate`, which the one the connector creates does.\n\n### Dependencies\n\n- **pgx 5.7.5 to 5.9.2 (#398).** Fixes GO-2026-5004, which is reachable through `Destination.Write`, and the two advisories fixed in 5.9.0 (GO-2026-4771, GO-2026-4772; imported, not called). Records, destination writes and authentication are pinned to v0.14.3 behaviour by tests. `tsvector` stays text, and `channel_binding` stays disabled as in v0.14.3 (pgx 5.9 defaults to `prefer`; `require` is still opt-in).\n- **grpc 1.73.0 to 1.83.2 (#397).** Clears three grpc advisories that govulncheck reported as called. The `go` directive moves from 1.24.2 to 1.25.0 because grpc requires it. Building this connector from source now needs Go 1.25 or later.\n\n## Behaviour changes\n\n- **`DELETE` and primary-key-changing `UPDATE` no longer carry `Payload.Before` under `REPLICA IDENTITY DEFAULT` or `USING INDEX`.** The key is in `Key`, and a key-changing update no longer carries the old key. Set `REPLICA IDENTITY FULL` if you need the old row. Under `FULL` nothing changes.\n- **The source refuses `REPLICA IDENTITY USING INDEX` on an index without the primary key among its key columns, at `Open`, with `postgres.replica_identity.excludes_key` (#380).** An `INCLUDE` column does not count. A pipeline that reads such a table stops after the upgrade. Run `ALTER TABLE ... REPLICA IDENTITY FULL`, or use a unique index that has the primary key among its key columns. Check destinations fed from such tables for rows that should have been deleted. The README has a runbook (#395) for a stuck delete after the identity changes while a pipeline runs. It skips the stuck transaction with `pg_replication_slot_advance` on Postgres 11 or later, or with `pg_logical_slot_get_binary_changes` on Postgres 10, and says how to check what the skip would consume first. Skipping data is the operator's decision.\n- **Unchanged TOASTed columns are omitted, not NULL (#387).** A destination that replaces the whole row must treat a missing field as \"unchanged\". This connector's destination does.\n- **Infinite dates and timestamps halt under Avro (#372).** A pipeline that hit one today will stop after the upgrade. For change data capture, restart once with `logrepl.withAvroSchema: false` from the same position (the value arrives as text), then switch back. For a snapshot, `UPDATE` the row and restart. Removing the row does not help for a change already in the WAL, and do not drop the slot. A standalone connector (not built into Conduit) cannot send a finite `numeric` while Avro is off (#378), so the switch only helps there if no finite numeric is read in the meantime. Rows already written downstream as `1970-01-02` or `1969-12-31` are wrong and need to be repaired from the source.\n- **Unconstrained `numeric` is a string under Avro (#382).** The Go type changes from `*big.Rat` to `string` (with Avro off it stays `big.Rat`). `1.50` stays `1.50`. A consumer must handle `\"NaN\"`, `\"Infinity\"` and `\"-Infinity\"`. `numeric(p,s)` columns are unchanged. The table's schema gets a new version on the first record after the upgrade, and a reader that pins the old version does not cope. The Postgres destination writes the string to a numeric column exactly. Downgrading to v0.14.3 brings the stop back for values of 10000 or more.\n- **The destination no longer checks that a column is numeric (#366).** A decimal string is stored in any column whose text input accepts it. `integer`, `real`, `text`, `varchar`, `money` and similar behave as you would expect. `boolean`, `date`, `timestamp`, `timestamptz`, `interval`, `json`, `jsonb`, `bytea` and `bit(n)` also accept it, which is a silent coercion if a schema maps a numeric field to the wrong column. A terminating fraction is sent exactly; any other rational is cut after 1001 fractional digits. `connector.yaml` and the README list the coercions. Rows written earlier by the old rounding (2.50 stored as 3) are not repaired and need a re-sync.\n\n## Known issues\n\n- **#383:** an `UPDATE` that leaves a TOASTed column unchanged halts the source with `avro: missing required field` under `REPLICA IDENTITY DEFAULT` with Avro on. Workaround: `REPLICA IDENTITY FULL`.\n- **#326:** the Avro schema marks every column non-nullable, so a `NULL` in any nullable column can fail Avro encoding.\n- **#386:** the destination does not delete the old row when a primary key changes. A key-changing `UPDATE` leaves a duplicate row, with or without Avro and under `FULL` too.\n- **#391:** a zero `numeric` with a display scale (`0.000`) reads as `0` in the snapshot and as `0.000` in change data capture. The values are numerically equal.\n- **#392:** a `NULL` in a `uuid` column is emitted as `\"\"` instead of `nil`.\n- **#402:** the destination stores an `int8` of 9223372036854775807, sent as a JSON number, as -9223372036854775808 on amd64.\n\n## Upgrading\n\nNo change to the position format. To roll back, install v0.14.3, which re-exposes the fixes above. Test-only changes (#370, #401) are not listed.\n\n## Verification\n\n- Archives are listed in `checksums.txt`.\n- The `postgres_v0.14.4_*` artifacts are cosign-signed (keyless, identity `.github/workflows/publish.yml@refs/tags/v0.14.4`).\n- SLSA L3 provenance is in `multiple.intoto.jsonl`.\n\nFull details are in the PR bodies linked below.\n\n## Changes\n\n## What's Changed\n* fix(destination): batch acked although the commit failed (#342) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/351\n* test: backport RandomIdentifier uniqueness fix to v0.14.x (#355) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/370\n* fix(destination): Teardown closes the connection under a running Write (#354) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/357\n* fix(snapshot): wait for acks without leaking a goroutine on stop (backport to v0.14.x) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/363\n* fix(logrepl): ReadN deadline wedges CDC; panic when stopped during start (#346, #347) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/353\n* fix(logrepl): no Before for key-only old tuples; refuse identities without the key (#379, #380) (Tier 1) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/385\n* fix(logrepl): stop emitting unchanged TOASTed columns as NULL (#317) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/387\n* feat(logrepl): warn when a TRUNCATE is not propagated (#344, v0.20.1 part) [backport v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/360\n* fix(destination): let Postgres apply the live NUMERIC scale (Tier 1) [v0.14.x backport] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/366\n* docs(source): runbook says how to check what the slot skip would drop [v0.14.x] (Tier 3) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/395\n* fix(deps): bump grpc to v1.83.2 [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/397\n* fix(source): halt on NaN/Infinity numerics under Avro, emit them as text otherwise (#368) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/372\n* test: fix flaky TestSubscription_WithRepmgr, snapshot fetcher and CDC batching tests (#389, #390, #393) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/401\n* fix(source): unconstrained numeric is an Avro string holding the exact text (#375) [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/382\n* fix(deps): bump pgx to 5.9.2 to fix GO-2026-5004 [v0.14.x] by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/398\n* chore(release): bump connector version to v0.14.4 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/403\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.3...v0.14.4\n", "draft": false, "prerelease": false, - "published_at": "2026-07-23T11:58:02Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.2", + "published_at": "2026-10-14T04:34:05Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.4", "assets": [ { - "name": "conduit-connector-postgres_0.14.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:01:54Z", - "updated_at": "2026-07-23T12:01:55Z", - "download_count": 3, - "size": 7738526 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Darwin_arm64.tar.gz", + "created_at": "2026-10-14T04:38:37Z", + "updated_at": "2026-10-14T04:38:38Z", + "download_count": 0, + "size": 7782777 }, { - "name": "conduit-connector-postgres_0.14.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T12:01:53Z", - "updated_at": "2026-07-23T12:01:54Z", - "download_count": 3, - "size": 8199124 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Darwin_x86_64.tar.gz", + "created_at": "2026-10-14T04:38:37Z", + "updated_at": "2026-10-14T04:38:37Z", + "download_count": 0, + "size": 8355272 }, { - "name": "conduit-connector-postgres_0.14.2_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_arm64.tar.gz", - "created_at": "2026-07-23T12:01:53Z", - "updated_at": "2026-07-23T12:01:54Z", - "download_count": 3, - "size": 7356071 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_arm64.tar.gz", + "created_at": "2026-10-14T04:38:37Z", + "updated_at": "2026-10-14T04:38:37Z", + "download_count": 0, + "size": 7412458 }, { - "name": "conduit-connector-postgres_0.14.2_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_i386.tar.gz", - "created_at": "2026-07-23T12:01:54Z", - "updated_at": "2026-07-23T12:01:55Z", - "download_count": 4, - "size": 7565258 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_i386.tar.gz", + "created_at": "2026-10-14T04:38:37Z", + "updated_at": "2026-10-14T04:38:37Z", + "download_count": 0, + "size": 7748922 }, { - "name": "conduit-connector-postgres_0.14.2_Linux_x86_64.tar.gz", - "os": "linux", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T12:01:53Z", - "updated_at": "2026-07-23T12:01:54Z", - "download_count": 4, - "size": 7995412 + "name": "conduit-connector-postgres_0.14.4_Linux_x86_64.tar.gz", + "os": "linux", + "arch": "amd64", + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Linux_x86_64.tar.gz", + "created_at": "2026-10-14T04:38:38Z", + "updated_at": "2026-10-14T04:38:39Z", + "download_count": 0, + "size": 8159229 }, { - "name": "conduit-connector-postgres_0.14.2_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_arm64.tar.gz", - "created_at": "2026-07-23T12:01:55Z", - "updated_at": "2026-07-23T12:01:55Z", - "download_count": 3, - "size": 7460220 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_arm64.tar.gz", + "created_at": "2026-10-14T04:38:38Z", + "updated_at": "2026-10-14T04:38:39Z", + "download_count": 0, + "size": 7503980 }, { - "name": "conduit-connector-postgres_0.14.2_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_i386.tar.gz", - "created_at": "2026-07-23T12:01:54Z", - "updated_at": "2026-07-23T12:01:55Z", - "download_count": 3, - "size": 7917769 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_i386.tar.gz", + "created_at": "2026-10-14T04:38:38Z", + "updated_at": "2026-10-14T04:38:38Z", + "download_count": 0, + "size": 8095367 }, { - "name": "conduit-connector-postgres_0.14.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T12:01:53Z", - "updated_at": "2026-07-23T12:01:54Z", - "download_count": 3, - "size": 8256466 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/conduit-connector-postgres_0.14.4_Windows_x86_64.tar.gz", + "created_at": "2026-10-14T04:38:38Z", + "updated_at": "2026-10-14T04:38:39Z", + "download_count": 0, + "size": 8417589 }, { - "name": "postgres_v0.14.2_darwin_amd64.tar.gz", + "name": "postgres_v0.14.4_darwin_amd64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_amd64.tar.gz", - "created_at": "2026-07-23T11:59:53Z", - "updated_at": "2026-07-23T11:59:54Z", - "download_count": 4, - "size": 16032324 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_amd64.tar.gz", + "created_at": "2026-10-14T04:36:02Z", + "updated_at": "2026-10-14T04:36:03Z", + "download_count": 1, + "size": 16283070 }, { - "name": "postgres_v0.14.2_darwin_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.4_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:59:53Z", - "updated_at": "2026-07-23T11:59:54Z", - "download_count": 11, - "size": 9755 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-14T04:36:02Z", + "updated_at": "2026-10-14T04:36:02Z", + "download_count": 0, + "size": 9549 }, { - "name": "postgres_v0.14.2_darwin_arm64.tar.gz", + "name": "postgres_v0.14.4_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_arm64.tar.gz", - "created_at": "2026-07-23T12:00:29Z", - "updated_at": "2026-07-23T12:00:29Z", - "download_count": 13, - "size": 15294597 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_arm64.tar.gz", + "created_at": "2026-10-14T04:36:39Z", + "updated_at": "2026-10-14T04:36:39Z", + "download_count": 3, + "size": 15383171 }, { - "name": "postgres_v0.14.2_darwin_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.4_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T12:00:29Z", - "updated_at": "2026-07-23T12:00:29Z", - "download_count": 21, - "size": 9755 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-14T04:36:39Z", + "updated_at": "2026-10-14T04:36:39Z", + "download_count": 2, + "size": 9502 }, { - "name": "postgres_v0.14.2_linux_amd64.tar.gz", + "name": "postgres_v0.14.4_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_amd64.tar.gz", - "created_at": "2026-07-23T11:58:43Z", - "updated_at": "2026-07-23T11:58:44Z", - "download_count": 3, - "size": 16047321 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_amd64.tar.gz", + "created_at": "2026-10-14T04:34:48Z", + "updated_at": "2026-10-14T04:34:49Z", + "download_count": 1, + "size": 15616337 }, { - "name": "postgres_v0.14.2_linux_amd64.tar.gz.sigstore.json", + "name": "postgres_v0.14.4_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_amd64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:58:43Z", - "updated_at": "2026-07-23T11:58:43Z", - "download_count": 13, - "size": 9708 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-14T04:34:48Z", + "updated_at": "2026-10-14T04:34:48Z", + "download_count": 0, + "size": 9784 }, { - "name": "postgres_v0.14.2_linux_arm64.tar.gz", + "name": "postgres_v0.14.4_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/x-gtar", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_arm64.tar.gz", - "created_at": "2026-07-23T11:59:17Z", - "updated_at": "2026-07-23T11:59:18Z", - "download_count": 9, - "size": 15000155 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_arm64.tar.gz", + "created_at": "2026-10-14T04:35:24Z", + "updated_at": "2026-10-14T04:35:26Z", + "download_count": 1, + "size": 14408247 }, { - "name": "postgres_v0.14.2_linux_arm64.tar.gz.sigstore.json", + "name": "postgres_v0.14.4_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_arm64.tar.gz.sigstore.json", - "created_at": "2026-07-23T11:59:17Z", - "updated_at": "2026-07-23T11:59:17Z", - "download_count": 17, - "size": 9567 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.4/postgres_v0.14.4_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-14T04:35:24Z", + "updated_at": "2026-10-14T04:35:25Z", + "download_count": 0, + "size": 9788 } ], "is_latest": false }, { - "tag_name": "v0.14.1", - "name": "v0.14.1", - "body": "## What's Changed\n* go.mod: bump github.com/hamba/avro/v2 from 2.29.0 to 2.30.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-postgres/pull/306\n* feat: registry seed — publish.yml + bump to v0.14.1 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/314\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-postgres/pull/314\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.0...v0.14.1", + "tag_name": "v0.14.3", + "name": "v0.14.3", + "body": "Hotfix release from `release/v0.14.x`. It fixes CDC record loss on restart (#331, fixed in #333). Upgrade if you run logical-replication CDC.\n\n## Fixes\n\n- **Interleaved transactions could lose a row on restart (#331).** A transaction that began before another and committed after it has changes with lower LSNs than changes already delivered. After a restart from a checkpoint between the two, the connector dropped the later-committed transaction's rows, even though Postgres re-sent them. The same situation could also kill the subscription with `walWrite (…) should be \u003e= walFlush (…)`.\n- **COPY and multi-row inserts could lose rows on restart.** All rows of one multi-row insert share one WAL position. After a checkpoint part-way through such an insert, a restart dropped the remaining rows.\n- **The slot could be confirmed past unacked rows.** With rows of a multi-row insert still in flight, the connector could report a flush position past the transaction's commit. Postgres would then not re-send them after a crash. The flush position now advances past acked data only when every emitted record is acked, and it never goes backwards.\n\n## Position format\n\nCDC positions are now **format version 2**. They carry `tx_commit_lsn` and `tx_seq`, the transaction's commit LSN and the change's ordinal within it. A restart uses these to skip exactly what was already delivered. Positions written by v0.14.2 and earlier are still read; no migration step is needed.\n\n## Upgrade note: possible duplicates on the first restart\n\nA position written by v0.14.2 or earlier has no transaction information. The **first restart after upgrading** therefore falls back to a rule that loses nothing but can **re-deliver records that were already acked**. That can be up to everything that committed while the checkpointed record's transaction was open, plus that transaction's already-delivered rows. The amount is bounded by how long that transaction was open, not by a small count. A long-running transaction at the checkpoint means more duplicates. After the first record under v0.14.3 is checkpointed, resumes are exact.\n\n**Sinks or processors that are not idempotent will see these duplicates once.** Upsert-by-key destinations, including this connector's own Postgres destination, absorb them.\n\n## Rollback\n\nRolling back to v0.14.2 or earlier is possible: older versions read the new positions and ignore the extra fields. Doing so **re-exposes the record loss above** and the subscription failure with interleaved transactions. Treat a rollback as temporary.\n\n## Verification\n\n- Archives are listed in `checksums.txt`.\n- The `postgres_v0.14.3_*` artifacts are cosign-signed (keyless, identity `.github/workflows/publish.yml@refs/tags/v0.14.3`).\n- SLSA L3 provenance is in `multiple.intoto.jsonl`.\n\nFull details: `docs/design-documents/20261008-interleaved-tx-resume.md` on `release/v0.14.x`.\n\n## Changes\n\n", "draft": false, "prerelease": false, - "published_at": "2026-07-23T02:18:09Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.1", + "published_at": "2026-10-08T18:04:38Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.3", "assets": [ { - "name": "conduit-connector-postgres_0.14.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Darwin_arm64.tar.gz", - "created_at": "2026-07-23T02:22:10Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 7738530 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Darwin_arm64.tar.gz", + "created_at": "2026-10-08T18:08:32Z", + "updated_at": "2026-10-08T18:08:33Z", + "download_count": 1, + "size": 7708575 }, { - "name": "conduit-connector-postgres_0.14.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Darwin_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:10Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 8199144 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Darwin_x86_64.tar.gz", + "created_at": "2026-10-08T18:08:32Z", + "updated_at": "2026-10-08T18:08:33Z", + "download_count": 1, + "size": 8183824 }, { - "name": "conduit-connector-postgres_0.14.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_arm64.tar.gz", - "created_at": "2026-07-23T02:22:10Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 7356068 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_arm64.tar.gz", + "created_at": "2026-10-08T18:08:33Z", + "updated_at": "2026-10-08T18:08:34Z", + "download_count": 1, + "size": 7322952 }, { - "name": "conduit-connector-postgres_0.14.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_i386.tar.gz", - "created_at": "2026-07-23T02:22:10Z", - "updated_at": "2026-07-23T02:22:11Z", - "download_count": 3, - "size": 7565265 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_i386.tar.gz", + "created_at": "2026-10-08T18:08:32Z", + "updated_at": "2026-10-08T18:08:32Z", + "download_count": 1, + "size": 7555430 }, { - "name": "conduit-connector-postgres_0.14.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:09Z", - "updated_at": "2026-07-23T02:22:10Z", - "download_count": 3, - "size": 7995417 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Linux_x86_64.tar.gz", + "created_at": "2026-10-08T18:08:33Z", + "updated_at": "2026-10-08T18:08:34Z", + "download_count": 1, + "size": 7977159 }, { - "name": "conduit-connector-postgres_0.14.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_arm64.tar.gz", - "created_at": "2026-07-23T02:22:09Z", - "updated_at": "2026-07-23T02:22:10Z", - "download_count": 3, - "size": 7460220 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_arm64.tar.gz", + "created_at": "2026-10-08T18:08:33Z", + "updated_at": "2026-10-08T18:08:33Z", + "download_count": 1, + "size": 7429492 }, { - "name": "conduit-connector-postgres_0.14.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_i386.tar.gz", - "created_at": "2026-07-23T02:22:09Z", - "updated_at": "2026-07-23T02:22:10Z", - "download_count": 3, - "size": 7917766 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_i386.tar.gz", + "created_at": "2026-10-08T18:08:32Z", + "updated_at": "2026-10-08T18:08:32Z", + "download_count": 1, + "size": 7904196 }, { - "name": "conduit-connector-postgres_0.14.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.3_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_x86_64.tar.gz", - "created_at": "2026-07-23T02:22:09Z", - "updated_at": "2026-07-23T02:22:09Z", - "download_count": 3, - "size": 8256471 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/conduit-connector-postgres_0.14.3_Windows_x86_64.tar.gz", + "created_at": "2026-10-08T18:08:33Z", + "updated_at": "2026-10-08T18:08:34Z", + "download_count": 1, + "size": 8243500 }, - { - "name": "postgres_v0.14.1_darwin_amd64", - "os": "darwin", - "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_amd64", - "created_at": "2026-07-23T02:19:52Z", - "updated_at": "2026-07-23T02:19:54Z", - "download_count": 3, - "size": 33854960 + { + "name": "postgres_v0.14.3_darwin_amd64.tar.gz", + "os": "darwin", + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_amd64.tar.gz", + "created_at": "2026-10-08T18:06:08Z", + "updated_at": "2026-10-08T18:06:09Z", + "download_count": 1, + "size": 16036045 }, { - "name": "postgres_v0.14.1_darwin_amd64.sigstore.json", + "name": "postgres_v0.14.3_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_amd64.sigstore.json", - "created_at": "2026-07-23T02:19:52Z", - "updated_at": "2026-07-23T02:19:52Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-08T18:06:08Z", + "updated_at": "2026-10-08T18:06:08Z", "download_count": 1, - "size": 9061 + "size": 9506 }, { - "name": "postgres_v0.14.1_darwin_arm64", + "name": "postgres_v0.14.3_darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_arm64", - "created_at": "2026-07-23T02:20:24Z", - "updated_at": "2026-07-23T02:20:26Z", - "download_count": 3, - "size": 32736146 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_arm64.tar.gz", + "created_at": "2026-10-08T18:06:35Z", + "updated_at": "2026-10-08T18:06:36Z", + "download_count": 1, + "size": 15299983 }, { - "name": "postgres_v0.14.1_darwin_arm64.sigstore.json", + "name": "postgres_v0.14.3_darwin_arm64.tar.gz.sigstore.json", "os": "darwin", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_arm64.sigstore.json", - "created_at": "2026-07-23T02:20:24Z", - "updated_at": "2026-07-23T02:20:25Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-08T18:06:35Z", + "updated_at": "2026-10-08T18:06:36Z", "download_count": 1, - "size": 9049 + "size": 9541 }, { - "name": "postgres_v0.14.1_linux_amd64", + "name": "postgres_v0.14.3_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_amd64", - "created_at": "2026-07-23T02:18:49Z", - "updated_at": "2026-07-23T02:18:51Z", - "download_count": 3, - "size": 33545486 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_amd64.tar.gz", + "created_at": "2026-10-08T18:05:14Z", + "updated_at": "2026-10-08T18:05:15Z", + "download_count": 4, + "size": 16052956 }, { - "name": "postgres_v0.14.1_linux_amd64.sigstore.json", + "name": "postgres_v0.14.3_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_amd64.sigstore.json", - "created_at": "2026-07-23T02:18:49Z", - "updated_at": "2026-07-23T02:18:49Z", - "download_count": 11, - "size": 9061 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-08T18:05:14Z", + "updated_at": "2026-10-08T18:05:14Z", + "download_count": 4, + "size": 9302 }, { - "name": "postgres_v0.14.1_linux_arm64", + "name": "postgres_v0.14.3_linux_arm64.tar.gz", "os": "linux", "arch": "arm64", - "content_type": "application/octet-stream", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_arm64", - "created_at": "2026-07-23T02:19:20Z", - "updated_at": "2026-07-23T02:19:22Z", - "download_count": 3, - "size": 32242135 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_arm64.tar.gz", + "created_at": "2026-10-08T18:05:41Z", + "updated_at": "2026-10-08T18:05:42Z", + "download_count": 1, + "size": 15012093 }, { - "name": "postgres_v0.14.1_linux_arm64.sigstore.json", + "name": "postgres_v0.14.3_linux_arm64.tar.gz.sigstore.json", "os": "linux", "arch": "arm64", "content_type": "application/json", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_arm64.sigstore.json", - "created_at": "2026-07-23T02:19:20Z", - "updated_at": "2026-07-23T02:19:21Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.3/postgres_v0.14.3_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-08T18:05:41Z", + "updated_at": "2026-10-08T18:05:41Z", "download_count": 1, - "size": 9061 + "size": 9600 } ], "is_latest": false }, { - "tag_name": "v0.14.0", - "name": "v0.14.0", - "body": "## Changelog\n* 65aa0d7471436b9ec2efdab360417e54dda263e8: Composite key support in destination (#296) (@lovromazgon)\n* cbb9f6eb9a54f22df32f11fca9a12f20fa64da63: Update version to v0.14.0 (#300) (@lovromazgon)\n\n", + "tag_name": "v0.14.2", + "name": "v0.14.2", + "body": "## What's Changed\n* chore: re-release v0.14.2 (signed-artifact fixes) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/315\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.1...v0.14.2", "draft": false, "prerelease": false, - "published_at": "2025-06-12T19:03:19Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.0", + "published_at": "2026-07-23T11:58:02Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.2", "assets": [ { - "name": "conduit-connector-postgres_0.14.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Darwin_arm64.tar.gz", - "created_at": "2025-06-12T19:03:18Z", - "updated_at": "2025-06-12T19:03:19Z", - "download_count": 63, - "size": 7726950 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:01:54Z", + "updated_at": "2026-07-23T12:01:55Z", + "download_count": 3, + "size": 7738526 }, { - "name": "conduit-connector-postgres_0.14.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Darwin_x86_64.tar.gz", - "created_at": "2025-06-12T19:03:18Z", - "updated_at": "2025-06-12T19:03:19Z", - "download_count": 55, - "size": 8196141 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T12:01:53Z", + "updated_at": "2026-07-23T12:01:54Z", + "download_count": 3, + "size": 8199124 }, { - "name": "conduit-connector-postgres_0.14.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_arm64.tar.gz", - "created_at": "2025-06-12T19:03:17Z", - "updated_at": "2025-06-12T19:03:18Z", - "download_count": 56, - "size": 7348879 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_arm64.tar.gz", + "created_at": "2026-07-23T12:01:53Z", + "updated_at": "2026-07-23T12:01:54Z", + "download_count": 3, + "size": 7356071 }, { - "name": "conduit-connector-postgres_0.14.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_i386.tar.gz", - "created_at": "2025-06-12T19:03:18Z", - "updated_at": "2025-06-12T19:03:19Z", - "download_count": 64, - "size": 7560877 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_i386.tar.gz", + "created_at": "2026-07-23T12:01:54Z", + "updated_at": "2026-07-23T12:01:55Z", + "download_count": 4, + "size": 7565258 }, { - "name": "conduit-connector-postgres_0.14.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_x86_64.tar.gz", - "created_at": "2025-06-12T19:03:17Z", - "updated_at": "2025-06-12T19:03:18Z", - "download_count": 57, - "size": 7990279 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T12:01:53Z", + "updated_at": "2026-07-23T12:01:54Z", + "download_count": 4, + "size": 7995412 }, { - "name": "conduit-connector-postgres_0.14.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_arm64.tar.gz", - "created_at": "2025-06-12T19:03:17Z", - "updated_at": "2025-06-12T19:03:18Z", - "download_count": 58, - "size": 7455564 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_arm64.tar.gz", + "created_at": "2026-07-23T12:01:55Z", + "updated_at": "2026-07-23T12:01:55Z", + "download_count": 3, + "size": 7460220 }, { - "name": "conduit-connector-postgres_0.14.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_i386.tar.gz", - "created_at": "2025-06-12T19:03:18Z", - "updated_at": "2025-06-12T19:03:19Z", - "download_count": 55, - "size": 7913343 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_i386.tar.gz", + "created_at": "2026-07-23T12:01:54Z", + "updated_at": "2026-07-23T12:01:55Z", + "download_count": 3, + "size": 7917769 }, { - "name": "conduit-connector-postgres_0.14.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_x86_64.tar.gz", - "created_at": "2025-06-12T19:03:17Z", - "updated_at": "2025-06-12T19:03:18Z", - "download_count": 58, - "size": 8248770 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.13.0", - "name": "v0.13.0", - "body": "## Changelog\n* 51f0d23a4f6657ee760cab02970d624f60f3333b: Add scripts for bumping the connector version and tagging the code (#294) (@hariso)\n* 5b39f4cd49c04bbe11b5523e97bc79a3d7c099e4: Optimize ReadN in CDC by collecting records in batches (#284) (@hariso)\n* 25f925d2be368598cec24bf61026c9e6811706b9: Supporting reading and writing numeric/decimal values without loss of precision (#290) (@hariso)\n* 8c4586087d51ef4eeca774dfb886fe2d09eaf508: Update version to v0.13.0 (#295) (@hariso)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-06-03T17:10:17Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.13.0", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/conduit-connector-postgres_0.14.2_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T12:01:53Z", + "updated_at": "2026-07-23T12:01:54Z", + "download_count": 3, + "size": 8256466 + }, { - "name": "conduit-connector-postgres_0.13.0_Darwin_arm64.tar.gz", + "name": "postgres_v0.14.2_darwin_amd64.tar.gz", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Darwin_arm64.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:16Z", - "download_count": 6, - "size": 7688239 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_amd64.tar.gz", + "created_at": "2026-07-23T11:59:53Z", + "updated_at": "2026-07-23T11:59:54Z", + "download_count": 4, + "size": 16032324 }, { - "name": "conduit-connector-postgres_0.13.0_Darwin_x86_64.tar.gz", + "name": "postgres_v0.14.2_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Darwin_x86_64.tar.gz", - "created_at": "2025-06-03T17:10:16Z", - "updated_at": "2025-06-03T17:10:16Z", - "download_count": 9, - "size": 8153298 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:59:53Z", + "updated_at": "2026-07-23T11:59:54Z", + "download_count": 11, + "size": 9755 }, { - "name": "conduit-connector-postgres_0.13.0_Linux_arm64.tar.gz", - "os": "linux", + "name": "postgres_v0.14.2_darwin_arm64.tar.gz", + "os": "darwin", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_arm64.tar.gz", + "created_at": "2026-07-23T12:00:29Z", + "updated_at": "2026-07-23T12:00:29Z", + "download_count": 13, + "size": 15294597 + }, + { + "name": "postgres_v0.14.2_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_arm64.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:16Z", - "download_count": 6, - "size": 7308265 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T12:00:29Z", + "updated_at": "2026-07-23T12:00:29Z", + "download_count": 21, + "size": 9755 }, { - "name": "conduit-connector-postgres_0.13.0_Linux_i386.tar.gz", + "name": "postgres_v0.14.2_linux_amd64.tar.gz", "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_i386.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:15Z", - "download_count": 6, - "size": 7521883 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_amd64.tar.gz", + "created_at": "2026-07-23T11:58:43Z", + "updated_at": "2026-07-23T11:58:44Z", + "download_count": 3, + "size": 16047321 }, { - "name": "conduit-connector-postgres_0.13.0_Linux_x86_64.tar.gz", + "name": "postgres_v0.14.2_linux_amd64.tar.gz.sigstore.json", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_x86_64.tar.gz", - "created_at": "2025-06-03T17:10:16Z", - "updated_at": "2025-06-03T17:10:16Z", - "download_count": 8, - "size": 7946047 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:58:43Z", + "updated_at": "2026-07-23T11:58:43Z", + "download_count": 13, + "size": 9708 }, { - "name": "conduit-connector-postgres_0.13.0_Windows_arm64.tar.gz", - "os": "windows", + "name": "postgres_v0.14.2_linux_arm64.tar.gz", + "os": "linux", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_arm64.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:15Z", - "download_count": 6, - "size": 7418400 - }, - { - "name": "conduit-connector-postgres_0.13.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_i386.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:15Z", - "download_count": 6, - "size": 7876011 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_arm64.tar.gz", + "created_at": "2026-07-23T11:59:17Z", + "updated_at": "2026-07-23T11:59:18Z", + "download_count": 9, + "size": 15000155 }, { - "name": "conduit-connector-postgres_0.13.0_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_x86_64.tar.gz", - "created_at": "2025-06-03T17:10:15Z", - "updated_at": "2025-06-03T17:10:15Z", - "download_count": 6, - "size": 8203856 + "name": "postgres_v0.14.2_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.2/postgres_v0.14.2_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-07-23T11:59:17Z", + "updated_at": "2026-07-23T11:59:17Z", + "download_count": 17, + "size": 9567 } ], "is_latest": false }, { - "tag_name": "v0.12.2", - "name": "v0.12.2", - "body": "## Changelog\n* 7074c053cce46d8a9530f168d91dff26395dfcc5: Bump SDK version to v0.13.4 (#289) (@raulb)\n* 9063503847b684da01f00227d8ae6a583a1b2bb6: chore: bump (#291) (@raulb)\n\n", + "tag_name": "v0.14.1", + "name": "v0.14.1", + "body": "## What's Changed\n* go.mod: bump github.com/hamba/avro/v2 from 2.29.0 to 2.30.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-postgres/pull/306\n* feat: registry seed — publish.yml + bump to v0.14.1 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-postgres/pull/314\n\n## New Contributors\n* @devarismeroxa made their first contribution in https://github.com/ConduitIO/conduit-connector-postgres/pull/314\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-postgres/compare/v0.14.0...v0.14.1", "draft": false, "prerelease": false, - "published_at": "2025-05-19T15:24:21Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.2", + "published_at": "2026-07-23T02:18:09Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.1", "assets": [ { - "name": "conduit-connector-postgres_0.12.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Darwin_arm64.tar.gz", - "created_at": "2025-05-19T15:24:20Z", - "updated_at": "2025-05-19T15:24:20Z", - "download_count": 7, - "size": 7679148 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Darwin_arm64.tar.gz", + "created_at": "2026-07-23T02:22:10Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 7738530 }, { - "name": "conduit-connector-postgres_0.12.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Darwin_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:19Z", - "updated_at": "2025-05-19T15:24:19Z", - "download_count": 6, - "size": 8137123 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Darwin_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:10Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 8199144 }, { - "name": "conduit-connector-postgres_0.12.2_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_arm64.tar.gz", - "created_at": "2025-05-19T15:24:20Z", - "updated_at": "2025-05-19T15:24:20Z", - "download_count": 6, - "size": 7301272 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_arm64.tar.gz", + "created_at": "2026-07-23T02:22:10Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 7356068 }, { - "name": "conduit-connector-postgres_0.12.2_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_i386.tar.gz", - "created_at": "2025-05-19T15:24:19Z", - "updated_at": "2025-05-19T15:24:20Z", - "download_count": 6, - "size": 7514440 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_i386.tar.gz", + "created_at": "2026-07-23T02:22:10Z", + "updated_at": "2026-07-23T02:22:11Z", + "download_count": 3, + "size": 7565265 }, { - "name": "conduit-connector-postgres_0.12.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:19Z", - "updated_at": "2025-05-19T15:24:19Z", - "download_count": 7, - "size": 7933817 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Linux_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:09Z", + "updated_at": "2026-07-23T02:22:10Z", + "download_count": 3, + "size": 7995417 }, { - "name": "conduit-connector-postgres_0.12.2_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_arm64.tar.gz", - "created_at": "2025-05-19T15:24:19Z", - "updated_at": "2025-05-19T15:24:19Z", - "download_count": 6, - "size": 7408099 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_arm64.tar.gz", + "created_at": "2026-07-23T02:22:09Z", + "updated_at": "2026-07-23T02:22:10Z", + "download_count": 3, + "size": 7460220 }, { - "name": "conduit-connector-postgres_0.12.2_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_i386.tar.gz", - "created_at": "2025-05-19T15:24:20Z", - "updated_at": "2025-05-19T15:24:20Z", - "download_count": 6, - "size": 7864258 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_i386.tar.gz", + "created_at": "2026-07-23T02:22:09Z", + "updated_at": "2026-07-23T02:22:10Z", + "download_count": 3, + "size": 7917766 }, { - "name": "conduit-connector-postgres_0.12.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_x86_64.tar.gz", - "created_at": "2025-05-19T15:24:19Z", - "updated_at": "2025-05-19T15:24:19Z", - "download_count": 6, - "size": 8197751 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.12.1", - "name": "v0.12.1", - "body": "## Changelog\n* 15caf2e41edd1c8ef1f7d774f170a099d15d896b: fix snapshot allocation (#285) (@raulb)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2025-05-06T13:42:40Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.1", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/conduit-connector-postgres_0.14.1_Windows_x86_64.tar.gz", + "created_at": "2026-07-23T02:22:09Z", + "updated_at": "2026-07-23T02:22:09Z", + "download_count": 3, + "size": 8256471 + }, { - "name": "conduit-connector-postgres_0.12.1_Darwin_arm64.tar.gz", + "name": "postgres_v0.14.1_darwin_amd64", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Darwin_arm64.tar.gz", - "created_at": "2025-05-06T13:42:39Z", - "updated_at": "2025-05-06T13:42:40Z", - "download_count": 7, - "size": 7671338 + "arch": "amd64", + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_amd64", + "created_at": "2026-07-23T02:19:52Z", + "updated_at": "2026-07-23T02:19:54Z", + "download_count": 3, + "size": 33854960 }, { - "name": "conduit-connector-postgres_0.12.1_Darwin_x86_64.tar.gz", + "name": "postgres_v0.14.1_darwin_amd64.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Darwin_x86_64.tar.gz", - "created_at": "2025-05-06T13:42:38Z", - "updated_at": "2025-05-06T13:42:39Z", - "download_count": 6, - "size": 8133589 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_amd64.sigstore.json", + "created_at": "2026-07-23T02:19:52Z", + "updated_at": "2026-07-23T02:19:52Z", + "download_count": 1, + "size": 9061 }, { - "name": "conduit-connector-postgres_0.12.1_Linux_arm64.tar.gz", - "os": "linux", + "name": "postgres_v0.14.1_darwin_arm64", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_arm64.tar.gz", - "created_at": "2025-05-06T13:42:39Z", - "updated_at": "2025-05-06T13:42:40Z", - "download_count": 6, - "size": 7294383 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_arm64", + "created_at": "2026-07-23T02:20:24Z", + "updated_at": "2026-07-23T02:20:26Z", + "download_count": 3, + "size": 32736146 }, { - "name": "conduit-connector-postgres_0.12.1_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_i386.tar.gz", - "created_at": "2025-05-06T13:42:38Z", - "updated_at": "2025-05-06T13:42:39Z", - "download_count": 7, - "size": 7505094 + "name": "postgres_v0.14.1_darwin_arm64.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_darwin_arm64.sigstore.json", + "created_at": "2026-07-23T02:20:24Z", + "updated_at": "2026-07-23T02:20:25Z", + "download_count": 1, + "size": 9049 }, { - "name": "conduit-connector-postgres_0.12.1_Linux_x86_64.tar.gz", + "name": "postgres_v0.14.1_linux_amd64", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_x86_64.tar.gz", - "created_at": "2025-05-06T13:42:39Z", - "updated_at": "2025-05-06T13:42:40Z", - "download_count": 6, - "size": 7928088 + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_amd64", + "created_at": "2026-07-23T02:18:49Z", + "updated_at": "2026-07-23T02:18:51Z", + "download_count": 3, + "size": 33545486 }, { - "name": "conduit-connector-postgres_0.12.1_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_arm64.tar.gz", - "created_at": "2025-05-06T13:42:38Z", - "updated_at": "2025-05-06T13:42:39Z", - "download_count": 6, - "size": 7400628 + "name": "postgres_v0.14.1_linux_amd64.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_amd64.sigstore.json", + "created_at": "2026-07-23T02:18:49Z", + "updated_at": "2026-07-23T02:18:49Z", + "download_count": 11, + "size": 9061 }, { - "name": "conduit-connector-postgres_0.12.1_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_i386.tar.gz", - "created_at": "2025-05-06T13:42:38Z", - "updated_at": "2025-05-06T13:42:39Z", - "download_count": 6, - "size": 7856530 + "name": "postgres_v0.14.1_linux_arm64", + "os": "linux", + "arch": "arm64", + "content_type": "application/octet-stream", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_arm64", + "created_at": "2026-07-23T02:19:20Z", + "updated_at": "2026-07-23T02:19:22Z", + "download_count": 3, + "size": 32242135 }, { - "name": "conduit-connector-postgres_0.12.1_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_x86_64.tar.gz", - "created_at": "2025-05-06T13:42:39Z", - "updated_at": "2025-05-06T13:42:40Z", - "download_count": 6, - "size": 8188895 + "name": "postgres_v0.14.1_linux_arm64.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.1/postgres_v0.14.1_linux_arm64.sigstore.json", + "created_at": "2026-07-23T02:19:20Z", + "updated_at": "2026-07-23T02:19:21Z", + "download_count": 1, + "size": 9061 } ], "is_latest": false }, { - "tag_name": "v0.12.0", - "name": "v0.12.0", - "body": "## Changelog\n* fbd882a9a4e7e9a4438fde80647e86254acd6d55: Update README.md (#274) (@maha-hajja)\n* d52fadf6573d407d9820d6514c8edb16cda543f9: Validate logical replication slot name config (#280) (@rauanmayemir)\n* e468f3985c1430ea9d19563778e21734b99a0500: feat: Implement ReadN (#276) (@raulb)\n* c2987ea6a7834fc6f65df0653eedbac327ad2f10: fix: speed on ReadN (#279) (@raulb)\n* 8aa702c51a68afdfb34d37098eb0a23cc49286c8: update connector.yaml version (#283) (@raulb)\n\n", + "tag_name": "v0.14.0", + "name": "v0.14.0", + "body": "## Changelog\n* 65aa0d7471436b9ec2efdab360417e54dda263e8: Composite key support in destination (#296) (@lovromazgon)\n* cbb9f6eb9a54f22df32f11fca9a12f20fa64da63: Update version to v0.14.0 (#300) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2025-05-06T12:20:06Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.0", + "published_at": "2025-06-12T19:03:19Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.14.0", "assets": [ { - "name": "conduit-connector-postgres_0.12.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Darwin_arm64.tar.gz", - "created_at": "2025-05-06T12:20:05Z", - "updated_at": "2025-05-06T12:20:06Z", - "download_count": 7, - "size": 7671512 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Darwin_arm64.tar.gz", + "created_at": "2025-06-12T19:03:18Z", + "updated_at": "2025-06-12T19:03:19Z", + "download_count": 63, + "size": 7726950 }, { - "name": "conduit-connector-postgres_0.12.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Darwin_x86_64.tar.gz", - "created_at": "2025-05-06T12:20:04Z", - "updated_at": "2025-05-06T12:20:05Z", - "download_count": 6, - "size": 8133635 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Darwin_x86_64.tar.gz", + "created_at": "2025-06-12T19:03:18Z", + "updated_at": "2025-06-12T19:03:19Z", + "download_count": 56, + "size": 8196141 }, { - "name": "conduit-connector-postgres_0.12.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_arm64.tar.gz", - "created_at": "2025-05-06T12:20:04Z", - "updated_at": "2025-05-06T12:20:05Z", - "download_count": 8, - "size": 7294174 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_arm64.tar.gz", + "created_at": "2025-06-12T19:03:17Z", + "updated_at": "2025-06-12T19:03:18Z", + "download_count": 58, + "size": 7348879 }, { - "name": "conduit-connector-postgres_0.12.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_i386.tar.gz", - "created_at": "2025-05-06T12:20:04Z", - "updated_at": "2025-05-06T12:20:05Z", - "download_count": 7, - "size": 7505224 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_i386.tar.gz", + "created_at": "2025-06-12T19:03:18Z", + "updated_at": "2025-06-12T19:03:19Z", + "download_count": 64, + "size": 7560877 }, { - "name": "conduit-connector-postgres_0.12.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_x86_64.tar.gz", - "created_at": "2025-05-06T12:20:05Z", - "updated_at": "2025-05-06T12:20:06Z", - "download_count": 7, - "size": 7928056 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Linux_x86_64.tar.gz", + "created_at": "2025-06-12T19:03:17Z", + "updated_at": "2025-06-12T19:03:18Z", + "download_count": 59, + "size": 7990279 }, { - "name": "conduit-connector-postgres_0.12.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_arm64.tar.gz", - "created_at": "2025-05-06T12:20:05Z", - "updated_at": "2025-05-06T12:20:06Z", - "download_count": 8, - "size": 7400588 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_arm64.tar.gz", + "created_at": "2025-06-12T19:03:17Z", + "updated_at": "2025-06-12T19:03:18Z", + "download_count": 58, + "size": 7455564 }, { - "name": "conduit-connector-postgres_0.12.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_i386.tar.gz", - "created_at": "2025-05-06T12:20:04Z", - "updated_at": "2025-05-06T12:20:05Z", - "download_count": 6, - "size": 7856395 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_i386.tar.gz", + "created_at": "2025-06-12T19:03:18Z", + "updated_at": "2025-06-12T19:03:19Z", + "download_count": 55, + "size": 7913343 }, { - "name": "conduit-connector-postgres_0.12.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.14.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_x86_64.tar.gz", - "created_at": "2025-05-06T12:20:05Z", - "updated_at": "2025-05-06T12:20:06Z", - "download_count": 6, - "size": 8189112 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.14.0/conduit-connector-postgres_0.14.0_Windows_x86_64.tar.gz", + "created_at": "2025-06-12T19:03:17Z", + "updated_at": "2025-06-12T19:03:18Z", + "download_count": 58, + "size": 8248770 } ], "is_latest": false }, { - "tag_name": "v0.11.2", - "name": "v0.11.2", - "body": "## Changelog\n* 82d2d6d8f53a7c374c91ef2b247b81893579579a: chore: upgrade commons and sdk (#266) (@raulb)\n\n", + "tag_name": "v0.13.0", + "name": "v0.13.0", + "body": "## Changelog\n* 51f0d23a4f6657ee760cab02970d624f60f3333b: Add scripts for bumping the connector version and tagging the code (#294) (@hariso)\n* 5b39f4cd49c04bbe11b5523e97bc79a3d7c099e4: Optimize ReadN in CDC by collecting records in batches (#284) (@hariso)\n* 25f925d2be368598cec24bf61026c9e6811706b9: Supporting reading and writing numeric/decimal values without loss of precision (#290) (@hariso)\n* 8c4586087d51ef4eeca774dfb886fe2d09eaf508: Update version to v0.13.0 (#295) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2025-03-20T12:14:56Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.2", + "published_at": "2025-06-03T17:10:17Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.13.0", "assets": [ { - "name": "conduit-connector-postgres_0.11.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Darwin_arm64.tar.gz", - "created_at": "2025-03-20T12:14:55Z", - "updated_at": "2025-03-20T12:14:56Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Darwin_arm64.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:16Z", "download_count": 6, - "size": 7495034 + "size": 7688239 }, { - "name": "conduit-connector-postgres_0.11.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Darwin_x86_64.tar.gz", - "created_at": "2025-03-20T12:14:55Z", - "updated_at": "2025-03-20T12:14:56Z", - "download_count": 7, - "size": 7912252 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Darwin_x86_64.tar.gz", + "created_at": "2025-06-03T17:10:16Z", + "updated_at": "2025-06-03T17:10:16Z", + "download_count": 9, + "size": 8153298 }, { - "name": "conduit-connector-postgres_0.11.2_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_arm64.tar.gz", - "created_at": "2025-03-20T12:14:54Z", - "updated_at": "2025-03-20T12:14:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_arm64.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:16Z", "download_count": 6, - "size": 7127206 + "size": 7308265 }, { - "name": "conduit-connector-postgres_0.11.2_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_i386.tar.gz", - "created_at": "2025-03-20T12:14:55Z", - "updated_at": "2025-03-20T12:14:56Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_i386.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:15Z", "download_count": 6, - "size": 7229595 + "size": 7521883 }, { - "name": "conduit-connector-postgres_0.11.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_x86_64.tar.gz", - "created_at": "2025-03-20T12:14:54Z", - "updated_at": "2025-03-20T12:14:55Z", - "download_count": 6, - "size": 7711562 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Linux_x86_64.tar.gz", + "created_at": "2025-06-03T17:10:16Z", + "updated_at": "2025-06-03T17:10:16Z", + "download_count": 9, + "size": 7946047 }, { - "name": "conduit-connector-postgres_0.11.2_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_arm64.tar.gz", - "created_at": "2025-03-20T12:14:54Z", - "updated_at": "2025-03-20T12:14:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_arm64.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:15Z", "download_count": 6, - "size": 7231463 + "size": 7418400 }, { - "name": "conduit-connector-postgres_0.11.2_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_i386.tar.gz", - "created_at": "2025-03-20T12:14:55Z", - "updated_at": "2025-03-20T12:14:56Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_i386.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:15Z", "download_count": 6, - "size": 7570387 + "size": 7876011 }, { - "name": "conduit-connector-postgres_0.11.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.13.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_x86_64.tar.gz", - "created_at": "2025-03-20T12:14:54Z", - "updated_at": "2025-03-20T12:14:55Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.13.0/conduit-connector-postgres_0.13.0_Windows_x86_64.tar.gz", + "created_at": "2025-06-03T17:10:15Z", + "updated_at": "2025-06-03T17:10:15Z", "download_count": 6, - "size": 7973620 + "size": 8203856 } ], "is_latest": false }, { - "tag_name": "v0.11.1", - "name": "v0.11.1", - "body": "## Changelog\n* 9814150d4ded3aa2d2c1074c5a0cc0dcd10de9d9: Add middleware validation, remove table parameter (#247) (@hariso)\n* 17ad0a478ee99a8687bae95b7791720767e0b474: Bump version to v0.11.1 (#265) (@hariso)\n* d2e3dde564aa1674b887cbce9a3cfb1ad082ce92: checkshadowing is not allowed (#257) (@maha-hajja)\n* f576753fa9f66678413de9f509825ad6785ffc94: column name \u0026\u0026 table name are enclosed in quotes to ensure proper handling of capitalized identifiers (#251) (@derElektrobesen)\n* dc696c823db45a056cf4a6d52d9a6db228d05387: use check connector tag action from automation (#250) (@lovromazgon)\n\n", + "tag_name": "v0.12.2", + "name": "v0.12.2", + "body": "## Changelog\n* 7074c053cce46d8a9530f168d91dff26395dfcc5: Bump SDK version to v0.13.4 (#289) (@raulb)\n* 9063503847b684da01f00227d8ae6a583a1b2bb6: chore: bump (#291) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2025-03-19T14:03:13Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.1", + "published_at": "2025-05-19T15:24:21Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.2", "assets": [ { - "name": "conduit-connector-postgres_0.11.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Darwin_arm64.tar.gz", - "created_at": "2025-03-19T14:03:12Z", - "updated_at": "2025-03-19T14:03:13Z", - "download_count": 6, - "size": 7471784 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Darwin_arm64.tar.gz", + "created_at": "2025-05-19T15:24:20Z", + "updated_at": "2025-05-19T15:24:20Z", + "download_count": 7, + "size": 7679148 }, { - "name": "conduit-connector-postgres_0.11.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Darwin_x86_64.tar.gz", - "created_at": "2025-03-19T14:03:13Z", - "updated_at": "2025-03-19T14:03:13Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Darwin_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:19Z", + "updated_at": "2025-05-19T15:24:19Z", "download_count": 6, - "size": 7892422 + "size": 8137123 }, { - "name": "conduit-connector-postgres_0.11.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_arm64.tar.gz", - "created_at": "2025-03-19T14:03:12Z", - "updated_at": "2025-03-19T14:03:12Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_arm64.tar.gz", + "created_at": "2025-05-19T15:24:20Z", + "updated_at": "2025-05-19T15:24:20Z", "download_count": 6, - "size": 7111434 + "size": 7301272 }, { - "name": "conduit-connector-postgres_0.11.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_i386.tar.gz", - "created_at": "2025-03-19T14:03:12Z", - "updated_at": "2025-03-19T14:03:13Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_i386.tar.gz", + "created_at": "2025-05-19T15:24:19Z", + "updated_at": "2025-05-19T15:24:20Z", "download_count": 6, - "size": 7216171 + "size": 7514440 }, { - "name": "conduit-connector-postgres_0.11.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_x86_64.tar.gz", - "created_at": "2025-03-19T14:03:11Z", - "updated_at": "2025-03-19T14:03:12Z", - "download_count": 6, - "size": 7692791 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Linux_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:19Z", + "updated_at": "2025-05-19T15:24:19Z", + "download_count": 8, + "size": 7933817 }, { - "name": "conduit-connector-postgres_0.11.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_arm64.tar.gz", - "created_at": "2025-03-19T14:03:11Z", - "updated_at": "2025-03-19T14:03:12Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_arm64.tar.gz", + "created_at": "2025-05-19T15:24:19Z", + "updated_at": "2025-05-19T15:24:19Z", "download_count": 6, - "size": 7213554 + "size": 7408099 }, { - "name": "conduit-connector-postgres_0.11.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_i386.tar.gz", - "created_at": "2025-03-19T14:03:12Z", - "updated_at": "2025-03-19T14:03:13Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_i386.tar.gz", + "created_at": "2025-05-19T15:24:20Z", + "updated_at": "2025-05-19T15:24:20Z", "download_count": 6, - "size": 7559203 + "size": 7864258 }, { - "name": "conduit-connector-postgres_0.11.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_x86_64.tar.gz", - "created_at": "2025-03-19T14:03:11Z", - "updated_at": "2025-03-19T14:03:12Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.2/conduit-connector-postgres_0.12.2_Windows_x86_64.tar.gz", + "created_at": "2025-05-19T15:24:19Z", + "updated_at": "2025-05-19T15:24:19Z", "download_count": 6, - "size": 7953834 + "size": 8197751 } ], "is_latest": false }, { - "tag_name": "v0.11.0", - "name": "v0.11.0", - "body": "## Changelog\n* 626ea6e6b6b450deef11841d081a8c8b94b45e60: Build schemas by default (#244) (@hariso)\n* 9bea3c0715d8aa5a72e193eb860121ddd4eed396: Fix error on empty snapshot (#235) (@hariso)\n* 1545a3148352486ec7b5796ba58696bca23c23a7: Generate connector.yaml (#232) (@hariso)\n* 134b5151084e74d6661dd3cc072d297446d04dd3: Handle `json` and `jsonb` types as bytes. (#240) (@lyuboxa)\n* ee46c2162826908d3f58bb45b526888e59e1a206: Make it possible to disable schemas (#234) (@hariso)\n* cbbcf68bb86f284f7964a194776046295a9db609: Remove workarounds for timestamps (@hariso)\n* f6c92b6088248981f705f0b42464f2461aa02026: add missing assertion (#230) (@alarbada)\n* bd9aa4ed4cffe774a3a99b8c2f41965df7d2df63: add opencdc.collection metadata key for snapshots (#241) (@maha-hajja)\n* 9f6b67ae61ea88a5c97354305f6cef7a02171f81: bump version to v0.11.0 (#245) (@lovromazgon)\n* 1b4a474070a29d6b8f58b8b249d5bf35a49dae6d: move-scarf-pixel-to-bottom (#221) (@lovromazgon)\n\n", + "tag_name": "v0.12.1", + "name": "v0.12.1", + "body": "## Changelog\n* 15caf2e41edd1c8ef1f7d774f170a099d15d896b: fix snapshot allocation (#285) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2025-01-31T18:45:48Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.0", + "published_at": "2025-05-06T13:42:40Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.1", "assets": [ { - "name": "conduit-connector-postgres_0.11.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Darwin_arm64.tar.gz", - "created_at": "2025-01-31T18:45:47Z", - "updated_at": "2025-01-31T18:45:47Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Darwin_arm64.tar.gz", + "created_at": "2025-05-06T13:42:39Z", + "updated_at": "2025-05-06T13:42:40Z", "download_count": 7, - "size": 7419651 + "size": 7671338 }, { - "name": "conduit-connector-postgres_0.11.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Darwin_x86_64.tar.gz", - "created_at": "2025-01-31T18:45:46Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 10, - "size": 7829678 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Darwin_x86_64.tar.gz", + "created_at": "2025-05-06T13:42:38Z", + "updated_at": "2025-05-06T13:42:39Z", + "download_count": 6, + "size": 8133589 }, { - "name": "conduit-connector-postgres_0.11.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_arm64.tar.gz", - "created_at": "2025-01-31T18:45:46Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 8, - "size": 7053907 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_arm64.tar.gz", + "created_at": "2025-05-06T13:42:39Z", + "updated_at": "2025-05-06T13:42:40Z", + "download_count": 6, + "size": 7294383 }, { - "name": "conduit-connector-postgres_0.11.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_i386.tar.gz", - "created_at": "2025-01-31T18:45:47Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 9, - "size": 7158665 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_i386.tar.gz", + "created_at": "2025-05-06T13:42:38Z", + "updated_at": "2025-05-06T13:42:39Z", + "download_count": 7, + "size": 7505094 }, { - "name": "conduit-connector-postgres_0.11.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_x86_64.tar.gz", - "created_at": "2025-01-31T18:45:46Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 8, - "size": 7631865 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Linux_x86_64.tar.gz", + "created_at": "2025-05-06T13:42:39Z", + "updated_at": "2025-05-06T13:42:40Z", + "download_count": 7, + "size": 7928088 }, { - "name": "conduit-connector-postgres_0.11.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_arm64.tar.gz", - "created_at": "2025-01-31T18:45:46Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 9, - "size": 7156156 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_arm64.tar.gz", + "created_at": "2025-05-06T13:42:38Z", + "updated_at": "2025-05-06T13:42:39Z", + "download_count": 6, + "size": 7400628 }, { - "name": "conduit-connector-postgres_0.11.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_i386.tar.gz", - "created_at": "2025-01-31T18:45:47Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 9, - "size": 7500258 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_i386.tar.gz", + "created_at": "2025-05-06T13:42:38Z", + "updated_at": "2025-05-06T13:42:39Z", + "download_count": 6, + "size": 7856530 }, { - "name": "conduit-connector-postgres_0.11.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_x86_64.tar.gz", - "created_at": "2025-01-31T18:45:47Z", - "updated_at": "2025-01-31T18:45:47Z", - "download_count": 7, - "size": 7890662 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.1/conduit-connector-postgres_0.12.1_Windows_x86_64.tar.gz", + "created_at": "2025-05-06T13:42:39Z", + "updated_at": "2025-05-06T13:42:40Z", + "download_count": 6, + "size": 8188895 } ], "is_latest": false }, { - "tag_name": "v0.10.1", - "name": "v0.10.1", - "body": "## Changelog\n\n", + "tag_name": "v0.12.0", + "name": "v0.12.0", + "body": "## Changelog\n* fbd882a9a4e7e9a4438fde80647e86254acd6d55: Update README.md (#274) (@maha-hajja)\n* d52fadf6573d407d9820d6514c8edb16cda543f9: Validate logical replication slot name config (#280) (@rauanmayemir)\n* e468f3985c1430ea9d19563778e21734b99a0500: feat: Implement ReadN (#276) (@raulb)\n* c2987ea6a7834fc6f65df0653eedbac327ad2f10: fix: speed on ReadN (#279) (@raulb)\n* 8aa702c51a68afdfb34d37098eb0a23cc49286c8: update connector.yaml version (#283) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-11-08T15:38:27Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.10.1", + "published_at": "2025-05-06T12:20:06Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.12.0", "assets": [ { - "name": "conduit-connector-postgres_0.10.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Darwin_arm64.tar.gz", - "created_at": "2024-11-08T15:38:26Z", - "updated_at": "2024-11-08T15:38:26Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Darwin_arm64.tar.gz", + "created_at": "2025-05-06T12:20:05Z", + "updated_at": "2025-05-06T12:20:06Z", "download_count": 7, - "size": 7114247 + "size": 7671512 }, { - "name": "conduit-connector-postgres_0.10.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Darwin_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:25Z", - "updated_at": "2024-11-08T15:38:26Z", - "download_count": 5, - "size": 7511056 + "content_type": "application/gzip", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Darwin_x86_64.tar.gz", + "created_at": "2025-05-06T12:20:04Z", + "updated_at": "2025-05-06T12:20:05Z", + "download_count": 6, + "size": 8133635 }, { - "name": "conduit-connector-postgres_0.10.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_arm64.tar.gz", - "created_at": "2024-11-08T15:38:25Z", - "updated_at": "2024-11-08T15:38:26Z", - "download_count": 5, - "size": 6764970 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_arm64.tar.gz", + "created_at": "2025-05-06T12:20:04Z", + "updated_at": "2025-05-06T12:20:05Z", + "download_count": 8, + "size": 7294174 }, { - "name": "conduit-connector-postgres_0.10.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_i386.tar.gz", - "created_at": "2024-11-08T15:38:25Z", - "updated_at": "2024-11-08T15:38:26Z", - "download_count": 5, - "size": 6868946 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_i386.tar.gz", + "created_at": "2025-05-06T12:20:04Z", + "updated_at": "2025-05-06T12:20:05Z", + "download_count": 7, + "size": 7505224 }, { - "name": "conduit-connector-postgres_0.10.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:24Z", - "updated_at": "2024-11-08T15:38:25Z", - "download_count": 6, - "size": 7316085 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Linux_x86_64.tar.gz", + "created_at": "2025-05-06T12:20:05Z", + "updated_at": "2025-05-06T12:20:06Z", + "download_count": 7, + "size": 7928056 }, { - "name": "conduit-connector-postgres_0.10.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_arm64.tar.gz", - "created_at": "2024-11-08T15:38:24Z", - "updated_at": "2024-11-08T15:38:25Z", - "download_count": 5, - "size": 6865381 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_arm64.tar.gz", + "created_at": "2025-05-06T12:20:05Z", + "updated_at": "2025-05-06T12:20:06Z", + "download_count": 8, + "size": 7400588 }, { - "name": "conduit-connector-postgres_0.10.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_i386.tar.gz", - "created_at": "2024-11-08T15:38:24Z", - "updated_at": "2024-11-08T15:38:25Z", - "download_count": 5, - "size": 7199272 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_i386.tar.gz", + "created_at": "2025-05-06T12:20:04Z", + "updated_at": "2025-05-06T12:20:05Z", + "download_count": 6, + "size": 7856395 }, { - "name": "conduit-connector-postgres_0.10.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.12.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_x86_64.tar.gz", - "created_at": "2024-11-08T15:38:24Z", - "updated_at": "2024-11-08T15:38:25Z", - "download_count": 5, - "size": 7568238 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.12.0/conduit-connector-postgres_0.12.0_Windows_x86_64.tar.gz", + "created_at": "2025-05-06T12:20:05Z", + "updated_at": "2025-05-06T12:20:06Z", + "download_count": 6, + "size": 8189112 } ], "is_latest": false }, { - "tag_name": "v0.10.0", - "name": "v0.10.0", - "body": "## Changelog\n* e050bb9d852803f22c863a53df3747ced476a2a5: Use bytes instead of [n]bytes to represent decimal type, since each value may have larger size (#214) (@lyuboxa)\n* 5b6582ca542fa8b6477a4a4b768069a570ee79c5: add connector logs to tests (#220) (@alarbada)\n\n", + "tag_name": "v0.11.2", + "name": "v0.11.2", + "body": "## Changelog\n* 82d2d6d8f53a7c374c91ef2b247b81893579579a: chore: upgrade commons and sdk (#266) (@raulb)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-11-08T15:35:54Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.10.0", + "published_at": "2025-03-20T12:14:56Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.2", "assets": [ { - "name": "conduit-connector-postgres_0.10.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Darwin_arm64.tar.gz", - "created_at": "2024-11-08T15:35:53Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 5, - "size": 7099362 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Darwin_arm64.tar.gz", + "created_at": "2025-03-20T12:14:55Z", + "updated_at": "2025-03-20T12:14:56Z", + "download_count": 6, + "size": 7495034 }, { - "name": "conduit-connector-postgres_0.10.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Darwin_x86_64.tar.gz", - "created_at": "2024-11-08T15:35:53Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 6, - "size": 7490723 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Darwin_x86_64.tar.gz", + "created_at": "2025-03-20T12:14:55Z", + "updated_at": "2025-03-20T12:14:56Z", + "download_count": 7, + "size": 7912252 }, { - "name": "conduit-connector-postgres_0.10.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_arm64.tar.gz", - "created_at": "2024-11-08T15:35:53Z", - "updated_at": "2024-11-08T15:35:54Z", - "download_count": 5, - "size": 6748546 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_arm64.tar.gz", + "created_at": "2025-03-20T12:14:54Z", + "updated_at": "2025-03-20T12:14:55Z", + "download_count": 6, + "size": 7127206 }, { - "name": "conduit-connector-postgres_0.10.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_i386.tar.gz", - "created_at": "2024-11-08T15:35:52Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 5, - "size": 6856357 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_i386.tar.gz", + "created_at": "2025-03-20T12:14:55Z", + "updated_at": "2025-03-20T12:14:56Z", + "download_count": 6, + "size": 7229595 }, { - "name": "conduit-connector-postgres_0.10.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_x86_64.tar.gz", - "created_at": "2024-11-08T15:35:53Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 5, - "size": 7299418 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Linux_x86_64.tar.gz", + "created_at": "2025-03-20T12:14:54Z", + "updated_at": "2025-03-20T12:14:55Z", + "download_count": 7, + "size": 7711562 }, { - "name": "conduit-connector-postgres_0.10.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_arm64.tar.gz", - "created_at": "2024-11-08T15:35:52Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 5, - "size": 6848663 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_arm64.tar.gz", + "created_at": "2025-03-20T12:14:54Z", + "updated_at": "2025-03-20T12:14:55Z", + "download_count": 6, + "size": 7231463 }, { - "name": "conduit-connector-postgres_0.10.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_i386.tar.gz", - "created_at": "2024-11-08T15:35:52Z", - "updated_at": "2024-11-08T15:35:53Z", - "download_count": 5, - "size": 7185176 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_i386.tar.gz", + "created_at": "2025-03-20T12:14:55Z", + "updated_at": "2025-03-20T12:14:56Z", + "download_count": 6, + "size": 7570387 }, { - "name": "conduit-connector-postgres_0.10.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_x86_64.tar.gz", - "created_at": "2024-11-08T15:35:52Z", - "updated_at": "2024-11-08T15:35:53Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.2/conduit-connector-postgres_0.11.2_Windows_x86_64.tar.gz", + "created_at": "2025-03-20T12:14:54Z", + "updated_at": "2025-03-20T12:14:55Z", "download_count": 6, - "size": 7551697 + "size": 7973620 } ], "is_latest": false }, { - "tag_name": "v0.9.1", - "name": "v0.9.1", - "body": "## Changelog\n* a4fcbbebb1d3428719fdbee7d6c736240bc50887: Upgrade pgx to 5.7.1 (#212) (@hariso)\n\n", + "tag_name": "v0.11.1", + "name": "v0.11.1", + "body": "## Changelog\n* 9814150d4ded3aa2d2c1074c5a0cc0dcd10de9d9: Add middleware validation, remove table parameter (#247) (@hariso)\n* 17ad0a478ee99a8687bae95b7791720767e0b474: Bump version to v0.11.1 (#265) (@hariso)\n* d2e3dde564aa1674b887cbce9a3cfb1ad082ce92: checkshadowing is not allowed (#257) (@maha-hajja)\n* f576753fa9f66678413de9f509825ad6785ffc94: column name \u0026\u0026 table name are enclosed in quotes to ensure proper handling of capitalized identifiers (#251) (@derElektrobesen)\n* dc696c823db45a056cf4a6d52d9a6db228d05387: use check connector tag action from automation (#250) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-10-11T07:09:38Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.9.1", + "published_at": "2025-03-19T14:03:13Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.1", "assets": [ { - "name": "conduit-connector-postgres_0.9.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Darwin_arm64.tar.gz", - "created_at": "2024-10-11T07:09:37Z", - "updated_at": "2024-10-11T07:09:37Z", - "download_count": 7, - "size": 7082845 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Darwin_arm64.tar.gz", + "created_at": "2025-03-19T14:03:12Z", + "updated_at": "2025-03-19T14:03:13Z", + "download_count": 6, + "size": 7471784 }, { - "name": "conduit-connector-postgres_0.9.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Darwin_x86_64.tar.gz", - "created_at": "2024-10-11T07:09:37Z", - "updated_at": "2024-10-11T07:09:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Darwin_x86_64.tar.gz", + "created_at": "2025-03-19T14:03:13Z", + "updated_at": "2025-03-19T14:03:13Z", "download_count": 6, - "size": 7475361 + "size": 7892422 }, { - "name": "conduit-connector-postgres_0.9.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_arm64.tar.gz", - "created_at": "2024-10-11T07:09:37Z", - "updated_at": "2024-10-11T07:09:38Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_arm64.tar.gz", + "created_at": "2025-03-19T14:03:12Z", + "updated_at": "2025-03-19T14:03:12Z", "download_count": 6, - "size": 6735291 + "size": 7111434 }, { - "name": "conduit-connector-postgres_0.9.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_i386.tar.gz", - "created_at": "2024-10-11T07:09:36Z", - "updated_at": "2024-10-11T07:09:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_i386.tar.gz", + "created_at": "2025-03-19T14:03:12Z", + "updated_at": "2025-03-19T14:03:13Z", "download_count": 6, - "size": 6843143 + "size": 7216171 }, { - "name": "conduit-connector-postgres_0.9.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_x86_64.tar.gz", - "created_at": "2024-10-11T07:09:37Z", - "updated_at": "2024-10-11T07:09:37Z", - "download_count": 7, - "size": 7283396 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Linux_x86_64.tar.gz", + "created_at": "2025-03-19T14:03:11Z", + "updated_at": "2025-03-19T14:03:12Z", + "download_count": 6, + "size": 7692791 }, { - "name": "conduit-connector-postgres_0.9.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_arm64.tar.gz", - "created_at": "2024-10-11T07:09:36Z", - "updated_at": "2024-10-11T07:09:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_arm64.tar.gz", + "created_at": "2025-03-19T14:03:11Z", + "updated_at": "2025-03-19T14:03:12Z", "download_count": 6, - "size": 6832429 + "size": 7213554 }, { - "name": "conduit-connector-postgres_0.9.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_i386.tar.gz", - "created_at": "2024-10-11T07:09:36Z", - "updated_at": "2024-10-11T07:09:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_i386.tar.gz", + "created_at": "2025-03-19T14:03:12Z", + "updated_at": "2025-03-19T14:03:13Z", "download_count": 6, - "size": 7170749 + "size": 7559203 }, { - "name": "conduit-connector-postgres_0.9.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_x86_64.tar.gz", - "created_at": "2024-10-11T07:09:36Z", - "updated_at": "2024-10-11T07:09:37Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.1/conduit-connector-postgres_0.11.1_Windows_x86_64.tar.gz", + "created_at": "2025-03-19T14:03:11Z", + "updated_at": "2025-03-19T14:03:12Z", "download_count": 6, - "size": 7536576 + "size": 7953834 } ], "is_latest": false }, { - "tag_name": "v0.9.0", - "name": "v0.9.0", - "body": "## Changelog\n* 8518213be3c290d0fd58e785d247160e3b426243: Postgres source will produce its own schema; disable autogen (#198) (@lyuboxa)\n* a9ac304761251bd098a0f9a1ad3616b695255ada: Schema support (#205) (@hariso)\n* 745bef33f92369f95b1f42223a04e6416aa2c60d: fix typo (#197) (@alarbada)\n* f9da1503d618848dbcc60279bf244e32c4211364: fix: md format \u0026 destination table (#207) (@bbaktaeho)\n\n", + "tag_name": "v0.11.0", + "name": "v0.11.0", + "body": "## Changelog\n* 626ea6e6b6b450deef11841d081a8c8b94b45e60: Build schemas by default (#244) (@hariso)\n* 9bea3c0715d8aa5a72e193eb860121ddd4eed396: Fix error on empty snapshot (#235) (@hariso)\n* 1545a3148352486ec7b5796ba58696bca23c23a7: Generate connector.yaml (#232) (@hariso)\n* 134b5151084e74d6661dd3cc072d297446d04dd3: Handle `json` and `jsonb` types as bytes. (#240) (@lyuboxa)\n* ee46c2162826908d3f58bb45b526888e59e1a206: Make it possible to disable schemas (#234) (@hariso)\n* cbbcf68bb86f284f7964a194776046295a9db609: Remove workarounds for timestamps (@hariso)\n* f6c92b6088248981f705f0b42464f2461aa02026: add missing assertion (#230) (@alarbada)\n* bd9aa4ed4cffe774a3a99b8c2f41965df7d2df63: add opencdc.collection metadata key for snapshots (#241) (@maha-hajja)\n* 9f6b67ae61ea88a5c97354305f6cef7a02171f81: bump version to v0.11.0 (#245) (@lovromazgon)\n* 1b4a474070a29d6b8f58b8b249d5bf35a49dae6d: move-scarf-pixel-to-bottom (#221) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-10-09T15:49:02Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.9.0", + "published_at": "2025-01-31T18:45:48Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.11.0", "assets": [ { - "name": "conduit-connector-postgres_0.9.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Darwin_arm64.tar.gz", - "created_at": "2024-10-09T15:49:00Z", - "updated_at": "2024-10-09T15:49:01Z", - "download_count": 5, - "size": 7006419 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Darwin_arm64.tar.gz", + "created_at": "2025-01-31T18:45:47Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 7, + "size": 7419651 }, { - "name": "conduit-connector-postgres_0.9.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Darwin_x86_64.tar.gz", - "created_at": "2024-10-09T15:49:00Z", - "updated_at": "2024-10-09T15:49:01Z", - "download_count": 5, - "size": 7392468 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Darwin_x86_64.tar.gz", + "created_at": "2025-01-31T18:45:46Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 10, + "size": 7829678 }, { - "name": "conduit-connector-postgres_0.9.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_arm64.tar.gz", - "created_at": "2024-10-09T15:49:00Z", - "updated_at": "2024-10-09T15:49:01Z", - "download_count": 5, - "size": 6659425 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_arm64.tar.gz", + "created_at": "2025-01-31T18:45:46Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 8, + "size": 7053907 }, { - "name": "conduit-connector-postgres_0.9.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_i386.tar.gz", - "created_at": "2024-10-09T15:49:01Z", - "updated_at": "2024-10-09T15:49:02Z", - "download_count": 5, - "size": 6765462 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_i386.tar.gz", + "created_at": "2025-01-31T18:45:47Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 9, + "size": 7158665 }, { - "name": "conduit-connector-postgres_0.9.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_x86_64.tar.gz", - "created_at": "2024-10-09T15:49:01Z", - "updated_at": "2024-10-09T15:49:02Z", - "download_count": 5, - "size": 7203417 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Linux_x86_64.tar.gz", + "created_at": "2025-01-31T18:45:46Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 9, + "size": 7631865 }, { - "name": "conduit-connector-postgres_0.9.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_arm64.tar.gz", - "created_at": "2024-10-09T15:49:00Z", - "updated_at": "2024-10-09T15:49:01Z", - "download_count": 5, - "size": 6759897 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_arm64.tar.gz", + "created_at": "2025-01-31T18:45:46Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 9, + "size": 7156156 }, { - "name": "conduit-connector-postgres_0.9.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_i386.tar.gz", - "created_at": "2024-10-09T15:49:01Z", - "updated_at": "2024-10-09T15:49:02Z", - "download_count": 6, - "size": 7092466 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_i386.tar.gz", + "created_at": "2025-01-31T18:45:47Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 9, + "size": 7500258 }, { - "name": "conduit-connector-postgres_0.9.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.11.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_x86_64.tar.gz", - "created_at": "2024-10-09T15:49:01Z", - "updated_at": "2024-10-09T15:49:02Z", - "download_count": 5, - "size": 7454602 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.11.0/conduit-connector-postgres_0.11.0_Windows_x86_64.tar.gz", + "created_at": "2025-01-31T18:45:47Z", + "updated_at": "2025-01-31T18:45:47Z", + "download_count": 7, + "size": 7890662 } ], "is_latest": false }, { - "tag_name": "v0.8.0", - "name": "v0.8.0", - "body": "## Changelog\n* 46654b2e077e35955f4bfbf86fab98a8dc813c79: Fix race in combined iterator test (#183) (@lyuboxa)\n* 3a618cdda4adcd0d8091fdabb06cce27b6656921: Fix replication timeout right after long snapshot; avro fixes. (#182) (@lyuboxa)\n* d491b855f7f55392f7fe46717bcee50585e8ca92: Include before data in payload for updates and deletes; Fix avro rel schema in deletes (#177) (@lyuboxa)\n* ae09f891f94f8d2c20f50540cb231d49f3e4b104: Update Connector SDK (#173) (@lovromazgon)\n* 6d7b6bab8c0f3125ac2aa8ad563ccfee6bad5afa: upgrade conduit-connector-sdk to v0.10.0 (#187) (@lovromazgon)\n\n", + "tag_name": "v0.10.1", + "name": "v0.10.1", + "body": "## Changelog\n\n", "draft": false, "prerelease": false, - "published_at": "2024-08-07T09:21:28Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.8.0", + "published_at": "2024-11-08T15:38:27Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.10.1", "assets": [ { - "name": "conduit-connector-postgres_0.8.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Darwin_arm64.tar.gz", - "created_at": "2024-08-07T09:21:27Z", - "updated_at": "2024-08-07T09:21:27Z", - "download_count": 8, - "size": 6800834 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Darwin_arm64.tar.gz", + "created_at": "2024-11-08T15:38:26Z", + "updated_at": "2024-11-08T15:38:26Z", + "download_count": 7, + "size": 7114247 }, { - "name": "conduit-connector-postgres_0.8.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Darwin_x86_64.tar.gz", - "created_at": "2024-08-07T09:21:25Z", - "updated_at": "2024-08-07T09:21:26Z", - "download_count": 11, - "size": 7167023 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Darwin_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:25Z", + "updated_at": "2024-11-08T15:38:26Z", + "download_count": 5, + "size": 7511056 }, { - "name": "conduit-connector-postgres_0.8.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_arm64.tar.gz", - "created_at": "2024-08-07T09:21:27Z", - "updated_at": "2024-08-07T09:21:28Z", - "download_count": 9, - "size": 6456973 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_arm64.tar.gz", + "created_at": "2024-11-08T15:38:25Z", + "updated_at": "2024-11-08T15:38:26Z", + "download_count": 5, + "size": 6764970 }, { - "name": "conduit-connector-postgres_0.8.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_i386.tar.gz", - "created_at": "2024-08-07T09:21:27Z", - "updated_at": "2024-08-07T09:21:27Z", - "download_count": 10, - "size": 6554970 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_i386.tar.gz", + "created_at": "2024-11-08T15:38:25Z", + "updated_at": "2024-11-08T15:38:26Z", + "download_count": 5, + "size": 6868946 }, { - "name": "conduit-connector-postgres_0.8.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_x86_64.tar.gz", - "created_at": "2024-08-07T09:21:25Z", - "updated_at": "2024-08-07T09:21:26Z", - "download_count": 9, - "size": 6979358 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Linux_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:24Z", + "updated_at": "2024-11-08T15:38:25Z", + "download_count": 7, + "size": 7316085 }, { - "name": "conduit-connector-postgres_0.8.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_arm64.tar.gz", - "created_at": "2024-08-07T09:21:25Z", - "updated_at": "2024-08-07T09:21:26Z", - "download_count": 10, - "size": 6557352 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_arm64.tar.gz", + "created_at": "2024-11-08T15:38:24Z", + "updated_at": "2024-11-08T15:38:25Z", + "download_count": 5, + "size": 6865381 }, { - "name": "conduit-connector-postgres_0.8.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_i386.tar.gz", - "created_at": "2024-08-07T09:21:27Z", - "updated_at": "2024-08-07T09:21:28Z", - "download_count": 14, - "size": 6872701 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_i386.tar.gz", + "created_at": "2024-11-08T15:38:24Z", + "updated_at": "2024-11-08T15:38:25Z", + "download_count": 5, + "size": 7199272 }, { - "name": "conduit-connector-postgres_0.8.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_x86_64.tar.gz", - "created_at": "2024-08-07T09:21:25Z", - "updated_at": "2024-08-07T09:21:26Z", - "download_count": 10, - "size": 7221555 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.1/conduit-connector-postgres_0.10.1_Windows_x86_64.tar.gz", + "created_at": "2024-11-08T15:38:24Z", + "updated_at": "2024-11-08T15:38:25Z", + "download_count": 5, + "size": 7568238 } ], "is_latest": false }, { - "tag_name": "v0.7.5", - "name": "v0.7.5", - "body": "## Changelog\n* 5ecd48eadec2f4881a41909942e48fa3149f350d: avro schema generator (#174) (@lyuboxa)\n\n", + "tag_name": "v0.10.0", + "name": "v0.10.0", + "body": "## Changelog\n* e050bb9d852803f22c863a53df3747ced476a2a5: Use bytes instead of [n]bytes to represent decimal type, since each value may have larger size (#214) (@lyuboxa)\n* 5b6582ca542fa8b6477a4a4b768069a570ee79c5: add connector logs to tests (#220) (@alarbada)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-06-25T14:55:59Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.5", + "published_at": "2024-11-08T15:35:54Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.10.0", "assets": [ { - "name": "conduit-connector-postgres_0.7.5_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Darwin_arm64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:58Z", - "download_count": 11, - "size": 6571361 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Darwin_arm64.tar.gz", + "created_at": "2024-11-08T15:35:53Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 5, + "size": 7099362 }, { - "name": "conduit-connector-postgres_0.7.5_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Darwin_x86_64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:58Z", - "download_count": 10, - "size": 6936107 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Darwin_x86_64.tar.gz", + "created_at": "2024-11-08T15:35:53Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 6, + "size": 7490723 }, { - "name": "conduit-connector-postgres_0.7.5_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_arm64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:58Z", - "download_count": 13, - "size": 6243169 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_arm64.tar.gz", + "created_at": "2024-11-08T15:35:53Z", + "updated_at": "2024-11-08T15:35:54Z", + "download_count": 5, + "size": 6748546 }, { - "name": "conduit-connector-postgres_0.7.5_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_i386.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:57Z", - "download_count": 11, - "size": 6343920 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_i386.tar.gz", + "created_at": "2024-11-08T15:35:52Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 5, + "size": 6856357 }, { - "name": "conduit-connector-postgres_0.7.5_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_x86_64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:58Z", - "download_count": 13, - "size": 6760937 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Linux_x86_64.tar.gz", + "created_at": "2024-11-08T15:35:53Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 6, + "size": 7299418 }, { - "name": "conduit-connector-postgres_0.7.5_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_arm64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:57Z", - "download_count": 10, - "size": 6343092 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_arm64.tar.gz", + "created_at": "2024-11-08T15:35:52Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 5, + "size": 6848663 }, { - "name": "conduit-connector-postgres_0.7.5_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_i386.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:57Z", - "download_count": 10, - "size": 6650841 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_i386.tar.gz", + "created_at": "2024-11-08T15:35:52Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 5, + "size": 7185176 }, { - "name": "conduit-connector-postgres_0.7.5_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.10.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_x86_64.tar.gz", - "created_at": "2024-06-25T14:55:57Z", - "updated_at": "2024-06-25T14:55:57Z", - "download_count": 11, - "size": 6992954 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.10.0/conduit-connector-postgres_0.10.0_Windows_x86_64.tar.gz", + "created_at": "2024-11-08T15:35:52Z", + "updated_at": "2024-11-08T15:35:53Z", + "download_count": 6, + "size": 7551697 } ], "is_latest": false }, { - "tag_name": "v0.7.4", - "name": "v0.7.4", - "body": "## Changelog\n* 125c029f355c0283ebbad0afdcb2b684eacfbcbd: Add support for reading replication slot (#171) (@lyuboxa)\n* 083c9ccba380695b4c0426a796ba6d2ebc61306a: Ensure defaults for publication, slot, auto-cleanup are available to lifecycle events. (#159) (@lyuboxa)\n* f190c59a1f429638670708faa11bda94cc3f389b: Format types based on plugin runtime, built-in or standalone. (#169) (@samirketema)\n* 23e0171b93ac3ea75491bf731c70806dac2f7710: Handle numeric type in cdc and snapshot (#161) (@lyuboxa)\n* 9b84f73befd1104cb170a290e983827f636f3bd1: Improve handling of keepalive messages and manage server end lag. (#167) (@lyuboxa)\n* 66d545c9c604c927ecfd196b4ee562b14e08e3c6: add extra log metrics for snapshot progress (#162) (@lyuboxa)\n* 247dd1bc7b545ee55378926c220c1012dcf46764: remove deprecated flag (#172) (@lovromazgon)\n\n", + "tag_name": "v0.9.1", + "name": "v0.9.1", + "body": "## Changelog\n* a4fcbbebb1d3428719fdbee7d6c736240bc50887: Upgrade pgx to 5.7.1 (#212) (@hariso)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-06-14T17:04:34Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.4", + "published_at": "2024-10-11T07:09:38Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.9.1", "assets": [ { - "name": "conduit-connector-postgres_0.7.4_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Darwin_arm64.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:32Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Darwin_arm64.tar.gz", + "created_at": "2024-10-11T07:09:37Z", + "updated_at": "2024-10-11T07:09:37Z", "download_count": 7, - "size": 6184362 + "size": 7082845 }, { - "name": "conduit-connector-postgres_0.7.4_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Darwin_x86_64.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:33Z", - "download_count": 9, - "size": 6521956 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Darwin_x86_64.tar.gz", + "created_at": "2024-10-11T07:09:37Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 6, + "size": 7475361 }, { - "name": "conduit-connector-postgres_0.7.4_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_arm64.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:32Z", - "download_count": 9, - "size": 5875632 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_arm64.tar.gz", + "created_at": "2024-10-11T07:09:37Z", + "updated_at": "2024-10-11T07:09:38Z", + "download_count": 6, + "size": 6735291 }, { - "name": "conduit-connector-postgres_0.7.4_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_i386.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:32Z", - "download_count": 9, - "size": 5963375 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_i386.tar.gz", + "created_at": "2024-10-11T07:09:36Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 6, + "size": 6843143 }, { - "name": "conduit-connector-postgres_0.7.4_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_x86_64.tar.gz", - "created_at": "2024-06-14T17:04:33Z", - "updated_at": "2024-06-14T17:04:34Z", - "download_count": 9, - "size": 6352500 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Linux_x86_64.tar.gz", + "created_at": "2024-10-11T07:09:37Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 8, + "size": 7283396 }, { - "name": "conduit-connector-postgres_0.7.4_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_arm64.tar.gz", - "created_at": "2024-06-14T17:04:33Z", - "updated_at": "2024-06-14T17:04:33Z", - "download_count": 8, - "size": 5974391 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_arm64.tar.gz", + "created_at": "2024-10-11T07:09:36Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 6, + "size": 6832429 }, { - "name": "conduit-connector-postgres_0.7.4_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_i386.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:33Z", - "download_count": 9, - "size": 6258069 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_i386.tar.gz", + "created_at": "2024-10-11T07:09:36Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 6, + "size": 7170749 }, { - "name": "conduit-connector-postgres_0.7.4_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.1_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_x86_64.tar.gz", - "created_at": "2024-06-14T17:04:32Z", - "updated_at": "2024-06-14T17:04:32Z", - "download_count": 9, - "size": 6572530 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.1/conduit-connector-postgres_0.9.1_Windows_x86_64.tar.gz", + "created_at": "2024-10-11T07:09:36Z", + "updated_at": "2024-10-11T07:09:37Z", + "download_count": 6, + "size": 7536576 } ], "is_latest": false }, { - "tag_name": "v0.7.3", - "name": "v0.7.3", - "body": "## Changelog\n* d72e9d753d4072973eec5ea4efe5d2e93421106d: Ensure default is used when cleanup is not explicitly provided (#155) (@lyuboxa)\n\n", + "tag_name": "v0.9.0", + "name": "v0.9.0", + "body": "## Changelog\n* 8518213be3c290d0fd58e785d247160e3b426243: Postgres source will produce its own schema; disable autogen (#198) (@lyuboxa)\n* a9ac304761251bd098a0f9a1ad3616b695255ada: Schema support (#205) (@hariso)\n* 745bef33f92369f95b1f42223a04e6416aa2c60d: fix typo (#197) (@alarbada)\n* f9da1503d618848dbcc60279bf244e32c4211364: fix: md format \u0026 destination table (#207) (@bbaktaeho)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-05-28T17:36:12Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.3", + "published_at": "2024-10-09T15:49:02Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.9.0", "assets": [ { - "name": "conduit-connector-postgres_0.7.3_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Darwin_arm64.tar.gz", - "created_at": "2024-05-28T17:36:10Z", - "updated_at": "2024-05-28T17:36:11Z", - "download_count": 7, - "size": 6181417 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Darwin_arm64.tar.gz", + "created_at": "2024-10-09T15:49:00Z", + "updated_at": "2024-10-09T15:49:01Z", + "download_count": 5, + "size": 7006419 }, { - "name": "conduit-connector-postgres_0.7.3_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Darwin_x86_64.tar.gz", - "created_at": "2024-05-28T17:36:11Z", - "updated_at": "2024-05-28T17:36:11Z", - "download_count": 10, - "size": 6517403 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Darwin_x86_64.tar.gz", + "created_at": "2024-10-09T15:49:00Z", + "updated_at": "2024-10-09T15:49:01Z", + "download_count": 5, + "size": 7392468 }, { - "name": "conduit-connector-postgres_0.7.3_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Linux_arm64.tar.gz", - "created_at": "2024-05-28T17:36:09Z", - "updated_at": "2024-05-28T17:36:10Z", - "download_count": 9, - "size": 5872808 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_arm64.tar.gz", + "created_at": "2024-10-09T15:49:00Z", + "updated_at": "2024-10-09T15:49:01Z", + "download_count": 5, + "size": 6659425 }, { - "name": "conduit-connector-postgres_0.7.3_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Linux_i386.tar.gz", - "created_at": "2024-05-28T17:36:10Z", - "updated_at": "2024-05-28T17:36:11Z", - "download_count": 9, - "size": 5960435 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_i386.tar.gz", + "created_at": "2024-10-09T15:49:01Z", + "updated_at": "2024-10-09T15:49:02Z", + "download_count": 5, + "size": 6765462 }, { - "name": "conduit-connector-postgres_0.7.3_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Linux_x86_64.tar.gz", - "created_at": "2024-05-28T17:36:09Z", - "updated_at": "2024-05-28T17:36:10Z", - "download_count": 10, - "size": 6348350 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Linux_x86_64.tar.gz", + "created_at": "2024-10-09T15:49:01Z", + "updated_at": "2024-10-09T15:49:02Z", + "download_count": 6, + "size": 7203417 }, { - "name": "conduit-connector-postgres_0.7.3_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Windows_arm64.tar.gz", - "created_at": "2024-05-28T17:36:09Z", - "updated_at": "2024-05-28T17:36:10Z", - "download_count": 9, - "size": 5970401 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_arm64.tar.gz", + "created_at": "2024-10-09T15:49:00Z", + "updated_at": "2024-10-09T15:49:01Z", + "download_count": 5, + "size": 6759897 }, { - "name": "conduit-connector-postgres_0.7.3_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Windows_i386.tar.gz", - "created_at": "2024-05-28T17:36:10Z", - "updated_at": "2024-05-28T17:36:10Z", - "download_count": 9, - "size": 6253678 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_i386.tar.gz", + "created_at": "2024-10-09T15:49:01Z", + "updated_at": "2024-10-09T15:49:02Z", + "download_count": 6, + "size": 7092466 }, { - "name": "conduit-connector-postgres_0.7.3_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.9.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.3/conduit-connector-postgres_0.7.3_Windows_x86_64.tar.gz", - "created_at": "2024-05-28T17:36:09Z", - "updated_at": "2024-05-28T17:36:10Z", - "download_count": 9, - "size": 6567503 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.9.0/conduit-connector-postgres_0.9.0_Windows_x86_64.tar.gz", + "created_at": "2024-10-09T15:49:01Z", + "updated_at": "2024-10-09T15:49:02Z", + "download_count": 5, + "size": 7454602 } ], "is_latest": false }, { - "tag_name": "v0.7.2", - "name": "v0.7.2", - "body": "## Changelog\n* c95c1ccaa3a18eef399707d95edc1f99747b8cc2: Fix operation for snapshots and replace use of information_schema (#154) (@lyuboxa)\n\n", + "tag_name": "v0.8.0", + "name": "v0.8.0", + "body": "## Changelog\n* 46654b2e077e35955f4bfbf86fab98a8dc813c79: Fix race in combined iterator test (#183) (@lyuboxa)\n* 3a618cdda4adcd0d8091fdabb06cce27b6656921: Fix replication timeout right after long snapshot; avro fixes. (#182) (@lyuboxa)\n* d491b855f7f55392f7fe46717bcee50585e8ca92: Include before data in payload for updates and deletes; Fix avro rel schema in deletes (#177) (@lyuboxa)\n* ae09f891f94f8d2c20f50540cb231d49f3e4b104: Update Connector SDK (#173) (@lovromazgon)\n* 6d7b6bab8c0f3125ac2aa8ad563ccfee6bad5afa: upgrade conduit-connector-sdk to v0.10.0 (#187) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-05-24T07:44:10Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.2", + "published_at": "2024-08-07T09:21:28Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.8.0", "assets": [ { - "name": "conduit-connector-postgres_0.7.2_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Darwin_arm64.tar.gz", - "created_at": "2024-05-24T07:44:09Z", - "updated_at": "2024-05-24T07:44:09Z", - "download_count": 9, - "size": 6177321 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Darwin_arm64.tar.gz", + "created_at": "2024-08-07T09:21:27Z", + "updated_at": "2024-08-07T09:21:27Z", + "download_count": 8, + "size": 6800834 }, { - "name": "conduit-connector-postgres_0.7.2_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Darwin_x86_64.tar.gz", - "created_at": "2024-05-24T07:44:09Z", - "updated_at": "2024-05-24T07:44:10Z", - "download_count": 10, - "size": 6511291 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Darwin_x86_64.tar.gz", + "created_at": "2024-08-07T09:21:25Z", + "updated_at": "2024-08-07T09:21:26Z", + "download_count": 11, + "size": 7167023 }, { - "name": "conduit-connector-postgres_0.7.2_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Linux_arm64.tar.gz", - "created_at": "2024-05-24T07:44:09Z", - "updated_at": "2024-05-24T07:44:10Z", - "download_count": 10, - "size": 5869752 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_arm64.tar.gz", + "created_at": "2024-08-07T09:21:27Z", + "updated_at": "2024-08-07T09:21:28Z", + "download_count": 9, + "size": 6456973 }, { - "name": "conduit-connector-postgres_0.7.2_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Linux_i386.tar.gz", - "created_at": "2024-05-24T07:44:08Z", - "updated_at": "2024-05-24T07:44:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_i386.tar.gz", + "created_at": "2024-08-07T09:21:27Z", + "updated_at": "2024-08-07T09:21:27Z", "download_count": 10, - "size": 5957074 + "size": 6554970 }, { - "name": "conduit-connector-postgres_0.7.2_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Linux_x86_64.tar.gz", - "created_at": "2024-05-24T07:44:09Z", - "updated_at": "2024-05-24T07:44:10Z", - "download_count": 11, - "size": 6342479 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Linux_x86_64.tar.gz", + "created_at": "2024-08-07T09:21:25Z", + "updated_at": "2024-08-07T09:21:26Z", + "download_count": 10, + "size": 6979358 }, { - "name": "conduit-connector-postgres_0.7.2_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Windows_arm64.tar.gz", - "created_at": "2024-05-24T07:44:08Z", - "updated_at": "2024-05-24T07:44:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_arm64.tar.gz", + "created_at": "2024-08-07T09:21:25Z", + "updated_at": "2024-08-07T09:21:26Z", "download_count": 10, - "size": 5967066 + "size": 6557352 }, { - "name": "conduit-connector-postgres_0.7.2_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Windows_i386.tar.gz", - "created_at": "2024-05-24T07:44:08Z", - "updated_at": "2024-05-24T07:44:09Z", - "download_count": 10, - "size": 6249242 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_i386.tar.gz", + "created_at": "2024-08-07T09:21:27Z", + "updated_at": "2024-08-07T09:21:28Z", + "download_count": 14, + "size": 6872701 }, { - "name": "conduit-connector-postgres_0.7.2_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.8.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.2/conduit-connector-postgres_0.7.2_Windows_x86_64.tar.gz", - "created_at": "2024-05-24T07:44:08Z", - "updated_at": "2024-05-24T07:44:09Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.8.0/conduit-connector-postgres_0.8.0_Windows_x86_64.tar.gz", + "created_at": "2024-08-07T09:21:25Z", + "updated_at": "2024-08-07T09:21:26Z", "download_count": 10, - "size": 6565379 + "size": 7221555 } ], "is_latest": false }, { - "tag_name": "v0.7.1", - "name": "v0.7.1", - "body": "## Changelog\n* 6d5cb816e6c1e17521cbbd0c8bc8638d631fa6c0: Add default logrepl autoCleanup mode to remove replication slots and publications (#139) (@lyuboxa)\n* d782218aea14983f7d54b590365965b627f5f7d4: Add missing initialization for tableKeys field (#152) (@pgguru)\n* 8cb9366ff915ae8951081923d5a0cb9ed9693ae3: Add snapshot support to logrepl mode (#141) (@lyuboxa)\n* be956c0ac7d7f73052db6332810c3706cf069007: add scarf pixel (#136) (@maha-hajja)\n* 62feffeed2ab40165b5e2739050d9935a1559af8: feat: remove long_polling (#153) (@raulb)\n\n", + "tag_name": "v0.7.5", + "name": "v0.7.5", + "body": "## Changelog\n* 5ecd48eadec2f4881a41909942e48fa3149f350d: avro schema generator (#174) (@lyuboxa)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-05-23T18:01:34Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.1", + "published_at": "2024-06-25T14:55:59Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.5", "assets": [ { - "name": "conduit-connector-postgres_0.7.1_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Darwin_arm64.tar.gz", - "created_at": "2024-05-23T18:01:33Z", - "updated_at": "2024-05-23T18:01:33Z", - "download_count": 7, - "size": 6177495 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Darwin_arm64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:58Z", + "download_count": 11, + "size": 6571361 }, { - "name": "conduit-connector-postgres_0.7.1_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Darwin_x86_64.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:33Z", - "download_count": 9, - "size": 6511118 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Darwin_x86_64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:58Z", + "download_count": 10, + "size": 6936107 }, { - "name": "conduit-connector-postgres_0.7.1_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Linux_arm64.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:33Z", - "download_count": 9, - "size": 5869242 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_arm64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:58Z", + "download_count": 13, + "size": 6243169 }, { - "name": "conduit-connector-postgres_0.7.1_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Linux_i386.tar.gz", - "created_at": "2024-05-23T18:01:33Z", - "updated_at": "2024-05-23T18:01:33Z", - "download_count": 9, - "size": 5956834 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_i386.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:57Z", + "download_count": 11, + "size": 6343920 }, { - "name": "conduit-connector-postgres_0.7.1_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Linux_x86_64.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:32Z", - "download_count": 10, - "size": 6342557 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Linux_x86_64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:58Z", + "download_count": 14, + "size": 6760937 }, { - "name": "conduit-connector-postgres_0.7.1_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Windows_arm64.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:32Z", - "download_count": 9, - "size": 5966586 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_arm64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:57Z", + "download_count": 10, + "size": 6343092 }, { - "name": "conduit-connector-postgres_0.7.1_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Windows_i386.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:32Z", - "download_count": 9, - "size": 6248115 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_i386.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:57Z", + "download_count": 10, + "size": 6650841 }, { - "name": "conduit-connector-postgres_0.7.1_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.5_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.1/conduit-connector-postgres_0.7.1_Windows_x86_64.tar.gz", - "created_at": "2024-05-23T18:01:32Z", - "updated_at": "2024-05-23T18:01:32Z", - "download_count": 9, - "size": 6565174 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.5/conduit-connector-postgres_0.7.5_Windows_x86_64.tar.gz", + "created_at": "2024-06-25T14:55:57Z", + "updated_at": "2024-06-25T14:55:57Z", + "download_count": 11, + "size": 6992954 } ], "is_latest": false }, { - "tag_name": "v0.7.0", - "name": "v0.7.0", - "body": "## Changelog\n* e7c451cf1749d724a59496379c7c7945ebd62c25: Multiple collections support in the destination (#131) (@hariso)\n* 8062fb61e4233c3577feeffcf37705dc4446a251: New snapshot iterator and position format (#132) (@lyuboxa)\n* 43acfeb689acd51ee43d5ae53bd9bc8471022df1: doc: update readme (#130) (@raulb)\n* 4466f41c5565e381e899ed504110cf38b58b1d57: feat(cdc): read from multiple tables (#129) (@raulb)\n* 13d4cadbbdfc88c51985b8a7deb5dd4523929eef: refactor: remove `key` field and update table field (#135) (@raulb)\n\n", + "tag_name": "v0.7.4", + "name": "v0.7.4", + "body": "## Changelog\n* 125c029f355c0283ebbad0afdcb2b684eacfbcbd: Add support for reading replication slot (#171) (@lyuboxa)\n* 083c9ccba380695b4c0426a796ba6d2ebc61306a: Ensure defaults for publication, slot, auto-cleanup are available to lifecycle events. (#159) (@lyuboxa)\n* f190c59a1f429638670708faa11bda94cc3f389b: Format types based on plugin runtime, built-in or standalone. (#169) (@samirketema)\n* 23e0171b93ac3ea75491bf731c70806dac2f7710: Handle numeric type in cdc and snapshot (#161) (@lyuboxa)\n* 9b84f73befd1104cb170a290e983827f636f3bd1: Improve handling of keepalive messages and manage server end lag. (#167) (@lyuboxa)\n* 66d545c9c604c927ecfd196b4ee562b14e08e3c6: add extra log metrics for snapshot progress (#162) (@lyuboxa)\n* 247dd1bc7b545ee55378926c220c1012dcf46764: remove deprecated flag (#172) (@lovromazgon)\n\n", "draft": false, "prerelease": false, - "published_at": "2024-04-24T17:57:04Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.0", + "published_at": "2024-06-14T17:04:34Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.7.4", "assets": [ { - "name": "conduit-connector-postgres_0.7.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Darwin_arm64.tar.gz", - "created_at": "2024-04-24T17:57:03Z", - "updated_at": "2024-04-24T17:57:03Z", - "download_count": 9, - "size": 6172378 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Darwin_arm64.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:32Z", + "download_count": 7, + "size": 6184362 }, { - "name": "conduit-connector-postgres_0.7.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Darwin_x86_64.tar.gz", - "created_at": "2024-04-24T17:57:03Z", - "updated_at": "2024-04-24T17:57:03Z", - "download_count": 10, - "size": 6507246 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Darwin_x86_64.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:33Z", + "download_count": 9, + "size": 6521956 }, { - "name": "conduit-connector-postgres_0.7.0_Linux_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Linux_arm64.tar.gz", - "created_at": "2024-04-24T17:57:02Z", - "updated_at": "2024-04-24T17:57:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_arm64.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:32Z", "download_count": 9, - "size": 5865396 + "size": 5875632 }, { - "name": "conduit-connector-postgres_0.7.0_Linux_i386.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Linux_i386.tar.gz", - "created_at": "2024-04-24T17:57:03Z", - "updated_at": "2024-04-24T17:57:03Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_i386.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:32Z", "download_count": 9, - "size": 5951708 + "size": 5963375 }, { - "name": "conduit-connector-postgres_0.7.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Linux_x86_64.tar.gz", - "created_at": "2024-04-24T17:57:02Z", - "updated_at": "2024-04-24T17:57:02Z", - "download_count": 9, - "size": 6340070 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Linux_x86_64.tar.gz", + "created_at": "2024-06-14T17:04:33Z", + "updated_at": "2024-06-14T17:04:34Z", + "download_count": 10, + "size": 6352500 }, { - "name": "conduit-connector-postgres_0.7.0_Windows_arm64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Windows_arm64.tar.gz", - "created_at": "2024-04-24T17:57:02Z", - "updated_at": "2024-04-24T17:57:02Z", - "download_count": 10, - "size": 5963793 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_arm64.tar.gz", + "created_at": "2024-06-14T17:04:33Z", + "updated_at": "2024-06-14T17:04:33Z", + "download_count": 8, + "size": 5974391 }, { - "name": "conduit-connector-postgres_0.7.0_Windows_i386.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Windows_i386.tar.gz", - "created_at": "2024-04-24T17:57:02Z", - "updated_at": "2024-04-24T17:57:02Z", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_i386.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:33Z", "download_count": 9, - "size": 6243281 + "size": 6258069 }, { - "name": "conduit-connector-postgres_0.7.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-postgres_0.7.4_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.0/conduit-connector-postgres_0.7.0_Windows_x86_64.tar.gz", - "created_at": "2024-04-24T17:57:03Z", - "updated_at": "2024-04-24T17:57:03Z", - "download_count": 10, - "size": 6560557 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.7.4/conduit-connector-postgres_0.7.4_Windows_x86_64.tar.gz", + "created_at": "2024-06-14T17:04:32Z", + "updated_at": "2024-06-14T17:04:32Z", + "download_count": 9, + "size": 6572530 } ], "is_latest": false - }, + } + ] + }, + { + "name_with_owner": "ConduitIO/conduit-connector-s3", + "description": "Conduit connector for Amazon S3", + "created_at": "2022-02-17 14:40:01 +0000 UTC", + "url": "https://github.com/ConduitIO/conduit-connector-s3", + "stargazer_count": 9, + "fork_count": 5, + "releases": [ { - "tag_name": "v0.6.0", - "name": "v0.6.0", - "body": "## Changelog\n* 4e210cbaa6bb4598857e75d789245b0e1bac0f10: Cleanup (#105) (@lovromazgon)\n* cfcc81f50f36151b7f823d15c6f2f1bea6bb6875: Enable batching in destination (#104) (@lovromazgon)\n* ee0295d61053f7eda324e9a09693cba094d1d5e0: Upgrade to pgx/v5 (#120) (@lovromazgon)\n* 8a20ea4fbc26925d83b6063ad9f16decd2b9d5ec: clarify destination connector config for table (#115) (@lovromazgon)\n* 05c6c83ed9b2e893b4e679ca295fff87dcb21fae: support reading from multiple tables using logical replication slots (#113) (@maha-hajja)\n\n", + "tag_name": "v0.12.0", + "name": "v0.12.0", + "body": "## What's Changed\n* go.mod: bump github.com/conduitio/conduit-commons from 0.8.2 to 0.10.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1075\n* go.mod: bump github.com/conduitio/conduit-connector-protocol from 0.10.0 to 0.11.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1073\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.16.1 to 0.17.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1074\n* go.mod: bump github.com/conduitio/conduit-commons from 0.10.0 to 0.11.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1078\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.17.0 to 0.17.1 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1077\n* fix(config): do not echo endpoint user info in errors and warnings by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-s3/pull/1080\n* fix(source): keep object keys and positions out of logs by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-s3/pull/1079\n* go.mod: bump github.com/conduitio/conduit-commons from 0.11.0 to 0.12.0 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1083\n* go.mod: bump github.com/conduitio/conduit-connector-sdk from 0.17.1 to 0.17.2 by @dependabot[bot] in https://github.com/ConduitIO/conduit-connector-s3/pull/1084\n* feat: let the host supply a dialer for network connections by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-s3/pull/1082\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-s3/compare/v0.11.2...v0.12.0", "draft": false, "prerelease": false, - "published_at": "2024-04-02T17:08:05Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.6.0", + "published_at": "2026-10-25T00:40:10Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-s3/releases/tag/v0.12.0", "assets": [ { - "name": "conduit-connector-postgres_0.6.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Darwin_arm64.tar.gz", - "created_at": "2024-04-02T17:08:06Z", - "updated_at": "2024-04-02T17:08:07Z", - "download_count": 7, - "size": 6280971 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:44:59Z", + "updated_at": "2026-10-25T00:45:00Z", + "download_count": 0, + "size": 10406864 }, { - "name": "conduit-connector-postgres_0.6.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Darwin_x86_64.tar.gz", - "created_at": "2024-04-02T17:08:06Z", - "updated_at": "2024-04-02T17:08:07Z", - "download_count": 9, - "size": 6479700 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Darwin_x86_64.tar.gz", + "created_at": "2026-10-25T00:45:01Z", + "updated_at": "2026-10-25T00:45:01Z", + "download_count": 0, + "size": 11276816 }, { - "name": "conduit-connector-postgres_0.6.0_Linux_arm64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Linux_arm64.tar.gz", - "created_at": "2024-04-02T17:08:08Z", - "updated_at": "2024-04-02T17:08:09Z", - "download_count": 10, - "size": 5694383 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_arm64.tar.gz", + "created_at": "2026-10-25T00:44:59Z", + "updated_at": "2026-10-25T00:45:00Z", + "download_count": 0, + "size": 9905141 }, { - "name": "conduit-connector-postgres_0.6.0_Linux_i386.tar.gz", + "name": "conduit-connector-s3_0.12.0_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Linux_i386.tar.gz", - "created_at": "2024-04-02T17:08:06Z", - "updated_at": "2024-04-02T17:08:07Z", - "download_count": 10, - "size": 5840412 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_i386.tar.gz", + "created_at": "2026-10-25T00:44:59Z", + "updated_at": "2026-10-25T00:45:00Z", + "download_count": 0, + "size": 10381842 }, { - "name": "conduit-connector-postgres_0.6.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Linux_x86_64.tar.gz", - "created_at": "2024-04-02T17:08:06Z", - "updated_at": "2024-04-02T17:08:07Z", - "download_count": 9, - "size": 6163158 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Linux_x86_64.tar.gz", + "created_at": "2026-10-25T00:45:01Z", + "updated_at": "2026-10-25T00:45:01Z", + "download_count": 0, + "size": 11003398 }, { - "name": "conduit-connector-postgres_0.6.0_Windows_arm64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Windows_arm64.tar.gz", - "created_at": "2024-04-02T17:08:09Z", - "updated_at": "2024-04-02T17:08:09Z", - "download_count": 9, - "size": 5788909 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_arm64.tar.gz", + "created_at": "2026-10-25T00:45:01Z", + "updated_at": "2026-10-25T00:45:01Z", + "download_count": 0, + "size": 10010861 }, { - "name": "conduit-connector-postgres_0.6.0_Windows_i386.tar.gz", + "name": "conduit-connector-s3_0.12.0_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Windows_i386.tar.gz", - "created_at": "2024-04-02T17:08:07Z", - "updated_at": "2024-04-02T17:08:08Z", - "download_count": 9, - "size": 6136992 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_i386.tar.gz", + "created_at": "2026-10-25T00:44:59Z", + "updated_at": "2026-10-25T00:45:00Z", + "download_count": 0, + "size": 10886949 }, { - "name": "conduit-connector-postgres_0.6.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-s3_0.12.0_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.6.0/conduit-connector-postgres_0.6.0_Windows_x86_64.tar.gz", - "created_at": "2024-04-02T17:08:08Z", - "updated_at": "2024-04-02T17:08:09Z", - "download_count": 9, - "size": 6383186 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.5.0", - "name": "v0.5.0", - "body": "## Changelog\n* d1793eaedc6d072f1c6a9c1dafd8177f2a011ab5: Bump SDK version to v0.7.0 (#100) (@hariso)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2023-07-19T11:55:21Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.5.0", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/conduit-connector-s3_0.12.0_Windows_x86_64.tar.gz", + "created_at": "2026-10-25T00:45:00Z", + "updated_at": "2026-10-25T00:45:01Z", + "download_count": 0, + "size": 11311746 + }, { - "name": "conduit-connector-postgres_0.5.0_Darwin_arm64.tar.gz", + "name": "s3_v0.12.0_darwin_amd64.tar.gz", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Darwin_arm64.tar.gz", - "created_at": "2023-07-19T11:55:22Z", - "updated_at": "2023-07-19T11:55:23Z", - "download_count": 6, - "size": 5601083 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_amd64.tar.gz", + "created_at": "2026-10-25T00:41:51Z", + "updated_at": "2026-10-25T00:41:52Z", + "download_count": 0, + "size": 22207124 }, { - "name": "conduit-connector-postgres_0.5.0_Darwin_x86_64.tar.gz", + "name": "s3_v0.12.0_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Darwin_x86_64.tar.gz", - "created_at": "2023-07-19T11:55:21Z", - "updated_at": "2023-07-19T11:55:22Z", - "download_count": 7, - "size": 5807773 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:41:51Z", + "updated_at": "2026-10-25T00:41:52Z", + "download_count": 0, + "size": 9471 }, { - "name": "conduit-connector-postgres_0.5.0_Linux_arm64.tar.gz", - "os": "linux", + "name": "s3_v0.12.0_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Linux_arm64.tar.gz", - "created_at": "2023-07-19T11:55:22Z", - "updated_at": "2023-07-19T11:55:23Z", - "download_count": 9, - "size": 5068154 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_arm64.tar.gz", + "created_at": "2026-10-25T00:42:22Z", + "updated_at": "2026-10-25T00:42:23Z", + "download_count": 0, + "size": 20909580 }, { - "name": "conduit-connector-postgres_0.5.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Linux_i386.tar.gz", - "created_at": "2023-07-19T11:55:23Z", - "updated_at": "2023-07-19T11:55:24Z", - "download_count": 8, - "size": 5284444 + "name": "s3_v0.12.0_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:42:22Z", + "updated_at": "2026-10-25T00:42:22Z", + "download_count": 0, + "size": 9330 }, { - "name": "conduit-connector-postgres_0.5.0_Linux_x86_64.tar.gz", + "name": "s3_v0.12.0_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Linux_x86_64.tar.gz", - "created_at": "2023-07-19T11:55:23Z", - "updated_at": "2023-07-19T11:55:24Z", - "download_count": 9, - "size": 5549255 - }, - { - "name": "conduit-connector-postgres_0.5.0_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Windows_arm64.tar.gz", - "created_at": "2023-07-19T11:55:24Z", - "updated_at": "2023-07-19T11:55:24Z", - "download_count": 8, - "size": 5153142 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_amd64.tar.gz", + "created_at": "2026-10-25T00:40:49Z", + "updated_at": "2026-10-25T00:40:50Z", + "download_count": 0, + "size": 21071479 }, { - "name": "conduit-connector-postgres_0.5.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Windows_i386.tar.gz", - "created_at": "2023-07-19T11:55:21Z", - "updated_at": "2023-07-19T11:55:22Z", - "download_count": 8, - "size": 5512062 + "name": "s3_v0.12.0_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:40:49Z", + "updated_at": "2026-10-25T00:40:50Z", + "download_count": 0, + "size": 9424 }, { - "name": "conduit-connector-postgres_0.5.0_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.5.0/conduit-connector-postgres_0.5.0_Windows_x86_64.tar.gz", - "created_at": "2023-07-19T11:55:24Z", - "updated_at": "2023-07-19T11:55:25Z", - "download_count": 8, - "size": 5642344 + "name": "s3_v0.12.0_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_arm64.tar.gz", + "created_at": "2026-10-25T00:41:20Z", + "updated_at": "2026-10-25T00:41:22Z", + "download_count": 0, + "size": 19360379 + }, + { + "name": "s3_v0.12.0_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.12.0/s3_v0.12.0_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-25T00:41:20Z", + "updated_at": "2026-10-25T00:41:20Z", + "download_count": 0, + "size": 9346 } ], - "is_latest": false + "is_latest": true }, { - "tag_name": "v0.4.0", - "name": "v0.4.0", - "body": "## Changelog\n* f0224fef2ec2267c4213400f2ff1ac14e03a2170: Fix: copyright year doesn't have to be the current year (#75) (@hariso)\n* 1aaa6cda4142e12dd7cff8f3eb69434d7bc3d381: Housekeeping: version and release name template (#81) (@lovromazgon)\n* 2e0f6c647ef40884c01d3b825909b38f294ddb04: Upgrade to Go 1.20, remove abandoned linters (#89) (@hariso)\n* 253a92d44e01e08c157372b80b208390a8cb5ccd: bump sdk version v0.6.0 (#93) (@hariso)\n\n", + "tag_name": "v0.11.2", + "name": "v0.11.2", + "body": "**Security advisory:** [GHSA-gxm3-5pgq-2p8v](https://github.com/ConduitIO/conduit-connector-s3/security/advisories/GHSA-gxm3-5pgq-2p8v)\n\n**Upgrade from v0.11.0 and v0.11.1 as soon as you can. Those releases can drop records when the source resumes.**\n\n- Fixed: with change capture, a large backlog of settled objects (more than `cdc.maxSettledBytesPerPoll` in one poll) could make the source skip some of them permanently. Affects catch-up after downtime and first polls after a big snapshot.\n- Fixed: a multipart upload that starts in the same second as another multipart object or upload of the same key could lose that key's final version (AWS) or redeliver a version on every poll (MinIO). Affects `cdc.multipartHold: true`, the default.\n- Fixed: an upload that completes between the source's two listings was delivered twice.\n- Behavior change: such a same-second upload now holds back settling (log code `s3.source.cut_held_same_second`, escalating to a warning every 15 minutes after the first 15) until it completes or reaches `cdc.maxPendingUploadAge`; after that it is tracked, not dropped. Uploads past that age that share their second with nothing are logged at error level (`s3.source.stale_upload_ignored`): abort them or add an `AbortIncompleteMultipartUpload` lifecycle rule. Objects are still delivered early up to `cdc.maxEarlyObjects`; the rest wait. No configuration or position format change; resuming from v0.11.0/v0.11.1 positions works.\n- Tests: the randomized resume test now covers AWS and MinIO timestamps and same-second uploads, and runs 2000 seeds nightly.\n\nKnown remaining risk, duplicates only: (1) a multipart upload that completes while a poll is running can have its object delivered twice if the source is killed right after that record; (2) a position written by v0.11.0 to v0.11.2 that tracks a multipart upload which ends while the source is stopped can deliver an earlier object of the same key once more. A follow-up release changes the position format to close both.\n\nIf you ran v0.11.0 or v0.11.1 with change capture on a bucket with multipart uploads or a large backlog, compare the bucket with the destination for objects modified since you upgraded.\n\n---\n\n## What's Changed\n* fix(source): stop dropping records on resume (settled eviction, same-second tracked uploads) by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-s3/pull/1070\n* chore: update version to v0.11.2 by @devarismeroxa in https://github.com/ConduitIO/conduit-connector-s3/pull/1072\n\n\n**Full Changelog**: https://github.com/ConduitIO/conduit-connector-s3/compare/v0.11.1...v0.11.2\n", "draft": false, "prerelease": false, - "published_at": "2023-04-11T12:35:21Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.4.0", + "published_at": "2026-10-20T03:56:17Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-s3/releases/tag/v0.11.2", "assets": [ { - "name": "conduit-connector-postgres_0.4.0_Darwin_arm64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Darwin_arm64.tar.gz", "os": "darwin", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Darwin_arm64.tar.gz", - "created_at": "2023-04-11T12:35:22Z", - "updated_at": "2023-04-11T12:35:22Z", - "download_count": 9, - "size": 5555159 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Darwin_arm64.tar.gz", + "created_at": "2026-10-20T04:01:03Z", + "updated_at": "2026-10-20T04:01:04Z", + "download_count": 0, + "size": 10296529 }, { - "name": "conduit-connector-postgres_0.4.0_Darwin_x86_64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Darwin_x86_64.tar.gz", "os": "darwin", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Darwin_x86_64.tar.gz", - "created_at": "2023-04-11T12:35:22Z", - "updated_at": "2023-04-11T12:35:22Z", - "download_count": 10, - "size": 5805136 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Darwin_x86_64.tar.gz", + "created_at": "2026-10-20T04:01:03Z", + "updated_at": "2026-10-20T04:01:04Z", + "download_count": 0, + "size": 11156789 }, { - "name": "conduit-connector-postgres_0.4.0_Linux_arm64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Linux_arm64.tar.gz", "os": "linux", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Linux_arm64.tar.gz", - "created_at": "2023-04-11T12:35:23Z", - "updated_at": "2023-04-11T12:35:23Z", - "download_count": 9, - "size": 5066664 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Linux_arm64.tar.gz", + "created_at": "2026-10-20T04:01:04Z", + "updated_at": "2026-10-20T04:01:05Z", + "download_count": 0, + "size": 9796564 }, { - "name": "conduit-connector-postgres_0.4.0_Linux_i386.tar.gz", + "name": "conduit-connector-s3_0.11.2_Linux_i386.tar.gz", "os": "linux", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Linux_i386.tar.gz", - "created_at": "2023-04-11T12:35:23Z", - "updated_at": "2023-04-11T12:35:24Z", - "download_count": 9, - "size": 5281338 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Linux_i386.tar.gz", + "created_at": "2026-10-20T04:01:04Z", + "updated_at": "2026-10-20T04:01:05Z", + "download_count": 0, + "size": 10268992 }, { - "name": "conduit-connector-postgres_0.4.0_Linux_x86_64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Linux_x86_64.tar.gz", "os": "linux", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Linux_x86_64.tar.gz", - "created_at": "2023-04-11T12:35:23Z", - "updated_at": "2023-04-11T12:35:23Z", - "download_count": 9, - "size": 5546615 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Linux_x86_64.tar.gz", + "created_at": "2026-10-20T04:01:03Z", + "updated_at": "2026-10-20T04:01:04Z", + "download_count": 0, + "size": 10887518 }, { - "name": "conduit-connector-postgres_0.4.0_Windows_arm64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Windows_arm64.tar.gz", "os": "windows", "arch": "arm64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Windows_arm64.tar.gz", - "created_at": "2023-04-11T12:35:24Z", - "updated_at": "2023-04-11T12:35:25Z", - "download_count": 9, - "size": 5152006 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Windows_arm64.tar.gz", + "created_at": "2026-10-20T04:01:03Z", + "updated_at": "2026-10-20T04:01:04Z", + "download_count": 0, + "size": 9902832 }, { - "name": "conduit-connector-postgres_0.4.0_Windows_i386.tar.gz", + "name": "conduit-connector-s3_0.11.2_Windows_i386.tar.gz", "os": "windows", "arch": "386", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Windows_i386.tar.gz", - "created_at": "2023-04-11T12:35:25Z", - "updated_at": "2023-04-11T12:35:25Z", - "download_count": 9, - "size": 5511317 + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Windows_i386.tar.gz", + "created_at": "2026-10-20T04:01:04Z", + "updated_at": "2026-10-20T04:01:05Z", + "download_count": 0, + "size": 10766078 }, { - "name": "conduit-connector-postgres_0.4.0_Windows_x86_64.tar.gz", + "name": "conduit-connector-s3_0.11.2_Windows_x86_64.tar.gz", "os": "windows", "arch": "amd64", "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.4.0/conduit-connector-postgres_0.4.0_Windows_x86_64.tar.gz", - "created_at": "2023-04-11T12:35:23Z", - "updated_at": "2023-04-11T12:35:24Z", - "download_count": 8, - "size": 5640851 - } - ], - "is_latest": false - }, - { - "tag_name": "v0.3.0", - "name": "v0.3.0", - "body": "## Changelog\n* c3fbfa80ed03607ccdde2697090493b458c4d69e: Add Goreleaser (#63) (@lovromazgon)\n* c1eddf8aaa0d95f6bb112b243e59c3fae96aa9c1: Adds tests for snapshot atomicity and iteration (#28) (@dylanlott)\n* ed97ce7be342c3d2ab2a78346d1325a141870533: Fix TestRelationSetAllTypes (#39) (@lovromazgon)\n* d35314b63aec7597bfe563f6d5edfd46aa470d46: OpenCDC integration + other fixes (#49) (@lovromazgon)\n* 602250c5419db0f6f39ad1d23e03aac26ff1b360: Update to latest SDK (#54) (@lovromazgon)\n* f5b8991ce9d3635e88af79cd83460135ee03c259: Upgrade to Go 1.18 (#30) (@hariso)\n* ec2e67eb56545bc0dc3021a278e6fb1032391c68: adds snapshot iterator (#22) (@dylanlott)\n* 851b4b7011a731b775a90e716d22165881a9d7a7: fix: remove reference to unimplemented long polling mode (#48) (@ahmeroxa)\n* 873fc9e06c64b09da098d5201fd550038da558c4: returns snapshot incomplete error when snapshot is interrupted (#27) (@dylanlott)\n* 957029c74096d7d691ea34a3875a4a3c3fd65280: update version string (builtin plugins need proper version) (#64) (@lovromazgon)\n\n", - "draft": false, - "prerelease": false, - "published_at": "2022-09-27T14:06:04Z", - "html_url": "https://github.com/ConduitIO/conduit-connector-postgres/releases/tag/v0.3.0", - "assets": [ + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/conduit-connector-s3_0.11.2_Windows_x86_64.tar.gz", + "created_at": "2026-10-20T04:01:05Z", + "updated_at": "2026-10-20T04:01:05Z", + "download_count": 0, + "size": 11187656 + }, { - "name": "conduit-connector-postgres_0.3.0_Darwin_arm64.tar.gz", + "name": "s3_v0.11.2_darwin_amd64.tar.gz", "os": "darwin", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Darwin_arm64.tar.gz", - "created_at": "2022-09-27T14:06:06Z", - "updated_at": "2022-09-27T14:06:06Z", - "download_count": 18, - "size": 5168191 + "arch": "amd64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_darwin_amd64.tar.gz", + "created_at": "2026-10-20T03:58:41Z", + "updated_at": "2026-10-20T03:58:42Z", + "download_count": 0, + "size": 21967061 }, { - "name": "conduit-connector-postgres_0.3.0_Darwin_x86_64.tar.gz", + "name": "s3_v0.11.2_darwin_amd64.tar.gz.sigstore.json", "os": "darwin", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Darwin_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:05Z", - "updated_at": "2022-09-27T14:06:06Z", - "download_count": 10, - "size": 5345354 + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_darwin_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T03:58:41Z", + "updated_at": "2026-10-20T03:58:42Z", + "download_count": 0, + "size": 9393 }, { - "name": "conduit-connector-postgres_0.3.0_Linux_arm64.tar.gz", - "os": "linux", + "name": "s3_v0.11.2_darwin_arm64.tar.gz", + "os": "darwin", "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Linux_arm64.tar.gz", - "created_at": "2022-09-27T14:06:07Z", - "updated_at": "2022-09-27T14:06:07Z", - "download_count": 10, - "size": 4730820 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_darwin_arm64.tar.gz", + "created_at": "2026-10-20T03:59:23Z", + "updated_at": "2026-10-20T03:59:24Z", + "download_count": 0, + "size": 20685489 }, { - "name": "conduit-connector-postgres_0.3.0_Linux_i386.tar.gz", - "os": "linux", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Linux_i386.tar.gz", - "created_at": "2022-09-27T14:06:07Z", - "updated_at": "2022-09-27T14:06:07Z", - "download_count": 11, - "size": 4917597 + "name": "s3_v0.11.2_darwin_arm64.tar.gz.sigstore.json", + "os": "darwin", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_darwin_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T03:59:23Z", + "updated_at": "2026-10-20T03:59:23Z", + "download_count": 0, + "size": 9534 }, { - "name": "conduit-connector-postgres_0.3.0_Linux_x86_64.tar.gz", + "name": "s3_v0.11.2_linux_amd64.tar.gz", "os": "linux", "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Linux_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:06Z", - "updated_at": "2022-09-27T14:06:07Z", - "download_count": 10, - "size": 5137795 + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_linux_amd64.tar.gz", + "created_at": "2026-10-20T03:57:12Z", + "updated_at": "2026-10-20T03:57:13Z", + "download_count": 0, + "size": 20851986 }, { - "name": "conduit-connector-postgres_0.3.0_Windows_arm64.tar.gz", - "os": "windows", - "arch": "arm64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Windows_arm64.tar.gz", - "created_at": "2022-09-27T14:06:08Z", - "updated_at": "2022-09-27T14:06:08Z", - "download_count": 10, - "size": 4749429 + "name": "s3_v0.11.2_linux_amd64.tar.gz.sigstore.json", + "os": "linux", + "arch": "amd64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_linux_amd64.tar.gz.sigstore.json", + "created_at": "2026-10-20T03:57:12Z", + "updated_at": "2026-10-20T03:57:12Z", + "download_count": 0, + "size": 9346 }, { - "name": "conduit-connector-postgres_0.3.0_Windows_i386.tar.gz", - "os": "windows", - "arch": "386", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Windows_i386.tar.gz", - "created_at": "2022-09-27T14:06:05Z", - "updated_at": "2022-09-27T14:06:05Z", - "download_count": 10, - "size": 5065876 + "name": "s3_v0.11.2_linux_arm64.tar.gz", + "os": "linux", + "arch": "arm64", + "content_type": "application/x-gtar", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_linux_arm64.tar.gz", + "created_at": "2026-10-20T03:58:00Z", + "updated_at": "2026-10-20T03:58:01Z", + "download_count": 0, + "size": 19148234 }, { - "name": "conduit-connector-postgres_0.3.0_Windows_x86_64.tar.gz", - "os": "windows", - "arch": "amd64", - "content_type": "application/gzip", - "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-postgres/releases/download/v0.3.0/conduit-connector-postgres_0.3.0_Windows_x86_64.tar.gz", - "created_at": "2022-09-27T14:06:07Z", - "updated_at": "2022-09-27T14:06:08Z", - "download_count": 10, - "size": 5155971 + "name": "s3_v0.11.2_linux_arm64.tar.gz.sigstore.json", + "os": "linux", + "arch": "arm64", + "content_type": "application/json", + "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.11.2/s3_v0.11.2_linux_arm64.tar.gz.sigstore.json", + "created_at": "2026-10-20T03:58:00Z", + "updated_at": "2026-10-20T03:58:00Z", + "download_count": 0, + "size": 9475 } ], "is_latest": false - } - ] - }, - { - "name_with_owner": "ConduitIO/conduit-connector-s3", - "description": "Conduit connector for Amazon S3", - "created_at": "2022-02-17 14:40:01 +0000 UTC", - "url": "https://github.com/ConduitIO/conduit-connector-s3", - "stargazer_count": 9, - "fork_count": 5, - "releases": [ + }, + { + "tag_name": "v0.11.1", + "name": "v0.11.1", + "body": "**Security advisory:** [GHSA-gxm3-5pgq-2p8v](https://github.com/ConduitIO/conduit-connector-s3/security/advisories/GHSA-gxm3-5pgq-2p8v)\n\n\u003e [!WARNING]\n\u003e **Do not use this release. It can drop records when the source resumes (change capture).** Fixed in [v0.11.2](https://github.com/ConduitIO/conduit-connector-s3/releases/tag/v0.11.2): upgrade as soon as you can. Affected: change capture with a large backlog of settled objects (more than `cdc.maxSettledBytesPerPoll` in one poll), and multipart uploads that share their initiation second with another object of the same key (`cdc.multipartHold: true`, the default). If you ran this release in either situation, compare the bucket with the destination for objects modified since you upgraded. Details: ConduitIO/conduit-connector-s3#1070.\n", + "draft": false, + "prerelease": false, + "published_at": "2026-10-19T19:22:03Z", + "html_url": "https://github.com/ConduitIO/conduit-connector-s3/releases/tag/v0.11.1", + "assets": null, + "is_latest": false + }, { "tag_name": "v0.11.0", "name": "v0.11.0", - "body": "", + "body": "**Security advisory:** [GHSA-gxm3-5pgq-2p8v](https://github.com/ConduitIO/conduit-connector-s3/security/advisories/GHSA-gxm3-5pgq-2p8v)\n\n\u003e [!WARNING]\n\u003e **Do not use this release. It can drop records when the source resumes (change capture).** Fixed in [v0.11.2](https://github.com/ConduitIO/conduit-connector-s3/releases/tag/v0.11.2): upgrade as soon as you can. Affected: change capture with a large backlog of settled objects (more than `cdc.maxSettledBytesPerPoll` in one poll), and multipart uploads that share their initiation second with another object of the same key (`cdc.multipartHold: true`, the default). If you ran this release in either situation, compare the bucket with the destination for objects modified since you upgraded. Details: ConduitIO/conduit-connector-s3#1070.\n", "draft": false, "prerelease": false, "published_at": "2026-10-19T02:58:53Z", @@ -14063,7 +16426,7 @@ "size": 9471 } ], - "is_latest": true + "is_latest": false }, { "tag_name": "v0.10.0", @@ -14546,7 +16909,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.9.4/s3_v0.9.4_darwin_amd64.tar.gz", "created_at": "2026-10-08T20:21:52Z", "updated_at": "2026-10-08T20:21:52Z", - "download_count": 2, + "download_count": 3, "size": 19520609 }, { @@ -14612,7 +16975,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.9.4/s3_v0.9.4_linux_arm64.tar.gz", "created_at": "2026-10-08T20:21:13Z", "updated_at": "2026-10-08T20:21:14Z", - "download_count": 2, + "download_count": 3, "size": 18120095 }, { @@ -14790,7 +17153,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.9.2/conduit-connector-s3_0.9.2_Linux_x86_64.tar.gz", "created_at": "2025-05-19T15:24:06Z", "updated_at": "2025-05-19T15:24:07Z", - "download_count": 5, + "download_count": 6, "size": 9515848 }, { @@ -14890,7 +17253,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.9.1/conduit-connector-s3_0.9.1_Linux_x86_64.tar.gz", "created_at": "2025-03-20T11:38:25Z", "updated_at": "2025-03-20T11:38:26Z", - "download_count": 7, + "download_count": 8, "size": 9319492 }, { @@ -14990,7 +17353,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.9.0/conduit-connector-s3_0.9.0_Linux_x86_64.tar.gz", "created_at": "2025-02-04T15:34:29Z", "updated_at": "2025-02-04T15:34:29Z", - "download_count": 8, + "download_count": 9, "size": 9300522 }, { @@ -15090,7 +17453,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.8.1/conduit-connector-s3_0.8.1_Linux_x86_64.tar.gz", "created_at": "2024-11-08T15:39:19Z", "updated_at": "2024-11-08T15:39:20Z", - "download_count": 6, + "download_count": 7, "size": 8763944 }, { @@ -15190,7 +17553,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.8.0/conduit-connector-s3_0.8.0_Linux_x86_64.tar.gz", "created_at": "2024-11-08T15:37:09Z", "updated_at": "2024-11-08T15:37:10Z", - "download_count": 5, + "download_count": 6, "size": 8749460 }, { @@ -15390,7 +17753,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/ConduitIO/conduit-connector-s3/releases/download/v0.6.0/conduit-connector-s3_0.6.0_Linux_x86_64.tar.gz", "created_at": "2024-08-07T09:23:02Z", "updated_at": "2024-08-07T09:23:03Z", - "download_count": 9, + "download_count": 10, "size": 8424664 }, { @@ -16188,7 +18551,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-activemq-artemis/releases/download/v0.1.0/conduit-connector-activemq-artemis_0.1.0_Linux_x86_64.tar.gz", "created_at": "2025-04-04T12:33:22Z", "updated_at": "2025-04-04T12:33:23Z", - "download_count": 5, + "download_count": 6, "size": 6758296 }, { @@ -16288,7 +18651,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-activemq-artemis/releases/download/v0.0.2/conduit-connector-activemq-artemis_0.0.2_Linux_x86_64.tar.gz", "created_at": "2024-08-14T16:44:53Z", "updated_at": "2024-08-14T16:44:53Z", - "download_count": 7, + "download_count": 8, "size": 5799249 }, { @@ -16723,7 +19086,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-azure-storage/releases/download/v0.4.1/conduit-connector-azure-storage_0.4.1_Linux_x86_64.tar.gz", "created_at": "2024-08-13T18:18:35Z", "updated_at": "2024-08-13T18:18:38Z", - "download_count": 8, + "download_count": 9, "size": 6459832 }, { @@ -17240,7 +19603,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-box/releases/download/v0.1.1/conduit-connector-box_0.1.1_Linux_x86_64.tar.gz", "created_at": "2025-06-09T13:13:17Z", "updated_at": "2025-06-09T13:13:18Z", - "download_count": 58, + "download_count": 61, "size": 6935781 }, { @@ -17340,7 +19703,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-box/releases/download/v0.1.0/conduit-connector-box_0.1.0_Linux_x86_64.tar.gz", "created_at": "2025-06-04T14:13:44Z", "updated_at": "2025-06-04T14:13:45Z", - "download_count": 4, + "download_count": 5, "size": 6935843 }, { @@ -17450,7 +19813,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-cassandra/releases/download/v0.1.1/conduit-connector-cassandra_0.1.1_Linux_x86_64.tar.gz", "created_at": "2024-09-17T12:35:27Z", "updated_at": "2024-09-17T12:35:28Z", - "download_count": 6, + "download_count": 7, "size": 6198300 }, { @@ -17550,7 +19913,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-cassandra/releases/download/v0.1.0/conduit-connector-cassandra_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:41:04Z", "updated_at": "2024-06-14T11:41:05Z", - "download_count": 6, + "download_count": 7, "size": 5383727 }, { @@ -17660,7 +20023,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-chaos/releases/download/v0.2.0/conduit-connector-chaos_0.2.0_Linux_x86_64.tar.gz", "created_at": "2025-02-18T12:41:48Z", "updated_at": "2025-02-18T12:41:48Z", - "download_count": 47, + "download_count": 48, "size": 6386521 }, { @@ -17760,7 +20123,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-chaos/releases/download/v0.1.1/conduit-connector-chaos_0.1.1_Linux_x86_64.tar.gz", "created_at": "2024-09-18T09:54:43Z", "updated_at": "2024-09-18T09:54:43Z", - "download_count": 27, + "download_count": 28, "size": 5863699 }, { @@ -18189,7 +20552,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-databricks/releases/download/v0.1.1/conduit-connector-databricks_0.1.1_Linux_x86_64.tar.gz", "created_at": "2025-02-27T17:05:03Z", "updated_at": "2025-02-27T17:05:04Z", - "download_count": 4, + "download_count": 5, "size": 9137701 }, { @@ -18289,7 +20652,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-databricks/releases/download/v0.1.0/conduit-connector-databricks_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:42:16Z", "updated_at": "2024-06-14T11:42:17Z", - "download_count": 7, + "download_count": 8, "size": 8235467 }, { @@ -18364,7 +20727,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dropbox/releases/download/v0.1.1/conduit-connector-dropbox_0.1.1_Darwin_arm64.tar.gz", "created_at": "2025-06-03T15:12:19Z", "updated_at": "2025-06-03T15:12:19Z", - "download_count": 62, + "download_count": 63, "size": 6849157 }, { @@ -18375,7 +20738,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dropbox/releases/download/v0.1.1/conduit-connector-dropbox_0.1.1_Darwin_x86_64.tar.gz", "created_at": "2025-06-03T15:12:19Z", "updated_at": "2025-06-03T15:12:19Z", - "download_count": 59, + "download_count": 60, "size": 7266407 }, { @@ -18397,7 +20760,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dropbox/releases/download/v0.1.1/conduit-connector-dropbox_0.1.1_Linux_i386.tar.gz", "created_at": "2025-06-03T15:12:19Z", "updated_at": "2025-06-03T15:12:20Z", - "download_count": 63, + "download_count": 64, "size": 6709495 }, { @@ -18408,7 +20771,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dropbox/releases/download/v0.1.1/conduit-connector-dropbox_0.1.1_Linux_x86_64.tar.gz", "created_at": "2025-06-03T15:12:19Z", "updated_at": "2025-06-03T15:12:19Z", - "download_count": 60, + "download_count": 61, "size": 7084483 }, { @@ -18718,7 +21081,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.4.2/conduit-connector-dynamodb_0.4.2_Linux_x86_64.tar.gz", "created_at": "2025-07-17T13:27:24Z", "updated_at": "2025-07-17T13:27:24Z", - "download_count": 6, + "download_count": 7, "size": 8449630 }, { @@ -18818,7 +21181,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.4.1/conduit-connector-dynamodb_0.4.1_Linux_x86_64.tar.gz", "created_at": "2025-07-11T19:28:56Z", "updated_at": "2025-07-11T19:28:57Z", - "download_count": 5, + "download_count": 6, "size": 8448518 }, { @@ -19018,7 +21381,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.3.1/conduit-connector-dynamodb_0.3.1_Linux_x86_64.tar.gz", "created_at": "2025-05-16T19:11:00Z", "updated_at": "2025-05-16T19:11:01Z", - "download_count": 11, + "download_count": 12, "size": 8389491 }, { @@ -19118,7 +21481,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.3.0/conduit-connector-dynamodb_0.3.0_Linux_x86_64.tar.gz", "created_at": "2025-05-07T08:21:46Z", "updated_at": "2025-05-07T08:21:47Z", - "download_count": 5, + "download_count": 6, "size": 8385461 }, { @@ -19318,7 +21681,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.2.1/conduit-connector-dynamodb_0.2.1_Linux_x86_64.tar.gz", "created_at": "2025-01-23T21:07:24Z", "updated_at": "2025-01-23T21:07:24Z", - "download_count": 5, + "download_count": 6, "size": 7611481 }, { @@ -19418,7 +21781,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.2.0/conduit-connector-dynamodb_0.2.0_Linux_x86_64.tar.gz", "created_at": "2024-11-19T23:11:09Z", "updated_at": "2024-11-19T23:11:10Z", - "download_count": 5, + "download_count": 6, "size": 7604491 }, { @@ -19518,7 +21881,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.1.1/conduit-connector-dynamodb_0.1.1_Linux_x86_64.tar.gz", "created_at": "2024-11-13T20:59:52Z", "updated_at": "2024-11-13T20:59:53Z", - "download_count": 4, + "download_count": 5, "size": 7597692 }, { @@ -19618,7 +21981,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-dynamodb/releases/download/v0.1.0/conduit-connector-dynamodb_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-10-04T22:11:35Z", "updated_at": "2024-10-04T22:11:36Z", - "download_count": 4, + "download_count": 5, "size": 7450707 }, { @@ -19728,7 +22091,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-enhanced-generator/releases/download/v0.9.7/conduit-connector-enhanced-generator_0.9.7_Linux_x86_64.tar.gz", "created_at": "2025-02-27T17:06:49Z", "updated_at": "2025-02-27T17:06:50Z", - "download_count": 4, + "download_count": 5, "size": 7377502 }, { @@ -19828,7 +22191,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-enhanced-generator/releases/download/v0.9.6/conduit-connector-enhanced-generator_0.9.6_Linux_x86_64.tar.gz", "created_at": "2025-02-25T21:44:13Z", "updated_at": "2025-02-25T21:44:13Z", - "download_count": 4, + "download_count": 5, "size": 7377677 }, { @@ -19928,7 +22291,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-enhanced-generator/releases/download/v0.9.5/conduit-connector-enhanced-generator_0.9.5_Linux_x86_64.tar.gz", "created_at": "2025-02-25T20:54:59Z", "updated_at": "2025-02-25T20:55:00Z", - "download_count": 4, + "download_count": 5, "size": 7377330 }, { @@ -20128,7 +22491,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-enhanced-generator/releases/download/v0.9.3/conduit-connector-enhanced-generator_0.9.3_Linux_x86_64.tar.gz", "created_at": "2025-02-24T16:47:29Z", "updated_at": "2025-02-24T16:47:30Z", - "download_count": 4, + "download_count": 5, "size": 7375525 }, { @@ -20228,7 +22591,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-enhanced-generator/releases/download/v0.9.2/conduit-connector-enhanced-generator_0.9.2_Linux_x86_64.tar.gz", "created_at": "2025-02-24T16:46:37Z", "updated_at": "2025-02-24T16:46:37Z", - "download_count": 4, + "download_count": 5, "size": 7033872 }, { @@ -20400,7 +22763,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-google-cloudstorage/releases/download/v0.3.1/google-cloudstorage_v0.3.1_darwin_amd64.tar.gz", "created_at": "2026-10-08T22:57:23Z", "updated_at": "2026-10-08T22:57:24Z", - "download_count": 2, + "download_count": 3, "size": 11131945 }, { @@ -20444,7 +22807,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-google-cloudstorage/releases/download/v0.3.1/google-cloudstorage_v0.3.1_linux_amd64.tar.gz", "created_at": "2026-10-08T22:56:13Z", "updated_at": "2026-10-08T22:56:14Z", - "download_count": 3, + "download_count": 4, "size": 10757889 }, { @@ -20466,7 +22829,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-google-cloudstorage/releases/download/v0.3.1/google-cloudstorage_v0.3.1_linux_arm64.tar.gz", "created_at": "2026-10-08T22:56:48Z", "updated_at": "2026-10-08T22:56:48Z", - "download_count": 2, + "download_count": 3, "size": 9853495 }, { @@ -20621,7 +22984,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-google-drive/releases/download/v0.1.0/conduit-connector-google-drive_0.1.0_Darwin_x86_64.tar.gz", "created_at": "2025-05-08T16:18:48Z", "updated_at": "2025-05-08T16:18:49Z", - "download_count": 55, + "download_count": 56, "size": 7959846 }, { @@ -21172,7 +23535,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-http/releases/download/v0.4.0/conduit-connector-http_0.4.0_Linux_arm64.tar.gz", "created_at": "2025-06-03T22:17:39Z", "updated_at": "2025-06-03T22:17:40Z", - "download_count": 104, + "download_count": 128, "size": 8361864 }, { @@ -21194,7 +23557,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-http/releases/download/v0.4.0/conduit-connector-http_0.4.0_Linux_x86_64.tar.gz", "created_at": "2025-06-03T22:17:40Z", "updated_at": "2025-06-03T22:17:41Z", - "download_count": 2636, + "download_count": 3332, "size": 9057089 }, { @@ -21394,7 +23757,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-http/releases/download/v0.2.0/conduit-connector-http_0.2.0_Linux_x86_64.tar.gz", "created_at": "2024-08-16T12:48:23Z", "updated_at": "2024-08-16T12:48:24Z", - "download_count": 9, + "download_count": 10, "size": 8231696 }, { @@ -21494,7 +23857,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-http/releases/download/v0.1.0/conduit-connector-http_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-04-04T19:13:44Z", "updated_at": "2024-04-04T19:13:44Z", - "download_count": 13, + "download_count": 14, "size": 5166569 }, { @@ -22687,7 +25050,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.2.2/conduit-connector-mongo_0.2.2_Darwin_x86_64.tar.gz", "created_at": "2025-03-14T10:37:02Z", "updated_at": "2025-03-14T10:37:03Z", - "download_count": 61, + "download_count": 63, "size": 8198491 }, { @@ -22720,7 +25083,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.2.2/conduit-connector-mongo_0.2.2_Linux_x86_64.tar.gz", "created_at": "2025-03-14T10:37:03Z", "updated_at": "2025-03-14T10:37:03Z", - "download_count": 83, + "download_count": 84, "size": 8000540 }, { @@ -22820,7 +25183,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.2.1/conduit-connector-mongo_0.2.1_Linux_x86_64.tar.gz", "created_at": "2025-02-19T16:41:08Z", "updated_at": "2025-02-19T16:41:08Z", - "download_count": 6, + "download_count": 7, "size": 8003310 }, { @@ -22920,7 +25283,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.2.0/conduit-connector-mongo_0.2.0_Linux_x86_64.tar.gz", "created_at": "2025-02-13T15:18:48Z", "updated_at": "2025-02-13T15:18:49Z", - "download_count": 6, + "download_count": 7, "size": 8000597 }, { @@ -22998,7 +25361,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.1.2/conduit-connector-mongo_0.1.2_Linux_arm64.tar.gz", "created_at": "2025-02-10T14:53:42Z", "updated_at": "2025-02-10T14:53:42Z", - "download_count": 5, + "download_count": 27, "size": 7415992 }, { @@ -23020,7 +25383,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-mongo/releases/download/v0.1.2/conduit-connector-mongo_0.1.2_Linux_x86_64.tar.gz", "created_at": "2025-02-10T14:53:42Z", "updated_at": "2025-02-10T14:53:43Z", - "download_count": 14, + "download_count": 37, "size": 8017959 }, { @@ -23816,7 +26179,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-nats-pubsub/releases/download/v0.4.0/conduit-connector-nats-pubsub_0.4.0_Linux_x86_64.tar.gz", "created_at": "2024-09-12T13:32:20Z", "updated_at": "2024-09-12T13:32:20Z", - "download_count": 7, + "download_count": 8, "size": 6358126 }, { @@ -23916,7 +26279,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-nats-pubsub/releases/download/v0.3.0/conduit-connector-nats-pubsub_0.3.0_Linux_x86_64.tar.gz", "created_at": "2022-09-27T14:06:02Z", "updated_at": "2022-09-27T14:06:03Z", - "download_count": 11, + "download_count": 12, "size": 4634990 }, { @@ -24214,7 +26577,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-neo4j/releases/download/v0.1.0/conduit-connector-neo4j_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:40:59Z", "updated_at": "2024-06-14T11:40:59Z", - "download_count": 11, + "download_count": 12, "size": 5360010 }, { @@ -24853,7 +27216,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-pinecone/releases/download/v0.2.0/conduit-connector-pinecone_0.2.0_Linux_x86_64.tar.gz", "created_at": "2024-09-18T10:22:51Z", "updated_at": "2024-09-18T10:22:51Z", - "download_count": 7, + "download_count": 8, "size": 6390816 }, { @@ -25151,7 +27514,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-pulsar/releases/download/v0.1.0/conduit-connector-pulsar_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:42:19Z", "updated_at": "2024-06-14T11:42:20Z", - "download_count": 9, + "download_count": 10, "size": 8011108 }, { @@ -25449,7 +27812,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.4.0/conduit-connector-rabbitmq_0.4.0_Linux_x86_64.tar.gz", "created_at": "2025-05-19T12:54:22Z", "updated_at": "2025-05-19T12:54:23Z", - "download_count": 48, + "download_count": 50, "size": 6797379 }, { @@ -25460,7 +27823,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.4.0/conduit-connector-rabbitmq_0.4.0_Windows_arm64.tar.gz", "created_at": "2025-05-19T12:54:23Z", "updated_at": "2025-05-19T12:54:24Z", - "download_count": 52, + "download_count": 55, "size": 6356659 }, { @@ -25482,7 +27845,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.4.0/conduit-connector-rabbitmq_0.4.0_Windows_x86_64.tar.gz", "created_at": "2025-05-19T12:54:23Z", "updated_at": "2025-05-19T12:54:24Z", - "download_count": 45, + "download_count": 47, "size": 7019307 } ], @@ -25549,7 +27912,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.3.0/conduit-connector-rabbitmq_0.3.0_Linux_x86_64.tar.gz", "created_at": "2025-05-06T17:55:11Z", "updated_at": "2025-05-06T17:55:12Z", - "download_count": 5, + "download_count": 6, "size": 6792208 }, { @@ -25649,7 +28012,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.2.0/conduit-connector-rabbitmq_0.2.0_Linux_x86_64.tar.gz", "created_at": "2025-04-11T10:06:34Z", "updated_at": "2025-04-11T10:06:35Z", - "download_count": 5, + "download_count": 6, "size": 6788624 }, { @@ -25749,7 +28112,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-rabbitmq/releases/download/v0.1.0/conduit-connector-rabbitmq_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:41:11Z", "updated_at": "2024-06-14T11:41:12Z", - "download_count": 7, + "download_count": 8, "size": 5227672 }, { @@ -25837,7 +28200,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-redis/releases/download/v0.3.1/redis_v0.3.1_darwin_arm64.tar.gz", "created_at": "2026-10-08T22:34:59Z", "updated_at": "2026-10-08T22:35:00Z", - "download_count": 7, + "download_count": 8, "size": 5981677 }, { @@ -25859,7 +28222,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-redis/releases/download/v0.3.1/redis_v0.3.1_linux_amd64.tar.gz", "created_at": "2026-10-08T22:33:33Z", "updated_at": "2026-10-08T22:33:34Z", - "download_count": 18, + "download_count": 26, "size": 6232607 }, { @@ -25881,7 +28244,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-redis/releases/download/v0.3.1/redis_v0.3.1_linux_arm64.tar.gz", "created_at": "2026-10-08T22:34:02Z", "updated_at": "2026-10-08T22:34:02Z", - "download_count": 5, + "download_count": 6, "size": 5694381 }, { @@ -26178,7 +28541,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-salesforce/releases/download/v0.5.2/conduit-connector-salesforce_0.5.2_Linux_x86_64.tar.gz", "created_at": "2024-11-08T04:27:38Z", "updated_at": "2024-11-08T04:27:38Z", - "download_count": 6, + "download_count": 7, "size": 6337638 }, { @@ -26278,7 +28641,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-salesforce/releases/download/v0.5.1/conduit-connector-salesforce_0.5.1_Linux_x86_64.tar.gz", "created_at": "2024-11-08T04:19:17Z", "updated_at": "2024-11-08T04:19:18Z", - "download_count": 5, + "download_count": 6, "size": 6337640 }, { @@ -26776,7 +29139,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-sap-hana/releases/download/v0.1.0/conduit-connector-sap-hana_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-06-14T11:41:25Z", "updated_at": "2024-06-14T11:41:26Z", - "download_count": 8, + "download_count": 9, "size": 5646362 }, { @@ -26886,7 +29249,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-sftp/releases/download/v0.1.0/conduit-connector-sftp_0.1.0_Linux_x86_64.tar.gz", "created_at": "2025-02-26T23:10:35Z", "updated_at": "2025-02-26T23:10:35Z", - "download_count": 5, + "download_count": 6, "size": 6260491 }, { @@ -27801,7 +30164,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-sqs/releases/download/v0.3.0/conduit-connector-sqs_0.3.0_Linux_x86_64.tar.gz", "created_at": "2024-09-06T18:52:46Z", "updated_at": "2024-09-06T18:52:47Z", - "download_count": 9, + "download_count": 10, "size": 6898163 }, { @@ -27901,7 +30264,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-sqs/releases/download/v0.2.0/conduit-connector-sqs_0.2.0_Linux_x86_64.tar.gz", "created_at": "2024-08-20T15:38:57Z", "updated_at": "2024-08-20T15:38:58Z", - "download_count": 7, + "download_count": 8, "size": 6882102 }, { @@ -28708,7 +31071,7 @@ "browser_download_url": "https://conduit.gateway.scarf.sh/connector/download/conduitio-labs/conduit-connector-weaviate/releases/download/v0.1.0/conduit-connector-weaviate_0.1.0_Linux_x86_64.tar.gz", "created_at": "2024-09-19T15:09:19Z", "updated_at": "2024-09-19T15:09:19Z", - "download_count": 7, + "download_count": 8, "size": 7089955 }, { diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/.metadata.yaml new file mode 100644 index 0000000..69aa6ef --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:26:45.721388465Z +commitSHA: 4962259d3b4f59bdee4a28e5387db7b7f8478d7c diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/connector.yaml new file mode 100644 index 0000000..b3bbdb8 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-elasticsearch@v0.6.1/connector.yaml @@ -0,0 +1,266 @@ +version: "1.0" +specification: + name: elasticsearch + summary: An Elasticsearch destination plugin for Conduit. + description: The Conduit plugin supporting Elasticsearch destination. + version: v0.5.0 + author: Miquido, Meroxa, Inc. + source: + parameters: + - name: host + description: 'The Elasticsearch host and port (e.g.: http://127.0.0.1:9200).' + type: string + default: "" + validations: + - type: required + value: "" + - name: version + description: 'The version of the Elasticsearch service. One of: 5, 6, 7, 8.' + type: string + default: "" + validations: + - type: required + value: "" + - name: APIKey + description: Base64-encoded token for authorization; if set, overrides username/password and service token. + type: string + default: "" + validations: [] + - name: batchSize + description: The number of items stored in bulk in the index. The minimum value is `1`, maximum value is `10000`. + type: int + default: "1000" + validations: [] + - name: certificateFingerprint + description: SHA256 hex fingerprint given by Elasticsearch on first launch. + type: string + default: "" + validations: [] + - name: cloudID + description: Endpoint for the Elastic Service (https://elastic.co/cloud). + type: string + default: "" + validations: [] + - name: indexes.*.sortBy + description: The sortby field for each index to be used by elasticsearch search api. + type: string + default: _seq_no + validations: [] + - name: indexes.*.sortOrder + description: The sortOrder(asc or desc) for each index to be used by elasticsearch search api. + type: string + default: asc + validations: [] + - name: password + description: The password for HTTP Basic Authentication. + type: string + default: "" + validations: [] + - name: pollingPeriod + description: This period is used by workers to poll for new data at regular intervals. + type: duration + default: 5s + validations: [] + - name: retries + description: The maximum number of retries of failed operations. + type: int + default: "0" + validations: [] + - name: serviceToken + description: Service token for authorization; if set, overrides username/password. + type: string + default: "" + validations: [] + - name: username + description: The username for HTTP Basic Authentication. + type: string + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: host + description: 'The Elasticsearch host and port (e.g.: http://127.0.0.1:9200).' + type: string + default: "" + validations: + - type: required + value: "" + - name: version + description: 'The version of the Elasticsearch service. One of: 5, 6, 7, 8.' + type: string + default: "" + validations: + - type: required + value: "" + - name: APIKey + description: Base64-encoded token for authorization; if set, overrides username/password and service token. + type: string + default: "" + validations: [] + - name: bulkSize + description: |- + Deprecated: use `sdk.batch.size`. The number of items stored in one bulk + request (the minimum value is `1`, the maximum value is `10 000`). This + config was never read in the write path, so its old default of 1000 did + nothing. It is now honored as a backward-compatible alias for + `sdk.batch.size` when explicitly set (non-zero): a pipeline that set it + keeps its intended batch size. It has no default; leave it unset to use + `sdk.batch.size` (default 1000). + type: int + default: "" + validations: [] + - name: certificateFingerprint + description: SHA256 hex fingerprint given by Elasticsearch on first launch. + type: string + default: "" + validations: [] + - name: cloudID + description: Endpoint for the Elastic Service (https://elastic.co/cloud). + type: string + default: "" + validations: [] + - name: index + description: The name of the index to write the data to. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: password + description: The password for HTTP Basic Authentication. + type: string + default: "" + validations: [] + - name: retries + description: The maximum number of retries of failed operations. The minimum value is `0` which disabled retry logic. The maximum value is `255. + type: int + default: "0" + validations: [] + - name: serviceToken + description: Service token for authorization; if set, overrides username/password. + type: string + default: "" + validations: [] + - name: type + description: The name of the index's type to write the data to. + type: string + default: "" + validations: [] + - name: username + description: The username for HTTP Basic Authentication. + type: string + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "1000" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/.metadata.yaml new file mode 100644 index 0000000..928d3c5 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:26:57.799623782Z +commitSHA: 755b0293ad5d62b3469f4c29047778950e4e5b3d diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/connector.yaml new file mode 100644 index 0000000..0789a03 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-generator@v0.10.8/connector.yaml @@ -0,0 +1,229 @@ +version: "1.0" +specification: + name: generator + summary: A plugin capable of generating dummy records (in different formats). + description: | + The generator is capable of generating dummy records (in JSON format). The + connector makes it possible to configure the records' fields, the operation + (whether the record was created, updated or deleted), the rate at which records + are produced, and other properties of the connector. + + ## Examples + + ### Bursts + + The following configuration generates 100 records in bursts of 10 records each, + with a 1-second sleep time between bursts. + + > [!NOTE] + > The generator currently has no concept of resuming work. For instance, below + > we have configured it to generate 100 records, but if we restart the pipeline + > (by stopping and starting the pipeline or by restarting Conduit), then it will + > start generating the 100 records from scratch. + + ```yaml + version: 2.2 + pipelines: + - id: example + status: running + connectors: + - id: example + type: source + plugin: generator + settings: + # global settings + rate: 10 + recordCount: 100 + burst.generateTime: 1s + burst.sleepTime: 1s + # default collection + format.type: structured + format.options.id: int + format.options.name: string + operations: create + ``` + + ### Collections + + The following configuration generates records forever with a steady rate of 1000 + records per second. Records are generated in the `users` and `orders` collections. + The generated records have a different format, depending on the collection they + belong to. + + ```yaml + version: 2.2 + pipelines: + - id: example + status: running + connectors: + - id: example + type: source + plugin: generator + settings: + # global settings + rate: 1000 + # collection "users" + collections.users.format.type: structured + collections.users.format.options.id: int + collections.users.format.options.name: string + collections.users.operations: create + # collection "orders" + collections.orders.format.type: raw + collections.orders.format.options.id: int + collections.orders.format.options.product: string + collections.orders.operations: create,update,delete + ``` + version: v0.10.8 + author: Meroxa, Inc. + source: + parameters: + - name: collections.*.operations + description: |- + Comma separated list of record operations to generate. Allowed values are + "create", "update", "delete", "snapshot". + type: string + default: create + validations: + - type: required + value: "" + - name: operations + description: |- + Comma separated list of record operations to generate. Allowed values are + "create", "update", "delete", "snapshot". + type: string + default: create + validations: + - type: required + value: "" + - name: burst.generateTime + description: |- + The amount of time the generator is generating records in a burst. Has an + effect only if `burst.sleepTime` is set. + type: duration + default: 1s + validations: [] + - name: burst.sleepTime + description: The time the generator "sleeps" between bursts. + type: duration + default: "" + validations: [] + - name: collections.*.format.options.* + description: |- + The options for the `raw` and `structured` format types. It accepts pairs + of field names and field types, where the type can be one of: `int`, `string`, `time`, `bool`, `duration`. + type: string + default: "" + validations: [] + - name: collections.*.format.options.path + description: Path to the input file (only applicable if the format type is `file`). + type: string + default: "" + validations: [] + - name: collections.*.format.type + description: The format of the generated payload data (raw, structured, file). + type: string + default: "" + validations: + - type: inclusion + value: raw,structured,file + - name: format.options.* + description: |- + The options for the `raw` and `structured` format types. It accepts pairs + of field names and field types, where the type can be one of: `int`, `string`, `time`, `bool`, `duration`. + type: string + default: "" + validations: [] + - name: format.options.path + description: Path to the input file (only applicable if the format type is `file`). + type: string + default: "" + validations: [] + - name: format.type + description: The format of the generated payload data (raw, structured, file). + type: string + default: "" + validations: + - type: inclusion + value: raw,structured,file + - name: rate + description: |- + The maximum rate in records per second, at which records are generated (0 + means no rate limit). + type: float + default: "" + validations: [] + - name: readTime + description: |- + The time it takes to 'read' a record. + + Deprecated: use `rate` instead. + type: duration + default: "" + validations: [] + - name: recordCount + description: Number of records to be generated (0 means infinite). + type: int + default: "" + validations: + - type: greater-than + value: "-1" + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/.metadata.yaml new file mode 100644 index 0000000..9acdac8 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:08.060922204Z +commitSHA: 1d02d0507b2cfb91991fa88896239f2e3bf65ac6 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/connector.yaml new file mode 100644 index 0000000..00d19fe --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.1/connector.yaml @@ -0,0 +1,574 @@ +version: "1.0" +specification: + name: kafka + summary: A Kafka source and destination plugin for Conduit, written in Go. + description: |- + ## Source + + A Kafka source connector is represented by a single consumer in a Kafka consumer + group. By virtue of that, a source's logical position is the respective + consumer's offset in Kafka. Internally, though, we're not saving the offset as + the position: instead, we're saving the consumer group ID, since that's all + which is needed for Kafka to find the offsets for our consumer. + + A source is associated with a consumer group ID when it is first opened. Set + `groupID` to choose it; otherwise a random one is generated and kept in the + position. + + ### Headers + + Each Kafka header is emitted as a metadata entry `kafka.header.` holding + the header value. Metadata is a string map, so a key that repeats in one + record keeps its last value. + + A header whose key or value is not valid UTF-8 is emitted unchanged, but a + record carrying it cannot be marshalled as an OpenCDC protobuf record: it + fails wherever records cross a protobuf boundary (a standalone connector or + processor, the API), and JSON encoders replace the invalid bytes with U+FFFD. + The source logs `KAFKA_LEGACY_HEADER_NOT_UTF8` at WARN once per header key, + with the key as base64 in `header_key_b64` (the value is never logged), and + reports the count as `kafka_source_legacy_header_not_utf8_total` in the logs + and at teardown. A future version will omit such entries by default, after + the deprecation period + ([#319](https://github.com/ConduitIO/conduit-connector-kafka/issues/319)). + + ## Destination + + The destination connector writes records to Kafka. + + ### Output format + + The output format can be adjusted using configuration options provided by the + connector SDK: + + - `sdk.record.format`: used to choose the format + - `sdk.record.format.options`: used to configure the specifics of the chosen format + + See [this article](https://conduit.io/docs/connectors/output-formats) for more + info on configuring the output format. + + ### Batching + + Batching can also be configured using connector SDK provided options: + + - `sdk.batch.size`: maximum number of records in batch before it gets written to + the destination (defaults to 0, no batching) + - `sdk.batch.delay`: maximum delay before an incomplete batch is written to the + destination (defaults to 0, no limit) + + ## Delivery semantics + + These are the guarantees that the connector's CI checks with the SDK + acceptance suite v2 and a kill -9 test, and the conditions under which they + hold. + + ### Source guarantees + + - **At-least-once.** The source commits a record's offset to its consumer group + only after Conduit acknowledged the record. It never commits an offset it + has not been acked for. + - **Commits are batched**, so a restart after a crash re-delivers records: + offsets are committed after every `commitOffsetsSize` acks (default 1000), + every `commitOffsetsDelay` (default 5s), and when the pipeline stops + gracefully. After a crash (kill -9, power loss) the source re-delivers at + most the records acked since the last commit, fewer than `commitOffsetsSize` + when commits succeed. Setting `commitOffsetsSize` to 1 commits on every ack + and lowers throughput. + - **Ordering:** records of one partition are delivered in offset order, so + records with the same key (which Kafka keeps in one partition) arrive in the + order they were written. Re-delivery after a restart repeats a suffix of each + partition, in order. There is no order between partitions. + - **Resume uses the consumer group**, not the offset in the Conduit position. + If the group's committed offsets are gone (the group was deleted, or the + pipeline was stopped longer than the broker's `offsets.retention.minutes`, + 7 days by default), the source starts where `readFromBeginning` says: from + the beginning of the topic (re-delivery), or from the end, which **skips the + records written while the pipeline was stopped**. Use + `readFromBeginning: true` where skipping is not acceptable. + - **Restart after a crash can pause.** The crashed instance stays a member of + the consumer group until the broker's session timeout expires (45s by + default), and the partitions it held are not consumed until then. + + ### Destination guarantees + + - **At-least-once.** A record is acknowledged to Conduit only after the broker + confirmed it. With `acks: all` (the default) that means the in-sync replicas + have it. `acks: one` acknowledges after the leader alone has it, and a leader + failure can lose acknowledged records; `acks: none` acknowledges without any + confirmation. Only `acks: all` keeps the at-least-once guarantee. + - **Not idempotent.** A record that is replayed after a crash is written again. + The idempotent producer (on with `acks: all`) removes duplicates from its own + retries of a produce request, not from a record sent twice. + - **Ordering:** records with the same key go to the same partition (key hash) + in the order Conduit wrote them, as long as the partition count of the topic + does not change. One exception: if the broker rejects a record after it was + enqueued (for example `MESSAGE_TOO_LARGE`), the later records of the same + batch may already be written. Conduit is told the batch failed from that + record on, and when the records are replayed the rejected record is stored + after them, together with duplicates of them. + - **Writes can wait for an unreachable broker without a bound** when + `deliveryTimeout` is 0 (the default). Cancelling the pipeline ends the wait + and nacks the records; nothing unconfirmed is acknowledged. + - **Large records:** a record must fit in `batchBytes` (default 1000012 bytes) + and in the topic's `max.message.bytes`, after the output format is applied. + The default `opencdc/json` format base64-encodes raw payloads, which adds + about a third, so with the defaults the largest raw payload is about + 730 KiB (roughly 750000 bytes, less the record's key and metadata). Larger + records need a higher `batchBytes` and a higher `max.message.bytes` on the + topic (and on the broker, if its `message.max.bytes` is lower). The + acceptance suite's 1 MiB records run with both set to 4 MiB. + + ### Acceptance suite claims + + The acceptance suite v2 run (revision 2.0.1) claims per-key ordering for the + source, a redelivery bound of 1000 records after a restart, and a + non-idempotent destination. + + - **Redelivery bound.** The suite's default bound is 10. The source's bound, + read from the code, is `commitOffsetsSize`: offsets are committed + synchronously once that many acks have accumulated, so at most + `commitOffsetsSize`-1 acked records are uncommitted when the process dies. + The suite's restart case and the kill -9 test did not exceed it, which + shows it is not violated in those runs; it is not a measured maximum. The + bound of 1000 holds only for `commitOffsetsSize` up to 1000 (the default). + A larger value raises the bound with it, and such a configuration is + outside what the certification covers. + - **Destination per-key ordering is not claimed**, and the suite's ordering + case for the destination is skipped, because of the exception above: a + record the broker rejects after it was enqueued is stored after later + records of its batch when the batch is replayed. + - **Killing a source in-process.** The suite kills a source inside the test + process, which leaves its consumer group membership alive. The test closes + the killed source's client without committing, which releases its + partitions. A real process death sends no LeaveGroup: the broker drops the + member only when its session times out (see "Restart after a crash can + pause" above). The kill -9 test covers a real process death. + + ## Mirroring (Kafka→Kafka) + + To copy a topic faithfully, preserving key, value, headers, timestamp and + partition, set `emitMirrorMetadata: true` on the source and `mirror: true` on + the destination: + + ```yaml + version: 2.2 + pipelines: + - id: mirror + status: running + connectors: + - id: source + plugin: "kafka" + type: source + settings: + servers: "localhost:9092" + topics: "orders" + readFromBeginning: "true" + emitMirrorMetadata: "true" + - id: destination + plugin: "kafka" + type: destination + settings: + servers: "localhost:9092" + topic: "orders.mirror" + mirror: "true" + ``` + + `mirror` writes each record to the destination partition named by the source + partition, so a consumer of the copy sees the same per-partition order as the + source. Rules and caveats: + + - The destination topic must already exist (mirror mode does not auto-create + it) and have at least as many partitions as the source topic; otherwise the + first record fails with `KAFKA_PARTITION_COUNT_MISMATCH`, and a record whose + partition is missing fails with `KAFKA_PARTITION_OUT_OF_RANGE`. A + destination with more partitions is allowed: the extra partitions stay + empty, and key-hash locality is not preserved. + - `mirror` requires `acks: all` and rejects `deliveryTimeout` and a user-set + `sdk.record.format`; it writes the record value bytes verbatim, bypassing + the output format. + - Per-partition order is preserved until the first produce error after a + record is enqueued (for example the broker rejects it); after that the + partition may hold later records before an earlier one, and the connector + logs a WARN with `kafka_destination_post_enqueue_errors_total`. The remedy + is to re-seed the affected partition. + - A mirror pipeline must keep the default error policy (a DLQ with + `window-size: 0` or a nack threshold above 0 turns a configuration error + into silent record loss). + - Timestamp topic-config checks are not yet enforced: a destination topic + with `message.timestamp.type=LogAppendTime`, a short `retention.ms`, or + `message.timestamp.before/after.max.ms` bounds may rewrite, expire or + reject preserved timestamps. The connector preserves the timestamp but + does not yet fail on these topic configurations. + + ## Redpanda + + The kafka connector is the Redpanda profile: the retired labs `redpanda` + connector is replaced by this connector pointed at a Redpanda cluster + (`servers` set to the Redpanda Kafka API address). CI runs the integration, + acceptance-v2 and kill -9 tests against both Apache Kafka and Redpanda. Mirror + mode works on both brokers; Redpanda does not return or enforce the + `message.timestamp.before/after.max.ms` bounds, so only the timestamp type and + retention rules can differ from Apache Kafka. + version: v0.13.0 + author: Meroxa, Inc. + source: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: topics + description: Topics is a comma separated list of Kafka topics to read from. + type: string + default: "" + validations: + - type: required + value: "" + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: commitOffsetsDelay + description: CommitOffsetsDelay defines how often consumed offsets should be committed. + type: duration + default: 5s + validations: [] + - name: commitOffsetsSize + description: CommitOffsetsSize defines the maximum number of consumed offsets to be committed at a time. + type: int + default: "1000" + validations: + - type: greater-than + value: "-1" + - name: emitMirrorMetadata + description: |- + EmitMirrorMetadata, when true, additionally emits lossless mirror + metadata on every record: kafka.partition, kafka.partitions, kafka.offset, + kafka.timestamp, kafka.timestamp.type, kafka.headers, kafka.key.null and + kafka.value.null. It is off by default because metadata is carried to + every destination, and destinations that serialize it write different + bytes for pipelines that never asked for mirroring. Enable it together + with the destination's mirror option to preserve header, partition and + timestamp across a Kafka-to-Kafka copy. + type: bool + default: "" + validations: [] + - name: groupID + description: GroupID defines the consumer group id. + type: string + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: readFromBeginning + description: |- + ReadFromBeginning determines from whence the consumer group should begin + consuming when it finds a partition without a committed offset. If this + options is set to true it will start with the first message in that + partition. + type: bool + default: "" + validations: [] + - name: retryGroupJoinErrors + description: RetryGroupJoinErrors determines whether the connector will continually retry on group join errors. + type: bool + default: "true" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: acks + description: |- + Acks defines the number of acknowledges from partition replicas required + before receiving a response to a produce request. + None = fire and forget, one = wait for the leader to acknowledge the + writes, all = wait for the full ISR to acknowledge the writes. + type: string + default: all + validations: + - type: inclusion + value: none,one,all + - name: allowLossyHeaders + description: |- + AllowLossyHeaders, valid only with mirror, writes headers rebuilt from + kafka.header. entries when kafka.headers is absent (repeated keys + collapsed, order undefined). Without it, mirror mode fails a record whose + kafka.headers is missing. + type: bool + default: "" + validations: [] + - name: batchBytes + description: |- + BatchBytes limits the maximum size of a request in bytes before being + sent to a partition. This mirrors Kafka's max.message.bytes. + type: int + default: "1000012" + validations: [] + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: compression + description: Compression set the compression codec to be used to compress messages. + type: string + default: snappy + validations: + - type: inclusion + value: none,gzip,snappy,lz4,zstd + - name: deliveryTimeout + description: DeliveryTimeout for write operation performed by the Writer. + type: duration + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: mirror + description: |- + Mirror enables Kafka-to-Kafka mirror mode: it writes the record's key, + value, headers, timestamp and partition to Kafka verbatim from the mirror + metadata the source emits when its emitMirrorMetadata option is on. It + requires acks=all, rejects deliveryTimeout > 0 and a user-set + sdk.record.format, and disables topic auto-creation. See the kafka mirror + passthrough design in ConduitIO/conduit. + type: bool + default: "" + validations: [] + - name: produceTimeout + description: |- + ProduceTimeout is a connector-side bound on a Write in mirror mode, + because deliveryTimeout must stay unset there. Minimum 30s, maximum 1h. + type: duration + default: 2m + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: topic + description: |- + Topic is the Kafka topic. It can contain a [Go template](https://pkg.go.dev/text/template) + that will be executed for each record to determine the topic. By default, + the topic is the value of the `opencdc.collection` metadata field. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/.metadata.yaml new file mode 100644 index 0000000..d93851d --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:07.353703056Z +commitSHA: a87f5920206e970b96471ee86401ad5d351459e4 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/connector.yaml new file mode 100644 index 0000000..67c9d1d --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.14.2/connector.yaml @@ -0,0 +1,574 @@ +version: "1.0" +specification: + name: kafka + summary: A Kafka source and destination plugin for Conduit, written in Go. + description: |- + ## Source + + A Kafka source connector is represented by a single consumer in a Kafka consumer + group. By virtue of that, a source's logical position is the respective + consumer's offset in Kafka. Internally, though, we're not saving the offset as + the position: instead, we're saving the consumer group ID, since that's all + which is needed for Kafka to find the offsets for our consumer. + + A source is associated with a consumer group ID when it is first opened. Set + `groupID` to choose it; otherwise a random one is generated and kept in the + position. + + ### Headers + + Each Kafka header is emitted as a metadata entry `kafka.header.` holding + the header value. Metadata is a string map, so a key that repeats in one + record keeps its last value. + + A header whose key or value is not valid UTF-8 is emitted unchanged, but a + record carrying it cannot be marshalled as an OpenCDC protobuf record: it + fails wherever records cross a protobuf boundary (a standalone connector or + processor, the API), and JSON encoders replace the invalid bytes with U+FFFD. + The source logs `KAFKA_LEGACY_HEADER_NOT_UTF8` at WARN once per header key, + with the key as base64 in `header_key_b64` (the value is never logged), and + reports the count as `kafka_source_legacy_header_not_utf8_total` in the logs + and at teardown. A future version will omit such entries by default, after + the deprecation period + ([#319](https://github.com/ConduitIO/conduit-connector-kafka/issues/319)). + + ## Destination + + The destination connector writes records to Kafka. + + ### Output format + + The output format can be adjusted using configuration options provided by the + connector SDK: + + - `sdk.record.format`: used to choose the format + - `sdk.record.format.options`: used to configure the specifics of the chosen format + + See [this article](https://conduit.io/docs/connectors/output-formats) for more + info on configuring the output format. + + ### Batching + + Batching can also be configured using connector SDK provided options: + + - `sdk.batch.size`: maximum number of records in batch before it gets written to + the destination (defaults to 0, no batching) + - `sdk.batch.delay`: maximum delay before an incomplete batch is written to the + destination (defaults to 0, no limit) + + ## Delivery semantics + + These are the guarantees that the connector's CI checks with the SDK + acceptance suite v2 and a kill -9 test, and the conditions under which they + hold. + + ### Source guarantees + + - **At-least-once.** The source commits a record's offset to its consumer group + only after Conduit acknowledged the record. It never commits an offset it + has not been acked for. + - **Commits are batched**, so a restart after a crash re-delivers records: + offsets are committed after every `commitOffsetsSize` acks (default 1000), + every `commitOffsetsDelay` (default 5s), and when the pipeline stops + gracefully. After a crash (kill -9, power loss) the source re-delivers at + most the records acked since the last commit, fewer than `commitOffsetsSize` + when commits succeed. Setting `commitOffsetsSize` to 1 commits on every ack + and lowers throughput. + - **Ordering:** records of one partition are delivered in offset order, so + records with the same key (which Kafka keeps in one partition) arrive in the + order they were written. Re-delivery after a restart repeats a suffix of each + partition, in order. There is no order between partitions. + - **Resume uses the consumer group**, not the offset in the Conduit position. + If the group's committed offsets are gone (the group was deleted, or the + pipeline was stopped longer than the broker's `offsets.retention.minutes`, + 7 days by default), the source starts where `readFromBeginning` says: from + the beginning of the topic (re-delivery), or from the end, which **skips the + records written while the pipeline was stopped**. Use + `readFromBeginning: true` where skipping is not acceptable. + - **Restart after a crash can pause.** The crashed instance stays a member of + the consumer group until the broker's session timeout expires (45s by + default), and the partitions it held are not consumed until then. + + ### Destination guarantees + + - **At-least-once.** A record is acknowledged to Conduit only after the broker + confirmed it. With `acks: all` (the default) that means the in-sync replicas + have it. `acks: one` acknowledges after the leader alone has it, and a leader + failure can lose acknowledged records; `acks: none` acknowledges without any + confirmation. Only `acks: all` keeps the at-least-once guarantee. + - **Not idempotent.** A record that is replayed after a crash is written again. + The idempotent producer (on with `acks: all`) removes duplicates from its own + retries of a produce request, not from a record sent twice. + - **Ordering:** records with the same key go to the same partition (key hash) + in the order Conduit wrote them, as long as the partition count of the topic + does not change. One exception: if the broker rejects a record after it was + enqueued (for example `MESSAGE_TOO_LARGE`), the later records of the same + batch may already be written. Conduit is told the batch failed from that + record on, and when the records are replayed the rejected record is stored + after them, together with duplicates of them. + - **Writes can wait for an unreachable broker without a bound** when + `deliveryTimeout` is 0 (the default). Cancelling the pipeline ends the wait + and nacks the records; nothing unconfirmed is acknowledged. + - **Large records:** a record must fit in `batchBytes` (default 1000012 bytes) + and in the topic's `max.message.bytes`, after the output format is applied. + The default `opencdc/json` format base64-encodes raw payloads, which adds + about a third, so with the defaults the largest raw payload is about + 730 KiB (roughly 750000 bytes, less the record's key and metadata). Larger + records need a higher `batchBytes` and a higher `max.message.bytes` on the + topic (and on the broker, if its `message.max.bytes` is lower). The + acceptance suite's 1 MiB records run with both set to 4 MiB. + + ### Acceptance suite claims + + The acceptance suite v2 run (revision 2.0.1) claims per-key ordering for the + source, a redelivery bound of 1000 records after a restart, and a + non-idempotent destination. + + - **Redelivery bound.** The suite's default bound is 10. The source's bound, + read from the code, is `commitOffsetsSize`: offsets are committed + synchronously once that many acks have accumulated, so at most + `commitOffsetsSize`-1 acked records are uncommitted when the process dies. + The suite's restart case and the kill -9 test did not exceed it, which + shows it is not violated in those runs; it is not a measured maximum. The + bound of 1000 holds only for `commitOffsetsSize` up to 1000 (the default). + A larger value raises the bound with it, and such a configuration is + outside what the certification covers. + - **Destination per-key ordering is not claimed**, and the suite's ordering + case for the destination is skipped, because of the exception above: a + record the broker rejects after it was enqueued is stored after later + records of its batch when the batch is replayed. + - **Killing a source in-process.** The suite kills a source inside the test + process, which leaves its consumer group membership alive. The test closes + the killed source's client without committing, which releases its + partitions. A real process death sends no LeaveGroup: the broker drops the + member only when its session times out (see "Restart after a crash can + pause" above). The kill -9 test covers a real process death. + + ## Mirroring (Kafka→Kafka) + + To copy a topic faithfully, preserving key, value, headers, timestamp and + partition, set `emitMirrorMetadata: true` on the source and `mirror: true` on + the destination: + + ```yaml + version: 2.2 + pipelines: + - id: mirror + status: running + connectors: + - id: source + plugin: "kafka" + type: source + settings: + servers: "localhost:9092" + topics: "orders" + readFromBeginning: "true" + emitMirrorMetadata: "true" + - id: destination + plugin: "kafka" + type: destination + settings: + servers: "localhost:9092" + topic: "orders.mirror" + mirror: "true" + ``` + + `mirror` writes each record to the destination partition named by the source + partition, so a consumer of the copy sees the same per-partition order as the + source. Rules and caveats: + + - The destination topic must already exist (mirror mode does not auto-create + it) and have at least as many partitions as the source topic; otherwise the + first record fails with `KAFKA_PARTITION_COUNT_MISMATCH`, and a record whose + partition is missing fails with `KAFKA_PARTITION_OUT_OF_RANGE`. A + destination with more partitions is allowed: the extra partitions stay + empty, and key-hash locality is not preserved. + - `mirror` requires `acks: all` and rejects `deliveryTimeout` and a user-set + `sdk.record.format`; it writes the record value bytes verbatim, bypassing + the output format. + - Per-partition order is preserved until the first produce error after a + record is enqueued (for example the broker rejects it); after that the + partition may hold later records before an earlier one, and the connector + logs a WARN with `kafka_destination_post_enqueue_errors_total`. The remedy + is to re-seed the affected partition. + - A mirror pipeline must keep the default error policy (a DLQ with + `window-size: 0` or a nack threshold above 0 turns a configuration error + into silent record loss). + - Timestamp topic-config checks are not yet enforced: a destination topic + with `message.timestamp.type=LogAppendTime`, a short `retention.ms`, or + `message.timestamp.before/after.max.ms` bounds may rewrite, expire or + reject preserved timestamps. The connector preserves the timestamp but + does not yet fail on these topic configurations. + + ## Redpanda + + The kafka connector is the Redpanda profile: the retired labs `redpanda` + connector is replaced by this connector pointed at a Redpanda cluster + (`servers` set to the Redpanda Kafka API address). CI runs the integration, + acceptance-v2 and kill -9 tests against both Apache Kafka and Redpanda. Mirror + mode works on both brokers; Redpanda does not return or enforce the + `message.timestamp.before/after.max.ms` bounds, so only the timestamp type and + retention rules can differ from Apache Kafka. + version: v0.14.2 + author: Meroxa, Inc. + source: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: topics + description: Topics is a comma separated list of Kafka topics to read from. + type: string + default: "" + validations: + - type: required + value: "" + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: commitOffsetsDelay + description: CommitOffsetsDelay defines how often consumed offsets should be committed. + type: duration + default: 5s + validations: [] + - name: commitOffsetsSize + description: CommitOffsetsSize defines the maximum number of consumed offsets to be committed at a time. + type: int + default: "1000" + validations: + - type: greater-than + value: "-1" + - name: emitMirrorMetadata + description: |- + EmitMirrorMetadata, when true, additionally emits lossless mirror + metadata on every record: kafka.partition, kafka.partitions, kafka.offset, + kafka.timestamp, kafka.timestamp.type, kafka.headers, kafka.key.null and + kafka.value.null. It is off by default because metadata is carried to + every destination, and destinations that serialize it write different + bytes for pipelines that never asked for mirroring. Enable it together + with the destination's mirror option to preserve header, partition and + timestamp across a Kafka-to-Kafka copy. + type: bool + default: "" + validations: [] + - name: groupID + description: GroupID defines the consumer group id. + type: string + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: readFromBeginning + description: |- + ReadFromBeginning determines from whence the consumer group should begin + consuming when it finds a partition without a committed offset. If this + options is set to true it will start with the first message in that + partition. + type: bool + default: "" + validations: [] + - name: retryGroupJoinErrors + description: RetryGroupJoinErrors determines whether the connector will continually retry on group join errors. + type: bool + default: "true" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: acks + description: |- + Acks defines the number of acknowledges from partition replicas required + before receiving a response to a produce request. + None = fire and forget, one = wait for the leader to acknowledge the + writes, all = wait for the full ISR to acknowledge the writes. + type: string + default: all + validations: + - type: inclusion + value: none,one,all + - name: allowLossyHeaders + description: |- + AllowLossyHeaders, valid only with mirror, writes headers rebuilt from + kafka.header. entries when kafka.headers is absent (repeated keys + collapsed, order undefined). Without it, mirror mode fails a record whose + kafka.headers is missing. + type: bool + default: "" + validations: [] + - name: batchBytes + description: |- + BatchBytes limits the maximum size of a request in bytes before being + sent to a partition. This mirrors Kafka's max.message.bytes. + type: int + default: "1000012" + validations: [] + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: compression + description: Compression set the compression codec to be used to compress messages. + type: string + default: snappy + validations: + - type: inclusion + value: none,gzip,snappy,lz4,zstd + - name: deliveryTimeout + description: DeliveryTimeout for write operation performed by the Writer. + type: duration + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: mirror + description: |- + Mirror enables Kafka-to-Kafka mirror mode: it writes the record's key, + value, headers, timestamp and partition to Kafka verbatim from the mirror + metadata the source emits when its emitMirrorMetadata option is on. It + requires acks=all, rejects deliveryTimeout > 0 and a user-set + sdk.record.format, and disables topic auto-creation. See the kafka mirror + passthrough design in ConduitIO/conduit. + type: bool + default: "" + validations: [] + - name: produceTimeout + description: |- + ProduceTimeout is a connector-side bound on a Write in mirror mode, + because deliveryTimeout must stay unset there. Minimum 30s, maximum 1h. + type: duration + default: 2m + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: topic + description: |- + Topic is the Kafka topic. It can contain a [Go template](https://pkg.go.dev/text/template) + that will be executed for each record to determine the topic. By default, + the topic is the value of the `opencdc.collection` metadata field. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/.metadata.yaml new file mode 100644 index 0000000..6b13daa --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:06.250409868Z +commitSHA: e52f836fb198e4c560f6bc499374c853c61d5dfe diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/connector.yaml new file mode 100644 index 0000000..1dd8e8e --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.15.0/connector.yaml @@ -0,0 +1,596 @@ +version: "1.0" +specification: + name: kafka + summary: A Kafka source and destination plugin for Conduit, written in Go. + description: |- + ## Source + + A Kafka source connector is represented by a single consumer in a Kafka consumer + group. By virtue of that, a source's logical position is the respective + consumer's offset in Kafka. Internally, though, we're not saving the offset as + the position: instead, we're saving the consumer group ID, since that's all + which is needed for Kafka to find the offsets for our consumer. + + A source is associated with a consumer group ID when it is first opened. Set + `groupID` to choose it; otherwise a random one is generated and kept in the + position. + + ### Headers + + Each Kafka header is emitted as a metadata entry `kafka.header.` holding + the header value. Metadata is a string map, so a key that repeats in one + record keeps its last value. + + A header whose key or value is not valid UTF-8 is emitted unchanged, but a + record carrying it cannot be marshalled as an OpenCDC protobuf record: it + fails wherever records cross a protobuf boundary (a standalone connector or + processor, the API), and JSON encoders replace the invalid bytes with U+FFFD. + The source logs `KAFKA_LEGACY_HEADER_NOT_UTF8` at WARN once per header key, + with the key as base64 in `header_key_b64` (the value is never logged), and + reports the count as `kafka_source_legacy_header_not_utf8_total` in the logs + and at teardown. A future version will omit such entries by default, after + the deprecation period + ([#319](https://github.com/ConduitIO/conduit-connector-kafka/issues/319)). + + ## Destination + + The destination connector writes records to Kafka. + + ### Output format + + The output format can be adjusted using configuration options provided by the + connector SDK: + + - `sdk.record.format`: used to choose the format + - `sdk.record.format.options`: used to configure the specifics of the chosen format + + See [this article](https://conduit.io/docs/connectors/output-formats) for more + info on configuring the output format. + + ### Batching + + Batching can also be configured using connector SDK provided options: + + - `sdk.batch.size`: maximum number of records in batch before it gets written to + the destination (defaults to 0, no batching) + - `sdk.batch.delay`: maximum delay before an incomplete batch is written to the + destination (defaults to 0, no limit) + + ## Delivery semantics + + These are the guarantees that the connector's CI checks with the SDK + acceptance suite v2 and a kill -9 test, and the conditions under which they + hold. + + ### Source guarantees + + - **At-least-once.** The source commits a record's offset to its consumer group + only after Conduit acknowledged the record. It never commits an offset it + has not been acked for. + - **Commits are batched**, so a restart after a crash re-delivers records: + offsets are committed after every `commitOffsetsSize` acks (default 1000), + every `commitOffsetsDelay` (default 5s), and when the pipeline stops + gracefully. After a crash (kill -9, power loss) the source re-delivers at + most the records acked since the last commit, fewer than `commitOffsetsSize` + when commits succeed. Setting `commitOffsetsSize` to 1 commits on every ack + and lowers throughput. + - **Ordering:** records of one partition are delivered in offset order, so + records with the same key (which Kafka keeps in one partition) arrive in the + order they were written. Re-delivery after a restart repeats a suffix of each + partition, in order. There is no order between partitions. + - **Resume uses the consumer group**, not the offset in the Conduit position. + If the group's committed offsets are gone (the group was deleted, or the + pipeline was stopped longer than the broker's `offsets.retention.minutes`, + 7 days by default), the source starts where `readFromBeginning` says: from + the beginning of the topic (re-delivery), or from the end, which **skips the + records written while the pipeline was stopped**. Use + `readFromBeginning: true` where skipping is not acceptable. + - **Restart after a crash can pause.** The crashed instance stays a member of + the consumer group until the broker's session timeout expires (45s by + default), and the partitions it held are not consumed until then. + + ### Destination guarantees + + - **At-least-once.** A record is acknowledged to Conduit only after the broker + confirmed it. With `acks: all` (the default) that means the in-sync replicas + have it. `acks: one` acknowledges after the leader alone has it, and a leader + failure can lose acknowledged records; `acks: none` acknowledges without any + confirmation. Only `acks: all` keeps the at-least-once guarantee. + - **Not idempotent.** A record that is replayed after a crash is written again. + The idempotent producer (on with `acks: all`) removes duplicates from its own + retries of a produce request, not from a record sent twice. + - **Ordering:** records with the same key go to the same partition (key hash) + in the order Conduit wrote them, as long as the partition count of the topic + does not change. One exception: if the broker rejects a record after it was + enqueued (for example `MESSAGE_TOO_LARGE`), the later records of the same + batch may already be written. Conduit is told the batch failed from that + record on, and when the records are replayed the rejected record is stored + after them, together with duplicates of them. + - **Writes can wait for an unreachable broker without a bound** when + `deliveryTimeout` is 0 (the default). Cancelling the pipeline ends the wait + and nacks the records; nothing unconfirmed is acknowledged. + - **Large records:** a record must fit in `batchBytes` (default 1000012 bytes) + and in the topic's `max.message.bytes`, after the output format is applied. + The default `opencdc/json` format base64-encodes raw payloads, which adds + about a third, so with the defaults the largest raw payload is about + 730 KiB (roughly 750000 bytes, less the record's key and metadata). Larger + records need a higher `batchBytes` and a higher `max.message.bytes` on the + topic (and on the broker, if its `message.max.bytes` is lower). The + acceptance suite's 1 MiB records run with both set to 4 MiB. + + ### Acceptance suite claims + + The acceptance suite v2 run (revision 2.0.1) claims per-key ordering for the + source, a redelivery bound of 1000 records after a restart, and a + non-idempotent destination. + + - **Redelivery bound.** The suite's default bound is 10. The source's bound, + read from the code, is `commitOffsetsSize`: offsets are committed + synchronously once that many acks have accumulated, so at most + `commitOffsetsSize`-1 acked records are uncommitted when the process dies. + The suite's restart case and the kill -9 test did not exceed it, which + shows it is not violated in those runs; it is not a measured maximum. The + bound of 1000 holds only for `commitOffsetsSize` up to 1000 (the default). + A larger value raises the bound with it, and such a configuration is + outside what the certification covers. + - **Destination per-key ordering is not claimed**, and the suite's ordering + case for the destination is skipped, because of the exception above: a + record the broker rejects after it was enqueued is stored after later + records of its batch when the batch is replayed. + - **Killing a source in-process.** The suite kills a source inside the test + process, which leaves its consumer group membership alive. The test closes + the killed source's client without committing, which releases its + partitions. A real process death sends no LeaveGroup: the broker drops the + member only when its session times out (see "Restart after a crash can + pause" above). The kill -9 test covers a real process death. + + ## Mirroring (Kafka→Kafka) + + To copy a topic faithfully, preserving key, value, headers, timestamp and + partition, set `emitMirrorMetadata: true` on the source and `mirror: true` on + the destination: + + ```yaml + version: 2.2 + pipelines: + - id: mirror + status: running + connectors: + - id: source + plugin: "kafka" + type: source + settings: + servers: "localhost:9092" + topics: "orders" + readFromBeginning: "true" + emitMirrorMetadata: "true" + - id: destination + plugin: "kafka" + type: destination + settings: + servers: "localhost:9092" + topic: "orders.mirror" + mirror: "true" + ``` + + `mirror` writes each record to the destination partition named by the source + partition, so a consumer of the copy sees the same per-partition order as the + source. Rules and caveats: + + - The destination topic must already exist (mirror mode does not auto-create + it) and have at least as many partitions as the source topic; otherwise the + first record fails with `KAFKA_PARTITION_COUNT_MISMATCH`, and a record whose + partition is missing fails with `KAFKA_PARTITION_OUT_OF_RANGE`. A + destination with more partitions is allowed: the extra partitions stay + empty, and key-hash locality is not preserved. + - `mirror` requires `acks: all` and rejects `deliveryTimeout` and a user-set + `sdk.record.format`; it writes the record value bytes verbatim, bypassing + the output format. + - Per-partition order is preserved until the first produce error after a + record is enqueued (for example the broker rejects it); after that the + partition may hold later records before an earlier one, and the connector + logs a WARN with `kafka_destination_post_enqueue_errors_total`. The remedy + is to re-seed the affected partition. + - A mirror pipeline must keep the default error policy (a DLQ with + `window-size: 0` or a nack threshold above 0 turns a configuration error + into silent record loss). + - Timestamp topic-config checks are not yet enforced: a destination topic + with `message.timestamp.type=LogAppendTime`, a short `retention.ms`, or + `message.timestamp.before/after.max.ms` bounds may rewrite, expire or + reject preserved timestamps. The connector preserves the timestamp but + does not yet fail on these topic configurations. + + ## Redpanda + + The kafka connector is the Redpanda profile: the retired labs `redpanda` + connector is replaced by this connector pointed at a Redpanda cluster + (`servers` set to the Redpanda Kafka API address). CI runs the integration, + acceptance-v2 and kill -9 tests against both Apache Kafka and Redpanda. Mirror + mode works on both brokers; Redpanda does not return or enforce the + `message.timestamp.before/after.max.ms` bounds, so only the timestamp type and + retention rules can differ from Apache Kafka. + version: v0.15.0 + author: Meroxa, Inc. + source: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: topics + description: Topics is a comma separated list of Kafka topics to read from. + type: string + default: "" + validations: + - type: required + value: "" + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: commitOffsetsDelay + description: CommitOffsetsDelay defines how often consumed offsets should be committed. + type: duration + default: 5s + validations: [] + - name: commitOffsetsSize + description: CommitOffsetsSize defines the maximum number of consumed offsets to be committed at a time. + type: int + default: "1000" + validations: + - type: greater-than + value: "-1" + - name: emitMirrorMetadata + description: |- + EmitMirrorMetadata, when true, additionally emits lossless mirror + metadata on every record: kafka.partition, kafka.partitions, kafka.offset, + kafka.timestamp, kafka.timestamp.type, kafka.headers, kafka.key.null and + kafka.value.null. It is off by default because metadata is carried to + every destination, and destinations that serialize it write different + bytes for pipelines that never asked for mirroring. Enable it together + with the destination's mirror option to preserve header, partition and + timestamp across a Kafka-to-Kafka copy. + type: bool + default: "" + validations: [] + - name: groupID + description: GroupID defines the consumer group id. + type: string + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: readFromBeginning + description: |- + ReadFromBeginning determines from whence the consumer group should begin + consuming when it finds a partition without a committed offset. If this + options is set to true it will start with the first message in that + partition. + type: bool + default: "" + validations: [] + - name: retryGroupJoinErrors + description: RetryGroupJoinErrors determines whether the connector will continually retry on group join errors. + type: bool + default: "true" + validations: [] + - name: saslAllowPlaintext + description: |- + AllowPlaintext lets SASL authenticate over a connection that is not + protected by TLS (tls.enabled is false). This exposes the SASL + credentials, and with PLAIN the password itself, to anyone who can + observe the network path to the brokers. By default the connector + refuses to start in that configuration. Only set this for a trusted + network, such as a local development cluster. + type: bool + default: "" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: acks + description: |- + Acks defines the number of acknowledges from partition replicas required + before receiving a response to a produce request. + None = fire and forget, one = wait for the leader to acknowledge the + writes, all = wait for the full ISR to acknowledge the writes. + type: string + default: all + validations: + - type: inclusion + value: none,one,all + - name: allowLossyHeaders + description: |- + AllowLossyHeaders, valid only with mirror, writes headers rebuilt from + kafka.header. entries when kafka.headers is absent (repeated keys + collapsed, order undefined). Without it, mirror mode fails a record whose + kafka.headers is missing. + type: bool + default: "" + validations: [] + - name: batchBytes + description: |- + BatchBytes limits the maximum size of a request in bytes before being + sent to a partition. This mirrors Kafka's max.message.bytes. + type: int + default: "1000012" + validations: [] + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: compression + description: Compression set the compression codec to be used to compress messages. + type: string + default: snappy + validations: + - type: inclusion + value: none,gzip,snappy,lz4,zstd + - name: deliveryTimeout + description: DeliveryTimeout for write operation performed by the Writer. + type: duration + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: mirror + description: |- + Mirror enables Kafka-to-Kafka mirror mode: it writes the record's key, + value, headers, timestamp and partition to Kafka verbatim from the mirror + metadata the source emits when its emitMirrorMetadata option is on. It + requires acks=all, rejects deliveryTimeout > 0 and a user-set + sdk.record.format, and disables topic auto-creation. See the kafka mirror + passthrough design in ConduitIO/conduit. + type: bool + default: "" + validations: [] + - name: produceTimeout + description: |- + ProduceTimeout is a connector-side bound on a Write in mirror mode, + because deliveryTimeout must stay unset there. Minimum 30s, maximum 1h. + type: duration + default: 2m + validations: [] + - name: saslAllowPlaintext + description: |- + AllowPlaintext lets SASL authenticate over a connection that is not + protected by TLS (tls.enabled is false). This exposes the SASL + credentials, and with PLAIN the password itself, to anyone who can + observe the network path to the brokers. By default the connector + refuses to start in that configuration. Only set this for a trusted + network, such as a local development cluster. + type: bool + default: "" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: topic + description: |- + Topic is the Kafka topic. It can contain a [Go template](https://pkg.go.dev/text/template) + that will be executed for each record to determine the topic. By default, + the topic is the value of the `opencdc.collection` metadata field. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/.metadata.yaml new file mode 100644 index 0000000..3b565bd --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:05.300221617Z +commitSHA: 650fc98bb4a7f807e3def93822af124826beb7d8 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/connector.yaml new file mode 100644 index 0000000..d1df013 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-kafka@v0.16.0/connector.yaml @@ -0,0 +1,605 @@ +version: "1.0" +specification: + name: kafka + summary: A Kafka source and destination plugin for Conduit, written in Go. + description: |- + ## Source + + A Kafka source connector is represented by a single consumer in a Kafka consumer + group. By virtue of that, a source's logical position is the respective + consumer's offset in Kafka. Internally, though, we're not saving the offset as + the position: instead, we're saving the consumer group ID, since that's all + which is needed for Kafka to find the offsets for our consumer. + + A source is associated with a consumer group ID when it is first opened. Set + `groupID` to choose it; otherwise a random one is generated and kept in the + position. + + ### Headers + + Each Kafka header is emitted as a metadata entry `kafka.header.` holding + the header value. Metadata is a string map, so a key that repeats in one + record keeps its last value. + + A header whose key or value is not valid UTF-8 is emitted unchanged, but a + record carrying it cannot be marshalled as an OpenCDC protobuf record: it + fails wherever records cross a protobuf boundary (a standalone connector or + processor, the API), and JSON encoders replace the invalid bytes with U+FFFD. + The source logs `KAFKA_LEGACY_HEADER_NOT_UTF8` at WARN once per header key, + with the key as base64 in `header_key_b64` (the value is never logged), and + reports the count as `kafka_source_legacy_header_not_utf8_total` in the logs + and at teardown. A future version will omit such entries by default, after + the deprecation period + ([#319](https://github.com/ConduitIO/conduit-connector-kafka/issues/319)). + + ## Destination + + The destination connector writes records to Kafka. + + ### Output format + + The output format can be adjusted using configuration options provided by the + connector SDK: + + - `sdk.record.format`: used to choose the format + - `sdk.record.format.options`: used to configure the specifics of the chosen format + + See [this article](https://conduit.io/docs/connectors/output-formats) for more + info on configuring the output format. + + ### Batching + + Batching can also be configured using connector SDK provided options: + + - `sdk.batch.size`: maximum number of records in batch before it gets written to + the destination (defaults to 0, no batching) + - `sdk.batch.delay`: maximum delay before an incomplete batch is written to the + destination (defaults to 0, no limit) + + ## Delivery semantics + + These are the guarantees that the connector's CI checks with the SDK + acceptance suite v2 and a kill -9 test, and the conditions under which they + hold. + + ### Source guarantees + + - **At-least-once.** The source commits a record's offset to its consumer group + only after Conduit acknowledged the record. It never commits an offset it + has not been acked for. + - **Commits are batched**, so a restart after a crash re-delivers records: + offsets are committed after every `commitOffsetsSize` acks (default 1000), + every `commitOffsetsDelay` (default 5s), and when the pipeline stops + gracefully. After a crash (kill -9, power loss) the source re-delivers at + most the records acked since the last commit, fewer than `commitOffsetsSize` + when commits succeed. Setting `commitOffsetsSize` to 1 commits on every ack + and lowers throughput. + - **Ordering:** records of one partition are delivered in offset order, so + records with the same key (which Kafka keeps in one partition) arrive in the + order they were written. Re-delivery after a restart repeats a suffix of each + partition, in order. There is no order between partitions. + - **Resume uses the consumer group**, not the offset in the Conduit position. + If the group's committed offsets are gone (the group was deleted, or the + pipeline was stopped longer than the broker's `offsets.retention.minutes`, + 7 days by default), the source starts where `readFromBeginning` says: from + the beginning of the topic (re-delivery), or from the end, which **skips the + records written while the pipeline was stopped**. Use + `readFromBeginning: true` where skipping is not acceptable. + - **Restart after a crash can pause.** The crashed instance stays a member of + the consumer group until the broker's session timeout expires (45s by + default), and the partitions it held are not consumed until then. + + ### Destination guarantees + + - **At-least-once.** A record is acknowledged to Conduit only after the broker + confirmed it. With `acks: all` (the default) that means the in-sync replicas + have it. `acks: one` acknowledges after the leader alone has it, and a leader + failure can lose acknowledged records; `acks: none` acknowledges without any + confirmation. Only `acks: all` keeps the at-least-once guarantee. + - **Not idempotent.** A record that is replayed after a crash is written again. + The idempotent producer (on with `acks: all`) removes duplicates from its own + retries of a produce request, not from a record sent twice. + - **Ordering:** records with the same key go to the same partition (key hash) + in the order Conduit wrote them, as long as the partition count of the topic + does not change. One exception: if the broker rejects a record after it was + enqueued (for example `MESSAGE_TOO_LARGE`), the later records of the same + batch may already be written. Conduit is told the batch failed from that + record on, and when the records are replayed the rejected record is stored + after them, together with duplicates of them. + - **Writes can wait for an unreachable broker without a bound** when + `deliveryTimeout` is 0 (the default). Cancelling the pipeline ends the wait + and nacks the records; nothing unconfirmed is acknowledged. + - **Large records:** a record must fit in `batchBytes` (default 1000012 bytes) + and in the topic's `max.message.bytes`, after the output format is applied. + The default `opencdc/json` format base64-encodes raw payloads, which adds + about a third, so with the defaults the largest raw payload is about + 730 KiB (roughly 750000 bytes, less the record's key and metadata). Larger + records need a higher `batchBytes` and a higher `max.message.bytes` on the + topic (and on the broker, if its `message.max.bytes` is lower). The + acceptance suite's 1 MiB records run with both set to 4 MiB. + + ### Acceptance suite claims + + The acceptance suite v2 run (revision 2.0.1) claims per-key ordering for the + source, a redelivery bound of 1000 records after a restart, and a + non-idempotent destination. + + - **Redelivery bound.** The suite's default bound is 10. The source's bound, + read from the code, is `commitOffsetsSize`: offsets are committed + synchronously once that many acks have accumulated, so at most + `commitOffsetsSize`-1 acked records are uncommitted when the process dies. + The suite's restart case and the kill -9 test did not exceed it, which + shows it is not violated in those runs; it is not a measured maximum. The + bound of 1000 holds only for `commitOffsetsSize` up to 1000 (the default). + A larger value raises the bound with it, and such a configuration is + outside what the certification covers. + - **Destination per-key ordering is not claimed**, and the suite's ordering + case for the destination is skipped, because of the exception above: a + record the broker rejects after it was enqueued is stored after later + records of its batch when the batch is replayed. + - **Killing a source in-process.** The suite kills a source inside the test + process, which leaves its consumer group membership alive. The test closes + the killed source's client without committing, which releases its + partitions. A real process death sends no LeaveGroup: the broker drops the + member only when its session times out (see "Restart after a crash can + pause" above). The kill -9 test covers a real process death. + + ## Mirroring (Kafka→Kafka) + + To copy a topic faithfully, preserving key, value, headers, timestamp and + partition, set `emitMirrorMetadata: true` on the source and `mirror: true` on + the destination: + + ```yaml + version: 2.2 + pipelines: + - id: mirror + status: running + connectors: + - id: source + plugin: "kafka" + type: source + settings: + servers: "localhost:9092" + topics: "orders" + readFromBeginning: "true" + emitMirrorMetadata: "true" + - id: destination + plugin: "kafka" + type: destination + settings: + servers: "localhost:9092" + topic: "orders.mirror" + mirror: "true" + ``` + + `mirror` writes each record to the destination partition named by the source + partition, so a consumer of the copy sees the same per-partition order as the + source. Rules and caveats: + + - The destination topic must already exist (mirror mode does not auto-create + it) and have at least as many partitions as the source topic; otherwise the + first record fails with `KAFKA_PARTITION_COUNT_MISMATCH`, and a record whose + partition is missing fails with `KAFKA_PARTITION_OUT_OF_RANGE`. A + destination with more partitions is allowed: the extra partitions stay + empty, and key-hash locality is not preserved. + - `mirror` requires `acks: all` and rejects `deliveryTimeout` and a user-set + `sdk.record.format`; it writes the record value bytes verbatim, bypassing + the output format. + - Per-partition order is preserved until the first produce error after a + record is enqueued (for example the broker rejects it); after that the + partition may hold later records before an earlier one, and the connector + logs a WARN with `kafka_destination_post_enqueue_errors_total`. The remedy + is to re-seed the affected partition. + - A mirror pipeline must keep the default error policy (a DLQ with + `window-size: 0` or a nack threshold above 0 turns a configuration error + into silent record loss). + - Timestamp topic-config checks are not yet enforced: a destination topic + with `message.timestamp.type=LogAppendTime`, a short `retention.ms`, or + `message.timestamp.before/after.max.ms` bounds may rewrite, expire or + reject preserved timestamps. The connector preserves the timestamp but + does not yet fail on these topic configurations. + + ## Redpanda + + The kafka connector is the Redpanda profile: the retired labs `redpanda` + connector is replaced by this connector pointed at a Redpanda cluster + (`servers` set to the Redpanda Kafka API address). CI runs the integration, + acceptance-v2 and kill -9 tests against both Apache Kafka and Redpanda. Mirror + mode works on both brokers; Redpanda does not return or enforce the + `message.timestamp.before/after.max.ms` bounds, so only the timestamp type and + retention rules can differ from Apache Kafka. + + ## Host-supplied dialer + + If the host that runs the connector puts a dialer on the context + (`dialer.WithDialContext` from `conduit-commons`), the connector opens every + broker connection through it: the seed brokers, brokers discovered from + metadata, reconnects, and the admin and metadata requests. When TLS is + enabled, the handshake runs over the connection the host dialer returns. + Without a host dialer the connector dials directly, as before. + version: v0.16.0 + author: Meroxa, Inc. + source: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: topics + description: Topics is a comma separated list of Kafka topics to read from. + type: string + default: "" + validations: + - type: required + value: "" + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: commitOffsetsDelay + description: CommitOffsetsDelay defines how often consumed offsets should be committed. + type: duration + default: 5s + validations: [] + - name: commitOffsetsSize + description: CommitOffsetsSize defines the maximum number of consumed offsets to be committed at a time. + type: int + default: "1000" + validations: + - type: greater-than + value: "-1" + - name: emitMirrorMetadata + description: |- + EmitMirrorMetadata, when true, additionally emits lossless mirror + metadata on every record: kafka.partition, kafka.partitions, kafka.offset, + kafka.timestamp, kafka.timestamp.type, kafka.headers, kafka.key.null and + kafka.value.null. It is off by default because metadata is carried to + every destination, and destinations that serialize it write different + bytes for pipelines that never asked for mirroring. Enable it together + with the destination's mirror option to preserve header, partition and + timestamp across a Kafka-to-Kafka copy. + type: bool + default: "" + validations: [] + - name: groupID + description: GroupID defines the consumer group id. + type: string + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: readFromBeginning + description: |- + ReadFromBeginning determines from whence the consumer group should begin + consuming when it finds a partition without a committed offset. If this + options is set to true it will start with the first message in that + partition. + type: bool + default: "" + validations: [] + - name: retryGroupJoinErrors + description: RetryGroupJoinErrors determines whether the connector will continually retry on group join errors. + type: bool + default: "true" + validations: [] + - name: saslAllowPlaintext + description: |- + AllowPlaintext lets SASL authenticate over a connection that is not + protected by TLS (tls.enabled is false). This exposes the SASL + credentials, and with PLAIN the password itself, to anyone who can + observe the network path to the brokers. By default the connector + refuses to start in that configuration. Only set this for a trusted + network, such as a local development cluster. + type: bool + default: "" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: servers + description: |- + Servers is a list of Kafka bootstrap servers, which will be used to + discover all the servers in a cluster. + type: string + default: "" + validations: + - type: required + value: "" + - name: acks + description: |- + Acks defines the number of acknowledges from partition replicas required + before receiving a response to a produce request. + None = fire and forget, one = wait for the leader to acknowledge the + writes, all = wait for the full ISR to acknowledge the writes. + type: string + default: all + validations: + - type: inclusion + value: none,one,all + - name: allowLossyHeaders + description: |- + AllowLossyHeaders, valid only with mirror, writes headers rebuilt from + kafka.header. entries when kafka.headers is absent (repeated keys + collapsed, order undefined). Without it, mirror mode fails a record whose + kafka.headers is missing. + type: bool + default: "" + validations: [] + - name: batchBytes + description: |- + BatchBytes limits the maximum size of a request in bytes before being + sent to a partition. This mirrors Kafka's max.message.bytes. + type: int + default: "1000012" + validations: [] + - name: caCert + description: CACert is the Kafka broker's certificate. + type: string + default: "" + validations: [] + - name: clientCert + description: ClientCert is the Kafka client's certificate. + type: string + default: "" + validations: [] + - name: clientID + description: |- + ClientID is a unique identifier for client connections established by + this connector. + type: string + default: conduit-connector-kafka + validations: [] + - name: clientKey + description: ClientKey is the Kafka client's private key. + type: string + default: "" + validations: [] + - name: compression + description: Compression set the compression codec to be used to compress messages. + type: string + default: snappy + validations: + - type: inclusion + value: none,gzip,snappy,lz4,zstd + - name: deliveryTimeout + description: DeliveryTimeout for write operation performed by the Writer. + type: duration + default: "" + validations: [] + - name: insecureSkipVerify + description: |- + InsecureSkipVerify defines whether to validate the broker's certificate + chain and host name. If 'true', accepts any certificate presented by the + server and any host name in that certificate. + type: bool + default: "" + validations: [] + - name: mirror + description: |- + Mirror enables Kafka-to-Kafka mirror mode: it writes the record's key, + value, headers, timestamp and partition to Kafka verbatim from the mirror + metadata the source emits when its emitMirrorMetadata option is on. It + requires acks=all, rejects deliveryTimeout > 0 and a user-set + sdk.record.format, and disables topic auto-creation. See the kafka mirror + passthrough design in ConduitIO/conduit. + type: bool + default: "" + validations: [] + - name: produceTimeout + description: |- + ProduceTimeout is a connector-side bound on a Write in mirror mode, + because deliveryTimeout must stay unset there. Minimum 30s, maximum 1h. + type: duration + default: 2m + validations: [] + - name: saslAllowPlaintext + description: |- + AllowPlaintext lets SASL authenticate over a connection that is not + protected by TLS (tls.enabled is false). This exposes the SASL + credentials, and with PLAIN the password itself, to anyone who can + observe the network path to the brokers. By default the connector + refuses to start in that configuration. Only set this for a trusted + network, such as a local development cluster. + type: bool + default: "" + validations: [] + - name: saslMechanism + description: |- + Mechanism configures the connector to use SASL authentication. If + empty, no authentication will be performed. + type: string + default: "" + validations: + - type: inclusion + value: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 + - name: saslPassword + description: Password sets up the password used with SASL authentication. + type: string + default: "" + validations: [] + - name: saslUsername + description: Username sets up the username used with SASL authentication. + type: string + default: "" + validations: [] + - name: tls.enabled + description: TLSEnabled defines whether TLS is needed to communicate with the Kafka cluster. + type: bool + default: "" + validations: [] + - name: topic + description: |- + Topic is the Kafka topic. It can contain a [Go template](https://pkg.go.dev/text/template) + that will be executed for each record to determine the topic. By default, + the topic is the value of the `opencdc.collection` metadata field. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/.metadata.yaml new file mode 100644 index 0000000..303d9ed --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:26.174016845Z +commitSHA: 3c27beeb2b3aa3005182a14608f3a7dbda627d71 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/connector.yaml new file mode 100644 index 0000000..bb6bdb0 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.1/connector.yaml @@ -0,0 +1,568 @@ +version: "1.0" +specification: + name: mysql + summary: A Conduit Connector for MySQL + description: |- + ## Source + + A source connector pulls data from an external resource and pushes it to + downstream resources via Conduit. + + ### Snapshot mode + + Snapshot mode is the first stage of the source sync process. It reads all rows + from the configured tables as record snapshots. + + In snapshot mode, the record payload consists of + [opencdc.StructuredData](https://conduit.io/docs/using/opencdc-record#structured-data), + with each key being a column and each value being that column's value. + + ### Change Data Capture mode + + When the connector switches to CDC mode, it starts streaming changes from the + obtained position at the start of the snapshot. It uses the row-based binlog format + to capture detailed changes at the individual row level. + + ### Tables without a primary key + + The snapshot reads each table in key order and records the last key read in the + position, so it can resume exactly where it stopped and read a consistent view. + That needs a primary key, or a column you name with + `tableConfig..sortingColumn`. If a table has neither, the connector + fails to start with error `mysql.snapshot.table_without_key`, naming the table + and the config path `tableConfig.
.sortingColumn`. To fix it, do one of: + + - add a primary key to the table; + - set `tableConfig.
.sortingColumn` to a column that is `NOT NULL` and the + only column of a primary key or unique index. Anything else is rejected at + start with `mysql.snapshot.sorting_column_invalid`, because duplicate or NULL + values can make the snapshot skip rows; + - exclude the table. With a pattern list, a later `-` rule removes tables from an + earlier match, for example `tables: "*,-^audit_log$"` snapshots everything + except `audit_log`. With an explicit list, remove the table from it; + - set `snapshot.enabled: false` to stream changes only. Rows that already exist + are then not copied. CDC works for tables without a primary key; their record + keys are derived from the binlog position. + + The key and sorting-column checks run only when a snapshot is about to run. A + pipeline restarting in CDC mode is not affected. + + #### Migrating from `snapshot.unsafe` + + The `snapshot.unsafe` setting has been removed. It snapshotted keyless tables + with `LIMIT`/`OFFSET`, recorded no position (so every restart began again from + zero), and could skip or repeat rows when the table changed during the + snapshot. In practice it also applied without the setting: a keyless table was + snapshotted this way even when `snapshot.unsafe` was not set. + + - `snapshot.unsafe: true` now fails configuration validation with error + `mysql.config.unsafe_snapshot_removed`, **including for pipelines that are + already in CDC mode**: validation does not look at the position. Remove the + setting before upgrading. + - `snapshot.unsafe: false` is accepted and ignored. + - After upgrading, a pipeline that still has a keyless table and will run a + snapshot fails to start with `mysql.snapshot.table_without_key` until you use + one of the options above. + + ### Schema + + The source connector uses [avro](https://avro.apache.org/docs/1.11.1/specification/) to decode mysql rows. Here's the MySQL datatype to avro datatype equivalence that the connector uses: + + | MySQL Type | Avro Type | + | ---------- | --------- | + | TINYINT | int | + | SMALLINT | int | + | MEDIUMINT | int | + | INT | int | + | BIGINT | long | + | DECIMAL | double | + | NUMERIC | double | + | FLOAT | double | + | DOUBLE | double | + | BIT | bytes | + | CHAR | string | + | VARCHAR | string | + | TINYTEXT | string | + | TEXT | string | + | MEDIUMTEXT | string | + | LONGTEXT | string | + | BINARY | bytes | + | VARBINARY | bytes | + | TINYBLOB | bytes | + | BLOB | bytes | + | MEDIUMBLOB | bytes | + | LONGBLOB | bytes | + | DATE | string | + | TIME | string | + | DATETIME | string | + | TIMESTAMP | string | + | YEAR | long | + | ENUM | string | + | SET | string | + | JSON | string | + + ### Record structure + + Records produced by the MySQL source connector contain the following [opencdc record structure](https://conduit.io/docs/using/opencdc-record): + + * **Operation**: Indicates the type of change (`create`, `update`, `delete`, `snapshot`). + * **Payload**: + * `Before`: (Only present on CDC `update` operations) `opencdc.StructuredData` representing the row state before the change. + * `After`: `opencdc.StructuredData` representing the row state after the change (or the current state for `snapshot` and `create`). + * **Key**: Identifies the specific row. See Snapshot/CDC sections below for details. + * **Position**: Represents the point in the data stream. It's a JSON object containing *either* a `snapshot_position` field *or* a `cdc_position` field, structured as described below. + * **Metadata**: Contains standard OpenCDC fields plus: + * `mysql.server.id`: (CDC only) The originating MySQL server ID from the replication event header. + * [Key](https://conduit.io/docs/using/opencdc-record/#opencdckeyschema) and [payload](https://conduit.io/docs/using/opencdc-record/#opencdcpayloadschema) schema registry data. + + #### Snapshot Records + + * **Operation**: `snapshot`. + * **Payload `After`**: `opencdc.StructuredData` with all column values. + * **Key**: `opencdc.StructuredData` using the primary key columns (or the configured `tableConfig.
.sortingColumn`) and their values. + * **Position (`snapshot_position` field)**: A JSON object containing: + * `snapshots`: (object) Maps table names to their specific snapshot position object. + * *(Single Primary Key Table)*: Contains `last_read` (any) and `snapshot_end` (any). + * *(Multiple Primary Key Table)*: Contains an array of objects, each with `key_name` (string), `last_read` (any), and `snapshot_end` (any). + + #### CDC Records + + * **Operation**: Either `create`, `update` or `delete`. + * **Key**: + * With Primary Key(s): `opencdc.StructuredData` using primary key columns and values (from the `After` state). + * Without Primary Key(s): `opencdc.RawData` string `"_"`. + * **Payload**: + * `Before`: (For `update` only) `opencdc.StructuredData` with pre-update column values. + * `After`: `opencdc.StructuredData` with post-change column values (for `create`, `update`) or pre-deletion values (for `delete`). + * **Position (`cdc_position` field)**: Encodes the binlog location in a JSON object with the following fields. + * `name`: (string) Binlog file name. + * `pos`: (uint32) Position within the binlog file. + * `prev`: (object, optional) Position of the preceding event, containing `name` (string) and `pos` (uint32). Omitted if not applicable. + * `idx`: (int, optional) Row index within a potentially multi-row MySQL replication event. Omitted if zero or not applicable. + + ## Destination + + The MySQL destination takes a slice of `opencdc.Record` and writes them in batches to MySQL. It will use the `opencdc.collection` field in the metadata to determine the table to write to. + + ### Upsert Behavior + + If the target table contains a column with a unique constraint (this includes PRIMARY KEY and UNIQUE indexes), records will be upserted. Otherwise, they will be appended. Support for updating tables without unique constraints is tracked [here](https://github.com/conduitio-labs/conduit-connector-mysql/issues/66). + + If the target table already contains a record with the same key, the Destination will upsert with its current received values. Because Keys must be unique, this can overwrite and thus potentially lose data, so keys should be assigned correctly from the Source. + + If a unique key is not present in the target table, the record will be simply appended. + + With several unique indexes (including functional and prefix indexes), `ON DUPLICATE KEY UPDATE` overwrites the row matched by any of them, including that row's primary key. Functional unique indexes are read but not evaluated: the destination cannot compute their expressions, so it neither type-checks their inputs nor uses them to decide whether a record can be matched. + + ### Columns and schema changes + + Each record is written with exactly the fields in its `.Payload.After`, whatever the other records in the batch contain: + + - A field the table has no column for fails the write with `mysql.destination.unknown_column`. The destination does not create or alter tables, and it never drops a field. Add the column first, or remove the field with a processor. + - A field the record does not have is not written. An inserted row gets the column's default; an existing row keeps the column's current value. A field set to `null` writes `NULL`. + + Table and column names are quoted, so reserved words work. A collection of the form `db.table` writes to `table` in database `db`. + + **Security.** Table and column names come from the records. Quoting keeps them from changing the SQL, but a record's collection can name any database the DSN user can write to, through `db.table`. Grant the destination's user access only to the databases it should write. Quoting is only sound in character sets where no character can end in a backtick byte, so a connection using `sjis`, `cp932`, `gbk`, `gb18030` or `big5` is refused with `mysql.destination.unsafe_charset` (checked in the DSN, when the destination opens, and on the connection of every write). Use `utf8mb4`, the driver's default. + + ### Deletes + + Delete records are matched on the target table's primary key, so the table must have one: a delete for a table without a primary key fails with `mysql.destination.delete_without_primary_key` instead of removing rows. The record key must hold a non-null value for every primary-key column (`mysql.destination.key_column_missing` otherwise), either as structured data or as a single JSON object. Each value must be one scalar: a list or an object fails with `mysql.destination.key_value_not_scalar` (it would match several rows or none). Key values are converted to the type of their key column, which is read for every write, so an `ALTER TABLE` on a running pipeline is picked up without a restart. The same rules apply to the values an upsert writes into the columns of any unique index (the primary key and `UNIQUE` keys), because those values decide which row `ON DUPLICATE KEY UPDATE` overwrites: `{"id":1.5}` for a `BIGINT` key is refused instead of being rounded to 2 and overwriting row 2. A record must be fully non-null in at least one unique index, otherwise it fails with `mysql.destination.key_column_missing`: a null never conflicts, so every redelivery would insert another row. A null in one unique column is fine while another unique index identifies the row (a nullable `UNIQUE` email next to a primary key). Exceptions, which append a row on every redelivery: a null or absent `AUTO_INCREMENT` primary key, which generates a new id, and a table without a unique index. Field names are resolved to columns by the MySQL server itself (through `information_schema`), so a field names exactly the column a statement would use: `ID` names `id`, and so do characters MySQL folds (for example the Kelvin sign names `k`), while `ſ` names no column. A record with two fields that name one column (`id` and `ID`) fails with `mysql.destination.duplicate_column`. A delete for a table that does not exist fails with `mysql.destination.table_not_found`; table names are case-sensitive unless the server sets `lower_case_table_names`. + + - **Integer columns** (`TINYINT` to `BIGINT`, signed or `UNSIGNED`) take a whole number within the column's range (`5`, `5.0`, `5e0` or the string `"5"`). A fraction, a non-numeric string or a value outside the range fails with `mysql.destination.key_value_type_mismatch` instead of matching nothing or the wrong row. A boolean matches as MySQL compares it: `true` is 1, which is what a `TINYINT(1)` key needs. + - **String columns** (`CHAR`, `VARCHAR`, the `TEXT` types, `BINARY`, `VARBINARY`) take a string. An integer is sent as its decimal text and a raw JSON number as written (so `1e3` matches the row `'1e3'`), because MySQL compares a number with a string column as a double and `1000` would match `'1000'`, `'01000'`, `'1000.0'` and `' 1000'`. A float is accepted only if it is whole and below 1e15, where MySQL's text for it is the plain integer; other floats and booleans fail. + - **`ENUM` and `SET` columns** take the member name as a string. A number fails, because MySQL would compare it with the member's index. + - **`BIT(M)` columns** take a whole number from 0 to 2^M-1. + - **Other columns** (`DECIMAL`, floating point, temporal) get the value as it is; a raw JSON number keeps its literal, which MySQL compares exactly with a `DECIMAL` column. + + Integer values in a raw JSON key are matched exactly. Structured keys that reach a standalone connector over the plugin protocol have already passed through a double, so integers above 2^53 sent that way are rounded before the destination sees them ([ConduitIO/conduit#3100](https://github.com/ConduitIO/conduit/issues/3100)). A record whose operation is not create, update, delete or snapshot fails with `mysql.destination.unsupported_operation`. + + ### Atomicity and acknowledgements + + Each write is a single transaction. If any record in the write fails, nothing from that write is stored and none of its records are acknowledged; the records are redelivered after the pipeline recovers. Upserts on a primary or unique key make the redelivery idempotent. Redelivering a record whose `AUTO_INCREMENT` key is null or absent, or a record for a table with no unique key, appends another row. + + The destination sets `wait_timeout=60` on its own connections (unless the DSN sets `wait_timeout`), and the pool drops connections idle for half of it. If the connector dies in the middle of a write and the server does not see the connection close (a NAT, a proxy, a half-open TCP connection), the uncommitted transaction and its row locks end within that time instead of the server default of 8 hours, so the redelivered records do not wait on them. + + ## Delivery semantics and limits + + The source connector is in beta. This section states what it guarantees and what it does not. + + ### Delivery guarantees + + - **At-least-once.** A record is acknowledged upstream only after the destination has + acknowledged it, and the position carried on a record is what Conduit persists. After a + crash or restart you can receive records again, never fewer. Make destinations idempotent + (upsert by key). + - **Snapshot to CDC handoff.** The connector captures the binlog position at the start of + the snapshot and begins CDC from it, so changes made while the snapshot runs are delivered + after it. Rows can therefore appear twice: once as a `snapshot` record and again as a + CDC change. + - **Restart.** A restart during the snapshot resumes the snapshot from the last + acknowledged key per table. After a CDC restart, CDC resumes after the last acknowledged + row, also in the middle of a multi-row binlog event, in a later binlog event of one large + statement, and inside a compressed transaction (`binlog_transaction_compression=ON`). After + upgrading from an older version, restarts re-read the binlog file of the saved position from + its start to find the saved event, until the first record is acknowledged under the new + version. Rows are delivered again (duplicates, never a gap) in three cases, each logged as a + warning: the saved position was written right after a restart in the middle of an event (that + event is delivered again), an older version's position points inside a compressed transaction + (its binlog file is delivered again from its start), or the captured tables changed while the + saved position was inside a compressed transaction (that transaction is delivered again). + - **Ordering.** CDC records are delivered in binlog order. During the snapshot, rows are + ordered by key within a table; tables are read concurrently, so there is no ordering across + tables. + + ### Limits + + - **No GTID support.** Positions are a binlog file name and offset on the server the + connector read from. They are not portable between servers: a replica, or a replica + promoted after a failover, has different binlog files and offsets. **Failing over the + source database breaks resume.** The connector may fail to start, or may not resume at the + matching point. After a failover, treat the pipeline as needing a new snapshot: clear its + position and expect to re-read the data. GTID-based positions are not supported in this + release. + - **Tables added after the pipeline entered CDC are not snapshotted.** A snapshot runs only + on a fresh start. The position records which tables were snapshotted, and a restart checks + the configuration against it: + - If you add a table to an explicit `tables` list (plain table names), or switch + `snapshot.enabled` from `false` to `true`, the connector refuses to start with + `mysql.snapshot.tables_added_after_cdc`, naming the tables. Start a new pipeline for them, + or reset this pipeline's position to snapshot everything again (expect duplicates). + - If `tables` uses a pattern (`*`, a regex, an exclude, or an anchored name such as + `^orders$`), the connector logs one warning with the same code and then delivers the new + tables **from CDC only**: their existing rows are not snapshotted and are never delivered. + - A plain name is a regex that is not anchored, so `orders` also matches `orders_archive`. + It is still treated as an explicit list, which is the safe side. Anchor it as `^orders$` + to make it a pattern. + - A table removed from `tables` and added back later counts as added: changes made while it + was excluded were never captured. For an explicit list this means a table that is absent + at one restart and present at the next errors. + - A position written by an older version cannot be checked. The connector adopts the + configured tables as **unverified**, never as snapshotted, and logs + `mysql.snapshot.tables_unverified` on every start until the position is reset. Tables added + afterwards are detected. + - With more than 200 tables the position stores a hash of the table set instead of the + names. A change to the set then cannot be named or given a direction (a table that was only + removed also triggers it). The error says that "the configured table set changed", and + the way out is to restore the previous `tables` list or reset the position; removing tables + from the list does not clear it. + - **A key column that was retyped restarts its table's snapshot.** The position records the + type of each key column. If the saved key does not fit the column's type now (an `INT` key + column that became `VARCHAR`, or `VARCHAR` that became `DECIMAL`, whose values order + differently), the table's snapshot restarts from its first row with a warning. Rows already + delivered are delivered again; nothing is skipped. + - **Upgrading in the middle of a snapshot re-reads text, decimal and binary key tables.** + A snapshot position written by an older version does not record the key type, so a table + whose key is text, binary, `DECIMAL`, `TIME`, `ENUM`, `SET` or `BIT` cannot be checked for a + retype and restarts from its first row after the upgrade; its partial progress is re-read. + Integer, date and time keys resume where they stopped. Pipelines already in CDC are not + affected. + - **Binlog retention is your responsibility.** If the persisted position has been purged + from the server, the connector cannot resume. Keep `binlog_expire_logs_seconds` longer than + the longest outage you want to survive. + - **No heartbeat.** The connector does not send or consume heartbeat events. The position + is carried on records, so while the configured tables are quiet the persisted position does + not advance, even if the server keeps writing and rotating binlogs for other tables. A long + quiet period followed by binlog purging can leave the stored position pointing at a purged + file. + - **DDL during a running pipeline is not handled explicitly and is not tested.** Running + `ALTER TABLE` (or other schema changes) on a captured table while the snapshot or CDC is + running may produce records that do not match the schema registered earlier, or an error. + Stop the pipeline, change the schema, and verify the result before resuming. + - **Tables must be orderable for the snapshot.** See "Tables without a primary key". + - **Type mapping has known gaps.** `DECIMAL` and `NUMERIC` map to Avro `double` and can lose + precision beyond what a 64-bit float holds. SQL `NULL` is delivered as the column type's + zero value (`0`, `""`), so it cannot be told apart from a real zero. Date and time types are + delivered as strings. A full type-mapping design is pending; do not rely on exact fidelity + for these types yet. + - **`BIGINT UNSIGNED` above 2^63-1 stops the source.** The column maps to Avro `long`, which + cannot hold values above 9223372036854775807. When the snapshot or CDC reads such a value, + the source stops with `mysql.types.unsigned_overflow`, naming the table, column and value. + No record is emitted for that row and the position does not move past it. Exclude the + table, or bring the values into range, and restart. Versions before this one emitted a + wrong number in the snapshot (18446744073709551615 came out as 3474867090068222261) and + failed with an encoder error in CDC. + + ## Requirements and compatibility + + The connector is tested against MySQL v8.0. Compatibility with older versions isn't guaranteed. + + ### MySQL Server Requirements: + + - Binary Log (binlog) must be enabled. + - Binlog format must be set to ROW. + - Binlog row image must be set to FULL. + - Recommended: `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+). Without it the connector cannot + detect every schema change that happened while it was stopped; see `mysql.cdc.row_columns_mismatch` below. + - Tables must have **sortable** primary keys. + + ### Partial row images + + `binlog_row_image` is also a session variable. A writing session that sets it to `MINIMAL` or `NOBLOB` logs + only part of the row, even when the server value is `FULL`: + + - `MINIMAL`, UPDATE: the before image holds only the primary key, and the after image holds only the changed + columns (the primary key is in it only if it changed). + - `MINIMAL`, DELETE: the before image holds only the primary key. + - `MINIMAL`, INSERT: the image holds only the columns the statement names. Every column it omits is skipped, + including columns with a `DEFAULT` and nullable columns, so an ORM that leaves defaulted columns out halts on + its first insert. An INSERT that names every column does not halt. + - `NOBLOB`: `BLOB` and `TEXT` columns that an UPDATE or DELETE did not change are skipped, and so is a `BLOB` + that an INSERT omits. An INSERT that omits a non-`BLOB` column with a default is logged in full. + + A skipped column is unknown. It is not NULL and it is not the column default: the binlog carries no value for + it, and the schema default may have changed since the row was written, so the connector does not fill it in. + + The CDC source halts on the first such event instead of delivering zero values over real data. The error has + the code `mysql.cdc.row_image_skipped_columns` and names the table, the action, the binlog file and position, and + the columns that were left out. Snapshot rows are not affected. If the event sits inside a compressed + transaction (`binlog_transaction_compression=ON`) the exact position is not available and the error says so. + + The source also stops with the code `mysql.cdc.partial_json_unsupported` when a writer logs partial JSON updates + (`binlog_row_value_options=PARTIAL_JSON`), which the connector cannot read. Set the option to an empty value for + the writers. + + Two more CDC halts are resolved by resetting the position, so the recovery below (deletes) applies to them too: + + - `mysql.cdc.row_columns_mismatch`: a binlog event has a different number of values than its table has + columns, even after the connector re-read the table's columns (it does that once on a mismatch, because its + cached column list can be out of date after a DDL its parser skips, such as `ADD COLUMN ... INVISIBLE`). + The connector decodes events with the table's current columns, so an event written before an `ADD COLUMN` + or `DROP COLUMN` and read after it (the connector was stopped or lagging across the DDL) cannot be mapped. + It also happens when the connector's user cannot see every column: column privileges, or a generated + invisible primary key hidden by `show_gipk_in_create_table_and_information_schema=OFF`, which halts by + design. Make hidden columns visible first. Then restart the pipeline; if it halts again on the same event, + reset the position to snapshot again. + - `mysql.cdc.row_columns_mismatch` also covers an event whose number of values fits the table but that was + written under other columns: after a `DROP COLUMN` plus an `ADD COLUMN` (or a column changing type) ran + before the connector read the event, every value after the dropped column would land in the wrong column. + The connector compares the types the event was written with against the table's columns (by family, so + `INT` to `BIGINT` or a longer `VARCHAR` is fine) and halts on a difference, also after a restart, so + restarting does not help: reset the position. With `binlog_row_metadata=FULL` the event also carries its + column names, and the connector compares those too; a renamed column then halts as well, because a rename + cannot be told from a drop plus an add. **Without `FULL`, a column dropped and another of the same type + family added at the same position, while the connector is stopped or lagging, is not detected, and the + values are mapped onto the new column.** `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+; the default + is `MINIMAL`) closes that for events written after it is set, at the cost of a larger binlog. Stop the + pipeline before changing a captured table's columns, or set it. + - `mysql.cdc.resume_event_not_found`: on a restart, the binlog event the saved position names was not where + the position says. This should not happen; report it with the logged position, and reset the position to + continue. + + #### Recovery + + **Resuming means a re-snapshot, and a snapshot does not carry deletes.** Rows deleted at the source while the + pipeline was halted would stay in the destination. Do one of the following, for ALL captured tables, not only + the table named in the error: + + - truncate the destination tables, then clear the connector's position to re-snapshot; or + - clear the connector's position to re-snapshot, and after the snapshot has completed reconcile the destination + against the source, deletes included. + + Do not reconcile first and re-snapshot afterwards: rows deleted at the source between the reconcile and the + start of the snapshot would stay in the destination. + + 1. Stop the cause. Set `binlog_row_image = 'FULL'` for the writers, and for the server use + `SET PERSIST binlog_row_image = 'FULL'` (`SET GLOBAL` does not survive a restart). Then reconnect every + writer: existing sessions, pooled connections included, keep the value they started with. + 2. The event is already in the binlog, so every restart halts on it. Find its transaction with + `SHOW BINLOG EVENTS IN ''` (the error gives the start position of the event); with GTIDs enabled, + the `Gtid` event just before it names the GTID. + 3. Truncate the destination for all captured tables, or plan to reconcile it after the snapshot (see above). + 4. Clear the connector's position to re-snapshot. + 5. If you chose to reconcile, do it once the snapshot has completed, including deletes, for all captured tables. + + A lighter way to resume after the event is tracked in + [#212](https://github.com/ConduitIO/conduit-connector-mysql/issues/212). + + #### Upgrading + + If the binlog after the stored position already holds an event from a `MINIMAL` or `NOBLOB` session, including + an event that an older version had partly emitted, the upgraded connector halts on it after the restart. Older + versions delivered such events with zero values. + + ### MySQL User Privileges: + + For Snapshot and CDC modes, the following privileges are required: + + - SELECT + - LOCK TABLES + - RELOAD + - REPLICATION CLIENT + - REPLICATION SLAVE + version: v0.4.0 + author: Meroxa, Inc. + source: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: tables + description: |- + Represents the tables to read from. + - By default, no tables are included, but can be modified by adding a comma-separated string of regex patterns. + - They are applied in the order that they are provided, so the final regex supersedes all previous ones. + - To include all tables, use "*". You can then filter that list by adding a comma-separated string of regex patterns. + - To set an "include" regex, add "+" or nothing in front of the regex. + - To set an "exclude" regex, add "-" in front of the regex. + - e.g. "-.*meta$, wp_postmeta" will exclude all tables ending with "meta" but include the table "wp_postmeta". + type: string + default: "" + validations: + - type: required + value: "" + - name: cdc.disableLogs + description: Disables verbose cdc driver logs. + type: bool + default: "" + validations: [] + - name: snapshot.enabled + description: Controls whether the snapshot is done. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Limits how many rows should be retrieved on each database fetch on snapshot mode. + type: int + default: "10000" + validations: [] + - name: snapshot.unsafe + description: 'Removed. The unsafe snapshot no longer exists: true fails validation with a migration message, false is accepted and ignored. Tables without a primary key need tableConfig.
.sortingColumn.' + type: bool + default: "" + validations: [] + - name: tableConfig.*.sortingColumn + description: |- + Allows to force using a custom column to sort the snapshot. The column must be + NOT NULL and the only column of a primary key or unique index. + type: string + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "10000" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "3000" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/.metadata.yaml new file mode 100644 index 0000000..93f8d72 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:25.471412114Z +commitSHA: 5f25067f842a5f0d2fb1b8630a77761544cda4fa diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/connector.yaml new file mode 100644 index 0000000..08c118a --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.5.2/connector.yaml @@ -0,0 +1,572 @@ +version: "1.0" +specification: + name: mysql + summary: A Conduit Connector for MySQL + description: |- + ## Source + + A source connector pulls data from an external resource and pushes it to + downstream resources via Conduit. + + ### Snapshot mode + + Snapshot mode is the first stage of the source sync process. It reads all rows + from the configured tables as record snapshots. + + In snapshot mode, the record payload consists of + [opencdc.StructuredData](https://conduit.io/docs/using/opencdc-record#structured-data), + with each key being a column and each value being that column's value. + + ### Change Data Capture mode + + When the connector switches to CDC mode, it starts streaming changes from the + obtained position at the start of the snapshot. It uses the row-based binlog format + to capture detailed changes at the individual row level. + + ### Tables without a primary key + + The snapshot reads each table in key order and records the last key read in the + position, so it can resume exactly where it stopped and read a consistent view. + That needs a primary key, or a column you name with + `tableConfig.
.sortingColumn`. If a table has neither, the connector + fails to start with error `mysql.snapshot.table_without_key`, naming the table + and the config path `tableConfig.
.sortingColumn`. To fix it, do one of: + + - add a primary key to the table; + - set `tableConfig.
.sortingColumn` to a column that is `NOT NULL` and the + only column of a primary key or unique index. Anything else is rejected at + start with `mysql.snapshot.sorting_column_invalid`, because duplicate or NULL + values can make the snapshot skip rows; + - exclude the table. With a pattern list, a later `-` rule removes tables from an + earlier match, for example `tables: "*,-^audit_log$"` snapshots everything + except `audit_log`. With an explicit list, remove the table from it; + - set `snapshot.enabled: false` to stream changes only. Rows that already exist + are then not copied. CDC works for tables without a primary key; their record + keys are derived from the binlog position. + + The key and sorting-column checks run only when a snapshot is about to run. A + pipeline restarting in CDC mode is not affected. + + #### Migrating from `snapshot.unsafe` + + The `snapshot.unsafe` setting has been removed. It snapshotted keyless tables + with `LIMIT`/`OFFSET`, recorded no position (so every restart began again from + zero), and could skip or repeat rows when the table changed during the + snapshot. In practice it also applied without the setting: a keyless table was + snapshotted this way even when `snapshot.unsafe` was not set. + + - `snapshot.unsafe: true` now fails configuration validation with error + `mysql.config.unsafe_snapshot_removed`, **including for pipelines that are + already in CDC mode**: validation does not look at the position. Remove the + setting before upgrading. + - `snapshot.unsafe: false` is accepted and ignored. + - After upgrading, a pipeline that still has a keyless table and will run a + snapshot fails to start with `mysql.snapshot.table_without_key` until you use + one of the options above. + + ### Schema + + The source connector uses [avro](https://avro.apache.org/docs/1.11.1/specification/) to decode mysql rows. Here's the MySQL datatype to avro datatype equivalence that the connector uses: + + | MySQL Type | Avro Type | + | ---------- | --------- | + | TINYINT | int | + | SMALLINT | int | + | MEDIUMINT | int | + | INT | int | + | BIGINT | long | + | DECIMAL | double | + | NUMERIC | double | + | FLOAT | double | + | DOUBLE | double | + | BIT | bytes | + | CHAR | string | + | VARCHAR | string | + | TINYTEXT | string | + | TEXT | string | + | MEDIUMTEXT | string | + | LONGTEXT | string | + | BINARY | bytes | + | VARBINARY | bytes | + | TINYBLOB | bytes | + | BLOB | bytes | + | MEDIUMBLOB | bytes | + | LONGBLOB | bytes | + | DATE | string | + | TIME | string | + | DATETIME | string | + | TIMESTAMP | string | + | YEAR | long | + | ENUM | string | + | SET | string | + | JSON | string | + + ### Record structure + + Records produced by the MySQL source connector contain the following [opencdc record structure](https://conduit.io/docs/using/opencdc-record): + + * **Operation**: Indicates the type of change (`create`, `update`, `delete`, `snapshot`). + * **Payload**: + * `Before`: (Only present on CDC `update` operations) `opencdc.StructuredData` representing the row state before the change. + * `After`: `opencdc.StructuredData` representing the row state after the change (or the current state for `snapshot` and `create`). + * **Key**: Identifies the specific row. See Snapshot/CDC sections below for details. + * **Position**: Represents the point in the data stream. It's a JSON object containing *either* a `snapshot_position` field *or* a `cdc_position` field, structured as described below. + * **Metadata**: Contains standard OpenCDC fields plus: + * `mysql.server.id`: (CDC only) The originating MySQL server ID from the replication event header. + * [Key](https://conduit.io/docs/using/opencdc-record/#opencdckeyschema) and [payload](https://conduit.io/docs/using/opencdc-record/#opencdcpayloadschema) schema registry data. + + #### Snapshot Records + + * **Operation**: `snapshot`. + * **Payload `After`**: `opencdc.StructuredData` with all column values. + * **Key**: `opencdc.StructuredData` using the primary key columns (or the configured `tableConfig.
.sortingColumn`) and their values. + * **Position (`snapshot_position` field)**: A JSON object containing: + * `snapshots`: (object) Maps table names to their specific snapshot position object. + * *(Single Primary Key Table)*: Contains `last_read` (any) and `snapshot_end` (any). + * *(Multiple Primary Key Table)*: Contains an array of objects, each with `key_name` (string), `last_read` (any), and `snapshot_end` (any). + + #### CDC Records + + * **Operation**: Either `create`, `update` or `delete`. + * **Key**: + * With Primary Key(s): `opencdc.StructuredData` using primary key columns and values (from the `After` state). + * Without Primary Key(s): `opencdc.RawData` string `"_"`. + * **Payload**: + * `Before`: (For `update` only) `opencdc.StructuredData` with pre-update column values. + * `After`: `opencdc.StructuredData` with post-change column values (for `create`, `update`) or pre-deletion values (for `delete`). + * **Position (`cdc_position` field)**: Encodes the binlog location in a JSON object with the following fields. + * `name`: (string) Binlog file name. + * `pos`: (uint32) Position within the binlog file. + * `prev`: (object, optional) Position of the preceding event, containing `name` (string) and `pos` (uint32). Omitted if not applicable. + * `idx`: (int, optional) Row index within a potentially multi-row MySQL replication event. Omitted if zero or not applicable. + + ## Destination + + The MySQL destination takes a slice of `opencdc.Record` and writes them in batches to MySQL. It will use the `opencdc.collection` field in the metadata to determine the table to write to. + + ### Upsert Behavior + + If the target table contains a column with a unique constraint (this includes PRIMARY KEY and UNIQUE indexes), records will be upserted. Otherwise, they will be appended. Support for updating tables without unique constraints is tracked [here](https://github.com/conduitio-labs/conduit-connector-mysql/issues/66). + + If the target table already contains a record with the same key, the Destination will upsert with its current received values. Because Keys must be unique, this can overwrite and thus potentially lose data, so keys should be assigned correctly from the Source. + + If a unique key is not present in the target table, the record will be simply appended. + + With several unique indexes (including functional and prefix indexes), `ON DUPLICATE KEY UPDATE` overwrites the row matched by any of them, including that row's primary key. Functional unique indexes are read but not evaluated: the destination cannot compute their expressions, so it neither type-checks their inputs nor uses them to decide whether a record can be matched. + + ### Columns and schema changes + + Each record is written with exactly the fields in its `.Payload.After`, whatever the other records in the batch contain: + + - A field the table has no column for fails the write with `mysql.destination.unknown_column`. The destination does not create or alter tables, and it never drops a field. Add the column first, or remove the field with a processor. + - A field the record does not have is not written. An inserted row gets the column's default; an existing row keeps the column's current value. A field set to `null` writes `NULL`. + + Table and column names are quoted, so reserved words work. A collection of the form `db.table` writes to `table` in database `db`. + + **Security.** Table and column names come from the records. Quoting keeps them from changing the SQL, but a record's collection can name any database the DSN user can write to, through `db.table`. Grant the destination's user access only to the databases it should write. Quoting is only sound in character sets where no character can end in a backtick byte, so a connection using `sjis`, `cp932`, `gbk`, `gb18030` or `big5` is refused with `mysql.destination.unsafe_charset` (checked in the DSN, when the destination opens, and on the connection of every write). Use `utf8mb4`, the driver's default. + + ### Deletes + + Delete records are matched on the target table's primary key, so the table must have one: a delete for a table without a primary key fails with `mysql.destination.delete_without_primary_key` instead of removing rows. The record key must hold a non-null value for every primary-key column (`mysql.destination.key_column_missing` otherwise), either as structured data or as a single JSON object. Each value must be one scalar: a list or an object fails with `mysql.destination.key_value_not_scalar` (it would match several rows or none). Key values are converted to the type of their key column, which is read for every write, so an `ALTER TABLE` on a running pipeline is picked up without a restart. The same rules apply to the values an upsert writes into the columns of any unique index (the primary key and `UNIQUE` keys), because those values decide which row `ON DUPLICATE KEY UPDATE` overwrites: `{"id":1.5}` for a `BIGINT` key is refused instead of being rounded to 2 and overwriting row 2. A record must be fully non-null in at least one unique index, otherwise it fails with `mysql.destination.key_column_missing`: a null never conflicts, so every redelivery would insert another row. A null in one unique column is fine while another unique index identifies the row (a nullable `UNIQUE` email next to a primary key). Exceptions, which append a row on every redelivery: a null or absent `AUTO_INCREMENT` primary key, which generates a new id, and a table without a unique index. Field names are resolved to columns by the MySQL server itself (through `information_schema`), so a field names exactly the column a statement would use: `ID` names `id`, and so do characters MySQL folds (for example the Kelvin sign names `k`), while `ſ` names no column. A record with two fields that name one column (`id` and `ID`) fails with `mysql.destination.duplicate_column`. A delete for a table that does not exist fails with `mysql.destination.table_not_found`; table names are case-sensitive unless the server sets `lower_case_table_names`. + + - **Integer columns** (`TINYINT` to `BIGINT`, signed or `UNSIGNED`) take a whole number within the column's range (`5`, `5.0`, `5e0` or the string `"5"`). A fraction, a non-numeric string or a value outside the range fails with `mysql.destination.key_value_type_mismatch` instead of matching nothing or the wrong row. A boolean matches as MySQL compares it: `true` is 1, which is what a `TINYINT(1)` key needs. + - **String columns** (`CHAR`, `VARCHAR`, the `TEXT` types, `BINARY`, `VARBINARY`) take a string. An integer is sent as its decimal text and a raw JSON number as written (so `1e3` matches the row `'1e3'`), because MySQL compares a number with a string column as a double and `1000` would match `'1000'`, `'01000'`, `'1000.0'` and `' 1000'`. A float is accepted only if it is whole and below 1e15, where MySQL's text for it is the plain integer; other floats and booleans fail. + - **`ENUM` and `SET` columns** take the member name as a string. A number fails, because MySQL would compare it with the member's index. + - **`BIT(M)` columns** take a whole number from 0 to 2^M-1. + - **Other columns** (`DECIMAL`, floating point, temporal) get the value as it is; a raw JSON number keeps its literal, which MySQL compares exactly with a `DECIMAL` column. + + Integer values in a raw JSON key are matched exactly. Structured keys that reach a standalone connector over the plugin protocol have already passed through a double, so integers above 2^53 sent that way are rounded before the destination sees them ([ConduitIO/conduit#3100](https://github.com/ConduitIO/conduit/issues/3100)). A record whose operation is not create, update, delete or snapshot fails with `mysql.destination.unsupported_operation`. + + ### Atomicity and acknowledgements + + Each write is a single transaction. If any record in the write fails, nothing from that write is stored and none of its records are acknowledged; the records are redelivered after the pipeline recovers. Upserts on a primary or unique key make the redelivery idempotent. Redelivering a record whose `AUTO_INCREMENT` key is null or absent, or a record for a table with no unique key, appends another row. + + The destination sets `wait_timeout=60` on its own connections (unless the DSN sets `wait_timeout`), and the pool drops connections idle for half of it. If the connector dies in the middle of a write and the server does not see the connection close (a NAT, a proxy, a half-open TCP connection), the uncommitted transaction and its row locks end within that time instead of the server default of 8 hours, so the redelivered records do not wait on them. + + ## Delivery semantics and limits + + The source connector is in beta. This section states what it guarantees and what it does not. + + ### Delivery guarantees + + - **At-least-once.** A record is acknowledged upstream only after the destination has + acknowledged it, and the position carried on a record is what Conduit persists. After a + crash or restart you can receive records again, never fewer. Make destinations idempotent + (upsert by key). + - **Snapshot to CDC handoff.** The connector captures the binlog position at the start of + the snapshot and begins CDC from it, so changes made while the snapshot runs are delivered + after it. Rows can therefore appear twice: once as a `snapshot` record and again as a + CDC change. + - **Restart.** A restart during the snapshot resumes the snapshot from the last + acknowledged key per table. After a CDC restart, CDC resumes after the last acknowledged + row, also in the middle of a multi-row binlog event, in a later binlog event of one large + statement, and inside a compressed transaction (`binlog_transaction_compression=ON`). After + upgrading from an older version, restarts re-read the binlog file of the saved position from + its start to find the saved event, until the first record is acknowledged under the new + version. Rows are delivered again (duplicates, never a gap) in three cases, each logged as a + warning: the saved position was written right after a restart in the middle of an event (that + event is delivered again), an older version's position points inside a compressed transaction + (its binlog file is delivered again from its start), or the captured tables changed while the + saved position was inside a compressed transaction (that transaction is delivered again). + - **Ordering.** CDC records are delivered in binlog order. During the snapshot, rows are + ordered by key within a table; tables are read concurrently, so there is no ordering across + tables. + + ### Limits + + - **No GTID support.** Positions are a binlog file name and offset on the server the + connector read from. They are not portable between servers: a replica, or a replica + promoted after a failover, has different binlog files and offsets. **Failing over the + source database breaks resume.** The connector may fail to start, or may not resume at the + matching point. After a failover, treat the pipeline as needing a new snapshot: clear its + position and expect to re-read the data. GTID-based positions are not supported in this + release. + - **Tables added after the pipeline entered CDC are not snapshotted.** A snapshot runs only + on a fresh start. The position records which tables were snapshotted, and a restart checks + the configuration against it: + - If you add a table to an explicit `tables` list (plain table names), or switch + `snapshot.enabled` from `false` to `true`, the connector refuses to start with + `mysql.snapshot.tables_added_after_cdc`, naming the tables. Start a new pipeline for them, + or reset this pipeline's position to snapshot everything again (expect duplicates). + - If `tables` uses a pattern (`*`, a regex, an exclude, or an anchored name such as + `^orders$`), the connector logs one warning with the same code and then delivers the new + tables **from CDC only**: their existing rows are not snapshotted and are never delivered. + - A plain name is a regex that is not anchored, so `orders` also matches `orders_archive`. + It is still treated as an explicit list, which is the safe side. Anchor it as `^orders$` + to make it a pattern. + - A table removed from `tables` and added back later counts as added: changes made while it + was excluded were never captured. For an explicit list this means a table that is absent + at one restart and present at the next errors. + - A position written by an older version cannot be checked. The connector adopts the + configured tables as **unverified**, never as snapshotted, and logs + `mysql.snapshot.tables_unverified` on every start until the position is reset. Tables added + afterwards are detected. + - With more than 200 tables the position stores a hash of the table set instead of the + names. A change to the set then cannot be named or given a direction (a table that was only + removed also triggers it). The error says that "the configured table set changed", and + the way out is to restore the previous `tables` list or reset the position; removing tables + from the list does not clear it. + - **A key column that was retyped restarts its table's snapshot.** The position records the + type of each key column. If the saved key does not fit the column's type now (an `INT` key + column that became `VARCHAR`, or `VARCHAR` that became `DECIMAL`, whose values order + differently), the table's snapshot restarts from its first row with a warning. Rows already + delivered are delivered again; nothing is skipped. + - **Upgrading in the middle of a snapshot re-reads text, decimal and binary key tables.** + A snapshot position written by an older version does not record the key type, so a table + whose key is text, binary, `DECIMAL`, `TIME`, `ENUM`, `SET` or `BIT` cannot be checked for a + retype and restarts from its first row after the upgrade; its partial progress is re-read. + Integer, date and time keys resume where they stopped. Pipelines already in CDC are not + affected. + - **Binlog retention is your responsibility.** If the persisted position has been purged + from the server, the connector cannot resume. Keep `binlog_expire_logs_seconds` longer than + the longest outage you want to survive. + - **No heartbeat.** The connector does not send or consume heartbeat events. The position + is carried on records, so while the configured tables are quiet the persisted position does + not advance, even if the server keeps writing and rotating binlogs for other tables. A long + quiet period followed by binlog purging can leave the stored position pointing at a purged + file. + - **DDL during a running pipeline is not handled explicitly and is not tested.** Running + `ALTER TABLE` (or other schema changes) on a captured table while the snapshot or CDC is + running may produce records that do not match the schema registered earlier, or an error. + Stop the pipeline, change the schema, and verify the result before resuming. + - **Tables must be orderable for the snapshot.** See "Tables without a primary key". + - **Type mapping has known gaps.** `DECIMAL` and `NUMERIC` map to Avro `double` and can lose + precision beyond what a 64-bit float holds. SQL `NULL` is delivered as the column type's + zero value (`0`, `""`), so it cannot be told apart from a real zero. Date and time types are + delivered as strings. A full type-mapping design is pending; do not rely on exact fidelity + for these types yet. + - **`BIGINT UNSIGNED` above 2^63-1 stops the source.** The column maps to Avro `long`, which + cannot hold values above 9223372036854775807. When the snapshot or CDC reads such a value, + the source stops with `mysql.types.unsigned_overflow`, naming the table, column and value. + No record is emitted for that row and the position does not move past it. Exclude the + table, or bring the values into range, and restart. Versions before this one emitted a + wrong number in the snapshot (18446744073709551615 came out as 3474867090068222261) and + failed with an encoder error in CDC. + + ## Requirements and compatibility + + The connector is tested against MySQL v8.0. Compatibility with older versions isn't guaranteed. + + ### MySQL Server Requirements: + + - Binary Log (binlog) must be enabled. + - Binlog format must be set to ROW. + - Binlog row image must be set to FULL. + - Recommended: `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+). Without it the connector cannot + detect every schema change that happened while it was stopped; see `mysql.cdc.row_columns_mismatch` below. + - Tables must have **sortable** primary keys. + + ### Partial row images + + `binlog_row_image` is also a session variable. A writing session that sets it to `MINIMAL` or `NOBLOB` logs + only part of the row, even when the server value is `FULL`: + + - `MINIMAL`, UPDATE: the before image holds only the primary key, and the after image holds only the changed + columns (the primary key is in it only if it changed). + - `MINIMAL`, DELETE: the before image holds only the primary key. + - `MINIMAL`, INSERT: the image holds only the columns the statement names. Every column it omits is skipped, + including columns with a `DEFAULT` and nullable columns, so an ORM that leaves defaulted columns out halts on + its first insert. An INSERT that names every column does not halt. + - `NOBLOB`: `BLOB` and `TEXT` columns that an UPDATE or DELETE did not change are skipped, and so is a `BLOB` + that an INSERT omits. An INSERT that omits a non-`BLOB` column with a default is logged in full. + + A skipped column is unknown. It is not NULL and it is not the column default: the binlog carries no value for + it, and the schema default may have changed since the row was written, so the connector does not fill it in. + + The CDC source halts on the first such event instead of delivering zero values over real data. The error has + the code `mysql.cdc.row_image_skipped_columns` and names the table, the action, the binlog file and position, and + the columns that were left out. Snapshot rows are not affected. If the event sits inside a compressed + transaction (`binlog_transaction_compression=ON`) the exact position is not available and the error says so. + + The source also stops with the code `mysql.cdc.partial_json_unsupported` when a writer logs partial JSON updates + (`binlog_row_value_options=PARTIAL_JSON`), which the connector cannot read. Set the option to an empty value for + the writers. + + Two more CDC halts are resolved by resetting the position, so the recovery below (deletes) applies to them too: + + - `mysql.cdc.row_columns_mismatch`: a binlog event has a different number of values than its table has + columns, even after the connector re-read the table's columns (it does that once on a mismatch, because its + cached column list can be out of date after a DDL its parser skips, such as `ADD COLUMN ... INVISIBLE`). + The connector decodes events with the table's current columns, so an event written before an `ADD COLUMN` + or `DROP COLUMN` and read after it (the connector was stopped or lagging across the DDL) cannot be mapped. + It also happens when the connector's user cannot see every column: column privileges, or a generated + invisible primary key hidden by `show_gipk_in_create_table_and_information_schema=OFF`, which halts by + design. Make hidden columns visible first. Then restart the pipeline; if it halts again on the same event, + reset the position to snapshot again. + - `mysql.cdc.row_columns_mismatch` also covers an event whose number of values fits the table but that was + written under other columns: after a `DROP COLUMN` plus an `ADD COLUMN` (or a column changing type) ran + before the connector read the event, every value after the dropped column would land in the wrong column. + The connector compares the types the event was written with against the table's columns (by family, so + `INT` to `BIGINT` or a longer `VARCHAR` is fine) and halts on a difference. The event is not delivered yet, + so every restart halts on it again and restarting does not help: reset the position. The comparison also + covers the signedness of integer columns (`INT` to `INT UNSIGNED` would turn -5 into 4294967291) and whether + a string column is text or binary (`VARCHAR` to `BLOB`), which the server logs under every + `binlog_row_metadata` setting. The check runs only on events the connector is about to deliver: after a restart, events it reads again but delivered before the restart are dropped without it, + so an ordinary restart after a DDL does not halt on a row that was already delivered. With + `binlog_row_metadata=FULL` the event also carries its column names, and the connector compares those too; a renamed column then halts as well, because a rename + cannot be told from a drop plus an add. **Without `FULL`, a column dropped and another of the same type + family added at the same position, while the connector is stopped or lagging, is not detected, and the + values are mapped onto the new column.** `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+; the default + is `MINIMAL`) closes that for events written after it is set, at the cost of a larger binlog. Stop the + pipeline before changing a captured table's columns, or set it. + - `mysql.cdc.resume_event_not_found`: on a restart, the binlog event the saved position names was not where + the position says. This should not happen; report it with the logged position, and reset the position to + continue. + + #### Recovery + + **Resuming means a re-snapshot, and a snapshot does not carry deletes.** Rows deleted at the source while the + pipeline was halted would stay in the destination. Do one of the following, for ALL captured tables, not only + the table named in the error: + + - truncate the destination tables, then clear the connector's position to re-snapshot; or + - clear the connector's position to re-snapshot, and after the snapshot has completed reconcile the destination + against the source, deletes included. + + Do not reconcile first and re-snapshot afterwards: rows deleted at the source between the reconcile and the + start of the snapshot would stay in the destination. + + 1. Stop the cause. Set `binlog_row_image = 'FULL'` for the writers, and for the server use + `SET PERSIST binlog_row_image = 'FULL'` (`SET GLOBAL` does not survive a restart). Then reconnect every + writer: existing sessions, pooled connections included, keep the value they started with. + 2. The event is already in the binlog, so every restart halts on it. Find its transaction with + `SHOW BINLOG EVENTS IN ''` (the error gives the start position of the event); with GTIDs enabled, + the `Gtid` event just before it names the GTID. + 3. Truncate the destination for all captured tables, or plan to reconcile it after the snapshot (see above). + 4. Clear the connector's position to re-snapshot. + 5. If you chose to reconcile, do it once the snapshot has completed, including deletes, for all captured tables. + + A lighter way to resume after the event is tracked in + [#212](https://github.com/ConduitIO/conduit-connector-mysql/issues/212). + + #### Upgrading + + If the binlog after the stored position already holds an event from a `MINIMAL` or `NOBLOB` session, including + an event that an older version had partly emitted, the upgraded connector halts on it after the restart. Older + versions delivered such events with zero values. + + ### MySQL User Privileges: + + For Snapshot and CDC modes, the following privileges are required: + + - SELECT + - LOCK TABLES + - RELOAD + - REPLICATION CLIENT + - REPLICATION SLAVE + version: v0.4.0 + author: Meroxa, Inc. + source: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: tables + description: |- + Represents the tables to read from. + - By default, no tables are included, but can be modified by adding a comma-separated string of regex patterns. + - They are applied in the order that they are provided, so the final regex supersedes all previous ones. + - To include all tables, use "*". You can then filter that list by adding a comma-separated string of regex patterns. + - To set an "include" regex, add "+" or nothing in front of the regex. + - To set an "exclude" regex, add "-" in front of the regex. + - e.g. "-.*meta$, wp_postmeta" will exclude all tables ending with "meta" but include the table "wp_postmeta". + type: string + default: "" + validations: + - type: required + value: "" + - name: cdc.disableLogs + description: Disables verbose cdc driver logs. + type: bool + default: "" + validations: [] + - name: snapshot.enabled + description: Controls whether the snapshot is done. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Limits how many rows should be retrieved on each database fetch on snapshot mode. + type: int + default: "10000" + validations: [] + - name: snapshot.unsafe + description: 'Removed. The unsafe snapshot no longer exists: true fails validation with a migration message, false is accepted and ignored. Tables without a primary key need tableConfig.
.sortingColumn.' + type: bool + default: "" + validations: [] + - name: tableConfig.*.sortingColumn + description: |- + Allows to force using a custom column to sort the snapshot. The column must be + NOT NULL and the only column of a primary key or unique index. + type: string + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "10000" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "3000" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/.metadata.yaml new file mode 100644 index 0000000..d99a61d --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:24.637701684Z +commitSHA: 891cb224d33b1632b962691687207ba679db3330 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/connector.yaml new file mode 100644 index 0000000..08c118a --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-mysql@v0.6.0/connector.yaml @@ -0,0 +1,572 @@ +version: "1.0" +specification: + name: mysql + summary: A Conduit Connector for MySQL + description: |- + ## Source + + A source connector pulls data from an external resource and pushes it to + downstream resources via Conduit. + + ### Snapshot mode + + Snapshot mode is the first stage of the source sync process. It reads all rows + from the configured tables as record snapshots. + + In snapshot mode, the record payload consists of + [opencdc.StructuredData](https://conduit.io/docs/using/opencdc-record#structured-data), + with each key being a column and each value being that column's value. + + ### Change Data Capture mode + + When the connector switches to CDC mode, it starts streaming changes from the + obtained position at the start of the snapshot. It uses the row-based binlog format + to capture detailed changes at the individual row level. + + ### Tables without a primary key + + The snapshot reads each table in key order and records the last key read in the + position, so it can resume exactly where it stopped and read a consistent view. + That needs a primary key, or a column you name with + `tableConfig.
.sortingColumn`. If a table has neither, the connector + fails to start with error `mysql.snapshot.table_without_key`, naming the table + and the config path `tableConfig.
.sortingColumn`. To fix it, do one of: + + - add a primary key to the table; + - set `tableConfig.
.sortingColumn` to a column that is `NOT NULL` and the + only column of a primary key or unique index. Anything else is rejected at + start with `mysql.snapshot.sorting_column_invalid`, because duplicate or NULL + values can make the snapshot skip rows; + - exclude the table. With a pattern list, a later `-` rule removes tables from an + earlier match, for example `tables: "*,-^audit_log$"` snapshots everything + except `audit_log`. With an explicit list, remove the table from it; + - set `snapshot.enabled: false` to stream changes only. Rows that already exist + are then not copied. CDC works for tables without a primary key; their record + keys are derived from the binlog position. + + The key and sorting-column checks run only when a snapshot is about to run. A + pipeline restarting in CDC mode is not affected. + + #### Migrating from `snapshot.unsafe` + + The `snapshot.unsafe` setting has been removed. It snapshotted keyless tables + with `LIMIT`/`OFFSET`, recorded no position (so every restart began again from + zero), and could skip or repeat rows when the table changed during the + snapshot. In practice it also applied without the setting: a keyless table was + snapshotted this way even when `snapshot.unsafe` was not set. + + - `snapshot.unsafe: true` now fails configuration validation with error + `mysql.config.unsafe_snapshot_removed`, **including for pipelines that are + already in CDC mode**: validation does not look at the position. Remove the + setting before upgrading. + - `snapshot.unsafe: false` is accepted and ignored. + - After upgrading, a pipeline that still has a keyless table and will run a + snapshot fails to start with `mysql.snapshot.table_without_key` until you use + one of the options above. + + ### Schema + + The source connector uses [avro](https://avro.apache.org/docs/1.11.1/specification/) to decode mysql rows. Here's the MySQL datatype to avro datatype equivalence that the connector uses: + + | MySQL Type | Avro Type | + | ---------- | --------- | + | TINYINT | int | + | SMALLINT | int | + | MEDIUMINT | int | + | INT | int | + | BIGINT | long | + | DECIMAL | double | + | NUMERIC | double | + | FLOAT | double | + | DOUBLE | double | + | BIT | bytes | + | CHAR | string | + | VARCHAR | string | + | TINYTEXT | string | + | TEXT | string | + | MEDIUMTEXT | string | + | LONGTEXT | string | + | BINARY | bytes | + | VARBINARY | bytes | + | TINYBLOB | bytes | + | BLOB | bytes | + | MEDIUMBLOB | bytes | + | LONGBLOB | bytes | + | DATE | string | + | TIME | string | + | DATETIME | string | + | TIMESTAMP | string | + | YEAR | long | + | ENUM | string | + | SET | string | + | JSON | string | + + ### Record structure + + Records produced by the MySQL source connector contain the following [opencdc record structure](https://conduit.io/docs/using/opencdc-record): + + * **Operation**: Indicates the type of change (`create`, `update`, `delete`, `snapshot`). + * **Payload**: + * `Before`: (Only present on CDC `update` operations) `opencdc.StructuredData` representing the row state before the change. + * `After`: `opencdc.StructuredData` representing the row state after the change (or the current state for `snapshot` and `create`). + * **Key**: Identifies the specific row. See Snapshot/CDC sections below for details. + * **Position**: Represents the point in the data stream. It's a JSON object containing *either* a `snapshot_position` field *or* a `cdc_position` field, structured as described below. + * **Metadata**: Contains standard OpenCDC fields plus: + * `mysql.server.id`: (CDC only) The originating MySQL server ID from the replication event header. + * [Key](https://conduit.io/docs/using/opencdc-record/#opencdckeyschema) and [payload](https://conduit.io/docs/using/opencdc-record/#opencdcpayloadschema) schema registry data. + + #### Snapshot Records + + * **Operation**: `snapshot`. + * **Payload `After`**: `opencdc.StructuredData` with all column values. + * **Key**: `opencdc.StructuredData` using the primary key columns (or the configured `tableConfig.
.sortingColumn`) and their values. + * **Position (`snapshot_position` field)**: A JSON object containing: + * `snapshots`: (object) Maps table names to their specific snapshot position object. + * *(Single Primary Key Table)*: Contains `last_read` (any) and `snapshot_end` (any). + * *(Multiple Primary Key Table)*: Contains an array of objects, each with `key_name` (string), `last_read` (any), and `snapshot_end` (any). + + #### CDC Records + + * **Operation**: Either `create`, `update` or `delete`. + * **Key**: + * With Primary Key(s): `opencdc.StructuredData` using primary key columns and values (from the `After` state). + * Without Primary Key(s): `opencdc.RawData` string `"_"`. + * **Payload**: + * `Before`: (For `update` only) `opencdc.StructuredData` with pre-update column values. + * `After`: `opencdc.StructuredData` with post-change column values (for `create`, `update`) or pre-deletion values (for `delete`). + * **Position (`cdc_position` field)**: Encodes the binlog location in a JSON object with the following fields. + * `name`: (string) Binlog file name. + * `pos`: (uint32) Position within the binlog file. + * `prev`: (object, optional) Position of the preceding event, containing `name` (string) and `pos` (uint32). Omitted if not applicable. + * `idx`: (int, optional) Row index within a potentially multi-row MySQL replication event. Omitted if zero or not applicable. + + ## Destination + + The MySQL destination takes a slice of `opencdc.Record` and writes them in batches to MySQL. It will use the `opencdc.collection` field in the metadata to determine the table to write to. + + ### Upsert Behavior + + If the target table contains a column with a unique constraint (this includes PRIMARY KEY and UNIQUE indexes), records will be upserted. Otherwise, they will be appended. Support for updating tables without unique constraints is tracked [here](https://github.com/conduitio-labs/conduit-connector-mysql/issues/66). + + If the target table already contains a record with the same key, the Destination will upsert with its current received values. Because Keys must be unique, this can overwrite and thus potentially lose data, so keys should be assigned correctly from the Source. + + If a unique key is not present in the target table, the record will be simply appended. + + With several unique indexes (including functional and prefix indexes), `ON DUPLICATE KEY UPDATE` overwrites the row matched by any of them, including that row's primary key. Functional unique indexes are read but not evaluated: the destination cannot compute their expressions, so it neither type-checks their inputs nor uses them to decide whether a record can be matched. + + ### Columns and schema changes + + Each record is written with exactly the fields in its `.Payload.After`, whatever the other records in the batch contain: + + - A field the table has no column for fails the write with `mysql.destination.unknown_column`. The destination does not create or alter tables, and it never drops a field. Add the column first, or remove the field with a processor. + - A field the record does not have is not written. An inserted row gets the column's default; an existing row keeps the column's current value. A field set to `null` writes `NULL`. + + Table and column names are quoted, so reserved words work. A collection of the form `db.table` writes to `table` in database `db`. + + **Security.** Table and column names come from the records. Quoting keeps them from changing the SQL, but a record's collection can name any database the DSN user can write to, through `db.table`. Grant the destination's user access only to the databases it should write. Quoting is only sound in character sets where no character can end in a backtick byte, so a connection using `sjis`, `cp932`, `gbk`, `gb18030` or `big5` is refused with `mysql.destination.unsafe_charset` (checked in the DSN, when the destination opens, and on the connection of every write). Use `utf8mb4`, the driver's default. + + ### Deletes + + Delete records are matched on the target table's primary key, so the table must have one: a delete for a table without a primary key fails with `mysql.destination.delete_without_primary_key` instead of removing rows. The record key must hold a non-null value for every primary-key column (`mysql.destination.key_column_missing` otherwise), either as structured data or as a single JSON object. Each value must be one scalar: a list or an object fails with `mysql.destination.key_value_not_scalar` (it would match several rows or none). Key values are converted to the type of their key column, which is read for every write, so an `ALTER TABLE` on a running pipeline is picked up without a restart. The same rules apply to the values an upsert writes into the columns of any unique index (the primary key and `UNIQUE` keys), because those values decide which row `ON DUPLICATE KEY UPDATE` overwrites: `{"id":1.5}` for a `BIGINT` key is refused instead of being rounded to 2 and overwriting row 2. A record must be fully non-null in at least one unique index, otherwise it fails with `mysql.destination.key_column_missing`: a null never conflicts, so every redelivery would insert another row. A null in one unique column is fine while another unique index identifies the row (a nullable `UNIQUE` email next to a primary key). Exceptions, which append a row on every redelivery: a null or absent `AUTO_INCREMENT` primary key, which generates a new id, and a table without a unique index. Field names are resolved to columns by the MySQL server itself (through `information_schema`), so a field names exactly the column a statement would use: `ID` names `id`, and so do characters MySQL folds (for example the Kelvin sign names `k`), while `ſ` names no column. A record with two fields that name one column (`id` and `ID`) fails with `mysql.destination.duplicate_column`. A delete for a table that does not exist fails with `mysql.destination.table_not_found`; table names are case-sensitive unless the server sets `lower_case_table_names`. + + - **Integer columns** (`TINYINT` to `BIGINT`, signed or `UNSIGNED`) take a whole number within the column's range (`5`, `5.0`, `5e0` or the string `"5"`). A fraction, a non-numeric string or a value outside the range fails with `mysql.destination.key_value_type_mismatch` instead of matching nothing or the wrong row. A boolean matches as MySQL compares it: `true` is 1, which is what a `TINYINT(1)` key needs. + - **String columns** (`CHAR`, `VARCHAR`, the `TEXT` types, `BINARY`, `VARBINARY`) take a string. An integer is sent as its decimal text and a raw JSON number as written (so `1e3` matches the row `'1e3'`), because MySQL compares a number with a string column as a double and `1000` would match `'1000'`, `'01000'`, `'1000.0'` and `' 1000'`. A float is accepted only if it is whole and below 1e15, where MySQL's text for it is the plain integer; other floats and booleans fail. + - **`ENUM` and `SET` columns** take the member name as a string. A number fails, because MySQL would compare it with the member's index. + - **`BIT(M)` columns** take a whole number from 0 to 2^M-1. + - **Other columns** (`DECIMAL`, floating point, temporal) get the value as it is; a raw JSON number keeps its literal, which MySQL compares exactly with a `DECIMAL` column. + + Integer values in a raw JSON key are matched exactly. Structured keys that reach a standalone connector over the plugin protocol have already passed through a double, so integers above 2^53 sent that way are rounded before the destination sees them ([ConduitIO/conduit#3100](https://github.com/ConduitIO/conduit/issues/3100)). A record whose operation is not create, update, delete or snapshot fails with `mysql.destination.unsupported_operation`. + + ### Atomicity and acknowledgements + + Each write is a single transaction. If any record in the write fails, nothing from that write is stored and none of its records are acknowledged; the records are redelivered after the pipeline recovers. Upserts on a primary or unique key make the redelivery idempotent. Redelivering a record whose `AUTO_INCREMENT` key is null or absent, or a record for a table with no unique key, appends another row. + + The destination sets `wait_timeout=60` on its own connections (unless the DSN sets `wait_timeout`), and the pool drops connections idle for half of it. If the connector dies in the middle of a write and the server does not see the connection close (a NAT, a proxy, a half-open TCP connection), the uncommitted transaction and its row locks end within that time instead of the server default of 8 hours, so the redelivered records do not wait on them. + + ## Delivery semantics and limits + + The source connector is in beta. This section states what it guarantees and what it does not. + + ### Delivery guarantees + + - **At-least-once.** A record is acknowledged upstream only after the destination has + acknowledged it, and the position carried on a record is what Conduit persists. After a + crash or restart you can receive records again, never fewer. Make destinations idempotent + (upsert by key). + - **Snapshot to CDC handoff.** The connector captures the binlog position at the start of + the snapshot and begins CDC from it, so changes made while the snapshot runs are delivered + after it. Rows can therefore appear twice: once as a `snapshot` record and again as a + CDC change. + - **Restart.** A restart during the snapshot resumes the snapshot from the last + acknowledged key per table. After a CDC restart, CDC resumes after the last acknowledged + row, also in the middle of a multi-row binlog event, in a later binlog event of one large + statement, and inside a compressed transaction (`binlog_transaction_compression=ON`). After + upgrading from an older version, restarts re-read the binlog file of the saved position from + its start to find the saved event, until the first record is acknowledged under the new + version. Rows are delivered again (duplicates, never a gap) in three cases, each logged as a + warning: the saved position was written right after a restart in the middle of an event (that + event is delivered again), an older version's position points inside a compressed transaction + (its binlog file is delivered again from its start), or the captured tables changed while the + saved position was inside a compressed transaction (that transaction is delivered again). + - **Ordering.** CDC records are delivered in binlog order. During the snapshot, rows are + ordered by key within a table; tables are read concurrently, so there is no ordering across + tables. + + ### Limits + + - **No GTID support.** Positions are a binlog file name and offset on the server the + connector read from. They are not portable between servers: a replica, or a replica + promoted after a failover, has different binlog files and offsets. **Failing over the + source database breaks resume.** The connector may fail to start, or may not resume at the + matching point. After a failover, treat the pipeline as needing a new snapshot: clear its + position and expect to re-read the data. GTID-based positions are not supported in this + release. + - **Tables added after the pipeline entered CDC are not snapshotted.** A snapshot runs only + on a fresh start. The position records which tables were snapshotted, and a restart checks + the configuration against it: + - If you add a table to an explicit `tables` list (plain table names), or switch + `snapshot.enabled` from `false` to `true`, the connector refuses to start with + `mysql.snapshot.tables_added_after_cdc`, naming the tables. Start a new pipeline for them, + or reset this pipeline's position to snapshot everything again (expect duplicates). + - If `tables` uses a pattern (`*`, a regex, an exclude, or an anchored name such as + `^orders$`), the connector logs one warning with the same code and then delivers the new + tables **from CDC only**: their existing rows are not snapshotted and are never delivered. + - A plain name is a regex that is not anchored, so `orders` also matches `orders_archive`. + It is still treated as an explicit list, which is the safe side. Anchor it as `^orders$` + to make it a pattern. + - A table removed from `tables` and added back later counts as added: changes made while it + was excluded were never captured. For an explicit list this means a table that is absent + at one restart and present at the next errors. + - A position written by an older version cannot be checked. The connector adopts the + configured tables as **unverified**, never as snapshotted, and logs + `mysql.snapshot.tables_unverified` on every start until the position is reset. Tables added + afterwards are detected. + - With more than 200 tables the position stores a hash of the table set instead of the + names. A change to the set then cannot be named or given a direction (a table that was only + removed also triggers it). The error says that "the configured table set changed", and + the way out is to restore the previous `tables` list or reset the position; removing tables + from the list does not clear it. + - **A key column that was retyped restarts its table's snapshot.** The position records the + type of each key column. If the saved key does not fit the column's type now (an `INT` key + column that became `VARCHAR`, or `VARCHAR` that became `DECIMAL`, whose values order + differently), the table's snapshot restarts from its first row with a warning. Rows already + delivered are delivered again; nothing is skipped. + - **Upgrading in the middle of a snapshot re-reads text, decimal and binary key tables.** + A snapshot position written by an older version does not record the key type, so a table + whose key is text, binary, `DECIMAL`, `TIME`, `ENUM`, `SET` or `BIT` cannot be checked for a + retype and restarts from its first row after the upgrade; its partial progress is re-read. + Integer, date and time keys resume where they stopped. Pipelines already in CDC are not + affected. + - **Binlog retention is your responsibility.** If the persisted position has been purged + from the server, the connector cannot resume. Keep `binlog_expire_logs_seconds` longer than + the longest outage you want to survive. + - **No heartbeat.** The connector does not send or consume heartbeat events. The position + is carried on records, so while the configured tables are quiet the persisted position does + not advance, even if the server keeps writing and rotating binlogs for other tables. A long + quiet period followed by binlog purging can leave the stored position pointing at a purged + file. + - **DDL during a running pipeline is not handled explicitly and is not tested.** Running + `ALTER TABLE` (or other schema changes) on a captured table while the snapshot or CDC is + running may produce records that do not match the schema registered earlier, or an error. + Stop the pipeline, change the schema, and verify the result before resuming. + - **Tables must be orderable for the snapshot.** See "Tables without a primary key". + - **Type mapping has known gaps.** `DECIMAL` and `NUMERIC` map to Avro `double` and can lose + precision beyond what a 64-bit float holds. SQL `NULL` is delivered as the column type's + zero value (`0`, `""`), so it cannot be told apart from a real zero. Date and time types are + delivered as strings. A full type-mapping design is pending; do not rely on exact fidelity + for these types yet. + - **`BIGINT UNSIGNED` above 2^63-1 stops the source.** The column maps to Avro `long`, which + cannot hold values above 9223372036854775807. When the snapshot or CDC reads such a value, + the source stops with `mysql.types.unsigned_overflow`, naming the table, column and value. + No record is emitted for that row and the position does not move past it. Exclude the + table, or bring the values into range, and restart. Versions before this one emitted a + wrong number in the snapshot (18446744073709551615 came out as 3474867090068222261) and + failed with an encoder error in CDC. + + ## Requirements and compatibility + + The connector is tested against MySQL v8.0. Compatibility with older versions isn't guaranteed. + + ### MySQL Server Requirements: + + - Binary Log (binlog) must be enabled. + - Binlog format must be set to ROW. + - Binlog row image must be set to FULL. + - Recommended: `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+). Without it the connector cannot + detect every schema change that happened while it was stopped; see `mysql.cdc.row_columns_mismatch` below. + - Tables must have **sortable** primary keys. + + ### Partial row images + + `binlog_row_image` is also a session variable. A writing session that sets it to `MINIMAL` or `NOBLOB` logs + only part of the row, even when the server value is `FULL`: + + - `MINIMAL`, UPDATE: the before image holds only the primary key, and the after image holds only the changed + columns (the primary key is in it only if it changed). + - `MINIMAL`, DELETE: the before image holds only the primary key. + - `MINIMAL`, INSERT: the image holds only the columns the statement names. Every column it omits is skipped, + including columns with a `DEFAULT` and nullable columns, so an ORM that leaves defaulted columns out halts on + its first insert. An INSERT that names every column does not halt. + - `NOBLOB`: `BLOB` and `TEXT` columns that an UPDATE or DELETE did not change are skipped, and so is a `BLOB` + that an INSERT omits. An INSERT that omits a non-`BLOB` column with a default is logged in full. + + A skipped column is unknown. It is not NULL and it is not the column default: the binlog carries no value for + it, and the schema default may have changed since the row was written, so the connector does not fill it in. + + The CDC source halts on the first such event instead of delivering zero values over real data. The error has + the code `mysql.cdc.row_image_skipped_columns` and names the table, the action, the binlog file and position, and + the columns that were left out. Snapshot rows are not affected. If the event sits inside a compressed + transaction (`binlog_transaction_compression=ON`) the exact position is not available and the error says so. + + The source also stops with the code `mysql.cdc.partial_json_unsupported` when a writer logs partial JSON updates + (`binlog_row_value_options=PARTIAL_JSON`), which the connector cannot read. Set the option to an empty value for + the writers. + + Two more CDC halts are resolved by resetting the position, so the recovery below (deletes) applies to them too: + + - `mysql.cdc.row_columns_mismatch`: a binlog event has a different number of values than its table has + columns, even after the connector re-read the table's columns (it does that once on a mismatch, because its + cached column list can be out of date after a DDL its parser skips, such as `ADD COLUMN ... INVISIBLE`). + The connector decodes events with the table's current columns, so an event written before an `ADD COLUMN` + or `DROP COLUMN` and read after it (the connector was stopped or lagging across the DDL) cannot be mapped. + It also happens when the connector's user cannot see every column: column privileges, or a generated + invisible primary key hidden by `show_gipk_in_create_table_and_information_schema=OFF`, which halts by + design. Make hidden columns visible first. Then restart the pipeline; if it halts again on the same event, + reset the position to snapshot again. + - `mysql.cdc.row_columns_mismatch` also covers an event whose number of values fits the table but that was + written under other columns: after a `DROP COLUMN` plus an `ADD COLUMN` (or a column changing type) ran + before the connector read the event, every value after the dropped column would land in the wrong column. + The connector compares the types the event was written with against the table's columns (by family, so + `INT` to `BIGINT` or a longer `VARCHAR` is fine) and halts on a difference. The event is not delivered yet, + so every restart halts on it again and restarting does not help: reset the position. The comparison also + covers the signedness of integer columns (`INT` to `INT UNSIGNED` would turn -5 into 4294967291) and whether + a string column is text or binary (`VARCHAR` to `BLOB`), which the server logs under every + `binlog_row_metadata` setting. The check runs only on events the connector is about to deliver: after a restart, events it reads again but delivered before the restart are dropped without it, + so an ordinary restart after a DDL does not halt on a row that was already delivered. With + `binlog_row_metadata=FULL` the event also carries its column names, and the connector compares those too; a renamed column then halts as well, because a rename + cannot be told from a drop plus an add. **Without `FULL`, a column dropped and another of the same type + family added at the same position, while the connector is stopped or lagging, is not detected, and the + values are mapped onto the new column.** `binlog_row_metadata=FULL` (MySQL 8.0.1+, MariaDB 10.5+; the default + is `MINIMAL`) closes that for events written after it is set, at the cost of a larger binlog. Stop the + pipeline before changing a captured table's columns, or set it. + - `mysql.cdc.resume_event_not_found`: on a restart, the binlog event the saved position names was not where + the position says. This should not happen; report it with the logged position, and reset the position to + continue. + + #### Recovery + + **Resuming means a re-snapshot, and a snapshot does not carry deletes.** Rows deleted at the source while the + pipeline was halted would stay in the destination. Do one of the following, for ALL captured tables, not only + the table named in the error: + + - truncate the destination tables, then clear the connector's position to re-snapshot; or + - clear the connector's position to re-snapshot, and after the snapshot has completed reconcile the destination + against the source, deletes included. + + Do not reconcile first and re-snapshot afterwards: rows deleted at the source between the reconcile and the + start of the snapshot would stay in the destination. + + 1. Stop the cause. Set `binlog_row_image = 'FULL'` for the writers, and for the server use + `SET PERSIST binlog_row_image = 'FULL'` (`SET GLOBAL` does not survive a restart). Then reconnect every + writer: existing sessions, pooled connections included, keep the value they started with. + 2. The event is already in the binlog, so every restart halts on it. Find its transaction with + `SHOW BINLOG EVENTS IN ''` (the error gives the start position of the event); with GTIDs enabled, + the `Gtid` event just before it names the GTID. + 3. Truncate the destination for all captured tables, or plan to reconcile it after the snapshot (see above). + 4. Clear the connector's position to re-snapshot. + 5. If you chose to reconcile, do it once the snapshot has completed, including deletes, for all captured tables. + + A lighter way to resume after the event is tracked in + [#212](https://github.com/ConduitIO/conduit-connector-mysql/issues/212). + + #### Upgrading + + If the binlog after the stored position already holds an event from a `MINIMAL` or `NOBLOB` session, including + an event that an older version had partly emitted, the upgraded connector halts on it after the restart. Older + versions delivered such events with zero values. + + ### MySQL User Privileges: + + For Snapshot and CDC modes, the following privileges are required: + + - SELECT + - LOCK TABLES + - RELOAD + - REPLICATION CLIENT + - REPLICATION SLAVE + version: v0.4.0 + author: Meroxa, Inc. + source: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: tables + description: |- + Represents the tables to read from. + - By default, no tables are included, but can be modified by adding a comma-separated string of regex patterns. + - They are applied in the order that they are provided, so the final regex supersedes all previous ones. + - To include all tables, use "*". You can then filter that list by adding a comma-separated string of regex patterns. + - To set an "include" regex, add "+" or nothing in front of the regex. + - To set an "exclude" regex, add "-" in front of the regex. + - e.g. "-.*meta$, wp_postmeta" will exclude all tables ending with "meta" but include the table "wp_postmeta". + type: string + default: "" + validations: + - type: required + value: "" + - name: cdc.disableLogs + description: Disables verbose cdc driver logs. + type: bool + default: "" + validations: [] + - name: snapshot.enabled + description: Controls whether the snapshot is done. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Limits how many rows should be retrieved on each database fetch on snapshot mode. + type: int + default: "10000" + validations: [] + - name: snapshot.unsafe + description: 'Removed. The unsafe snapshot no longer exists: true fails validation with a migration message, false is accepted and ignored. Tables without a primary key need tableConfig.
.sortingColumn.' + type: bool + default: "" + validations: [] + - name: tableConfig.*.sortingColumn + description: |- + Allows to force using a custom column to sort the snapshot. The column must be + NOT NULL and the only column of a primary key or unique index. + type: string + default: "" + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "10000" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: dsn + description: The connection string for the MySQL database. + type: string + default: "" + validations: + - type: required + value: "" + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: 1s + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "3000" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/.metadata.yaml new file mode 100644 index 0000000..bd18039 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:37.237727623Z +commitSHA: ee20fbcc7d4737eff2fe0d62ff4199903cc092b1 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/connector.yaml new file mode 100644 index 0000000..c046cae --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.5/connector.yaml @@ -0,0 +1,611 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: | + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Infinite Dates and Timestamps + + `date`, `timestamp` and `timestamptz` columns can hold `infinity` and + `-infinity`. The Avro date and timestamp types cannot represent them. Earlier + versions wrote them as `1970-01-02` and `1969-12-31` (dates) without any error. + + - With `logrepl.withAvroSchema: true` (the default), the source stops with the + error code `postgres.source.temporal_not_representable`, which names the + table, the column and the value. Removing the row does not help once the + change is in the WAL: set `logrepl.withAvroSchema` to `false`. + - With `logrepl.withAvroSchema: false`, the values are emitted as the strings + `"infinity"` and `"-infinity"`. + + The same applies per element of `date[]`, `timestamp[]`, `timestamptz[]` and + `numeric[]` (for `numeric[]`, `NaN`, `Infinity` and `-Infinity` elements are + emitted as strings; finite elements are unchanged). The connector has no Avro + mapping for array columns, so with the default `logrepl.withAvroSchema: true` + a table with an array column already stops with a schema error before any + record is emitted. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + With the default `logrepl.withAvroSchema: true` and the default + `REPLICA IDENTITY`, an update that leaves a TOASTed column unchanged still stops the + source: the field is omitted, but the Avro payload schema requires it, so the record + cannot be encoded + ([#383](https://github.com/ConduitIO/conduit-connector-postgres/issues/383)). Set + `REPLICA IDENTITY FULL` on such tables. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Column type changes on a running pipeline + + The destination describes every statement before it runs it (pgx's + `describe_exec` query mode), so after `ALTER TABLE ... ALTER COLUMN ... TYPE` + the next write is typed for the new column. A value the new type cannot hold + fails the write instead of being converted. Up to v0.14.4 the destination + used pgx's default, `cache_statement`, and a running pipeline stored 5/2 in a + column that had become integer as 3, without an error (#367). + + Describing each statement costs a round trip per statement. If the tables a + pipeline writes never change type while it runs, add + `default_query_exec_mode=cache_statement` to the `url` to reuse prepared + statements as before. **Risk:** with `cache_statement` (or `cache_describe`) + a statement keeps the parameter types it was prepared with, so after an + `ALTER COLUMN ... TYPE` Postgres converts values into the new type without an + error until the destination restarts. Behind PgBouncer or another pooler that + shares prepared statements between clients, a restart is not enough, so do + not use a cache mode there. The destination logs a warning at start when the + connection settings select a cache mode. Any mode set in the URL, the + keyword/value form or a service file is kept as it is; `exec` and + `simple_protocol` never cache parameter types. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). With `default_query_exec_mode=cache_statement` in the URL, such a + destination rounds 5/2 to 3 instead (#367). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.14.5 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: URL is the connection string for the Postgres database. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + The destination describes each statement before it runs it, so a column + type change on a running pipeline is seen by the next write. Add + `default_query_exec_mode=cache_statement` to reuse prepared statements + for speed, at the risk that after an ALTER COLUMN ... TYPE values are + converted into the new type without an error until a restart (#367). + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduit.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/.metadata.yaml new file mode 100644 index 0000000..e0d3396 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:35.681811047Z +commitSHA: df7230f322b94c3850152aee7fb3fba26ffc1564 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/connector.yaml new file mode 100644 index 0000000..7e53d55 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.14.6/connector.yaml @@ -0,0 +1,666 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: | + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + #### Resuming after the replication slot was lost + + The slot is what keeps Postgres from discarding the changes the pipeline has not + acknowledged yet. If the pipeline has a saved position and its slot no longer + exists, a new slot starts at the current WAL and every change in between is gone. + This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` + while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), + or not carried over by a failover or promotion to another server (slots are not + copied to a standby before Postgres 17, or without `failover=true`). The connector + does not carry on from there. It refuses to start with the error code + `postgres.source.slot_wal_gap`, which names the slot, the position the pipeline + stopped at and the WAL position a new slot would start at. The same applies to a + position saved during an initial snapshot. A pipeline with no position (a fresh + start) creates its slot as usual. + + To recover, first check that `logrepl.slotName` is the name the pipeline has + always used. Then re-snapshot: stop the pipeline, delete the source connector and + create it again so it has no position. With `snapshotMode: initial` every table is + read again and every row is delivered again, so the destination must tolerate + duplicates (an upsert or keyed destination does). + + To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data + loss: the skipped changes are never delivered, and the connector logs a warning + when it takes the setting. Remove it after the pipeline has resumed, or the next + lost slot is accepted with a warning only. + + **Limit of the check.** The connector detects a slot that is missing. It cannot + detect a slot that was dropped and created again under the same name by someone + else between two runs: the new slot exists and looks like an idle healthy one, + because the position does not carry a slot identity. Do not drop and recreate the + slot of a running pipeline by hand. + + #### Invalidated replication slots + + Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): + the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, + `invalidation_reason` is set), the WAL it needs is removed and it cannot be + streamed from. The connector refuses to start on it, with a fresh start or a saved + position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` + does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then + re-snapshot as above; a pipeline with no position only needs the slot dropped. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Infinite Dates and Timestamps + + `date`, `timestamp` and `timestamptz` columns can hold `infinity` and + `-infinity`. The Avro date and timestamp types cannot represent them. Earlier + versions wrote them as `1970-01-02` and `1969-12-31` (dates) without any error. + + - With `logrepl.withAvroSchema: true` (the default), the source stops with the + error code `postgres.source.temporal_not_representable`, which names the + table, the column and the value. Removing the row does not help once the + change is in the WAL: set `logrepl.withAvroSchema` to `false`. + - With `logrepl.withAvroSchema: false`, the values are emitted as the strings + `"infinity"` and `"-infinity"`. + + The same applies per element of `date[]`, `timestamp[]`, `timestamptz[]` and + `numeric[]` (for `numeric[]`, `NaN`, `Infinity` and `-Infinity` elements are + emitted as strings; finite elements are unchanged). The connector has no Avro + mapping for array columns, so with the default `logrepl.withAvroSchema: true` + a table with an array column already stops with a schema error before any + record is emitted. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + With the default `logrepl.withAvroSchema: true` and the default + `REPLICA IDENTITY`, an update that leaves a TOASTed column unchanged still stops the + source: the field is omitted, but the Avro payload schema requires it, so the record + cannot be encoded + ([#383](https://github.com/ConduitIO/conduit-connector-postgres/issues/383)). Set + `REPLICA IDENTITY FULL` on such tables. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Column type changes on a running pipeline + + The destination describes every statement before it runs it (pgx's + `describe_exec` query mode), so after `ALTER TABLE ... ALTER COLUMN ... TYPE` + the next write is typed for the new column. A value the new type cannot hold + fails the write instead of being converted. Up to v0.14.4 the destination + used pgx's default, `cache_statement`, and a running pipeline stored 5/2 in a + column that had become integer as 3, without an error (#367). + + Describing each statement costs a round trip per statement. If the tables a + pipeline writes never change type while it runs, add + `default_query_exec_mode=cache_statement` to the `url` to reuse prepared + statements as before. **Risk:** with `cache_statement` (or `cache_describe`) + a statement keeps the parameter types it was prepared with, so after an + `ALTER COLUMN ... TYPE` Postgres converts values into the new type without an + error until the destination restarts. Behind PgBouncer or another pooler that + shares prepared statements between clients, a restart is not enough, so do + not use a cache mode there. The destination logs a warning at start when the + connection settings select a cache mode. Any mode set in the URL, the + keyword/value form or a service file is kept as it is; `exec` and + `simple_protocol` never cache parameter types. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). With `default_query_exec_mode=cache_statement` in the URL, such a + destination rounds 5/2 to 3 instead (#367). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.14.6 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: URL is the connection string for the Postgres database. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.allowWALGap + description: |- + LogreplAllowWALGap lets the connector resume from a saved position when + the replication slot no longer exists and has to be created again. A new + slot starts at the current WAL, so every change between the saved + position and the slot's creation is skipped and never delivered: this + setting accepts that DATA LOSS. Leave it false (the default) and the + connector refuses to start with the error `postgres.source.slot_wal_gap` + instead. Use it only after deciding that the destination can be repaired + some other way, and remove it once the pipeline has resumed. + type: bool + default: "false" + validations: [] + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + The destination describes each statement before it runs it, so a column + type change on a running pipeline is seen by the next write. Add + `default_query_exec_mode=cache_statement` to reuse prepared statements + for speed, at the risk that after an ALTER COLUMN ... TYPE values are + converted into the new type without an error until a restart (#367). + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduit.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/.metadata.yaml new file mode 100644 index 0000000..5c137a1 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:37.997902722Z +commitSHA: efbe15e181505ca92c127789bbc4e3b32392cb30 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/connector.yaml new file mode 100644 index 0000000..fa4e6a0 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.1/connector.yaml @@ -0,0 +1,739 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + The destination reuses prepared statements (pgx's `cache_statement` query + mode, the fast mode) and checks a per-table schema fingerprint with every + batch. After `ALTER TABLE ... ALTER COLUMN ... TYPE` the fingerprint changes, + the batch is rolled back, the statement cache is cleared, and the batch is + retried with the new column types. A value the new type cannot hold exactly + fails the write instead of being converted; a widening change is written + type-exactly without an error. + + This keeps cached statements' single round trip per batch. On one dedicated + machine (benchi `destination-exec-mode`: keyed upserts into a two-column + table) describing every statement instead cost 35% fewer rows per second at + `sdk.batch.size: 1`, the default, and 16% fewer at 1000. `exec` and + `simple_protocol`, which never cache parameter types (PgBouncer in + transaction mode needs one of them), are kept when the URL sets them, as is + `describe_exec`. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.15.0 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination reuses prepared statements (cache_statement) and checks a + per-table schema fingerprint with every batch, so a column type change on + a running pipeline invalidates the cache and the next write sees the new + type — fast and correct. Set `default_query_exec_mode` to `describe_exec`, + `exec` or `simple_protocol` to override; `cache_statement` and + `cache_describe` are also guarded and safe. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/.metadata.yaml new file mode 100644 index 0000000..e49cda1 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:36.56281395Z +commitSHA: cf3bead7b1cc89eb789d59b9a5cfcd38314ae834 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/connector.yaml new file mode 100644 index 0000000..4920f40 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.2/connector.yaml @@ -0,0 +1,779 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + By default the destination describes every statement on the connection that + runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER + COLUMN ... TYPE` the next write uses the new column types. A value the new + type cannot hold exactly fails the write instead of being converted. + + The cached modes, `cache_statement` and `cache_describe`, are opt-in. They + reuse prepared statements and check a per-table schema fingerprint with + every batch: after a column type change the batch is rolled back, the + statement cache is cleared, and the batch is retried with the new types. A + fired check is logged at Info with the table name and the running count + (`schema_changes_total`). The destination warns at startup when a cached + mode is set. + + **The cached modes are safe only on a direct connection, or behind a pooler + that does not share prepared statements between clients.** A pooler that + shares them hands a statement one client prepared before a column type + change to every client that sends the same SQL; the fingerprint check + cannot see that, and values are converted without an error (5/2 stored as 3 + in a column that became `integer`). v0.17.0 and v0.17.1 used + `cache_statement` by default; see the v0.17.2 release notes. + + If pgx closes the connection after a failed batch (for example a value + that does not encode into a parameter type, on any record but the first), + the destination reconnects and, in a cached mode, retries the batch once + on an empty statement cache; nothing of a batch that fails this way was + committed. A value that does not fit fails the write, and the error names + the index of the record that holds it. + + One benchi run on a dedicated machine (`benchi/destination-exec-mode`: + keyed upserts into a two-column table) measured cached statements + *without* the fingerprint check against `describe_exec`: describing every + statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% + fewer at 1000. Cached statements with the check have not been measured + with benchi; that run is pending (the `pg-guarded` arm). The Go + microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on + a local machine; it is indicative only, not a benchi result. + + ### Connection poolers + + Behind PgBouncer, at any `max_prepared_statements`, use the default + (`describe_exec`) or `exec`. That likely applies to other poolers that + share or route prepared statements (Supavisor, PgCat, Odyssey), which have + not been tested. With `max_prepared_statements` above 0, PgBouncer shares + prepared statements between clients, so a cached mode can convert values + silently after a column type change. With `max_prepared_statements=0`, a + batch can reach a server that does not have its statement; the destination + retries batches that fail with SQLSTATE 26000 (prepared statement does not + exist) or 42P05 (prepared statement already exists) on an empty statement + cache, up to three times, but a cached mode still fails some batches + there. `describe_exec` was tested with PgBouncer 1.26 in both settings. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.17.2 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination describes every statement before it runs it + (`describe_exec`), so a column type change on a running pipeline takes + effect on the next write. Set `default_query_exec_mode` (in the URL or in + a service file) to `exec`, `simple_protocol`, `cache_statement` or + `cache_describe` to override. The cached modes save a round trip per batch + and check a per-table schema fingerprint, but they are safe only on a + direct connection or behind a pooler that does not share prepared + statements between clients. Behind PgBouncer (at any + `max_prepared_statements`) or another statement-sharing pooler, keep + `describe_exec`: a cached mode can convert values silently after a column + type change. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/.metadata.yaml new file mode 100644 index 0000000..34ec78c --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:34.684263085Z +commitSHA: 433d43c28b16ef49d44691040dd83b491e7b8813 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/connector.yaml new file mode 100644 index 0000000..0262dd9 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.3/connector.yaml @@ -0,0 +1,834 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + #### Resuming after the replication slot was lost + + The slot is what keeps Postgres from discarding the changes the pipeline has not + acknowledged yet. If the pipeline has a saved position and its slot no longer + exists, a new slot starts at the current WAL and every change in between is gone. + This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` + while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), + or not carried over by a failover or promotion to another server (slots are not + copied to a standby before Postgres 17, or without `failover=true`). The connector + does not carry on from there. It refuses to start with the error code + `postgres.source.slot_wal_gap`, which names the slot, the position the pipeline + stopped at and the WAL position a new slot would start at. The same applies to a + position saved during an initial snapshot. A pipeline with no position (a fresh + start) creates its slot as usual. + + To recover, first check that `logrepl.slotName` is the name the pipeline has + always used. Then re-snapshot: stop the pipeline, delete the source connector and + create it again so it has no position. With `snapshotMode: initial` every table is + read again and every row is delivered again, so the destination must tolerate + duplicates (an upsert or keyed destination does). + + To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data + loss: the skipped changes are never delivered, and the connector logs a warning + when it takes the setting. Remove it after the pipeline has resumed, or the next + lost slot is accepted with a warning only. + + **Limit of the check.** The connector detects a slot that is missing. It cannot + detect a slot that was dropped and created again under the same name by someone + else between two runs: the new slot exists and looks like an idle healthy one, + because the position does not carry a slot identity. Do not drop and recreate the + slot of a running pipeline by hand. + + #### Invalidated replication slots + + Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): + the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, + `invalidation_reason` is set), the WAL it needs is removed and it cannot be + streamed from. The connector refuses to start on it, with a fresh start or a saved + position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` + does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then + re-snapshot as above; a pipeline with no position only needs the slot dropped. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + By default the destination describes every statement on the connection that + runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER + COLUMN ... TYPE` the next write uses the new column types. A value the new + type cannot hold exactly fails the write instead of being converted. + + The cached modes, `cache_statement` and `cache_describe`, are opt-in. They + reuse prepared statements and check a per-table schema fingerprint with + every batch: after a column type change the batch is rolled back, the + statement cache is cleared, and the batch is retried with the new types. A + fired check is logged at Info with the table name and the running count + (`schema_changes_total`). The destination warns at startup when a cached + mode is set. + + **The cached modes are safe only on a direct connection, or behind a pooler + that does not share prepared statements between clients.** A pooler that + shares them hands a statement one client prepared before a column type + change to every client that sends the same SQL; the fingerprint check + cannot see that, and values are converted without an error (5/2 stored as 3 + in a column that became `integer`). v0.17.0 and v0.17.1 used + `cache_statement` by default; see the v0.17.2 release notes. + + If pgx closes the connection after a failed batch (for example a value + that does not encode into a parameter type, on any record but the first), + the destination reconnects and, in a cached mode, retries the batch once + on an empty statement cache; nothing of a batch that fails this way was + committed. A value that does not fit fails the write, and the error names + the index of the record that holds it. + + One benchi run on a dedicated machine (`benchi/destination-exec-mode`: + keyed upserts into a two-column table) measured cached statements + *without* the fingerprint check against `describe_exec`: describing every + statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% + fewer at 1000. Cached statements with the check have not been measured + with benchi; that run is pending (the `pg-guarded` arm). The Go + microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on + a local machine; it is indicative only, not a benchi result. + + ### Connection poolers + + Behind PgBouncer, at any `max_prepared_statements`, use the default + (`describe_exec`) or `exec`. That likely applies to other poolers that + share or route prepared statements (Supavisor, PgCat, Odyssey), which have + not been tested. With `max_prepared_statements` above 0, PgBouncer shares + prepared statements between clients, so a cached mode can convert values + silently after a column type change. With `max_prepared_statements=0`, a + batch can reach a server that does not have its statement; the destination + retries batches that fail with SQLSTATE 26000 (prepared statement does not + exist) or 42P05 (prepared statement already exists) on an empty statement + cache, up to three times, but a cached mode still fails some batches + there. `describe_exec` was tested with PgBouncer 1.26 in both settings. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.17.3 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.allowWALGap + description: |- + LogreplAllowWALGap lets the connector resume from a saved position when + the replication slot no longer exists and has to be created again. A new + slot starts at the current WAL, so every change between the saved + position and the slot's creation is skipped and never delivered: this + setting accepts that DATA LOSS. Leave it false (the default) and the + connector refuses to start with the error `postgres.source.slot_wal_gap` + instead. Use it only after deciding that the destination can be repaired + some other way, and remove it once the pipeline has resumed. + type: bool + default: "false" + validations: [] + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination describes every statement before it runs it + (`describe_exec`), so a column type change on a running pipeline takes + effect on the next write. Set `default_query_exec_mode` (in the URL or in + a service file) to `exec`, `simple_protocol`, `cache_statement` or + `cache_describe` to override. The cached modes save a round trip per batch + and check a per-table schema fingerprint, but they are safe only on a + direct connection or behind a pooler that does not share prepared + statements between clients. Behind PgBouncer (at any + `max_prepared_statements`) or another statement-sharing pooler, keep + `describe_exec`: a cached mode can convert values silently after a column + type change. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/.metadata.yaml new file mode 100644 index 0000000..8adfe45 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:33.697413819Z +commitSHA: 2edf7795f8c5b5c08d1f70913df6119fe0f3a072 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/connector.yaml new file mode 100644 index 0000000..273cb7c --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.4/connector.yaml @@ -0,0 +1,834 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + #### Resuming after the replication slot was lost + + The slot is what keeps Postgres from discarding the changes the pipeline has not + acknowledged yet. If the pipeline has a saved position and its slot no longer + exists, a new slot starts at the current WAL and every change in between is gone. + This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` + while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), + or not carried over by a failover or promotion to another server (slots are not + copied to a standby before Postgres 17, or without `failover=true`). The connector + does not carry on from there. It refuses to start with the error code + `postgres.source.slot_wal_gap`, which names the slot, the position the pipeline + stopped at and the WAL position a new slot would start at. The same applies to a + position saved during an initial snapshot. A pipeline with no position (a fresh + start) creates its slot as usual. + + To recover, first check that `logrepl.slotName` is the name the pipeline has + always used. Then re-snapshot: stop the pipeline, delete the source connector and + create it again so it has no position. With `snapshotMode: initial` every table is + read again and every row is delivered again, so the destination must tolerate + duplicates (an upsert or keyed destination does). + + To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data + loss: the skipped changes are never delivered, and the connector logs a warning + when it takes the setting. Remove it after the pipeline has resumed, or the next + lost slot is accepted with a warning only. + + **Limit of the check.** The connector detects a slot that is missing. It cannot + detect a slot that was dropped and created again under the same name by someone + else between two runs: the new slot exists and looks like an idle healthy one, + because the position does not carry a slot identity. Do not drop and recreate the + slot of a running pipeline by hand. + + #### Invalidated replication slots + + Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): + the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, + `invalidation_reason` is set), the WAL it needs is removed and it cannot be + streamed from. The connector refuses to start on it, with a fresh start or a saved + position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` + does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then + re-snapshot as above; a pipeline with no position only needs the slot dropped. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + By default the destination describes every statement on the connection that + runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER + COLUMN ... TYPE` the next write uses the new column types. A value the new + type cannot hold exactly fails the write instead of being converted. + + The cached modes, `cache_statement` and `cache_describe`, are opt-in. They + reuse prepared statements and check a per-table schema fingerprint with + every batch: after a column type change the batch is rolled back, the + statement cache is cleared, and the batch is retried with the new types. A + fired check is logged at Info with the table name and the running count + (`schema_changes_total`). The destination warns at startup when a cached + mode is set. + + **The cached modes are safe only on a direct connection, or behind a pooler + that does not share prepared statements between clients.** A pooler that + shares them hands a statement one client prepared before a column type + change to every client that sends the same SQL; the fingerprint check + cannot see that, and values are converted without an error (5/2 stored as 3 + in a column that became `integer`). v0.17.0 and v0.17.1 used + `cache_statement` by default; see the v0.17.2 release notes. + + If pgx closes the connection after a failed batch (for example a value + that does not encode into a parameter type, on any record but the first), + the destination reconnects and, in a cached mode, retries the batch once + on an empty statement cache; nothing of a batch that fails this way was + committed. A value that does not fit fails the write, and the error names + the index of the record that holds it. + + One benchi run on a dedicated machine (`benchi/destination-exec-mode`: + keyed upserts into a two-column table) measured cached statements + *without* the fingerprint check against `describe_exec`: describing every + statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% + fewer at 1000. Cached statements with the check have not been measured + with benchi; that run is pending (the `pg-guarded` arm). The Go + microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on + a local machine; it is indicative only, not a benchi result. + + ### Connection poolers + + Behind PgBouncer, at any `max_prepared_statements`, use the default + (`describe_exec`) or `exec`. That likely applies to other poolers that + share or route prepared statements (Supavisor, PgCat, Odyssey), which have + not been tested. With `max_prepared_statements` above 0, PgBouncer shares + prepared statements between clients, so a cached mode can convert values + silently after a column type change. With `max_prepared_statements=0`, a + batch can reach a server that does not have its statement; the destination + retries batches that fail with SQLSTATE 26000 (prepared statement does not + exist) or 42P05 (prepared statement already exists) on an empty statement + cache, up to three times, but a cached mode still fails some batches + there. `describe_exec` was tested with PgBouncer 1.26 in both settings. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.17.4 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.allowWALGap + description: |- + LogreplAllowWALGap lets the connector resume from a saved position when + the replication slot no longer exists and has to be created again. A new + slot starts at the current WAL, so every change between the saved + position and the slot's creation is skipped and never delivered: this + setting accepts that DATA LOSS. Leave it false (the default) and the + connector refuses to start with the error `postgres.source.slot_wal_gap` + instead. Use it only after deciding that the destination can be repaired + some other way, and remove it once the pipeline has resumed. + type: bool + default: "false" + validations: [] + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination describes every statement before it runs it + (`describe_exec`), so a column type change on a running pipeline takes + effect on the next write. Set `default_query_exec_mode` (in the URL or in + a service file) to `exec`, `simple_protocol`, `cache_statement` or + `cache_describe` to override. The cached modes save a round trip per batch + and check a per-table schema fingerprint, but they are safe only on a + direct connection or behind a pooler that does not share prepared + statements between clients. Behind PgBouncer (at any + `max_prepared_statements`) or another statement-sharing pooler, keep + `describe_exec`: a cached mode can convert values silently after a column + type change. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/.metadata.yaml new file mode 100644 index 0000000..1fbf33e --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:32.71414176Z +commitSHA: 15a0865b3170bab1c0b87369fa0f5c5cac2f5a5e diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/connector.yaml new file mode 100644 index 0000000..9838b1b --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.17.5/connector.yaml @@ -0,0 +1,1020 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + #### Resuming after the replication slot was lost + + The slot is what keeps Postgres from discarding the changes the pipeline has not + acknowledged yet. If the pipeline has a saved position and its slot no longer + exists, a new slot starts at the current WAL and every change in between is gone. + This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` + while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), + or not carried over by a failover or promotion to another server (slots are not + copied to a standby before Postgres 17, or without `failover=true`). The connector + does not carry on from there. It refuses to start with the error code + `postgres.source.slot_wal_gap`, which names the slot, the position the pipeline + stopped at and the WAL position a new slot would start at. The same applies to a + position saved during an initial snapshot. A pipeline with no position (a fresh + start) creates its slot as usual. + + To recover, first check that `logrepl.slotName` is the name the pipeline has + always used. Then re-snapshot: stop the pipeline, delete the source connector and + create it again so it has no position. With `snapshotMode: initial` every table is + read again and every row is delivered again, so the destination must tolerate + duplicates (an upsert or keyed destination does). + + To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data + loss: the skipped changes are never delivered, and the connector logs a warning + when it takes the setting. Remove it after the pipeline has resumed, or the next + lost slot is accepted with a warning only. + + #### Resuming on a replication slot that was replaced + + A slot dropped and created again under the same name exists and is healthy, but it + starts at the WAL of its creation, so the changes between the saved position and + then are gone just the same. Postgres gives a slot no identity to tell it from the + original, so the connector keeps one itself (since v0.17.5). Every position carries + a random slot identity, and the connector writes it into the WAL as a logical + decoding message under the prefix `conduit.postgres.slot_identity` (a beacon). A + beacon also names a WAL position before which the pipeline needed nothing more when + it was written: every change committed before it had been delivered and acked (or, + for the beacon written when a run opens the slot, the slot position that run + checked). The connector never advances an idle slot past that position of the last + beacon it received, so its own slot always still holds a beacon that covers it. On + a resume whose slot is past the saved position, the connector reads the slot without + consuming it (`pg_logical_slot_peek_binary_changes`) and looks for a beacon written + after the slot's `confirmed_flush_lsn` whose position is at or past it. A slot that + holds none is refused with the error code `postgres.source.slot_replaced`, which + names the slot, the saved position and the slot's `confirmed_flush_lsn`. The same + refusal covers the pipeline's own slot when another client advanced or consumed it + (`pg_replication_slot_advance`, `pg_logical_slot_get_changes`) past changes the + pipeline had not delivered, including changes the pipeline had received but not + acked when it stopped. A slot another client moved only over changes the pipeline + had already delivered and acked loses nothing and is accepted. A slot swapped between the check (or, on a fresh start, its creation) and the + start of streaming is refused once streaming holds it, also after a snapshot of hours. + A beacon is written only while this pipeline's own stream holds the slot (or, before + streaming starts, while the slot is idle and where the pipeline checked it), so a beacon + can never land in a slot that replaced it. Recover as from a lost slot: re-snapshot, or + accept the loss with `logrepl.allowWALGap: true` for one start. + + The check also refuses a position written on another WAL history, with + `postgres.source.wal_history_changed`: every position names the cluster's system + identifier and timeline, so a different server at the same address, a point-in-time + recovery or failover that left the position's timeline before the position, a restore + to an earlier timeline, and a server whose WAL is behind the position (a restored backup, + snapshot or VM image) are refused instead of resuming at LSNs that now name other + changes. A restore on the same timeline whose new WAL has already passed the position + when the pipeline starts is caught by the position's transaction: every position also + names the xid and commit time of the transaction it was taken in (for a schema drift + marker, of the transaction it halted before), and a resume whose slot is at or below + the position checks that the slot still decodes that transaction, with the same xid and + commit time, at that commit LSN. A position written before v0.17.5 names no xid; the + check then requires a transaction committing at its commit LSN. On Postgres 15+, a + publication or row filter changed since the position can hide the transaction and + refuse a database that was not restored; start once with `logrepl.allowWALGap: true` + then. Re-snapshot pipelines after restoring their source database. + + What it needs and what it costs: + + - The connector's role must be able to call `pg_logical_emit_message`, which + Postgres grants to `PUBLIC` by default. If it was revoked, the connector refuses to + start with `postgres.source.slot_beacon_failed`; grant it back with + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text) TO ` + (Postgres 14 to 16) or + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text, boolean) TO ` + (Postgres 17+). Peeking needs `REPLICATION`, which the connector already needs. + - A beacon holds a random nonce, a WAL position and an HMAC-SHA256 made with a secret + key that exists only in the pipeline's position (Conduit's position store). The key + never reaches the database or a log (logs show an 8-digit fingerprint), so a role that + can call `pg_logical_emit_message` cannot forge a beacon, and a genuine one copied into + a replaced slot is refused. Treat the position store as sensitive. A beacon holds no + row data and no configuration. + - Hardening: `pg_logical_emit_message` lets any role that can connect write messages into + the WAL. Consider `REVOKE EXECUTE ON FUNCTION FROM PUBLIC` together + with the `GRANT` to the connector's role; the connector logs + `postgres.source.slot_beacon_public` at start while PUBLIC still has it. + - **Who can read the key.** Records carry their positions, Conduit hands them to + destinations, and its API returns the source's position (`sourceState.position`). So + the key can be read wherever records or that API are, for example in a Kafka topic of + OpenCDC records. Forging a beacon with it still needs the rights to drop and recreate + the slot (`REPLICATION` or superuser) and to write into the WAL. + - `logrepl.allowWALGap` gives the slot it accepts a new key. **Remove `allowWALGap` only + after a record has been delivered**: until a position with the new key is saved, a + restart from the old position is refused again, so an attempt that created the slot and + failed before saving never passes for the original. On an idle source that can take a + while; write a row to a captured table to get a record through. + - Other logical consumers of the database that decode messages, such as Debezium with + messages enabled, see the beacons; Debezium can filter them with + `message.prefix.exclude.list`. + - One small transaction per start, and at most one per status interval (10 seconds) + while the pipeline is idle, after it acked records or once the server has written at + least 512 bytes of WAL since the last beacon. An idle database stays idle. An idle + slot reaches the WAL end as of the last beacon about two status intervals after the + last ack (the beacon itself, and WAL written after it, stay until the next one). Beacons commit + with `synchronous_commit = local`, so a synchronous standby that is down does not block + them. + - If beacons cannot be written while the pipeline runs (the connector logs + `postgres.source.slot_beacon_unavailable` with `retained_wal_bytes`), the idle slot is + held at the last beacon for at most `logrepl.slotIdentity.beaconFailureTimeout` + (default 5 minutes; the WAL held back is at most that time's worth). Then the slot + advances without beacons, so its WAL cannot fill the disk, and the connector logs the + same code as an error. Until a beacon is written and delivered again, a restart is + refused with `slot_replaced`. The connector keeps trying: fix the cause (usually the + `GRANT` above) while the pipeline runs, and it recovers on its own (it logs that the + slot can be proven again). If the pipeline was stopped in that state, start it once + with `logrepl.allowWALGap: true`. + - The check reads the slot from its `restart_lsn`; a long-running transaction can hold + that far back and make it slow, and so can a large backlog: it reads as far as it must, + never giving up early. `logrepl.slotIdentity.checkTimeout` (default 10 minutes) bounds + it; a check that times out or cannot read the slot refuses the start with + `postgres.source.slot_identity_check_failed`, which is retried. Raise the timeout, or + start once with `logrepl.allowWALGap: true` to take the slot unproven. + - Postgres 13 cannot send logical decoding messages to the connector, and a standby + cannot write them. There positions carry no identity and the check is the one before + v0.17.5: the connector logs `postgres.source.slot_identity_unsupported` and resumes on + a slot past the position. A position that does carry an identity (written on a + primary) is never accepted unproven there: it is refused with + `postgres.source.slot_identity_unprovable`. A slot on a standby is a slot of the + standby, never the primary's, even when it can decode the primary's beacons. + + Upgrading from v0.17.4 or earlier: + + - **Before the upgrade**, check that the connector's role may call + `pg_logical_emit_message` (only databases that revoked it from PUBLIC are affected): + `SELECT has_function_privilege('', 'pg_logical_emit_message(boolean, text, text, boolean)', 'EXECUTE');` + on Postgres 17+, or with `(boolean, text, text)` on 14 to 16. If it returns false, + grant it, or the first start fails with `postgres.source.slot_beacon_failed`. + - A saved position from those versions has no slot identity. If the slot is not past + it, it is proven by the position alone. Otherwise (the usual case, since older + versions advance an idle slot to the WAL end) the connector cannot tell whether the + slot was replaced before the upgrade. It takes the slot over and logs + `postgres.source.slot_identity_unverified` with `unproven_wal_bytes`, the stretch of + WAL nothing proves. **Protection begins at the first record saved after the + upgrade**; until then a restart adopts the slot again with the same warning. + - Such a position also does not name the WAL history it was written on, so the first + start logs `postgres.source.wal_history_unverified` (with a fingerprint of the server's + system identifier and its timeline): a restore, point-in-time recovery or another server + at the same address before the upgrade would go unnoticed. That protection, too, starts + once the next position is saved. + - If anyone dropped and recreated a pipeline's slot, or restored or replaced its source + database, since that pipeline last delivered a record, re-snapshot that pipeline: the + changes in between may be gone, and nothing can tell after the fact. + + Failover (Postgres 17+, `failover = true` slots synchronized to a standby): the + identity survives a promotion when the primary lists the standby's physical slot in + `synchronized_standby_slots`, the setting Postgres requires for a failover that keeps + logical consumers consistent. Without it the standby can lag behind the beacon the + slot was advanced to, and the first start after a promotion can be refused with + `postgres.source.slot_replaced` (no data is lost; check the slot and start once with + `logrepl.allowWALGap: true`). After a promotion, set `synchronized_standby_slots` on + the new primary to slots that exist there: decoding a failover slot waits for every + slot it names. + + After a `pg_upgrade`: the new cluster can have another system identifier, and the + migrated slot is a new slot, so the start is refused with + `postgres.source.wal_history_changed` or `postgres.source.slot_replaced`. pg_upgrade + migrates logical slots only once they decoded all WAL. If the pipeline had delivered + every change before the upgrade, nothing is lost: start once with + `logrepl.allowWALGap: true` (the warning says `WAL HISTORY CHANGE ACCEPTED`), and remove + it after a record has been delivered. Otherwise re-snapshot. + + Moving the slot by hand: `pg_upgrade` (which recreates logical slots), a manual + `pg_replication_slot_advance`, and a rollback to v0.17.4 or earlier that ran while + the pipeline was idle all move the slot past the last beacon. The next start is + refused with `postgres.source.slot_replaced`. When you know nothing was skipped, + start once with `logrepl.allowWALGap: true` and remove it after the pipeline resumed. + `pg_upgrade` also refuses to migrate a slot that has not decoded all WAL, and the + latest beacon is always ahead of the slot. Advance the stopped pipeline's slot with + `pg_replication_slot_advance` before the upgrade, and only once the pipeline has + delivered every change to the destination. + + #### Invalidated replication slots + + Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): + the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, + `invalidation_reason` is set), the WAL it needs is removed and it cannot be + streamed from. The connector refuses to start on it, with a fresh start or a saved + position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` + does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then + re-snapshot as above; a pipeline with no position only needs the slot dropped. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. The advance moved the slot past the pipeline's saved position, + so the connector can refuse it with `postgres.source.slot_replaced` (see "Resuming + on a replication slot that was replaced"). If it does, start it once with + `logrepl.allowWALGap: true`, and remove the setting once it runs. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + By default the destination describes every statement on the connection that + runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER + COLUMN ... TYPE` the next write uses the new column types. A value the new + type cannot hold exactly fails the write instead of being converted. + + The cached modes, `cache_statement` and `cache_describe`, are opt-in. They + reuse prepared statements and check a per-table schema fingerprint with + every batch: after a column type change the batch is rolled back, the + statement cache is cleared, and the batch is retried with the new types. A + fired check is logged at Info with the table name and the running count + (`schema_changes_total`). The destination warns at startup when a cached + mode is set. + + **The cached modes are safe only on a direct connection, or behind a pooler + that does not share prepared statements between clients.** A pooler that + shares them hands a statement one client prepared before a column type + change to every client that sends the same SQL; the fingerprint check + cannot see that, and values are converted without an error (5/2 stored as 3 + in a column that became `integer`). v0.17.0 and v0.17.1 used + `cache_statement` by default; see the v0.17.2 release notes. + + If pgx closes the connection after a failed batch (for example a value + that does not encode into a parameter type, on any record but the first), + the destination reconnects and, in a cached mode, retries the batch once + on an empty statement cache; nothing of a batch that fails this way was + committed. A value that does not fit fails the write, and the error names + the index of the record that holds it. + + One benchi run on a dedicated machine (`benchi/destination-exec-mode`: + keyed upserts into a two-column table) measured cached statements + *without* the fingerprint check against `describe_exec`: describing every + statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% + fewer at 1000. Cached statements with the check have not been measured + with benchi; that run is pending (the `pg-guarded` arm). The Go + microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on + a local machine; it is indicative only, not a benchi result. + + ### Connection poolers + + Behind PgBouncer, at any `max_prepared_statements`, use the default + (`describe_exec`) or `exec`. That likely applies to other poolers that + share or route prepared statements (Supavisor, PgCat, Odyssey), which have + not been tested. With `max_prepared_statements` above 0, PgBouncer shares + prepared statements between clients, so a cached mode can convert values + silently after a column type change. With `max_prepared_statements=0`, a + batch can reach a server that does not have its statement; the destination + retries batches that fail with SQLSTATE 26000 (prepared statement does not + exist) or 42P05 (prepared statement already exists) on an empty statement + cache, up to three times, but a cached mode still fails some batches + there. `describe_exec` was tested with PgBouncer 1.26 in both settings. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.17.5 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.allowWALGap + description: |- + LogreplAllowWALGap lets the connector resume from a saved position when + the replication slot no longer exists and has to be created again, or + when the slot that exists is not the one the position was taken from (it + was dropped and created again under the same name, or another client + advanced it). Such a slot starts after the saved position, so every + change in between is skipped and never delivered: this setting accepts + that DATA LOSS. Leave it false (the default) and the connector refuses to + start with the error `postgres.source.slot_wal_gap` or + `postgres.source.slot_replaced` instead. Use it only after deciding that + the destination can be repaired some other way, and remove it once the + pipeline has resumed. + type: bool + default: "false" + validations: [] + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotIdentity.beaconFailureTimeout + description: |- + LogreplSlotIdentityBeaconFailureTimeout is how long the connector keeps + an idle replication slot from advancing past its last identity beacon + while new beacons cannot be written (#442). After it, the slot advances + without a beacon so its WAL cannot fill the disk, and the connector + logs `postgres.source.slot_beacon_unavailable` as an error. Until a + beacon is written and delivered again, a restart is refused with + `postgres.source.slot_replaced` (an outage, never a loss). The connector + keeps trying, and recovers on its own once beacons can be written. The + WAL held back meanwhile is at most what the server writes in this time. + type: duration + default: 5m + validations: [] + - name: logrepl.slotIdentity.checkTimeout + description: |- + LogreplSlotIdentityCheckTimeout bounds the replication slot identity + check at start (#442), which reads the slot without consuming it to + find the connector's identity beacon. It decodes from the slot's + restart_lsn, so a long-running transaction that holds restart_lsn far + back makes it slower; on Postgres 17+ it also waits for the standbys in + synchronized_standby_slots. When it times out the start is refused with + postgres.source.slot_identity_check_failed and retried. + type: duration + default: 10m + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination describes every statement before it runs it + (`describe_exec`), so a column type change on a running pipeline takes + effect on the next write. Set `default_query_exec_mode` (in the URL or in + a service file) to `exec`, `simple_protocol`, `cache_statement` or + `cache_describe` to override. The cached modes save a round trip per batch + and check a per-table schema fingerprint, but they are safe only on a + direct connection or behind a pooler that does not share prepared + statements between clients. Behind PgBouncer (at any + `max_prepared_statements`) or another statement-sharing pooler, keep + `describe_exec`: a cached mode can convert values silently after a column + type change. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/.metadata.yaml new file mode 100644 index 0000000..12c7bea --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:31.81989628Z +commitSHA: 50d8e81bc2e106849cd8939aa75ac9cf0197a672 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/connector.yaml new file mode 100644 index 0000000..715236a --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-postgres@v0.18.0/connector.yaml @@ -0,0 +1,1031 @@ +version: "1.0" +specification: + name: postgres + summary: Conduit connector for PostgreSQL + description: |- + ## Connection and SCRAM authentication + + Source and destination connect with the `url` setting. Over TLS with SCRAM + authentication, the connector does not use channel binding unless you ask for it: + `channel_binding=prefer`, the default of the pgx driver since 5.9, is mapped to + `disable`, which is how the driver behaved in earlier releases. Channel binding + (SCRAM-SHA-256-PLUS) fails against a server with an Ed25519 certificate and behind + a proxy that terminates TLS and passes the SCRAM exchange through. Add + `channel_binding=require` to the URL, or set `PGCHANNELBINDING=require` in the + environment of the Conduit process, to require it. The driver reads + `PGCHANNELBINDING` when the URL has no `channel_binding`. An explicit `prefer`, + in the URL or in the environment, is also mapped to `disable`; `require` and + `disable` are kept. + + ``` + postgres://user:pass@host:5432/db?sslmode=require&channel_binding=require + ``` + + ### Dialer supplied by the host + + If the process that runs the connector puts a dialer on the context (see + `github.com/conduitio/conduit-commons/dialer`), the connector opens every + network connection through it: the destination connection and its reconnects, + and for the source the pool connections, the snapshot reads, the replication + connection, and the slot and publication cleanup. Host + names in the URL are then passed to the dialer unresolved, so it decides how to + resolve them. Without a host dialer, nothing changes: the driver dials and + resolves the addresses itself. A connector setting cannot supply the dialer. + + ### Upgrading from v0.14.x: connection string parsing + + This version uses pgx 5.11, which parses connection strings like libpq does. + Most URLs are unaffected. Check yours if it relies on one of these (the full + list is in the pgx 5.11.0 changelog): + + - `+` in a query value is literal, no longer a space; encode a space as `%20`. + - If a query parameter is repeated, the last one wins (the first used to). + - An IPv6 host in a URL needs brackets: `postgres://[::1]/db`. + - In a `key=value` connection string a backslash escapes the next character, + so a Windows path must be written `sslcert=C:\\path\\to\\cert`. + - Default locations of the client certificate, key and `.pgpass` file are + resolved from `$HOME` instead of the OS account's home directory. + + ## Source + + The Postgres Source Connector connects to a database with the provided `url` and + starts creating records for each change detected in the provided tables. + + Upon starting, the source takes a snapshot of the provided tables in the database, + then switches into CDC mode. In CDC mode, the plugin reads from a buffer of CDC events. + + ### Snapshot + + When the connector first starts, snapshot mode is enabled. The connector acquires + a read-only lock on the tables, and then reads all rows of the tables into Conduit. + Once all rows in that initial snapshot are read the connector releases its lock and + switches into CDC mode. + + This behavior is enabled by default, but can be turned off by adding + `"snapshotMode": "never"` to the Source configuration. + + ### Change Data Capture + + This connector implements Change Data Capture (CDC) features for PostgreSQL by + creating a logical replication slot and a publication that listens to changes in the + configured tables. Every detected change is converted into a record. If there are no + records available, the connector blocks until a record is available or the connector + receives a stop signal. + + #### Logical Replication Configuration + + When the connector switches to CDC mode, it attempts to run the initial setup commands + to create its logical replication slot and publication. It will connect to an existing + slot if one with the configured name exists. + + The Postgres user specified in the connection URL must have sufficient privileges to + run all of these setup commands, or it will fail. + + Example pipeline configuration that's using logical replication: + + ```yaml + version: 2.2 + pipelines: + - id: pg-to-log + status: running + connectors: + - id: pg + type: source + plugin: builtin:postgres + settings: + url: "postgres://exampleuser:examplepass@localhost:5433/exampledb?sslmode=disable" + tables: "users" + cdcMode: "logrepl" + logrepl.publicationName: "examplepub" + logrepl.slotName: "exampleslot" + - id: log + type: destination + plugin: builtin:log + settings: + level: info + ``` + + :warning: When the connector or pipeline is deleted, the connector will automatically + attempt to delete the replication slot and publication. This is the default behaviour + and can be disabled by setting `logrepl.autoCleanup` to `false`. + + #### Resuming after the replication slot was lost + + The slot is what keeps Postgres from discarding the changes the pipeline has not + acknowledged yet. If the pipeline has a saved position and its slot no longer + exists, a new slot starts at the current WAL and every change in between is gone. + This happens when the slot was dropped by hand, removed by `logrepl.autoCleanup` + while the position was kept, invalidated and then dropped (`max_slot_wal_keep_size`), + or not carried over by a failover or promotion to another server (slots are not + copied to a standby before Postgres 17, or without `failover=true`). The connector + does not carry on from there. It refuses to start with the error code + `postgres.source.slot_wal_gap`, which names the slot, the position the pipeline + stopped at and the WAL position a new slot would start at. The same applies to a + position saved during an initial snapshot. A pipeline with no position (a fresh + start) creates its slot as usual. + + To recover, first check that `logrepl.slotName` is the name the pipeline has + always used. Then re-snapshot: stop the pipeline, delete the source connector and + create it again so it has no position. With `snapshotMode: initial` every table is + read again and every row is delivered again, so the destination must tolerate + duplicates (an upsert or keyed destination does). + + To accept the loss instead, set `logrepl.allowWALGap` to `true`. This is data + loss: the skipped changes are never delivered, and the connector logs a warning + when it takes the setting. Remove it after the pipeline has resumed, or the next + lost slot is accepted with a warning only. + + #### Resuming on a replication slot that was replaced + + A slot dropped and created again under the same name exists and is healthy, but it + starts at the WAL of its creation, so the changes between the saved position and + then are gone just the same. Postgres gives a slot no identity to tell it from the + original, so the connector keeps one itself (since v0.17.5). Every position carries + a random slot identity, and the connector writes it into the WAL as a logical + decoding message under the prefix `conduit.postgres.slot_identity` (a beacon). A + beacon also names a WAL position before which the pipeline needed nothing more when + it was written: every change committed before it had been delivered and acked (or, + for the beacon written when a run opens the slot, the slot position that run + checked). The connector never advances an idle slot past that position of the last + beacon it received, so its own slot always still holds a beacon that covers it. On + a resume whose slot is past the saved position, the connector reads the slot without + consuming it (`pg_logical_slot_peek_binary_changes`) and looks for a beacon written + after the slot's `confirmed_flush_lsn` whose position is at or past it. A slot that + holds none is refused with the error code `postgres.source.slot_replaced`, which + names the slot, the saved position and the slot's `confirmed_flush_lsn`. The same + refusal covers the pipeline's own slot when another client advanced or consumed it + (`pg_replication_slot_advance`, `pg_logical_slot_get_changes`) past changes the + pipeline had not delivered, including changes the pipeline had received but not + acked when it stopped. A slot another client moved only over changes the pipeline + had already delivered and acked loses nothing and is accepted. A slot swapped between the check (or, on a fresh start, its creation) and the + start of streaming is refused once streaming holds it, also after a snapshot of hours. + A beacon is written only while this pipeline's own stream holds the slot (or, before + streaming starts, while the slot is idle and where the pipeline checked it), so a beacon + can never land in a slot that replaced it. Recover as from a lost slot: re-snapshot, or + accept the loss with `logrepl.allowWALGap: true` for one start. + + The check also refuses a position written on another WAL history, with + `postgres.source.wal_history_changed`: every position names the cluster's system + identifier and timeline, so a different server at the same address, a point-in-time + recovery or failover that left the position's timeline before the position, a restore + to an earlier timeline, and a server whose WAL is behind the position (a restored backup, + snapshot or VM image) are refused instead of resuming at LSNs that now name other + changes. A restore on the same timeline whose new WAL has already passed the position + when the pipeline starts is caught by the position's transaction: every position also + names the xid and commit time of the transaction it was taken in (for a schema drift + marker, of the transaction it halted before), and a resume whose slot is at or below + the position checks that the slot still decodes that transaction, with the same xid and + commit time, at that commit LSN. A position written before v0.17.5 names no xid; the + check then requires a transaction committing at its commit LSN. On Postgres 15+, a + publication or row filter changed since the position can hide the transaction and + refuse a database that was not restored; start once with `logrepl.allowWALGap: true` + then. Re-snapshot pipelines after restoring their source database. + + What it needs and what it costs: + + - The connector's role must be able to call `pg_logical_emit_message`, which + Postgres grants to `PUBLIC` by default. If it was revoked, the connector refuses to + start with `postgres.source.slot_beacon_failed`; grant it back with + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text) TO ` + (Postgres 14 to 16) or + `GRANT EXECUTE ON FUNCTION pg_logical_emit_message(boolean, text, text, boolean) TO ` + (Postgres 17+). Peeking needs `REPLICATION`, which the connector already needs. + - A beacon holds a random nonce, a WAL position and an HMAC-SHA256 made with a secret + key that exists only in the pipeline's position (Conduit's position store). The key + never reaches the database or a log (logs show an 8-digit fingerprint), so a role that + can call `pg_logical_emit_message` cannot forge a beacon, and a genuine one copied into + a replaced slot is refused. Treat the position store as sensitive. A beacon holds no + row data and no configuration. + - Hardening: `pg_logical_emit_message` lets any role that can connect write messages into + the WAL. Consider `REVOKE EXECUTE ON FUNCTION FROM PUBLIC` together + with the `GRANT` to the connector's role; the connector logs + `postgres.source.slot_beacon_public` at start while PUBLIC still has it. + - **Who can read the key.** Records carry their positions, Conduit hands them to + destinations, and its API returns the source's position (`sourceState.position`). So + the key can be read wherever records or that API are, for example in a Kafka topic of + OpenCDC records. Forging a beacon with it still needs the rights to drop and recreate + the slot (`REPLICATION` or superuser) and to write into the WAL. + - `logrepl.allowWALGap` gives the slot it accepts a new key. **Remove `allowWALGap` only + after a record has been delivered**: until a position with the new key is saved, a + restart from the old position is refused again, so an attempt that created the slot and + failed before saving never passes for the original. On an idle source that can take a + while; write a row to a captured table to get a record through. + - Other logical consumers of the database that decode messages, such as Debezium with + messages enabled, see the beacons; Debezium can filter them with + `message.prefix.exclude.list`. + - One small transaction per start, and at most one per status interval (10 seconds) + while the pipeline is idle, after it acked records or once the server has written at + least 512 bytes of WAL since the last beacon. An idle database stays idle. An idle + slot reaches the WAL end as of the last beacon about two status intervals after the + last ack (the beacon itself, and WAL written after it, stay until the next one). Beacons commit + with `synchronous_commit = local`, so a synchronous standby that is down does not block + them. + - If beacons cannot be written while the pipeline runs (the connector logs + `postgres.source.slot_beacon_unavailable` with `retained_wal_bytes`), the idle slot is + held at the last beacon for at most `logrepl.slotIdentity.beaconFailureTimeout` + (default 5 minutes; the WAL held back is at most that time's worth). Then the slot + advances without beacons, so its WAL cannot fill the disk, and the connector logs the + same code as an error. Until a beacon is written and delivered again, a restart is + refused with `slot_replaced`. The connector keeps trying: fix the cause (usually the + `GRANT` above) while the pipeline runs, and it recovers on its own (it logs that the + slot can be proven again). If the pipeline was stopped in that state, start it once + with `logrepl.allowWALGap: true`. + - The check reads the slot from its `restart_lsn`; a long-running transaction can hold + that far back and make it slow, and so can a large backlog: it reads as far as it must, + never giving up early. `logrepl.slotIdentity.checkTimeout` (default 10 minutes) bounds + it; a check that times out or cannot read the slot refuses the start with + `postgres.source.slot_identity_check_failed`, which is retried. Raise the timeout, or + start once with `logrepl.allowWALGap: true` to take the slot unproven. + - Postgres 13 cannot send logical decoding messages to the connector, and a standby + cannot write them. There positions carry no identity and the check is the one before + v0.17.5: the connector logs `postgres.source.slot_identity_unsupported` and resumes on + a slot past the position. A position that does carry an identity (written on a + primary) is never accepted unproven there: it is refused with + `postgres.source.slot_identity_unprovable`. A slot on a standby is a slot of the + standby, never the primary's, even when it can decode the primary's beacons. + + Upgrading from v0.17.4 or earlier: + + - **Before the upgrade**, check that the connector's role may call + `pg_logical_emit_message` (only databases that revoked it from PUBLIC are affected): + `SELECT has_function_privilege('', 'pg_logical_emit_message(boolean, text, text, boolean)', 'EXECUTE');` + on Postgres 17+, or with `(boolean, text, text)` on 14 to 16. If it returns false, + grant it, or the first start fails with `postgres.source.slot_beacon_failed`. + - A saved position from those versions has no slot identity. If the slot is not past + it, it is proven by the position alone. Otherwise (the usual case, since older + versions advance an idle slot to the WAL end) the connector cannot tell whether the + slot was replaced before the upgrade. It takes the slot over and logs + `postgres.source.slot_identity_unverified` with `unproven_wal_bytes`, the stretch of + WAL nothing proves. **Protection begins at the first record saved after the + upgrade**; until then a restart adopts the slot again with the same warning. + - Such a position also does not name the WAL history it was written on, so the first + start logs `postgres.source.wal_history_unverified` (with a fingerprint of the server's + system identifier and its timeline): a restore, point-in-time recovery or another server + at the same address before the upgrade would go unnoticed. That protection, too, starts + once the next position is saved. + - If anyone dropped and recreated a pipeline's slot, or restored or replaced its source + database, since that pipeline last delivered a record, re-snapshot that pipeline: the + changes in between may be gone, and nothing can tell after the fact. + + Failover (Postgres 17+, `failover = true` slots synchronized to a standby): the + identity survives a promotion when the primary lists the standby's physical slot in + `synchronized_standby_slots`, the setting Postgres requires for a failover that keeps + logical consumers consistent. Without it the standby can lag behind the beacon the + slot was advanced to, and the first start after a promotion can be refused with + `postgres.source.slot_replaced` (no data is lost; check the slot and start once with + `logrepl.allowWALGap: true`). After a promotion, set `synchronized_standby_slots` on + the new primary to slots that exist there: decoding a failover slot waits for every + slot it names. + + After a `pg_upgrade`: the new cluster can have another system identifier, and the + migrated slot is a new slot, so the start is refused with + `postgres.source.wal_history_changed` or `postgres.source.slot_replaced`. pg_upgrade + migrates logical slots only once they decoded all WAL. If the pipeline had delivered + every change before the upgrade, nothing is lost: start once with + `logrepl.allowWALGap: true` (the warning says `WAL HISTORY CHANGE ACCEPTED`), and remove + it after a record has been delivered. Otherwise re-snapshot. + + Moving the slot by hand: `pg_upgrade` (which recreates logical slots), a manual + `pg_replication_slot_advance`, and a rollback to v0.17.4 or earlier that ran while + the pipeline was idle all move the slot past the last beacon. The next start is + refused with `postgres.source.slot_replaced`. When you know nothing was skipped, + start once with `logrepl.allowWALGap: true` and remove it after the pipeline resumed. + `pg_upgrade` also refuses to migrate a slot that has not decoded all WAL, and the + latest beacon is always ahead of the slot. Advance the stopped pipeline's slot with + `pg_replication_slot_advance` before the upgrade, and only once the pipeline has + delivered every change to the destination. + + #### Invalidated replication slots + + Postgres can invalidate a slot that fell too far behind (`max_slot_wal_keep_size`): + the slot still exists, but `wal_status` is `lost` (and, on Postgres 17+, + `invalidation_reason` is set), the WAL it needs is removed and it cannot be + streamed from. The connector refuses to start on it, with a fresh start or a saved + position, with the error code `postgres.source.slot_invalidated`. `logrepl.allowWALGap` + does not apply. Drop the slot (`SELECT pg_drop_replication_slot('')`), then + re-snapshot as above; a pipeline with no position only needs the slot dropped. + + ### Key Handling + + The connector will automatically look up the primary key column for the specified tables + and use them as the key value. If that can't be determined, the connector will return + an error. + + The table's `REPLICA IDENTITY` must carry the primary key in deletes. `DEFAULT` and + `FULL` always do. `USING INDEX` does only if the index includes the primary-key + column; otherwise Postgres sends deletes without the key, and they cannot be applied + downstream. The source refuses to open on such a table with the error code + `postgres.replica_identity.excludes_key`. Fix it with + `ALTER TABLE
REPLICA IDENTITY FULL`, or use a unique index that includes the + primary key. + + ### Before Image of Updates and Deletes + + `Payload.Before` is set only when Postgres sends the whole old row, which it does + under `REPLICA IDENTITY FULL`. Under `DEFAULT` and `USING INDEX`, Postgres sends only + the identity columns of the old row, so deletes and key-changing updates carry no + `Before`. The deleted row's key is in the record `Key`. A key-changing update carries + the new key in `Key`; the old key is not carried. If you need the old row or the old + key, set `REPLICA IDENTITY FULL` on the table. + + :warning: The Postgres destination does not delete the old row when a primary key + changes. It upserts on the new key, so a primary-key-changing `UPDATE` leaves the row + under its old key in the destination next to the new one. This happens with or without + Avro and under `REPLICA IDENTITY FULL` as well. It is a known destination bug + ([#386](https://github.com/ConduitIO/conduit-connector-postgres/issues/386)). Until it + is fixed, avoid changing primary keys on tables replicated to Postgres, or reconcile + the old rows by hand. + + ### Delete With a Missing Key + + **Symptom.** The pipeline fails and keeps failing after restarts with + `postgres.replica_identity.excludes_key: delete on table "
" (WAL LSN , in the + transaction that commits at LSN ) arrived without a value for key column ...`. + The replication slot retains WAL while it is stuck. + + **Diagnosis.** The table's `REPLICA IDENTITY` was changed while the pipeline was + running, to `USING INDEX` on an index whose key columns do not include the primary key + (columns in `INCLUDE` do not count), or the identity index was dropped. Postgres then + sends the delete without the key. Check with + `SELECT relreplident FROM pg_class WHERE oid = '
'::regclass` (`i` is + `USING INDEX`). + + **Remediation.** + + 1. Fix the identity so that new deletes carry the key: + `ALTER TABLE
REPLICA IDENTITY FULL`, or `REPLICA IDENTITY DEFAULT`, or + `REPLICA IDENTITY USING INDEX ` on a unique index that has the primary key + among its key columns. This does not repair the change already in the WAL. A restart + alone fails on it again. + 2. Stop the pipeline. Postgres refuses to read or advance a slot while a connection + uses it. + 3. Find the row. The error carries no row values, because they would end up in logs. + Read the stuck transaction from the slot instead, as a superuser or a role with + `REPLICATION`. Peeking does not consume anything. `` is the commit LSN `` + from the error with its low hex part incremented by one (`0/40C5318` becomes + `0/40C5319`); the error prints it: + + ```sql + SELECT xid, lsn, encode(data, 'escape') AS message + FROM pg_logical_slot_peek_binary_changes( + '', '', NULL, + 'proto_version', '1', 'publication_names', ''); + ``` + + Use the values of `logrepl.slotName` and `logrepl.publicationName` (defaults + `conduitslot` and `conduitpub`). + The output can start with earlier transactions that the pipeline already delivered + but Postgres has not yet been told about (the connector reports its position + periodically). They can contain the same value as the stuck delete, so do not read + them. Read only the transaction (`xid`) that contains the `D` row whose `lsn` is the + WAL LSN `` in the error. + Each row is one pgoutput message. `B` and `C` begin and commit the transaction. `R` + names a table and its columns. `I`, `U` and `D` are the changes. A `K` tuple follows + the table's object id: a 2-byte column count, then one entry per column, `n` for NULL + or `t`, a 4-byte length and the text value. For this error the only non-null columns + are those of the identity index, so the readable text is the value to look for, for + example `222` in a `D` row that shows `K ... n t ... 222 n`. Postgres only accepts a + unique index as a replica identity, so that value identifies the row in the + destination. Only tables in the publication appear, which are the tables the pipeline + captures. + 4. Delete that row from the destination yourself. The change has no key, so the pipeline + cannot do it. Then work out what else step 5 would skip. It skips every change the + peek lists before the stuck one, and the other changes of the stuck transaction. + Postgres has not been told they are done, and the pipeline may have read them + without the destination writing them before it stopped. Get the source connector's + last acknowledged position from Conduit: + `GET /v1/connectors/`, field `sourceState.position`. It is + base64 of JSON, for example + `{"version":2,"type":2,"last_lsn":"0/40845E8","tx_commit_lsn":"0/40846E8","tx_seq":1}` + (decode it with `base64 -d`). Conduit sets it only when the destination acknowledges a + record, never when the source reads one, so `last_lsn` is the WAL LSN of the last + change the destination has confirmed. If Conduit was restarted since the pipeline + stopped, it reports the last position it saved, which can be slightly older; that errs + on the safe side. Find the peek row of kind `I`, `U` or `D` whose `lsn` equals + `last_lsn`. Ignore `B` and `C` rows: a `C` row can show the same number as the first + change after it. If several rows share that `lsn` (a `COPY` or another statement + that changes many rows can do that), use `tx_seq`. It numbers the transaction's + `I`, `U`, `D` and `T` (truncate) rows in the order listed, starting at 1 after its + `B` row. `R` (relation), `Y` (type) and `O` (origin) rows are not counted. The row + with that number is the one to match, and it is an `I`, `U` or `D` row. The matched row + itself and everything listed before it are in the destination. For each change + listed after it, up to the stuck one and including the rest of the stuck transaction, + check the destination for its rows and apply any that are missing by hand (`I` and + `U` carry the full new row; `D` carries the identity columns). If no row matches, + treat every listed change as unconfirmed. A position without `last_lsn` (a pipeline + still in its snapshot) matches nothing. + 5. Skip the transaction. Use the same `` as in step 3. Writing it as a literal is + deliberate: `''::pg_lsn + 1` only works from Postgres 14. + - Postgres 11 or later: + `SELECT pg_replication_slot_advance('', '');` + - Postgres 10 has no such function. Consume the changes up to `` instead. This + skips exactly the same changes and needs no new snapshot: + `SELECT count(*) FROM pg_logical_slot_get_binary_changes('', '', NULL, 'proto_version', '1', 'publication_names', '');` + + Advancing to `` is what skips the transaction. Advancing to the change LSN + (``) or to the commit LSN `` itself does not: Postgres replays the transaction + and the pipeline fails on the same delete. + 6. Start the pipeline. The advance moved the slot past the pipeline's saved position, + so the connector can refuse it with `postgres.source.slot_replaced` (see "Resuming + on a replication slot that was replaced"). If it does, start it once with + `logrepl.allowWALGap: true`, and remove the setting once it runs. + + **Skipping the transaction skips that change, and it skips the whole transaction, + including its other changes to captured tables.** Skipping data is your decision and the + connector cannot check it for you. + + ### Unchanged TOASTed Columns + + Postgres stores large field values (`text`, `bytea`, `jsonb`, and other + variable-length types past a size threshold) out-of-line using + [TOAST](https://www.postgresql.org/docs/current/storage-toast.html). When a row is + updated but a TOASTed column is **not** changed, Postgres omits that column's value + from the logical-replication message to avoid re-transmitting large unchanged data. + + For such columns, this connector **omits the field from the record payload** rather + than emitting it as `NULL`. Emitting `NULL` would be silent data corruption — a + downstream sink cannot distinguish "the value was set to NULL" from "the value did + not change". Omission preserves that distinction: absence means "unchanged". + + What this means for your destination: + + - **Partial-update / upsert sinks** (including this connector's own Postgres + destination, which builds its `ON CONFLICT DO UPDATE SET` clause only from the + fields present in the payload) handle omission correctly — an absent field is left + untouched in the target row. + - **Full-row / full-document replace sinks** must treat an absent field as + "unchanged" and preserve the existing target value. If a sink cannot do this, set + `REPLICA IDENTITY FULL` on the source table. Under `REPLICA IDENTITY FULL` the old + row image carries every column, and this connector backfills unchanged TOASTed + values from it so the payload is always complete. + + ### Value Representation + + Values do not depend on the time zone of the machine running the connector or on the + version of the Postgres driver. The same row gives the same record everywhere, for + snapshot and CDC. + + | Postgres type | Without an Avro schema | With an Avro schema (`logrepl.withAvroSchema`, the default) | + | --- | --- | --- | + | `timestamp` | The wall clock stored in Postgres, as a time with no offset information (`2024-01-02T03:04:05Z` for `2024-01-02 03:04:05`). | `local-timestamp-micros` of the same wall clock. | + | `timestamptz` | The instant, in UTC (`Z`). | `timestamp-micros`. | + | `date` | Midnight UTC of the date. | `date`. | + | `tsvector` | Postgres text form, `'a':1 'cat':3A,4B`. | `string`, same text. | + | `infinity`, `-infinity` | The strings `infinity` and `-infinity`. | The source halts with error code `postgres.source.temporal_not_representable`. | + | Years before 1 BC or after 9999 AD | Postgres text, for example `0044-03-15 12:00:00 BC`. | As above, up to what 64-bit microseconds hold; beyond that the same error. | + | Arrays, ranges, multiranges of these | Element and bound values as above. | Not supported by the Avro schema. | + + A range or multirange is a JSON object `{"Lower":...,"Upper":...,"LowerType":105, + "UpperType":101,"Valid":true}`, and a multirange is an array of them. `LowerType` and + `UpperType` are the ASCII codes of the bound kind: `105` (`i`) inclusive, `101` (`e`) + exclusive, `85` (`U`) unbounded (the bound is `null`), `69` (`E`) empty range. Bounds + follow the rules above. Arrays of `tsmultirange`, `tstzmultirange` and `datemultirange` + are emitted as the Postgres text of the array. + + If the source halts with `postgres.source.temporal_not_representable`, set + `logrepl.withAvroSchema` to `false`. Removing the row does not help a change that is + already in the WAL, because it is read again after every restart. + + ### Numeric Columns + + A `numeric` column with a precision and scale, `numeric(p,s)`, is an Avro + `decimal(p,s)` and its values are `big.Rat`. + + A `numeric` column **without** a precision and scale can hold any value Postgres + can store, which no Avro `decimal` can. With `logrepl.withAvroSchema: true` (the + default) it is an Avro `string` holding the exact text of the value, with its + scale (`1.50` stays `1.50`), and `NaN`, `Infinity` and + `-Infinity` as those three words: **a consumer of such a column must handle + them**, a plain decimal parser will reject them. Earlier versions used `decimal(65535, 65531)`, which could not encode a + value of 10000 or more and stopped the pipeline. The first record after an + upgrade registers a new schema version for the table; consumers must read the + field as a string. This connector's destination writes the string to a `numeric` + column exactly. + + **Known issue:** a zero with a display scale reads as `0` in the snapshot and as + `0.000` (its stored text) in change data capture. The values are numerically + equal; only the text differs. Tracked in + [#391](https://github.com/ConduitIO/conduit-connector-postgres/issues/391). + + So the Go type of an unconstrained `numeric` depends on the setting: a `string` + with `logrepl.withAvroSchema: true`, a `big.Rat` with `false`. Changing a column + between `text`/`varchar` and an unconstrained numeric is accepted by the + `evolve` schema-drift policy only when `withAvroSchema` is `true` (the Avro + shape does not change); with `false` the value's type changes, so it halts. + + Without an Avro schema, a `numeric` is a `big.Rat`; `NaN`, `Infinity` and + `-Infinity` are the strings `"NaN"`, `"Infinity"` and `"-Infinity"`, and the same + applies to the elements of `numeric[]` (finite elements are unchanged). A `NULL` + stays `NULL`. + + `NaN` in a `numeric(p,s)` column (the infinities cannot be stored there) cannot + be an Avro decimal, and the connector never replaces it with `NULL` or a number: + the source stops with the error code `postgres.source.numeric_not_representable`, + which names the table, the column, the value and the row's key. To continue: + + - **Change data capture:** restart once with `logrepl.withAvroSchema: false` + from the same position. The value is delivered as a string. **Then set it + back to `true` as soon as that record has been delivered.** Without an Avro + schema a finite `numeric` is a `big.Rat`, which a standalone connector + cannot send to Conduit (#378): the next finite numeric would stop the + pipeline. Built-in pipelines are not affected. + On a standalone connector the SDK also fails the whole read batch on the + first record it cannot send, so if the NaN/Infinity record or its batch + contains any finite numeric, it is never delivered with Avro off and this + workaround does not help (#378 is the fix). While Avro is off, + JSON-serializing destinations receive a finite numeric as the string `"3/2"`. + - **Snapshot:** `UPDATE` the row to a finite value (or `NULL`) and restart. + - Removing the row, or adding a `CHECK` constraint, does not help for a change + that is already in the WAL: it is read again after every restart. Do not drop + the replication slot to get past it, that loses the position. A constraint + only keeps new bad values out. + + ### Limitations + + - **`TRUNCATE` is not propagated.** OpenCDC has no truncate operation, so a + `TRUNCATE` on a published table produces no record: rows it removed remain in + the destination. If the publication publishes `truncate` (the one the + connector creates does by default), the connector logs a `WARN` ("TRUNCATE was NOT + propagated") naming the table and the LSN, at most once a minute per table. + A restricted or user-supplied publication (for example + `publish = 'insert, update, delete'`) never sends the message, so there is + no warning and no other signal. The `suppressed` field counts the TRUNCATEs + of that table the rate limit swallowed since the previous warning; when + another table's warning evicts an expired entry that still holds a count, a + one-line summary with that count is logged. Treat the log lines as a signal, + not a precise counter: a count still pending when the process exits is + lost. Inserts, updates and deletes around the `TRUNCATE` are delivered as + usual. A configurable policy for TRUNCATE is planned. Until then, treat the + warning as a signal to reconcile the destination by hand. + + ## Destination + + The Postgres Destination takes a Conduit record and stores it using a SQL statement. + The Destination is designed to handle different payloads and keys. Because of this, + each record is individually parsed and upserted. + + ### Handling record operations + + Based on the `Operation` field in the record, the destination will either insert, + update or delete the record in the target table. Snapshot records are always inserted. + + If the target table already contains a record with the same key as a record being + inserted, the record will be updated (upserted). This can overwrite and thus potentially + lose data, so keys should be assigned correctly from the Source. + + If the target table does not contain a record with the same key as a record being + deleted, the record will be ignored. + + If there is no key, the record will be simply appended. + + ### Keys, columns and acknowledgements + + - **Upsert key.** With a structured record key (or a raw key that is a JSON object), + a create, update or snapshot record is `INSERT ... ON CONFLICT () DO + UPDATE SET` every other field of the record. The key columns must carry a primary + key or unique constraint, otherwise Postgres rejects the statement. When a record has + no field besides its key columns (a table whose columns are all key columns), the + statement is `ON CONFLICT DO NOTHING`, so a redelivery is a no-op. + - **Columns.** Each record is written with exactly its own fields. A field the table has + no column for fails the write; the destination does not create or alter tables. A + field the record lacks is not written: an insert gets the column default, an existing + row keeps its value. A create, update or snapshot record without fields fails with + `postgres.destination.payload_empty`. + - **Key values** must be one non-null scalar per key column, for upserts and deletes. A + null value fails with `postgres.destination.key_column_missing` (a delete would match + every row with a NULL there, an upsert would append a new row on every redelivery), and + a list or object fails with `postgres.destination.key_value_not_scalar` (a delete would + match several rows or none). + - **Deletes** need a key and delete the rows matching every key column. + - **Raw JSON** keys and payloads are decoded without going through `float64`: an integer + literal is an `int64` (or `uint64`), and any other number keeps its literal, so + `numeric`, `text` and `json`/`jsonb` columns store it exactly. Integer columns take a + whole value in any form (`1e3`, `7.0`) and reject a fraction; `real` and `float8` + columns store the nearest float. Structured data that arrives over the plugin protocol + has already passed through a double (ConduitIO/conduit#3100), so integers above 2^53 + sent that way are rounded before the destination sees them. + - **Names** of the table and columns are quoted as Postgres identifiers, so reserved + words, upper case and double quotes work. A name with a NUL byte or longer than 63 bytes + fails with `postgres.destination.invalid_identifier`, because Postgres would address a + different table or column. The table name is one identifier: a dot is part of the name, + not a schema separator. + - **Acknowledgements.** A write is one implicit transaction. If any statement or the + commit fails, nothing from that write is stored and no record of it is acknowledged; + the records are redelivered (at-least-once). Keyed upserts make redelivery + idempotent; keyless inserts append again. + + ### Schema-drift markers + + When the Postgres source halts on schema drift it emits a drift marker: a create + record with no key and no payload, with the metadata `postgres.schema.drift=true`. + The destination skips and acknowledges a marker without writing a row, but only + when the record's position proves the Postgres source produced it as a marker for + the table named in `postgres.schema.drift.table`. The metadata alone is not proof, + because any processor or upstream system can set it. + + - A record that carries the metadata but not a marker's position, and has a key + or a payload, is written as an ordinary record. One WARN per batch reports it. + - A record shaped like a marker (no key, no payload) without a marker's position + stops the pipeline with `postgres.destination.drift_marker_unverified`. Nothing + in that batch is written or acknowledged. + - A proven marker that a processor added a key or fields to is still skipped as + a marker, with a WARN that names the added fields. + + A marker loses its position when it passes through another system, such as Kafka + or a file, because records read from there carry that system's position. In a + Postgres to Kafka to Postgres setup, drop drift markers before the hop with a + filter processor on the `postgres.schema.drift` metadata. + + The proof relies on the engine not letting processors change a record's + position. Conduit's classic engine refuses that; the arch-v2 engine lets a + processor rewrite positions, so there a processor could forge a marker. The + forged record would be skipped, which a processor with that power could do to + any record anyway. + ### Column type changes on a running pipeline + + By default the destination describes every statement on the connection that + runs it (pgx's `describe_exec` query mode), so after `ALTER TABLE ... ALTER + COLUMN ... TYPE` the next write uses the new column types. A value the new + type cannot hold exactly fails the write instead of being converted. + + The cached modes, `cache_statement` and `cache_describe`, are opt-in. They + reuse prepared statements and check a per-table schema fingerprint with + every batch: after a column type change the batch is rolled back, the + statement cache is cleared, and the batch is retried with the new types. A + fired check is logged at Info with the table name and the running count + (`schema_changes_total`). The destination warns at startup when a cached + mode is set. + + **The cached modes are safe only on a direct connection, or behind a pooler + that does not share prepared statements between clients.** A pooler that + shares them hands a statement one client prepared before a column type + change to every client that sends the same SQL; the fingerprint check + cannot see that, and values are converted without an error (5/2 stored as 3 + in a column that became `integer`). v0.17.0 and v0.17.1 used + `cache_statement` by default; see the v0.17.2 release notes. + + If pgx closes the connection after a failed batch (for example a value + that does not encode into a parameter type, on any record but the first), + the destination reconnects and, in a cached mode, retries the batch once + on an empty statement cache; nothing of a batch that fails this way was + committed. A value that does not fit fails the write, and the error names + the index of the record that holds it. + + One benchi run on a dedicated machine (`benchi/destination-exec-mode`: + keyed upserts into a two-column table) measured cached statements + *without* the fingerprint check against `describe_exec`: describing every + statement cost 35% fewer rows per second at `sdk.batch.size: 1` and 16% + fewer at 1000. Cached statements with the check have not been measured + with benchi; that run is pending (the `pg-guarded` arm). The Go + microbenchmark `BenchmarkDestination_Write_Upsert` compares the two modes on + a local machine; it is indicative only, not a benchi result. + + ### Connection poolers + + Behind PgBouncer, at any `max_prepared_statements`, use the default + (`describe_exec`) or `exec`. That likely applies to other poolers that + share or route prepared statements (Supavisor, PgCat, Odyssey), which have + not been tested. With `max_prepared_statements` above 0, PgBouncer shares + prepared statements between clients, so a cached mode can convert values + silently after a column type change. With `max_prepared_statements=0`, a + batch can reach a server that does not have its statement; the destination + retries batches that fail with SQLSTATE 26000 (prepared statement does not + exist) or 42P05 (prepared statement already exists) on an empty statement + cache, up to three times, but a cached mode still fails some batches + there. `describe_exec` was tested with PgBouncer 1.26 in both settings. + + ### Numeric columns + + Decimal values (`big.Rat`) are sent to Postgres as exact decimal strings, and + Postgres applies the column's precision and scale itself when it stores the + value. The destination never reads or caches a column's scale, so an + `ALTER TABLE ... ALTER COLUMN ... TYPE numeric(p,s)` takes effect on the next + write without restarting the pipeline, and the table is resolved through the + connection's `search_path` like the rest of the statement. + + Postgres rounds half away from zero when a value has more fractional digits + than the column's scale, and rejects a value that exceeds the column's + precision (`numeric field overflow`). A rejected batch is not acknowledged. + + A decimal that has no finite expansion, such as 1/3, is truncated toward zero + after 1001 fractional digits before it is sent. So is a decimal that terminates + but needs more than 16383 fractional digits, which Postgres rejects on every + numeric column. Postgres allows a column scale of at most 1000, so the + truncation never changes the result of the column's rounding. An unconstrained + `numeric` column stores all 1001 digits. + + The destination no longer checks that the target column is numeric. The general + rule: any column whose text input accepts the decimal string stores it. + Postgres converts the string, and the examples below were checked on + Postgres 17.5: + + - `integer`, `smallint`, `bigint`: stored if the value is whole. A fractional + value is rejected, also on a destination that was already running when the + column was changed to an integer type (see "Column type changes on a running + pipeline"). + - `real`, `float8`: stored as the nearest binary float. + - `money`: rounded to the locale's fraction digits (1/3 is stored as `$0.33`). + - `oid`: stored if the value is a whole number (7 is stored as `7`). + - `text`: stored as the decimal string. `varchar(n)` and `char(n)`: rejected + with 22001 if the string is longer than `n`. + - `boolean`: 1 is stored as `true` and 0 as `false`; other values are rejected. + - `date`: 20261012 is stored as `2026-10-12`. + - `timestamp`: 20261012 is stored as `2026-10-12 00:00:00`. + - `timestamptz`: 20261012 is stored as `2026-10-12 00:00:00+00` (session time + zone UTC). + - `interval`: 12345 is stored as `03:25:45`. + - `json`, `jsonb`: 1/4 is stored as the JSON number `0.25`. + - `bytea`: 5/2 is stored as `\x322e35`, the ASCII bytes of `2.5`. + - `bit(n)`: stored if the decimal string is exactly `n` binary digits (101 is + stored as `101` in a `bit(3)`). + - `time`, `inet`: rejected. + + Every accepted conversion to a non-numeric type is a silent coercion if the + schema maps a numeric field to the wrong column, so check the mapping. + version: v0.18.0 + author: Meroxa, Inc. + source: + parameters: + - name: tables + description: |- + Tables is a List of table names to read from, separated by a comma, e.g.:"table1,table2". + Use "*" if you'd like to listen to all tables. + type: string + default: "" + validations: + - type: required + value: "" + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + type: string + default: "" + validations: + - type: required + value: "" + - name: cdcMode + description: CDCMode determines how the connector should listen to changes. + type: string + default: auto + validations: + - type: inclusion + value: auto,logrepl + - name: logrepl.allowWALGap + description: |- + LogreplAllowWALGap lets the connector resume from a saved position when + the replication slot no longer exists and has to be created again, or + when the slot that exists is not the one the position was taken from (it + was dropped and created again under the same name, or another client + advanced it). Such a slot starts after the saved position, so every + change in between is skipped and never delivered: this setting accepts + that DATA LOSS. Leave it false (the default) and the connector refuses to + start with the error `postgres.source.slot_wal_gap` or + `postgres.source.slot_replaced` instead. Use it only after deciding that + the destination can be repaired some other way, and remove it once the + pipeline has resumed. + type: bool + default: "false" + validations: [] + - name: logrepl.autoCleanup + description: |- + LogreplAutoCleanup determines if the replication slot and publication should be + removed when the connector is deleted. + type: bool + default: "true" + validations: [] + - name: logrepl.import.debeziumOffset + description: |- + LogreplImportDebeziumOffset starts the pipeline from a Debezium Postgres + connector's committed offset instead of a snapshot. It is written by + `conduit migrate kafka-connect --cutover`, not by hand. It applies only + while the pipeline has no position: the first acknowledged record writes + an ordinary position and the setting is ignored from then on (remove it + once the import is complete). Requires snapshotMode "never" and cdcMode + "logrepl", and an existing slot and publication, which import mode + never creates. Requires Conduit v0.19.0 or later, which acks a record + only after its position is persisted. + type: string + default: "" + validations: [] + - name: logrepl.publicationName + description: |- + LogreplPublicationName determines the publication name in case the + connector uses logical replication to listen to changes (see CDCMode). + type: string + default: conduitpub + validations: [] + - name: logrepl.schemaDrift.policy + description: |- + LogreplSchemaDriftPolicy determines how the connector handles schema + drift (a DDL that changes a table's shape during CDC; DBZ-3 B1): + - "halt" (default): emit a drift marker record, checkpoint before it, + and stop with a terminal error until the pipeline is restarted to + approve the change. + - "evolve": accept additive changes silently; incompatible (narrowing) + changes still halt. + "dlq" is reserved for a future version and rejected at validation. + type: string + default: halt + validations: [] + - name: logrepl.slotIdentity.beaconFailureTimeout + description: |- + LogreplSlotIdentityBeaconFailureTimeout is how long the connector keeps + an idle replication slot from advancing past its last identity beacon + while new beacons cannot be written (#442). After it, the slot advances + without a beacon so its WAL cannot fill the disk, and the connector + logs `postgres.source.slot_beacon_unavailable` as an error. Until a + beacon is written and delivered again, a restart is refused with + `postgres.source.slot_replaced` (an outage, never a loss). The connector + keeps trying, and recovers on its own once beacons can be written. The + WAL held back meanwhile is at most what the server writes in this time. + type: duration + default: 5m + validations: [] + - name: logrepl.slotIdentity.checkTimeout + description: |- + LogreplSlotIdentityCheckTimeout bounds the replication slot identity + check at start (#442), which reads the slot without consuming it to + find the connector's identity beacon. It decodes from the slot's + restart_lsn, so a long-running transaction that holds restart_lsn far + back makes it slower; on Postgres 17+ it also waits for the standbys in + synchronized_standby_slots. When it times out the start is refused with + postgres.source.slot_identity_check_failed and retried. + type: duration + default: 10m + validations: [] + - name: logrepl.slotName + description: |- + LogreplSlotName determines the replication slot name in case the + connector uses logical replication to listen to changes (see CDCMode). + Can only contain lower-case letters, numbers, and the underscore character. + type: string + default: conduitslot + validations: + - type: regex + value: ^[a-z0-9_]+$ + - name: logrepl.withAvroSchema + description: |- + WithAvroSchema determines whether the connector should attach an avro schema on each + record. + type: bool + default: "true" + validations: [] + - name: snapshot.fetchSize + description: Snapshot fetcher size determines the number of rows to retrieve at a time. + type: int + default: "50000" + validations: [] + - name: snapshotMode + description: SnapshotMode is whether the plugin will take a snapshot of the entire table before starting cdc mode. + type: string + default: initial + validations: + - type: inclusion + value: initial,never + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is read from the source. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets read from the source. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.schema.context.enabled + description: |- + Specifies whether to use a schema context name. If set to false, no schema context name will + be used, and schemas will be saved with the subject name specified in the connector + (not safe because of name conflicts). + type: bool + default: "true" + validations: [] + - name: sdk.schema.context.name + description: |- + Schema context name to be used. Used as a prefix for all schema subject names. + If empty, defaults to the connector ID. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and encode the record key with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.key.subject + description: |- + The subject of the key schema. If the record metadata contains the field + "opencdc.collection" it is prepended to the subject name and separated + with a dot. + type: string + default: key + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and encode the record payload with a schema. + type: bool + default: "false" + validations: [] + - name: sdk.schema.extract.payload.subject + description: |- + The subject of the payload schema. If the record metadata contains the + field "opencdc.collection" it is prepended to the subject name and + separated with a dot. + type: string + default: payload + validations: [] + - name: sdk.schema.extract.type + description: The type of the payload schema. + type: string + default: avro + validations: + - type: inclusion + value: avro + destination: + parameters: + - name: url + description: |- + URL is the connection string for the Postgres database. + With TLS, SCRAM authentication does not use channel binding by default + (`channel_binding=disable`); add `channel_binding=require` to the URL to + require SCRAM-SHA-256-PLUS. + The destination describes every statement before it runs it + (`describe_exec`), so a column type change on a running pipeline takes + effect on the next write. Set `default_query_exec_mode` (in the URL or in + a service file) to `exec`, `simple_protocol`, `cache_statement` or + `cache_describe` to override. The cached modes save a round trip per batch + and check a per-table schema fingerprint, but they are safe only on a + direct connection or behind a pooler that does not share prepared + statements between clients. Behind PgBouncer (at any + `max_prepared_statements`) or another statement-sharing pooler, keep + `describe_exec`: a cached mode can convert values silently after a column + type change. + type: string + default: "" + validations: + - type: required + value: "" + - name: table + description: Table is used as the target table into which records are inserted. + type: string + default: '{{ index .Metadata "opencdc.collection" }}' + validations: [] + - name: sdk.batch.delay + description: Maximum delay before an incomplete batch is written to the destination. + type: duration + default: "0" + validations: [] + - name: sdk.batch.size + description: Maximum size of batch before it gets written to the destination. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.burst + description: |- + Allow bursts of at most X records (0 or less means that bursts are not + limited). Only takes effect if a rate limit per second is set. Note that + if `sdk.batch.size` is bigger than `sdk.rate.burst`, the effective batch + size will be equal to `sdk.rate.burst`. + type: int + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.rate.perSecond + description: Maximum number of records written per second (0 means no rate limit). + type: float + default: "0" + validations: + - type: greater-than + value: "-1" + - name: sdk.record.format + description: |- + The format of the output record. See the Conduit documentation for a full + list of supported formats (https://conduitdata.io/docs/using/connectors/configuration-parameters/output-format). + type: string + default: opencdc/json + validations: [] + - name: sdk.record.format.options + description: |- + Options to configure the chosen output record format. Options are normally + key=value pairs separated with comma (e.g. opt1=val2,opt2=val2), except + for the `template` record format, where options are a Go template. + type: string + default: "" + validations: [] + - name: sdk.schema.extract.key.enabled + description: Whether to extract and decode the record key with a schema. + type: bool + default: "true" + validations: [] + - name: sdk.schema.extract.payload.enabled + description: Whether to extract and decode the record payload with a schema. + type: bool + default: "true" + validations: [] diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/.metadata.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/.metadata.yaml new file mode 100644 index 0000000..6df96c6 --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/.metadata.yaml @@ -0,0 +1,2 @@ +fetchedAt: 2026-10-26T08:27:48.866405699Z +commitSHA: d134f9b1e80b012bac7c4d2548035d5dbc2df1f1 diff --git a/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/connector.yaml b/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/connector.yaml new file mode 100644 index 0000000..143043f --- /dev/null +++ b/static/connectors/github.com/ConduitIO/conduit-connector-s3@v0.11.1/connector.yaml @@ -0,0 +1,748 @@ +version: "1.0" +specification: + name: s3 + summary: An S3 source and destination plugin for Conduit, written in Go. + description: |- + The S3 connector is one of [Conduit](https://github.com/ConduitIO/conduit) + builtin plugins. It provides both, a source and a destination S3 connectors. + + ## Source + + The S3 Source Connector connects to a S3 bucket with the provided + configurations, using `aws.bucket`, `aws.accessKeyId`,`aws.secretAccessKey` and + `aws.region`. If the bucket doesn't exist, or the permissions fail, then an + error will occur. After that, the `Open` method is called to start the + connection from the provided position. + + ### Change Data Capture (CDC) + + This connector implements CDC features for S3 by scanning the bucket for changes + every `pollingPeriod` and detecting any change that happened after a certain + timestamp. These changes (update, delete, create) are then inserted into a + buffer that is checked on each Read request. + + * To capture "delete" and "update", the S3 bucket versioning must be enabled. + * To capture "create" actions, the bucket versioning doesn't matter. + + #### Position Handling + + The connector goes through two modes. + + * Snapshot mode: which loops through the S3 bucket and returns the objects that + are already in there. The _Position_ during this mode is the object key + attached to an underscore, an "s" for snapshot, and the _maxLastModifiedDate_ + found so far. As an example: "thisIsAKey_s12345", which makes the connector + know at what mode it is and what object it last read. The + _maxLastModifiedDate_ will be used when changing to CDC mode, the iterator + will capture changes that happened after that. + + * CDC mode: this mode iterates through the S3 bucket every `pollingPeriod` and + captures new actions made on the bucket. the _Position_ during this mode is + the object key attached to an underscore, a "c" for CDC, and the object's + _lastModifiedDate_ in seconds. As an example: "thisIsAKey_c1634049397". This + position is used to resume from the last record returned. + + **CDC mode is listing based and best effort, bounded by `lookbackPeriod`.** + It detects changes by listing the bucket, which cannot be lossless: an + object that becomes visible in a listing late can be missed. Lossless S3 + change capture needs bucket event notifications, which this connector does + not use. Every poll selects the objects modified since `lookbackPeriod` + (default 5m) before the newest object seen so far, and skips versions it + already delivered, so objects that become visible late, within that + window, are picked up: S3 stamps an object with the time its upload began, + a multipart upload with the time it was initiated, and lists in key order. + The object store's own timestamps decide, so the clock of the machine + running Conduit does not matter, with one exception: the newest timestamp + is capped at this machine's clock, so one bogus timestamp from the future + (a store clock that stepped forward, or a misbehaving endpoint) cannot hide + the objects written after it. The cap lowers the window's start, which + causes redelivery. If this machine's clock is behind the store's by more + than `lookbackPeriod` the source logs a warning with the code + `s3.source.host_clock_behind_store`: the window is stretched by the skew. + + Delivery is at-least-once. After a restart the objects modified within + `lookbackPeriod` of the newest object are delivered again. The snapshot + hands over to CDC from the newest object that existed when the snapshot + started (found by one extra listing of the prefix, one request per 1000 + keys, at the start of the snapshot), minus `lookbackPeriod`, so CDC + redelivers the objects written while the snapshot ran, however long it + took, plus those within `lookbackPeriod` before it started. On a bucket + that was bulk loaded recently this can be every object of the load. + + The versions remembered for deduplication are limited to about 256 MiB + (peak memory of a poll is about 1.5 times that, candidates included). If + the objects inside the window need more, the window is **shortened** + instead of stopping the source: the oldest remembered entries are + forgotten by whole seconds and the window starts just above them. The + source logs a warning with the code `s3.source.dedupe_window_shrunk` + naming the effective lookback and the number of forgotten entries. While + the window is shortened, an object that becomes visible late by more than + the effective lookback can be missed, so the tolerance for late-visible + objects is lower than `lookbackPeriod`; lower `lookbackPeriod` to avoid + the shrinking. The source stops, with the error + `s3.source.dedupe_window_overflow` (after a warning), only if the versions + sharing a single second of `LastModified` do not fit, or when entries + stamped at or after this machine's present second (a store clock that is + ahead, or bogus timestamps from the future) take the budget: a shortened + window never starts later than the present second, because that would hide + the objects written from now on, so the source stops instead (the message + names the clock skew and says to fix the clock). A store clock that is ahead + by less than `lookbackPeriod` is normal and does not stop the source as long + as the entries stamped in the present and the future fit the budget. A + future-stamped object can therefore raise the start of the window at most + up to the present second, never past it. The shortened window is not + remembered across restarts: after a restart the window is rebuilt from the + position and shortened again, so a restart delivers the window's objects + again (duplicates, never a skip). When more objects share a second than + one poll can hand over, they are delivered over several polls, oldest + first, and the newest tracked entries may be dropped from tracking to make + room; those are delivered again later (duplicates). A catch-up after + downtime is delivered in bounded batches, oldest first. A resume position + with a timestamp in the future, which only an older release could have + written, is clamped to this machine's clock with a warning. + + Known limits (listing cannot see these, or sees them too late): + * an upload that takes longer than `lookbackPeriod` to complete is missed + when newer objects were seen in the meantime (multipart uploads carry + their initiation time); + * replica buckets whose replication lag exceeds `lookbackPeriod`; + * an identical re-put of an object within the same second is not seen as a + change; + * in an unversioned bucket an overwrite is reported as a create (there is + no older version to compare with) and a delete is not reported; + * in a versioned bucket intermediate versions that appear and are + superseded within one poll are not emitted, only the latest; removing a + delete marker (undelete) and permanently deleting the latest version are + not emitted; + * a GetObject that fails for another reason than the object having been + deleted, for example an object archived to Glacier or Deep Archive, + stops the source with that error. + + Objects deleted between being listed and being read are skipped, in the + snapshot and in CDC. Values of `lookbackPeriod` above 1h log a warning and + above 24h are rejected. + + ### Record Keys + + The S3 object key uniquely identifies the objects in an Amazon S3 bucket, which + is why a record key is the key read from the S3 bucket. + + ## Destination + + The S3 Destination Connector connects to an S3 bucket with the provided + configurations, using `aws.bucket`, `aws.accessKeyId`,`aws.secretAccessKey` and + `aws.region`. If the permissions fail, the connector will not be ready for + writing to S3. + + ### Writes and delivery + + Every batch the SDK hands to the destination (`sdk.batch.size` records, or + fewer after `sdk.batch.delay`; one record per batch by default) is written + with one `PutObject` per object, and the records are acknowledged only after + `PutObject` succeeded. Delivery is at-least-once: a batch that is retried + after a failure or a restart is written again as a new object, so a reader + can see a record twice, never zero times. Object names are + `--.`: the write time in nanoseconds (so + objects still sort by write time), a random 16-hex-character id per + destination instance, and that instance's write counter. They are unique by + construction, also across pipelines or Conduit instances writing to the same + bucket and prefix in the same clock tick, and not deterministic (a retried + batch gets a new name). With `conditionalWrites` (default true) every + `PutObject` carries `If-None-Match: *`, so a store never replaces an existing + object. The records of a refused write are not acknowledged: + + - `s3.destination.key_exists` (412): the key exists. Either another writer + used it, or the AWS SDK retried this writer's own `PutObject` after the + response to a successful first attempt was lost; in that case the records + are already stored, and redelivering them writes a duplicate under a new + key (at-least-once, nothing is lost). + - `s3.destination.conditional_conflict` (409): a conflicting operation on + the key was in progress. Transient; a retry writes under a new key. + - `s3.destination.conditional_writes_unsupported`: the store rejects the + header (501, or a 400/405 that names it). Set `conditionalWrites: false`; + keys stay unique by construction. + + A store that silently ignores `If-None-Match` writes unconditionally, with + no warning; the protection then rests on the unique names alone. Tested on + MinIO; AWS S3 documents support for conditional writes. + + ### Formats + + - `json`: one JSON object per line with `Operation`, `Position`, `Payload`, + `Key` and `Metadata`; payload and key are JSON strings. A record whose key, + payload, position or metadata is not valid UTF-8 is refused with the error + `s3.destination.invalid_utf8` instead of being stored with replaced bytes. + - `parquet`: the same fields as string columns. + - `bytearray`: the payload bytes of every record, unchanged, each followed + by `format.bytearray.separator` (default a newline). Structured payloads + are written as their JSON encoding. A record without a payload (a delete, + a Kafka tombstone) or with an empty one is refused with the error + `s3.destination.null_value`; drop such records with a `filter` processor + if they are expected. A Kafka tombstone arrives as an empty value, so an + empty Kafka value cannot be told apart from it and is refused too. The + separator is not escaped inside payloads: a payload that contains it + cannot be split back unambiguously (as with Kafka Connect's + `ByteArrayFormat`). + + `compression` is `none` or `gzip` for `json` and `bytearray` (gzip appends + `.gz` to the extension and sets the content type to `application/gzip`), and + `none`, `gzip` (default) or `snappy` for `parquet`, where it is the column + codec. + + When a record is refused, the records before it in the batch are written as + one object and acked, the refused record and the ones after it are nacked + (to the DLQ, if one is configured). + + ### Coming from the Kafka Connect S3 sink + + - `ByteArrayFormat` is `format: bytearray`; `format.bytearray.separator` and + `format.bytearray.extension` have the same meaning (Kafka Connect's + extension default is `.bin` as well). + - `JsonFormat` for topics with JSON values is `format: bytearray` with + `format.bytearray.extension: .json`: the stored bytes are the record + values. Kafka Connect re-serializes values through its converter, so + whitespace and key order can differ, and `schemas.enable=true` envelopes + are not produced. + - `s3.compression.type: gzip` is `compression: gzip`; `parquet.codec` is + `compression` with `format: parquet` (Kafka Connect defaults to snappy, + this connector to gzip). + - `behavior.on.null.values` other than `fail` has no counterpart. + + ### Server-side encryption + + By default the destination sends no server-side encryption header, so the + bucket's default encryption applies. On AWS every bucket encrypts new + objects with SSE-S3 unless it is configured otherwise, and a bucket whose + default is SSE-KMS gets SSE-KMS objects. An S3-compatible store without a + default encryption configuration stores objects unencrypted. When + `aws.serverSideEncryption` is empty, `Open` reads the bucket's default + encryption (`GetBucketEncryption`, permission + `s3:GetEncryptionConfiguration`) and logs a warning with the code + `s3.destination.bucket_unencrypted` if there is none. It never refuses to + start; without the permission the check is skipped (debug log). + + Set `aws.serverSideEncryption` to `AES256`, `aws:kms` or `aws:kms:dsse` to + request a mode explicitly, and `aws.sseKmsKeyId` to pick the KMS key for the + two KMS modes. An explicit mode overrides the bucket default. + + Upgrading from v0.9.5 or earlier: those versions sent `AES256` on every + write, whatever the bucket default was, so an SSE-KMS bucket default was + silently replaced by SSE-S3 (#1047). To keep the old behavior, set + `aws.serverSideEncryption: AES256`. + + ### Partitioning (Kafka Connect S3 sink layout) + + `partitioner` selects the directory layout under `prefix`: + + | `partitioner` | Object key | + | --- | --- | + | `none` (default) | `/.` | + | `default` | `//partition=/.` | + | `field` | `//=/.../.` | + | `time`, `hourly`, `daily` | `//