GATEWAY_AUTO_CREATE_TOPICS_ENABLED
environment variable (default: false
).
auto.create.topics.enable
when the feature is enabled.CREATE
permission on either the topic or the cluster.{{clusterName}}
and {{threshold}}
can be embedded using handlebars syntax for context-aware notifications that provide meaningful alert details.
Find out how to configure email integration.
RUNNING
state can also return errors that are only visible within the Confluent Cloud UI. When a connector is in this state:
MTLS
for the spec.authenticationMode.type
.
Find out more about prerequisites for creating Partner Zones.
v0.6.0
, where intermittent failure on some apply runs where kind ordering would not be respected. In some scenarios the parent resource is not made before the child (e.g. ApplicationInstances being created before Applications) and the run would fail, this could be fixed by attempting a retry.v0.6.0
where failed runs would not return an exit code, leading to silent failures in CI actions.v0.6.1
, please use this instead of v0.6.0
where possible.
apply
operations with the --parallelism
flag.
GATEWAY_SECURITY_MODE
environment variableGATEWAY_SECURITY_MODE
environment variable,
which simplifies the security configuration by splitting out what manages authentication/authorization (valid values: KAFKA_MANAGED
or GATEWAY_MANAGED
) from how it should be managed (still set in the GATEWAY_SECURITY_PROTOCOL
environment variable).
This change:
DELEGATED_SASL_PLAINTEXT
and DELEGATED_SASL_SSL
security protocols (though they remain supported for backward compatibility)GATEWAY_ACL_ENABLED
environment variable. ACL behavior is now derived from the security modeTopic
, Subject
or Connector
configured at Application level will be applied to all Application Instances under that Application.
10001:0
/
would redirect to the home page.commons-beanutils
(CVE-2025-48734).
This release fixes the affected dependency to mitigate the risk associated with this CVE.
GATEWAY_USER_POOL_SERVICE_ACCOUNT_REQUIRED=true
GATEWAY_USER_POOL_SERVICE_ACCOUNT_REQUIRED
.
This change improves security and consistency by enforcing that all PLAIN tokens must correspond to a pre-existing local service account. The GATEWAY_USER_POOL_SERVICE_ACCOUNT_REQUIRED
variable is now deprecated and will behave as if it was set to true
.
This enforces best practices that were previously only encouraged, meaning all tokens must have their service account already created on Gateway before they’re allowed to connect.
We expect most customers to be unaffected as this setup is actively discouraged in the onboarding experience, as we recommend creating the service account before creating tokens.
SASL_SSL
or SASL_PLAINTEXT
GATEWAY_USER_POOL_SECRET_KEY
wasn’t already setGATEWAY_USER_POOL_SECRET_KEY
. We recommend using the following command line to generate the hash:targetKind
are Connector
and Topic
.
==
) on JSON number fields aren’t working correctly when the number exceeds JavaScript’s safe integer limit of 2^53-1
. Note that while range operators (>
, <
, >=
, <=
) still work with large numbers, there’s currently no workaround for exact equality filtering. We’ll address this in a future release.
compressionType
entry in the encryption interceptor configuration to either ‘gzip’, ‘snappy’, ‘lz4’ or ‘zstd’.
If the full payload encryption is configured for headers, record keys or record values, the respective data will now be compressed before it is encrypted.
Find out more about encryption configuration
_conduktor_gateway_data_quality_violation
will be created.
To change this default topic name, use the GATEWAY_DATA_QUALITY_TOPIC
variable. Find out more about environment variables.
UUID
.maxKeys
has been added to config/kmsConfig/gateway/
. It should be set to a number larger than the expected number of secret Ids.masterKeyId
in config/kmsConfig/gateway/ is now validated and can’t use template variables.GATEWAY_SECURITY_PROTOCOL=DELEGATED_SASL_xxx
. By default, Gateway will use the sub
claim as the principal name. You can override this by setting the GATEWAY_OAUTH_SUB_CLAIM_NAME
environment variable to the claim you want to use as the principal name.
GATEWAY_OAUTH_USE_CC_POOL_ID
environment variable to true
to use the identity pool ID as the principal name.
GATEWAY_SECURITY_PROTOCOL=DELEGATED_SASL_xxx
. By default, Gateway will use the AWS access key ID as the principal name.
click.event-stream.avro
topic and its schema.
==
) on JSON number fields aren’t working correctly when the number exceeds JavaScript’s safe integer limit of 2^53-1
. Note that while range operators (>
, <
, >=
, <=
) still work with large numbers, there’s currently no workaround for exact equality filtering. We’ll address this in a future release.
_conduktor_gateway_encryption_keys
will be created.
To change this default topic name, use the GATEWAY_ENCRYPTION_KEYS_TOPIC
variable.
Find out more about environment variables.
GATEWAY_SUPER_USERS
environment variable) are now separated by a semicolon ;
instead of a comma ,
.
This change is to allow super users identified with mTLS using their full DN form (CN=writeuser,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown
), and makes Gateway aligned with the Kafka configuration.
.
in the name of the Virtual Cluster
APIsaws-java-sdk-sts
dependency to allow assume role profiles when using AWS KMSjcl-over-slf4j
dependency to see logs from AWS SDKResource access
permissions on individual clusters, while the Settings menu items are shown according to the Service access
permissions.
--dry-run
flag was used).userPrincipalName
field can now be set as the field containing the email address.7777705807840271771
would display as 7777705807840271000
).==
) on JSON number fields isn’t working correctly when the number exceeds JavaScript’s safe integer limit of 2^53-1
. Note that while range operators (>
, <
, >=
, <=
) still work with large numbers, there’s currently no workaround for exact equality filtering. We’ll address this in a future release.
get all
gateway.apiKeys.throttle_ms
: sets the throttling time in Kafka responses per apiKey in millisecondsgateway.apiKeys.latency.request_response
: sets the latency to process a request and generate a response for each API key
Limit Commit Offset Plugin
:
action
/throttleTimeInMs
properties did not work correctly and are now ignoredcluster ACLs
:
kafka-cluster
for the name part of the resource. This makes Gateway consistent with Kafka.CreateTopics ACLs
in Gateway which previously also required the Create cluster
permission enabled.GATEWAY_USER_POOL_SERVICE_ACCOUNT_REQUIRED
to true
(it currently defaults to false
).AddPartitionsToTxnRequest
where ACLs on transactionIds in new location were not being checked when Kafka API version was >= 4.ClusterAuthorizationException
instead of a TransactionalIdAuthorizationException
, making Conduktor Gateway consistent with Kafka.'
character that blocked database migrations"keySecretId": "vault-kms://my-vault:8200/transit/keys/{{record.key}}-{{record.header.someHeader}}"
errorPolicy: "return_encrypted"
Previous - if there’s an error during decryption, then the encrypted data is returned.errorPolicy: "fail_fetch"
New - if there’s an error during decryption, then the fetch that was reading the data is failed and the client will receive an error.conduktor run generateServiceAccountToken
to generate the JWT for local service accounts. Update your CLI to version 0.4.0 or higher.run
public/v1/certificates
API endpoints were modified to represent the fingerprint of the certificate.
It brings a more stable way to identify certificates in audit log and prevent multiple uploads of the same certificate.
spec.applicationManagedServiceAccount
set to true
.String
and com.fasterxml.jackson.databind.JsonNode
types returned by custom deserializers-subscription-registration-topic
and -subscription-response-topic
to the Kafka Stream filtertemplate
POST /admin/username/{username}
POST /admin/vclusters/v1/vcluster/{vcluster}/username/{username}
.
to a dash -
. This is in order to better allow the use of wild card certificates when certificates are in use.
The format of the SNI routing host names is now as below:
GATEWAY_SNI_HOST_SEPARATOR=.
For more information on SNI routing, see its documentation.
in-memory-kms://
If this, or any other valid KMS identifier, is not present the encryption plugin will now fail. This change is a precaution to prevent accidental misconfigurations resulting in the use of in memory mode and subsequent data loss.
gateway_license_remaining_days
which you can monitor to track the time left on your licenseenableAuditLogOnError
(default: true
) which enhances the errors which are logged when encryption/decryption fails.*
would not always match the entire value for a fieldkcat
when the new environment variable GATEWAY_MIN_BROKERID
is not aligned with the first BrokerId of your Kafka cluster
GATEWAY_MIN_BROKERID
to your first Kafka BrokerId or use kcat
with the -E
flagscope
was throwing an Exception.conduktor.io
labels previously available on Connector and Topic resources to new locations.
metadata.labels.'conduktor.io/description'
→ metadata.description
metadata.labels.'conduktor.io/description.editable'
→ metadata.descriptionIsEditable
metadata.labels.'conduktor.io/auto-restart-enabled'
→ metadata.autoRestart.enabled
metadata.labels.'conduktor.io/auto-restart-frequency'
→ metadata.autoRestart.frequencySeconds
conduktor.io
labels will fail in Conduktor Console 1.29. Be sure to update your YAML files to reflect the new labels.
Example error for outdated YAML:
CDK_ADMIN_PASSWORD
)CDK_AUTH_LOCALUSERS_0_PASSWORD
)AllowedKeys
to our Self-Service Topic Policy that restricts the properties that can be configured on a Topic.
/health/readiness
endpoint to return HTTP 503 when the Postgres DB is downPOST /admin/username/{username}
POST /admin/vclusters/v1/vcluster/{vcluster}/username/{username}
kcat
when the new environment variable GATEWAY_MIN_BROKERID
is not aligned with the first BrokerId of your Kafka cluster
GATEWAY_MIN_BROKERID
to your first Kafka BrokerId or use kcat
with the -E
flag<key>/<value>
will automatically be added as similar labels:
<key>: <value>
tag-
prefix as follows:
CDK_AUDITLOGPUBLISHER_CLUSTER
& CDK_AUDITLOGPUBLISHER_TOPICNAME
and events will start being produced to the destination topic.
A full list of all the exported audit log event types is published on the Audit Log page.
*
will now fail with this error message
Could not apply resource ApplicationInstance/my-app-inst: resource name 'appA-*' is not allowed. Use name 'appA-' with patternType PREFIXED instead
max
value wasn’t inclusive and min
could greater than max
CDK_SSO_OAUTH2_0_OPENID_METADATADOCUMENT
to modify the default discovery .well-known end-pointplatform.certificates.create
permission to perform the TLS checkconsole-cortex
imageunder_replicated_partitions
when topics have confluent.placement.constraints
propertyrun sql
all
ownershipMode: ALL
, which is the default, delegates all permissions related to that resource to the Application TeamownershipMode: LIMITED
delegates only a subset of the available permissions to the Application TeamApplicationGroup
<key>/<value>
will automatically be added as similar labels:
<key>: <value>
console-cortex
image. This CVE is related to prometheus docker metric scraping, which is not used by Conduktor.Regardless, as soon as the prometheus team fix this issue, it will be patched immediately by Conduktor.-o json
and -o name
on get
v
POST /admin/username/{username}
POST /admin/vclusters/v1/vcluster/{vcluster}/username/{username}
GATEWAY_SUPER_USERS
is not set, it will default to GATEWAY_ADMIN_API_USERS
for backward compatibility.
aclEnabled
from the previously used GATEWAY_ACL_STORE_ENABLED
variable.superUsers
list automatically, so this must be addressed as part of your migration.3.3.0
, the encryption plugin would convert the message to JSON, and re-apply the schema format when the message was read back through the decryption plugin.
In Gateway 3.3.0
, we now preserve the schema format for Avro messages - meaning the same schema is used in the backing topic, and the data can be read directly from Kafka or without the decryption plugin at all.
Fields which cannot be encrypted in-place (effectively any non-string field) have their encrypted value placed in the headers, and the field itself is given a default masking value. The default values are clarified below:
Field Type | Default Value in 3.3.0 |
---|---|
Integer | Int MIN_VALUE |
Long | Long MIN_VALUE |
Float | Float, MIN_VALUE |
Double | Float MIN_VALUE (float again here due to some serdes behaviour) |
byte[] | ”********” as bytes |
fixed[] | every byte filled with charater ”*“ |
boolean | false |
GATEWAY_MIN_BROKERID
(default 0) that allows for determinist mapping of brokers and portsGATEWAY_AUDIT_LOG_KAFKA_
environment variablesgateway.brokered_active_connections
. This was equal to portCount with port mapping and always 1 in host mappinggateway.request_expired
tags: nodeHost/nodePort are replaced by nodeId/clusterIdGATEWAY_UPSTREAM_THREAD
config. The new intended default (number of CPU) previously was (2 x number of CPU).GATEWAY_ADVERTISED_SNI_PORT
that wasn’t working properlykcat
when the new environment variable GATEWAY_MIN_BROKERID
is not aligned with the first BrokerId of your Kafka cluster.
GATEWAY_MIN_BROKERID
to your first Kafka BrokerId or use kcat
with the -E
flag[ERROR] [KafkaCache:1007] - Failed to deserialize a value org.apache.avro.AvroTypeException: Expected field name not found: clusterId
POST /admin/username/{username}
POST /admin/vclusters/v1/vcluster/{vcluster}/username/{username}
GATEWAY_SNI_HOST_SEPARATOR
couldn’t be set to the value -
GATEWAY_SNI_HOST_SEPARATOR
wasn’t properly taken in accountGATEWAY_ADVERTISED_SNI_PORT
that wasn’t working properlyconsole-cortex
image. This CVE is related to prometheus docker metric scraping, which is not used by Conduktor.Regardless, as soon as the prometheus team fix this issue, it will be patched immediately by Conduktor.conduktor-console
, while conduktor-console-cortex
is currently limited to a single instance. The design ensures minimal impact on the cluster by assigning only one instance to handle the indexing of Kafka data used for performance monitoring.
spec.configs
. Previously it was mandatory to quote all numbers.<key>/<value>
will automatically be added as similar labels:
<key>: <value>
GATEWAY_ACL_ENABLED
or GATEWAY_ACL_STORE_ENABLED
was enabled resulting in ACLs being enforced in undesirable scenarios._conduktor_gateway_vclusters
_conduktor_gateway_groups
GATEWAY_VCLUSTERS_TOPIC
GATEWAY_GROUPS_TOPIC
GATEWAY_ACL_STORE_ENABLED
. This variable was enabling ACLs in all scenarios, whether you used Virtual Clusters or not.
GATEWAY_ACL_ENABLED
and modifying the behavior of the existing variable GATEWAY_ACL_STORE_ENABLED
.
From now on, the variables works as follow:
Environment Variable | Description | Default |
---|---|---|
GATEWAY_ACL_ENABLED | Enable ACLs on the Gateway excluding Virtual Clusters | "false" |
GATEWAY_ACL_STORE_ENABLED | Enable ACLs on Virtual Clusters only | "false" |
GATEWAY_ACL_STORE_ENABLED
obsolete.
conduktor/conduktor-console
to clarify our product naming.conduktor/conduktor-platform
image.
conduktor login
command which leverages the admin credentials to generate an API token, and allow the rest of the commands you may need to startup. This is expanded upon in the docs.
apply -f
you can now delete -f
/api
not mandatory when setting base URLdelete -f
apply
GATEWAY_ACL_STORE_ENABLED=true
.
conduktor/conduktor-console
to clarify our product naming.
This is the last version where we publish our images using both names.
Please modify your installation to reflect this change in advance of us deprecating the name conduktor/conduktor-platform
.
ApplicationInstance
from GROUP
to CONSUMER_GROUP
. This change is intended to prevent confusion with the newly introduced resources ApplicationGroup
and Group
.
ApplicationInstancePermission
snippet that grants the necessary access to Topics belonging to another Application.
Datetime.now()
if the latest offsets have changed since the last IndexingSET 'auto.offset.reset'
commandCDK_TOKEN
to CDK_API_KEY
to set your Admin or Application API Keyspec.schemaFile
. Previous versions of the CLI will only accept spec.schema
inlined.GATEWAY_DOWNSTREAM_THREAD
and GATEWAY_UPSTREAM_THREAD
are now correctly gathering the number of coresLargeMessageHandlingPlugin
plugin, honor correctly the localCacheExpireAfterWriteInSeconds
propertyuri
when special characters (i.e -
) are present in the hostname.defaultAlgorithm
used in the encryption interceptor to ensure it’s a valid enum value, and avoid overriding with defaultsexternalStorage
set to true
in the encryption interceptor that was failing to store headers in a separate internal topicbytes
and enums
typesconduktor/conduktor-console
to clarify our product naming.
We will publish newer versions using both names for this release and the next release only. Please modify your installation to reflect this change in advance of us deprecating the name conduktor-platform
.
kafka.topic
, kafka.topics
, topic
, topics
)GATEWAY_UPSTREAM_CONNECTION_POOL_TYPE
.GATEWAY_UPSTREAM_CONNECTION_POOL_TYPE=ROUND_ROBIN
with delegated authentication.conduktor/conduktor-console
to clarify our product naming.
We will publish newer versions using both names for the next two releases only. Please modify your installation to reflect this change in advance of us deprecating the name conduktor-platform
.
Application
and ApplicationInstance
ApplicationInstancePermission
id
field and TLS authentication in the YAML configuration file and Environment variables. This implies you might have a duplicate Connect instance if you use a YAML file with an ID for your Connect cluster. Check the Environment Variables page for more detailsprefix X-
to custom headerpassthrough
.
UX has been adjusted from using patterns only in favor of concentration rules, which have a dedicated part of the API.
passthrough
, now has users associated with it by default rather than being rejected. This behavior can be reverted through configuration; see the docs for more.
GATEWAY_MODE
(s) to be defined, instead using Kafka standard security protocols or DELEGATED
security protocols. Refer to the docs for moreget
, apply
(upsert) and delete
commands for the following Conduktor Console resources:
--dry-run
on apply
and delete
completion
that generates the autocompletion script for the specified shellignore
untrusted certificates environment variableconduktor/conduktor-console
.
We will publish newer versions using both names for the next three releases only. Please modify your installation to reflect this change in advance of us deprecating the name conduktor-platform
.
Group:
ACLs are presentmember_host
, consumer_id
and client_id
) in monitoring metrics to limit data points duplication generated during consumer group re-balances. This could cause ingestion limit issues in Cortex for large deployments-XX:+UseContainerSupport -XX:MaxRAMPercentage=70 -XX:MaxDirectMemorySize=100m
prefix-*
instead of prefix-
)allow-unsigned-id-tokens
and preferred-jws-algorithm
){datetime}
{datetime}
value["custom.key"]
instead of value.custom.key
)CDK_SSO_OAUTH2_0_SCOPES=scope1,scope2
)/opt/override-configs/cortex.yaml
)default.api.timeout.ms
& request.timeout.ms
) were mistakenly overridden, leading to possible timeouts on large Kafka Clustersconduktor/conduktor-platform-cortex
) when console (conduktor/conduktor-platform
) is configured with HTTPSRUN_MODE=nano
or RUN_MODE=small
, please update the RUN_MODE
based on your available memory after looking at our documentation.RUN_MODE
, you can free up some memory and save on infrastructure costs./docs
of your deployment (i.e. http://localhost:8080/docs).Fow now, only members of the Admin group can generate API Keys and access the API.Give us feedback on what you would like to see in the API next here. You can also refer to the docs here.id
value will now map to the technicalID
of the cluster setup.connector.RestartedTask
audit event.TESTING_ENABLED
to true when starting Conduktor.Why are we making this change?By removing the number of services started by default on-premise, this provides a performance optimization for customers that are not currently using Testing.confluent.log.placement.constraints
in the cluster config or confluent.placement.constraints
in the topic config. This avoids raising a false positive alert in case of a multi-region Confluent cluster. Note this logic will also be applied in Console in the next release.RUN_MODE
being used.Content-Length
header on web-socket requests, mitigating web-socket issues with some reverse proxy like Envoy.email
claim if not present in ID Token during login.CDK_HTTP_PROXY_*
configurations. Additionally, improvements have been made to HTTP certificate migration and various test scenarios. Upgrade to Conduktor 1.13.1 for these bug fixes and enhancements.platform.external.url
. Now the configured external url is always used for SSO callback url resolution.CDK_HTTP_PROXY_*
configurations were not being used for OIDC SSO requests. Also set CDK_HTTP_NON_PROXY_HOSTS
default value to localhost|127.*
when HTTP proxy is configured. See our Http Proxy configuration documentation for more details.platform.fqdn
configuration with platform.external.url
(used for SSO callback URL when using a reverse proxy).CDK_ROOT_LOG_LEVEL
or PLATFORM_STARTUP_LOG_LEVEL
are set to DEBUG
. See configuration properties and environment variablesAWS Glue
Schema Registry.reset
multiple connectors at once.Overview
screen with global health check
based on URP, Offline Partitions, Active Controllers, Unclean Elections and Min ISRproperties
in input platform configuration.topic
, subjects
and consumer groups
when a permission
is given on a clusterjmx_scrape_port
and node_scrape_port
that was not used for cluster monitoring./
in their name![]() |
---|
Extended RBAC for Enterprise customers |
AUTHENTICATOR_JAVA_OPS
enironment variable in favor of AUTHENTICATOR_JAVA_OPTS
null
instead of an empty String if the Key and/or Value input is emptyconduktor-platform
with UID 10001
and GID 0
sso.ignoreUntrustedCertificate: true
conduktor/conduktor-console-cortex:1.18.0
.auth.local-users[].groups
and slack-token
)io.conduktor.aws.IAMClientCallbackHandler
class used to configure IAM in the Platform now complies with the “credentials provider chain” mechanism of AWS.software.amazon.msk.auth.iam.IAMClientCallbackHandler
would do. If nothing is found, then it’ll use our mechanism. For more info, see documentation.io.conduktor.aws.IAMClientCallbackHandler
class can now be used as a drop-in replacement of software.amazon.msk.auth.iam.IAMClientCallbackHandler
in your Kafka properties:auth.local-users[].groups
and slack-token
)admin/clusters
. Soon, URLs inside the Platform solutions will use this technical id, enhancing shareability of URLs.