diff --git a/src/main/java/org/apache/geode/kafka/GeodeConnectorConfig.java b/src/main/java/org/apache/geode/kafka/GeodeConnectorConfig.java
index 3c218d4..556678f 100644
--- a/src/main/java/org/apache/geode/kafka/GeodeConnectorConfig.java
+++ b/src/main/java/org/apache/geode/kafka/GeodeConnectorConfig.java
@@ -16,15 +16,21 @@
 
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.DEFAULT_LOCATOR;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.DEFAULT_SECURITY_AUTH_INIT;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.GEODE_GROUP;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.LOCATORS;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.LOCATORS_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.LOCATORS_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_CLIENT_AUTH_INIT;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_CLIENT_AUTH_INIT_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_CLIENT_AUTH_INIT_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_PASSWORD;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_PASSWORD_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_PASSWORD_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_USER;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_USER_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.SECURITY_USER_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.TASK_ID;
+import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.TASK_ID_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeConfigurationConstants.TASK_ID_DOCUMENTATION;
 
 import java.util.Arrays;
@@ -81,33 +87,54 @@
         ConfigDef.Type.INT,
         "0",
         ConfigDef.Importance.MEDIUM,
-        TASK_ID_DOCUMENTATION);
+        TASK_ID_DOCUMENTATION,
+        GEODE_GROUP,
+        1,
+        ConfigDef.Width.MEDIUM,
+        TASK_ID_DISPLAY_NAME);
     configDef.define(
         LOCATORS,
         ConfigDef.Type.STRING,
         DEFAULT_LOCATOR,
         ConfigDef.Importance.HIGH,
-        LOCATORS_DOCUMENTATION);
+        LOCATORS_DOCUMENTATION,
+        GEODE_GROUP,
+        2,
+        ConfigDef.Width.LONG,
+        LOCATORS_DISPLAY_NAME
+    );
     configDef.define(
         SECURITY_USER,
         ConfigDef.Type.STRING,
         null,
         ConfigDef.Importance.HIGH,
-        SECURITY_USER_DOCUMENTATION);
-
+        SECURITY_USER_DOCUMENTATION,
+        GEODE_GROUP,
+        3,
+        ConfigDef.Width.MEDIUM,
+        SECURITY_USER_DISPLAY_NAME
+    );
     configDef.define(
         SECURITY_PASSWORD,
         ConfigDef.Type.PASSWORD,
         null,
         ConfigDef.Importance.HIGH,
-        SECURITY_PASSWORD_DOCUMENTATION);
-
+        SECURITY_PASSWORD_DOCUMENTATION,
+        GEODE_GROUP,
+        4,
+        ConfigDef.Width.MEDIUM,
+        SECURITY_PASSWORD_DISPLAY_NAME);
     configDef.define(
         SECURITY_CLIENT_AUTH_INIT,
         ConfigDef.Type.PASSWORD,
         null,
         ConfigDef.Importance.HIGH,
-        SECURITY_CLIENT_AUTH_INIT_DOCUMENTATION);
+        SECURITY_CLIENT_AUTH_INIT_DOCUMENTATION,
+        GEODE_GROUP,
+        5,
+        ConfigDef.Width.LONG,
+        SECURITY_CLIENT_AUTH_INIT_DISPLAY_NAME
+        );
     return configDef;
   }
 
diff --git a/src/main/java/org/apache/geode/kafka/sink/GeodeSinkConnectorConfig.java b/src/main/java/org/apache/geode/kafka/sink/GeodeSinkConnectorConfig.java
index cd12429..643b740 100644
--- a/src/main/java/org/apache/geode/kafka/sink/GeodeSinkConnectorConfig.java
+++ b/src/main/java/org/apache/geode/kafka/sink/GeodeSinkConnectorConfig.java
@@ -17,8 +17,11 @@
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.DEFAULT_NULL_VALUES_MEAN_REMOVE;
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.DEFAULT_TOPIC_TO_REGION_BINDING;
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.NULL_VALUES_MEAN_REMOVE;
+import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.NULL_VALUES_MEAN_REMOVE_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.NULL_VALUES_MEAN_REMOVE_DOCUMENTATION;
+import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.SINK_GROUP;
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.TOPIC_TO_REGION_BINDINGS;
+import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.TOPIC_TO_REGION_BINDINGS_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSinkConfigurationConstants.TOPIC_TO_REGION_BINDINGS_DOCUMENTATION;
 
 import java.util.List;
@@ -46,14 +49,22 @@
         ConfigDef.Type.STRING,
         DEFAULT_TOPIC_TO_REGION_BINDING,
         ConfigDef.Importance.HIGH,
-        TOPIC_TO_REGION_BINDINGS_DOCUMENTATION);
+        TOPIC_TO_REGION_BINDINGS_DOCUMENTATION,
+        SINK_GROUP,
+        1,
+        ConfigDef.Width.MEDIUM,
+        TOPIC_TO_REGION_BINDINGS_DISPLAY_NAME);
 
     configDef.define(
         NULL_VALUES_MEAN_REMOVE,
         ConfigDef.Type.BOOLEAN,
         DEFAULT_NULL_VALUES_MEAN_REMOVE,
         ConfigDef.Importance.MEDIUM,
-        NULL_VALUES_MEAN_REMOVE_DOCUMENTATION);
+        NULL_VALUES_MEAN_REMOVE_DOCUMENTATION,
+        SINK_GROUP,
+        2,
+        ConfigDef.Width.MEDIUM,
+        NULL_VALUES_MEAN_REMOVE_DISPLAY_NAME);
     return configDef;
   }
 
diff --git a/src/main/java/org/apache/geode/kafka/source/GeodeSourceConnectorConfig.java b/src/main/java/org/apache/geode/kafka/source/GeodeSourceConnectorConfig.java
index 9b10970..60ea75c 100644
--- a/src/main/java/org/apache/geode/kafka/source/GeodeSourceConnectorConfig.java
+++ b/src/main/java/org/apache/geode/kafka/source/GeodeSourceConnectorConfig.java
@@ -15,10 +15,13 @@
 package org.apache.geode.kafka.source;
 
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.BATCH_SIZE;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.BATCH_SIZE_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.BATCH_SIZE_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQS_TO_REGISTER;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQS_TO_REGISTER_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQS_TO_REGISTER_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQ_PREFIX;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQ_PREFIX_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.CQ_PREFIX_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DEFAULT_BATCH_SIZE;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DEFAULT_CQ_PREFIX;
@@ -28,15 +31,21 @@
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DEFAULT_QUEUE_SIZE;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DEFAULT_REGION_TO_TOPIC_BINDING;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_ID_PREFIX;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_ID_PREFIX_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_ID_PREFIX_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_TIME_OUT;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_TIME_OUT_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.DURABLE_CLIENT_TIME_OUT_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.LOAD_ENTIRE_REGION;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.LOAD_ENTIRE_REGION_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.LOAD_ENTIRE_REGION_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.QUEUE_SIZE;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.QUEUE_SIZE_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.QUEUE_SIZE_DOCUMENTATION;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.REGION_TO_TOPIC_BINDINGS;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.REGION_TO_TOPIC_BINDINGS_DISPLAY_NAME;
 import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.REGION_TO_TOPIC_BINDINGS_DOCUMENTATION;
+import static org.apache.geode.kafka.utils.GeodeSourceConfigurationConstants.SOURCE_GROUP;
 
 import java.util.Collection;
 import java.util.List;
@@ -86,53 +95,87 @@
         ConfigDef.Type.STRING,
         "",
         ConfigDef.Importance.HIGH,
-        CQS_TO_REGISTER_DOCUMENTATION);
+        CQS_TO_REGISTER_DOCUMENTATION,
+        SOURCE_GROUP,
+        1,
+        ConfigDef.Width.LONG,
+        CQS_TO_REGISTER_DISPLAY_NAME);
 
     configDef.define(
         REGION_TO_TOPIC_BINDINGS,
         ConfigDef.Type.STRING,
         DEFAULT_REGION_TO_TOPIC_BINDING,
         ConfigDef.Importance.HIGH,
-        REGION_TO_TOPIC_BINDINGS_DOCUMENTATION);
+        REGION_TO_TOPIC_BINDINGS_DOCUMENTATION,
+        SOURCE_GROUP,
+        2,
+        ConfigDef.Width.LONG,
+        REGION_TO_TOPIC_BINDINGS_DISPLAY_NAME);
 
     configDef.define(
         DURABLE_CLIENT_ID_PREFIX,
         ConfigDef.Type.STRING,
         DEFAULT_DURABLE_CLIENT_ID,
         ConfigDef.Importance.LOW,
-        DURABLE_CLIENT_ID_PREFIX_DOCUMENTATION);
+        DURABLE_CLIENT_ID_PREFIX_DOCUMENTATION,
+        SOURCE_GROUP,
+        3,
+        ConfigDef.Width.MEDIUM,
+        DURABLE_CLIENT_ID_PREFIX_DISPLAY_NAME);
 
     configDef.define(DURABLE_CLIENT_TIME_OUT,
         ConfigDef.Type.STRING,
         DEFAULT_DURABLE_CLIENT_TIMEOUT,
         ConfigDef.Importance.LOW,
-        DURABLE_CLIENT_TIME_OUT_DOCUMENTATION);
+        DURABLE_CLIENT_TIME_OUT_DOCUMENTATION,
+        SOURCE_GROUP,
+        4,
+        ConfigDef.Width.MEDIUM,
+        DURABLE_CLIENT_TIME_OUT_DISPLAY_NAME);
 
     configDef.define(CQ_PREFIX,
         ConfigDef.Type.STRING,
         DEFAULT_CQ_PREFIX,
         ConfigDef.Importance.LOW,
-        CQ_PREFIX_DOCUMENTATION);
+        CQ_PREFIX_DOCUMENTATION,
+        SOURCE_GROUP,
+        5,
+        ConfigDef.Width.MEDIUM,
+        CQ_PREFIX_DISPLAY_NAME
+        );
 
     configDef.define(
         BATCH_SIZE,
         ConfigDef.Type.INT,
         DEFAULT_BATCH_SIZE,
         ConfigDef.Importance.MEDIUM,
-        BATCH_SIZE_DOCUMENTATION);
+        BATCH_SIZE_DOCUMENTATION,
+        SOURCE_GROUP,
+        6,
+        ConfigDef.Width.MEDIUM,
+        BATCH_SIZE_DISPLAY_NAME
+        );
 
     configDef.define(
         QUEUE_SIZE,
         ConfigDef.Type.INT,
         DEFAULT_QUEUE_SIZE,
         ConfigDef.Importance.MEDIUM,
-        QUEUE_SIZE_DOCUMENTATION);
+        QUEUE_SIZE_DOCUMENTATION,
+        SOURCE_GROUP,
+        7,
+        ConfigDef.Width.MEDIUM,
+        QUEUE_SIZE_DISPLAY_NAME);
 
     configDef.define(LOAD_ENTIRE_REGION,
         ConfigDef.Type.BOOLEAN,
         DEFAULT_LOAD_ENTIRE_REGION,
         ConfigDef.Importance.MEDIUM,
-        LOAD_ENTIRE_REGION_DOCUMENTATION);
+        LOAD_ENTIRE_REGION_DOCUMENTATION,
+        SOURCE_GROUP,
+        8,
+        ConfigDef.Width.MEDIUM,
+        LOAD_ENTIRE_REGION_DISPLAY_NAME);
 
     return configDef;
   }
diff --git a/src/main/java/org/apache/geode/kafka/utils/GeodeConfigurationConstants.java b/src/main/java/org/apache/geode/kafka/utils/GeodeConfigurationConstants.java
index a4a6811..83f23e2 100644
--- a/src/main/java/org/apache/geode/kafka/utils/GeodeConfigurationConstants.java
+++ b/src/main/java/org/apache/geode/kafka/utils/GeodeConfigurationConstants.java
@@ -27,4 +27,11 @@
   public static final String
       SECURITY_CLIENT_AUTH_INIT_DOCUMENTATION =
       "Point to the Java class that implements the [AuthInitialize Interface](https://geode.apache.org/docs/guide/19/managing/security/implementing_authentication.html)";
+  public static final String GEODE_GROUP = "Geode-Configurations";
+  public static final String SECURITY_PASSWORD_DISPLAY_NAME = "Apache Geode Password";
+  public static final String SECURITY_CLIENT_AUTH_INIT_DISPLAY_NAME = "Authentication Class";
+  public static final String SECURITY_USER_DISPLAY_NAME = "Apache Geode username";
+  public static final String LOCATORS_DISPLAY_NAME = "Locators";
+  public static final String TASK_ID_DISPLAY_NAME = "Task ID";
+
 }
diff --git a/src/main/java/org/apache/geode/kafka/utils/GeodeSinkConfigurationConstants.java b/src/main/java/org/apache/geode/kafka/utils/GeodeSinkConfigurationConstants.java
index e3e3a6f..312e851 100644
--- a/src/main/java/org/apache/geode/kafka/utils/GeodeSinkConfigurationConstants.java
+++ b/src/main/java/org/apache/geode/kafka/utils/GeodeSinkConfigurationConstants.java
@@ -14,4 +14,8 @@
   public static final String
       TOPIC_TO_REGION_BINDINGS_DOCUMENTATION =
       "A comma separated list of \"one topic to many regions\" bindings.  Each binding is surrounded by brackets. For example \"[topicName:regionName], [anotherTopic: regionName, anotherRegion]";
+  public static final String SINK_GROUP = "Sink-Configurations";
+  public final static String TOPIC_TO_REGION_BINDINGS_DISPLAY_NAME = "Topic to region mapping";
+  public final static String NULL_VALUES_MEAN_REMOVE_DISPLAY_NAME = "Null values behavior";
+
 }
diff --git a/src/main/java/org/apache/geode/kafka/utils/GeodeSourceConfigurationConstants.java b/src/main/java/org/apache/geode/kafka/utils/GeodeSourceConfigurationConstants.java
index 52f4a84..ebaec95 100644
--- a/src/main/java/org/apache/geode/kafka/utils/GeodeSourceConfigurationConstants.java
+++ b/src/main/java/org/apache/geode/kafka/utils/GeodeSourceConfigurationConstants.java
@@ -43,4 +43,13 @@
   public static final String
       QUEUE_SIZE_DOCUMENTATION =
       "Maximum number of entries in the connector queue before backing up all Geode CQ listeners sharing the task queue ";
+  public static final String SOURCE_GROUP = "Source-Configuration";
+  public static final String CQS_TO_REGISTER_DISPLAY_NAME = "Continuous Queries (CQ) to register";
+  public static final String REGION_TO_TOPIC_BINDINGS_DISPLAY_NAME = "Region to topic mapping";
+  public static final String DURABLE_CLIENT_ID_PREFIX_DISPLAY_NAME = "Durable client ID";
+  public static final String DURABLE_CLIENT_TIME_OUT_DISPLAY_NAME = "Durable Client timeout";
+  public static final String CQ_PREFIX_DISPLAY_NAME = "CQ prefix";
+  public static final String BATCH_SIZE_DISPLAY_NAME = "Batch size for CQs";
+  public static final String QUEUE_SIZE_DISPLAY_NAME = "Queue size for CQs";
+  public static final String LOAD_ENTIRE_REGION_DISPLAY_NAME = "Load entire region";
 }
