schema-registry proxy
schema-registry proxy
The schema-registry proxy binding receives inbound Schema Registry API requests on the external endpoint and forwards them to the internal schema registry endpoint. When a cluster-id is configured, it is used as a namespace prefix on subject names to isolate schemas per cluster.
schema_registry_proxy:
type: schema-registry
kind: proxy
options:
external:
endpoint: https://schema-registry.external.net:8082
internal:
endpoint: http://schema-registry.internal.net:8081
exit: tcp_clientConfiguration (* required)
options*
object
The schema-registry proxy specific options.
options:
cluster-id: development
external:
endpoint: https://schema-registry.external.net:8082
internal:
endpoint: http://schema-registry.internal.net:8081options.cluster-id
string
Namespace prefix applied to subject names when forwarding to the internal registry. External subject foo is resolved as {cluster-id}.foo internally; the prefix is stripped on responses.
options.external
object
The external-facing schema registry endpoint.
options:
external:
endpoint: https://schema-registry.external.net:8082external.endpoint*
string| Pattern:^(https?)://[^:/]+(:\\d+)?(/.*)?$
URL of the external-facing schema registry endpoint.
options.internal
object
The internal schema registry endpoint.
options:
internal:
endpoint: http://schema-registry.internal.net:8081internal.endpoint*
string| Pattern:^(https?)://[^:/]+(:\\d+)?(/.*)?$
URL of the internal schema registry endpoint.
options.subjects
arrayofobject
Subject configuration list, checked in order; the first matching entry wins. When no entry matches a given subject, the cluster-id prefixing rule above applies instead.
options:
subjects:
- name: orders-value
alias: "${subject}-${guarded['my_guard'].identity}"subjects[].name
string
Subject name pattern, as observed by the external client. Supports * as a wildcard.
subjects[].alias
string
Template for the internal subject name. Supports ${subject} to reference the subject's own name, along with identity and attribute placeholders such as ${guarded['my_guard'].identity} and ${guarded['my_guard'].attributes.my_attribute}. The referenced guard must be declared in the top-level guards section; it does not need to also appear in routes[].guarded.
subjects:
- name: "orders-*"
alias: "${subject}-${guarded['my_guard'].identity}"routes
arrayofobject
Conditional schema-registry specific routes. At most one route is allowed.
routes[].guarded
objectas map of namedarrayofstring
List of roles required by each named guard to authorize this route.
routes:
- guarded:
my_guard:
- read:itemsroutes[].exit*
string
Next binding when following this route.
routes:
- exit: tcp_clientexit
string
Default exit binding when no conditional routes are viable.
exit: echo_servertelemetry
object
Defines the desired telemetry for the binding.
telemetry.metrics
array
Telemetry metrics to track
telemetry:
metrics:
- stream.*telemetry.attributes
objectas map of namedstringproperties
Telemetry attributes to add to the binding metrics.

