@@ -69,9 +69,10 @@ The sections below describe the two types of configuration file in more detail.
6969## The ` config.yaml ` file
7070
7171Here is an example of a ` config.yaml ` file. Note that the values of the
72- form "` ${name} ` " refer to environment variables that are set elsewhere. In particular,
73- you should normally use environment variables as shown to set the source
74- username and password rather than storing them in plain text in this
72+ form "` ${name} ` " refer to environment variables that you should set with the
73+ [ ` redis-di set-secret ` ] ({{< relref "/integrate/redis-data-integration/ingest/reference/cli/redis-di-set-secret" >}})
74+ command. In particular, you should normally use environment variables as shown to set the source
75+ and target username and password rather than storing them in plain text in this
7576file (see [ Set secrets] ( #set-secrets ) below for more information).
7677
7778``` yaml
@@ -87,6 +88,13 @@ sources:
8788 database : redislabscdc
8889 user : ${SOURCE_DB_USERNAME}
8990 password : ${SOURCE_DB_PASSWORD}
91+ # The names of the following properties should match the ones you used
92+ # when setting the TLS/mTLS secrets. Set only `cacert` if you are using
93+ # TLS, but set all of them if you are using mTLS:
94+ # key: ${SOURCE_DB_KEY}
95+ # cert: ${SOURCE_DB_CERT}
96+ # cacert: ${SOURCE_DB_CACERT}
97+ # key_password: ${SOURCE_DB_KEY_PASSWORD}
9098 tables :
9199 emp :
92100 snapshot_sql : " SELECT * from redislabscdc.emp WHERE empno < 1000"
@@ -114,12 +122,15 @@ targets:
114122 type : redis
115123 host : localhost
116124 port : 12000
117- # The names of the following files should match the ones you used
125+ user : ${TARGET_DB_USERNAME}
126+ password : ${TARGET_DB_PASSWORD}
127+ # The names of the following properties should match the ones you used
118128# when setting the TLS/mTLS secrets. Set only `cacert` if you are using
119- # TLS, but set all three if you are using mTLS:
120- # key: /etc/certificates/target_db/redis.key
121- # cert: /etc/certificates/target_db/redis.crt
122- # cacert: /etc/certificates/target_db/ca.crt
129+ # TLS, but set all of them if you are using mTLS:
130+ # key: ${TARGET_DB_KEY}
131+ # cert: ${TARGET_DB_CERT}
132+ # cacert: ${TARGET_DB_CACERT}
133+ # key_password: ${TARGET_DB_KEY_PASSWORD}
123134```
124135
125136The main sections of the file configure [ ` sources ` ] ( #sources ) and [ ` targets ` ] ( #targets ) .
@@ -173,97 +184,6 @@ with a unique name that you are free to choose (here, we have used
173184` host ` and ` port ` of the server. You can also supply connection credentials
174185and TLS/mTLS secrets here if you use them.
175186
176- ### Database-specific connection properties {#db-connect-props}
177-
178- Use the following properties in the [ ` sources.advanced.source ` ] ( #sources ) section
179- of ` config.yaml ` for more control over RDI's connection to your database.
180-
181- #### MySQL/MariaDB
182-
183- See the
184- [ Debezium SSL mode properties] ( https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-mode )
185- for a full list of properties specific to MySQL/MariaDB.
186-
187- - [ ` database.ssl.keystore ` ] ( https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-keystore ) :
188- (Optional) The location of the key store file. Use this for two-way authentication between
189- your client and the MySQL/MariaDB Server.
190- - [ ` database.ssl.keystore.password ` ] ( https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-keystore-password ) :
191- (Optional) The password for the key store file. You only need this if you have also configured
192- ` database.ssl.keystore ` .
193- - [ ` database.ssl.truststore ` ] ( https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-truststore ) :
194- The location of the trust store file to use for server certificate verification.
195- - [ ` database.ssl.truststore.password ` ] ( https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-truststore-password ) :
196- The password for the trust store file. This is required both to check the integrity of the truststore
197- and to unlock it.
198-
199- #### PostgreSQL
200-
201- See the
202- [ Debezium connector properties] ( https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-connector-properties )
203- for a full list of properties specific to PostgreSQL.
204-
205- - [ ` database.sslcert ` ] ( https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslcert ) :
206- The file path for the client's SSL certificate for the client. See
207- [ Database Connection Control Functions] ( https://www.postgresql.org/docs/current/libpq-connect.html )
208- in the PostgreSQL docs for more information.
209- - [ ` database.sslkey ` ] ( https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslkey ) :
210- The file path for the client's SSL private key. See
211- [ Database Connection Control Functions] ( https://www.postgresql.org/docs/current/libpq-connect.html )
212- in the PostgreSQL docs for more information.
213- - [ ` database.sslpassword ` ] ( https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslpassword ) :
214- The password for the client's private key file as specified ` database.sslkey ` . See
215- [ Database Connection Control Functions] ( https://www.postgresql.org/docs/current/libpq-connect.html )
216- in the PostgreSQL docs for more information.
217- - [ ` database.sslrootcert ` ] ( https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslrootcert ) :
218- The file path for the root certificate(s) used to validate the server. See
219- [ Database Connection Control Functions] ( https://www.postgresql.org/docs/current/libpq-connect.html )
220- in the PostgreSQL docs for more information.
221-
222- #### Oracle
223-
224- See the Kafka
225- [ configuration docs] ( https://kafka.apache.org/documentation.html#configuration )
226- for a full list of properties relevant to Oracle configuration.
227- Where a property has a ` <role> ` element, you can set the role to be
228- either ` producer ` or ` consumer ` , as appropriate.
229-
230- - [ ` schema.history.internal.<role>.security.protocol ` ] ( https://kafka.apache.org/documentation.html#consumerconfigs_security.protocol ) :
231- The protocol for communicating with brokers. This can take the values
232- ` PLAINTEXT ` , ` SSL ` , ` SASL_PLAINTEXT ` , and ` SASL_SSL ` .
233- - [ ` schema.history.internal.<role>.ssl.keystore.location ` ] ( https://kafka.apache.org/documentation.html#producerconfigs_ssl.keystore.location ) :
234- The file path for the keystore.
235- - [ ` schema.history.internal.<role>.ssl.keystore.password ` ] ( https://kafka.apache.org/documentation.html#producerconfigs_ssl.keystore.password ) :
236- The password for the keystore file. You only need this you have also set
237- ` schema.history.internal.<role>.ssl.keystore.location ` .
238- - [ ` schema.history.internal.<role>.ssl.truststore.location ` ] ( https://kafka.apache.org/documentation.html#producerconfigs_ssl.truststore.location ) :
239- The file path for the truststore.
240- - [ ` schema.history.internal.<role>.ssl.truststore.password ` ] ( https://kafka.apache.org/documentation.html#producerconfigs_ssl.truststore.password ) :
241- The password for the trust store file. If you don't set a password, RDI will still use the trust store
242- file specified in ` schema.history.internal.<role>.ssl.truststore.location ` but without integrity
243- checking.
244- - [ ` schema.history.internal.<role>.ssl.key.password ` ] ( https://kafka.apache.org/documentation.html#producerconfigs_ssl.key.password ) :
245- The password for the private key in the keystore file specified in
246- ` schema.history.internal.<role>.ssl.keystore.location ` .
247- - [ ` database.dbname ` ] ( https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-database-dbname ) :
248- The name of the database you want to connect to. If you are using a container database environment,
249- then you should set this to the name of the root container database (CDB), rather than an included
250- pluggable database (PDB).
251- - [ ` database.pdb.name ` ] ( https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-database-pdb-name ) :
252- The name of the Oracle pluggable database you want to connect to. You can only use this with
253- container database (CDB) installations.
254- - [ ` decimal.handling.mode ` ] ( https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-decimal-handling-mode ) :
255- This specifies the data format for floating point values in ` NUMBER ` , ` DECIMAL ` and ` NUMERIC `
256- columns. This can take the values ` precise ` (store values with any number of decimal places),
257- ` double ` (use double-precision floating point), or ` string ` (encode numbers as strings).
258- The default value is ` precise ` . See
259- [ Oracle numeric types] ( https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-numeric-types )
260- for more information about decimal handling.
261- - ` key.converter.schemas.enable ` and ` value.converter.schemas.enable ` :
262- Boolean values specifying whether or not you want to add JSON schemas to
263- serialized data. See Kafka's [ connect transforms] ( https://kafka.apache.org/documentation/#connect_transforms )
264- docs for an example.
265-
266-
267187## Job files
268188
269189You can optionally supply one or more job files that specify how you want to
@@ -404,7 +324,10 @@ Before you deploy your pipeline, you must set the authentication secrets for the
404324source and target databases. Each secret has a corresponding property name that
405325you can pass to the
406326[`redis-di set-secret`]({{< relref "/integrate/redis-data-integration/ingest/reference/cli/redis-di-set-secret" >}})
407- command to set the property's value. For example, you would use the
327+ command to set the property's value. You can then refer to these properties
328+ in `config.yaml` using the syntax "`${PROPERTY_NAME}`"
329+ (the sample [config.yaml file](#the-configyaml-file) shows these properties in use).
330+ For example, you would use the
408331following command line to set the source database username to `myUserName` :
409332
410333` ` ` bash
0 commit comments