- Console API/CLI/Terraform - recommended for production and GitOps environments requiring dynamic configuration management. Enables real-time updates without service interruption.
- Console UI - ideal for development, testing, and quick configuration changes through the Console interface. Changes are not version-controlled or easily repeatable.
- YAML/Environment variables - best for initial Console setup and static configurations that rarely change. Requires container restart to apply configuration changes.
Ready-to-use configurations
Complete production-ready setup for Confluent Cloud
This demonstrates a complete configuration for Conduktor Console including database, monitoring, authentication and Confluent Cloud cluster connections with SASL_SSL/PLAIN security, Schema Registry, and Kafka Connect.- YAML file
- Environment variables
Amazon MSK with IAM authentication
Connect to an MSK cluster with IAM authentication. You can use explicit credentials or inherit them from the environment. Using explicit credentials:- YAML file
Complete production-ready setup for Aiven
This demonstrates a complete configuration for Conduktor Console including database, monitoring, authentication and Aiven cluster connections using mTLS with the Aiven flavor. You should have three files:- Your access key (in the keystore.jks file).
- Your access certificate (in the keystore.jks file).
- Your CA certificate (in the truststore.jks file).
- YAML file
- Environment variables
Kafka Cluster configuration
- None (PLAINTEXT)
- SASL
- SSL
- AWS IAM (MSK)
Basic connection without authentication or encryption.
- YAML file
- Environment variables
Schema Registry configuration
To enable Schema Registry support, attach these code examples to any of the cluster configurations above.- Confluent-like Schema Registry
- AWS Glue Schema Registry
- No authentication
- Basic authentication
- Bearer token authentication
- SSL authentication
- YAML file
- Environment variables
Kafka Connect configuration
To add Kafka Connect to your cluster configuration use the code examples below.- No authentication
- Basic authentication
- Bearer token authentication
- SSL authentication
- YAML file
- Environment variables
ksqlDB configuration
OAUTHBEARER with OIDC Authentication is possible since Kafka 3.1 and KIP-768 . To demonstrate OIDC authentication, you can connect to NASA’s GCN Kafka cluster after you sign up . Here’s a configuration example (adapt the values to your needs):- No authentication
- Basic authentication
- Bearer token authentication
- SSL authentication
- YAML file
- Environment variables
Provider configuration
To enable enhanced provider-specific capabilities, attach the following snippets to any of the above cluster configurations.- Confluent Cloud flavor
- Confluent Platform flavor
- Aiven Cloud flavor
- Gateway flavor
Connect to Confluent Cloud with enhanced management capabilities for service accounts, API keys, and ACLs.
- YAML file
- Environment variables
Logging configuration
- Environment variables
- Config file
Global log settings
Configure Console-wide logging behavior using these environment variables:For backward compatibility,
CDK_DEBUG: true is still supported and is equivalent to CDK_ROOT_LOG_LEVEL: DEBUG.Module-specific log settings
Configure logging levels for individual Console modules:Possible values for all of them are:OFF, ERROR, WARN, INFO, DEBUG, and TRACE.Log level inheritance
If you don’t explicitly set the log level for a module, it will inherit theCDK_ROOT_LOG_LEVEL.For instance, if you only setCONSOLE_ROOT_LOG_LEVEL will be automatically set to DEBUG.Similarly, if you set:CONSOLE_ROOT_LOG_LEVEL will still be set to DEBUG, and isn’t overridden.JSON structured logging
Enable structured logging by settingCDK_ROOT_LOG_FORMAT=JSON. Logs will use this JSON format:
Runtime logger API
Console provides runtime log level management via REST API. This requires an admin API key. For example, to troubleshoot SSO, read the current level of theorg.pac4j loggers, set them to DEBUG, then set them back:
PUT /public/debug/v1/loggers with a JSON body such as [{"name":"org.pac4j","level":"DEBUG"}].
- Reading uses a contains match.
GET /loggers/authenticatorreturnsio.conduktor.authenticator,io.conduktor.authenticator.ConduktorUserProfileand any other logger whose name containsauthenticator. - Setting a level uses the exact logger name. Pass a full logger name, such as
org.pac4j: its child loggers that don’t have their own level inherit the new level. A partial name such aspac4jcreates a new logger with that name and doesn’t changeorg.pac4j. - Levels are case-insensitive:
TRACE,DEBUG,INFO,WARN,ERROR,OFF. DELETE /loggers/{loggerName}doesn’t restore the level from your logback file. It removes the logger’s own level, so the logger inherits its parent’s level. You can’t delete the level of the root logger. To go back to the configured level, set it explicitly.- Changes apply to one Console instance and aren’t saved. They’re lost when Console restarts, and with several Console replicas you have to call each instance directly.
- Console resets
io.conduktorevery 10 seconds to match the debug mode (/public/debug/v1/loggers-mode/debug), so use the debug mode rather than settingio.conduktordirectly.