Source Configuration Options
Reference of the source connector options.
Connection
couchbase.seed.nodes
Addresses of Couchbase Server nodes, delimited by commas.
If a custom port is specified, it must be the KV port (which is normally 11210 for insecure connections, or 11207 for secure connections).
-
Type: list
-
Importance: high
couchbase.password
Password of the Couchbase user.
May be overridden with the KAFKA_COUCHBASE_PASSWORD environment variable.
-
Type: password
-
Importance: high
couchbase.network
The network selection strategy for connecting to a Couchbase Server cluster that advertises alternate addresses.
A Couchbase node running inside a container environment (like Docker or Kubernetes) might be configured to advertise both its address within the container environment (known as its "default" address) as well as an "external" address for use by clients connecting from outside the environment.
Setting the 'couchbase.network' config property to 'default' or 'external' forces the selection of the respective addresses. Setting the value to 'auto' tells the connector to select whichever network contains the addresses specified in the 'couchbase.seed.nodes' config property.
-
Type: string
-
Default:
auto
-
Importance: medium
couchbase.bootstrap.timeout
On startup, the connector will wait this long for a Couchbase connection to be established. If a connection is not established before the timeout expires, the connector will terminate.
-
Type: string
-
Default:
30s
-
Valid Values: An integer followed by a time unit (ms = milliseconds, s = seconds, m = minutes, h = hours, d = days). For example, to specify 30 minutes: 30m
-
Importance: medium
Security
couchbase.enable.tls
Use secure connection to Couchbase Server.
If true, you must also tell the connector which certificate to trust. Specify a certificate file with 'couchbase.trust.certificate.path', or a Java keystore file with 'couchbase.trust.store.path' and 'couchbase.trust.store.password'.
-
Type: boolean
-
Default:
false
-
Importance: medium
-
Dependents:
,couchbase.trust.certificate.path
,couchbase.trust.store.path
,couchbase.trust.store.password
,couchbase.enable.hostname.verification
,couchbase.client.certificate.path
couchbase.client.certificate.password
couchbase.enable.hostname.verification
Set this to false
to disable TLS hostname verification for Couchbase connections.
Less secure, but might be required if for some reason you can’t issue a certificate whose Subject Alternative Names match the hostname used to connect to the server.
Only disable if you understand the impact and can accept the risks.
-
Since: 4.0.4
-
Type: boolean
-
Default:
true
-
Importance: medium
couchbase.trust.store.path
Absolute filesystem path to the Java keystore holding the CA certificate used by Couchbase Server.
If you want to use a PEM file instead of a Java keystore, specify couchbase.trust.certificate.path
instead.
-
Type: string
-
Default:
""
-
Importance: medium
couchbase.trust.store.password
Password for accessing the trust store.
May be overridden with the KAFKA_COUCHBASE_TRUST_STORE_PASSWORD environment variable.
-
Type: password
-
Default:
[hidden]
-
Importance: medium
couchbase.trust.certificate.path
Absolute filesystem path to the PEM file containing the CA certificate used by Couchbase Server.
If you want to use a Java keystore instead of a PEM file, specify couchbase.trust.store.path
instead.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Since: 4.0.5
-
Type: string
-
Default:
""
-
Importance: medium
couchbase.client.certificate.path
Absolute filesystem path to a Java keystore or PKCS12 bundle holding the private key and certificate chain to use for client certificate authentication (mutual TLS).
If you supply a value for this config property, the couchbase.username
and couchbase.password
properties will be ignored.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Since: 4.0.4
-
Type: string
-
Default:
""
-
Importance: medium
couchbase.client.certificate.password
Password for accessing the client certificate.
May be overridden with the KAFKA_COUCHBASE_CLIENT_CERTIFICATE_PASSWORD environment variable.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Since: 4.0.4
-
Type: password
-
Default:
[hidden]
-
Importance: medium
Logging
couchbase.log.redaction
Determines which kinds of sensitive log messages from the Couchbase connector will be tagged for later redaction by the Couchbase log redaction tool. NONE = no tagging; PARTIAL = user data is tagged; FULL = user, meta, and system data is tagged.
-
Type: string
-
Default:
NONE
-
Valid Values: One of [NONE, PARTIAL, FULL]
-
Importance: medium
couchbase.log.document.lifecycle
If true, document lifecycle milestones will be logged at INFO level instead of DEBUG. Enabling this feature lets you watch documents flow through the connector. Disabled by default because it generates many log messages.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Since: 4.0.5
-
Type: boolean
-
Default:
false
-
Importance: medium
Source Behavior
couchbase.topic
Name of the Kafka topic to publish data to. This is a format string that recognizes the following placeholders:
${bucket} refers to the bucket containing the document.
${scope} refers to the scope containing the document.
${collection} refers to the collection containing the document.
The behavior of the "scope" and "collection" placeholders may change in a patch release without notice.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Type: string
-
Default:
${bucket}.${scope}.${collection}
-
Importance: medium
couchbase.source.handler
The class name of the source handler to use. The source handler determines how the Couchbase document is converted into a Kafka record.
To publish JSON messages identical to the Couchbase documents, use com.couchbase.connect.kafka.handler.source.RawJsonSourceHandler
and set value.converter
to org.apache.kafka.connect.converters.ByteArrayConverter
.
-
Type: class
-
Importance: medium
couchbase.event.filter
The class name of the event filter to use. The event filter determines whether or not a database change event is ignored.
-
Type: class
-
Default:
com.couchbase.connect.kafka.filter.AllPassFilter
-
Importance: medium
couchbase.batch.size.max
Controls maximum size of the batch for writing into topic.
-
Type: int
-
Default:
2000
-
Importance: medium
couchbase.no.value
If true, Couchbase Server will omit the document content when telling the connector about a change. The document key and metadata will still be present.
If you don’t care about the content of changed documents, enabling this option is a great way to reduce the connector’s network bandwidth and memory usage.
-
Type: boolean
-
Default:
false
-
Importance: medium
couchbase.connector.name.in.offsets
When true, the connector’s offsets are saved under a key that includes the connector name. This is redundant, since the Kafka Connect framework already isolates the offsets of connectors with different names.
Set this to true only if you’ve previously deployed the connector to production with this set to true, and you do not wish to restart streaming from the beginning. Otherwise you should ignore this property.
-
Type: boolean
-
Default:
false
-
Importance: medium
couchbase.stream.from
Controls when in history then connector starts streaming from.
-
Type: string
-
Default:
SAVED_OFFSET_OR_BEGINNING
-
Valid Values: One of [SAVED_OFFSET_OR_BEGINNING, SAVED_OFFSET_OR_NOW, BEGINNING, NOW]
-
Importance: medium
couchbase.scope
If you wish to stream from all collections within a scope, specify the scope name here.
If you specify neither "couchbase.scope" nor "couchbase.collections", the connector will stream from all collections of all scopes in the bucket.
Requires Couchbase Server 7.0 or later.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Type: string
-
Default:
""
-
Importance: medium
couchbase.collections
If you wish to stream from specific collections, specify the qualified collection names here, separated by commas. A qualified name is the name of the scope followed by a dot (.) and then the name of the collection. For example: "tenant-foo.invoices".
If you specify neither "couchbase.scope" nor "couchbase.collections", the connector will stream from all collections of all scopes in the bucket.
Requires Couchbase Server 7.0 or later.
UNCOMMITTED; this feature may change in a patch release without notice.
-
Type: list
-
Default:
""
-
Importance: medium
Database Change Protocol
couchbase.compression
To reduce bandwidth usage, Couchbase Server 5.5 and later can send documents to the connector in compressed form. (Messages are always published to the Kafka topic in uncompressed form, regardless of this setting.)
-
Type: string
-
Default:
ENABLED
-
Valid Values: One of [DISABLED, FORCED, ENABLED]
-
Importance: medium
couchbase.persistence.polling.interval
How frequently to poll Couchbase Server to see which changes are ready to be published.
Specify 0
to disable polling, or an integer followed by a time qualifier (example: 100ms)
-
Type: string
-
Default:
100ms
-
Valid Values: An integer followed by a time unit (ms = milliseconds, s = seconds, m = minutes, h = hours, d = days). For example, to specify 30 minutes: 30m
-
Importance: medium
couchbase.flow.control.buffer
How much heap space should be allocated to the flow control buffer. Specify an integer followed by a size qualifier (example: 128m)
-
Type: string
-
Default:
128m
-
Valid Values: An integer followed by a size unit (b = bytes, k = kilobytes, m = megabytes, g = gigabytes). For example, to specify 64 megabytes: 64m
-
Importance: medium
couchbase.xattrs
Should filters and source handlers have access to a document’s extended attributes?
UNCOMMITTED; this feature may change in a patch release without notice.
-
Since: 4.0.1
-
Type: boolean
-
Default:
false
-
Importance: medium
Parent topic: Kafka Connector
Previous topic: Quickstart
Next topic: Sink Configuration Options