Validate messages against a Confluent Schema Registry
Ensure that all messages consumed from any topic are validated against a Confluent Schema Registry, and mark messages that don’t conform.
Prerequisites
- A schema registry configured in the Event Gateway control plane.
curl -X POST https://{region}.api.konghq.com/v1/event-gateways/{eventGatewayId}/virtual-clusters/{virtualClusterId}/consume-policies \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $KONNECT_TOKEN" \
--data '
{
"name": "validate-all-topics",
"type": "schema_validation",
"config": {
"type": "confluent_schema_registry",
"schema_registry": {
"name": "my-schema-registry"
},
"key_validation_action": "mark",
"value_validation_action": "mark"
}
}
'Make sure to replace the following placeholders with your own values:
-
region: Geographic region where your Kong Konnect is hosted and operates. -
KONNECT_TOKEN: Your Personal Access Token (PAT) associated with your Konnect account. -
virtualClusterId: Theidof the Virtual Cluster. -
eventGatewayId: Theidof the Event Gateway. -
eventGatewayListenerId: Theidof the Event Gateway Listener.
See the Konnect Event Gateway API reference to learn about region-specific URLs and personal access tokens.
Prerequisite: Configure your Personal Access Token
terraform {
required_providers {
konnect-beta = {
source = "kong/konnect-beta"
}
}
}
provider "konnect-beta" {
personal_access_token = "$KONNECT_TOKEN"
server_url = "https://us.api.konghq.com/"
}resource "konnect_event_gateway_consume_policy_schema_validation" "my_virtual_cluster_policy_schema_validation" {
provider = konnect-beta
type = "schema_validation"
config = {
type = "confluent_schema_registry"
schema_registry = {
name = "my-schema-registry"
}
key_validation_action = "mark"
value_validation_action = "mark"
}
virtual_cluster_id = konnect_event_gateway_virtual_cluster.my_virtual_cluster.id
gateway_id = konnect_event_gateway.my_event_gateway.id
}The following example creates a new schema_validation policy.
Add this snippet to an event_gateways resource in your declarative configuration file, and then manage it with kongctl:
event_gateways:
- ref: eventGatewayName
name: eventGatewayName
virtual_clusters:
- ref: virtualClusterName
name: virtualClusterName
consume_policies:
- ref: validate-all-topics
type: schema_validation
schema_validation:
name: validate-all-topics
config:
type: confluent_schema_registry
schema_registry:
name: my-schema-registry
key_validation_action: mark
value_validation_action: markMake sure to replace the following placeholders with your own values:
-
eventGatewayName: Thenameof your Event Gateway. -
virtualClusterName: Thenameof the Virtual Cluster.