Skip to content

Commit

Permalink
DBZ-6838: Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Chris Cranford <[email protected]>
  • Loading branch information
indraraj and Naros committed Sep 11, 2023
1 parent 2a51199 commit 04cb197
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions _posts/2023-08-21-Debezium-UI-connectors-custom-property.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@ date: 2023-08-21
tags: [ community, debezium-ui ]
author: indrashukla
---
The Debezium UI team continues to add support for more features, allowing users to configure connectors more easily. In this article, we'll describe and demonstrate how to provide the additional properties for configuration that are not specified in the UI.
The Debezium UI team continues to add support for more features, allowing users to configure connectors more easily. In this article, we'll describe and demonstrate how to provide the additional properties for configuration that the UI does not expose by default.
Read further for more information!

+++<!-- more -->+++

== Need for custom properties step

Debezium is very flexible - each connector can be configured and fine-tuned in a variety of ways. Debezium UI already exposes an extensive list of properties that are segregated under different steps for configuration. But even with this extensive list of exposed properties in the UI, there are a few properties that are not known prior and may be needed to be configured while setting up a connector. For example, `producer.*` and `consumer.*` properties are additional options, similarly `driver.*` prefix for the pass-through database drivers properties are also not exposed via UI and if needed, these are to be configured as additional properties.
Debezium is very flexible - each connector can be configured and fine-tuned in various ways. Debezium UI already exposes an extensive list of properties that are segregated under different steps for configuration. However, despite the UI exposing a wide range of properties, there are situations where additional custom properties may be necessary beyond those exposed out of the box. For example, `producer.*`, `consumer.*`, and even `driver.*` properties are pass-through configuration options for configuring parts of the Kafka Connect pipeline or the JDBC driver, respectively.

*Example*

Let's take an example of mySql connector, debezium relies on a kafka producer to write schema changes to the database history topic. You define the configuration for the kafka producer by assigning the values to a set of pass-through configuration properties that begin with the `schema.history.internal.producer.*` prefix.
Debezium must configure the Kafka producer settings to write schema change events to the schema history topic for connectors that utilize a schema history topic, like MySQL. The connector configuration includes a subset of options that act as pass-through properties that begin with the `schema.history.internal.producer.*` prefix.

Debezium strips the prefix from the properties name before it passes the properties to the kafka client.
Debezium strips the prefix from the property names before passing the properties to the Kafka client.

== Custom properties step

The Debezium UI now allows you to configure additional properties for connectors that are not exposed in the UI. For this we have created a new additional step called *Custom Properties* in the configuration wizard.
The Debezium UI allows you to configure additional properties for connectors not exposed in the UI. For this, we have created a new extra step called *Custom Properties* in the configuration wizard.

[.centered-image.responsive-image]
====
Expand All @@ -31,7 +31,7 @@ The Debezium UI now allows you to configure additional properties for connectors
++++
====

*Custom properties* step allow you to provide the additional properties by entering `key` and `value` pair. Once you enter the `key` and `value` pairs of the additional properties, click on the *Apply* button.
The *custom properties* step allows you to provide the additional properties by entering a key-value pair. Once you enter the additional configuration properties `key` and `value`, click the *Apply* button.

[.centered-image.responsive-image]
====
Expand All @@ -40,9 +40,9 @@ The Debezium UI now allows you to configure additional properties for connectors
++++
====

On the *Apply* button click UI will validate the user entries and provide feedback, if there are any problems. If there are no problems, the UI will show a green check icon on the right side of all the successfully added additional properties. You can also remove any added property by clicking on the *Remove* button on the right side of the property.
When clicking the *Apply* button, the UI validates the user entries and provides feedback if there are any problems. If there are no problems, the UI will show a green check icon on the right side of all the successfully added additional properties. You can also remove any added property by clicking on the *Remove* button on the right side of the property.

On the left hand side, you can see the list of already configured properties from previous wizard step and the newly added custom properties in this step are show highlighted in the *blue* color.
On the left-hand side, you can see the list of already configured properties from the previous wizard step, and the newly added custom properties in this step are highlighted in *blue* color.

[.centered-image.responsive-image]
====
Expand All @@ -51,12 +51,12 @@ On the left hand side, you can see the list of already configured properties fro
++++
====

In the screenshot above user added `schema.history.internal.producer.*` related additional properties .
In the screenshot above, the user added `schema.history.internal.producer.*` related additional properties.


== Self-contained example

You can try out configuring connector with some custom properties (and more) with our self-contained example https://github.com/debezium/debezium-examples/tree/main/ui-demo[UI demo] - which is included under https://github.com/debezium/debezium-examples[debezium-examples] on Github. The UI demo includes a Docker Compose file which brings up several sources with data as well as the UI. Please refer to the https://github.com/debezium/debezium-examples/tree/main/ui-demo[README file] for more details on running the Debezium UI demo.
You can try out configuring the connector with some custom properties (and more) with our self-contained example https://github.com/debezium/debezium-examples/tree/main/ui-demo[UI demo] - which is included under https://github.com/debezium/debezium-examples[debezium-examples] on GitHub. The UI demo includes a Docker Compose file, which brings up several sources with data and the UI. Please refer to the https://github.com/debezium/debezium-examples/tree/main/ui-demo[README file] for more details on running the Debezium UI demo.

To learn more about the Debezium UI, please refer to the link:/documentation/reference/operations/debezium-ui.html[reference documentation].

Expand Down

0 comments on commit 04cb197

Please sign in to comment.