List Matcher¶
Exact-match filtering using a comma-separated list of event names.
Syntax¶
- Separate multiple events with comma
, - Event names are case-insensitive
- Exact match only (no wildcards)
- Use
not:prefix to exclude instead of include
Examples¶
Include Events¶
# Single event
kete.routes.audit.event-matchers.login=list:LOGIN
# Multiple events
kete.routes.audit.event-matchers.auth=list:LOGIN,LOGOUT,LOGIN_ERROR
# User management events
kete.routes.audit.event-matchers.users=list:REGISTER,UPDATE_EMAIL,UPDATE_PASSWORD,DELETE_ACCOUNT
# Admin events (format: RESOURCETYPE_OPERATIONTYPE)
kete.routes.audit.event-matchers.admin=list:USER_CREATE,USER_UPDATE,USER_DELETE
Exclude Events¶
# Exclude high-frequency events (use with ALL mode)
kete.routes.kafka.event-match-mode=all
kete.routes.kafka.event-matchers.all=glob:*
kete.routes.kafka.event-matchers.no-tokens=list:not:REFRESH_TOKEN,CODE_TO_TOKEN,INTROSPECT_TOKEN
Configuration Examples¶
Multiple Destinations¶
# Kafka gets login/logout only
kete.routes.kafka.destination.kind=kafka
kete.routes.kafka.destination.bootstrap.servers=kafka:9092
kete.routes.kafka.destination.topic=login-events
kete.routes.kafka.event-matchers.list=list:LOGIN,LOGOUT
# RabbitMQ gets all events (no event-matchers = accept all)
kete.routes.rabbitmq.destination.kind=amqp-0.9.1
kete.routes.rabbitmq.destination.host=rabbitmq
kete.routes.rabbitmq.destination.exchange=keycloak
Combining with Other Matchers¶
# Match login OR wildcard pattern (ANY mode - default)
kete.routes.kafka.event-matchers.login=list:LOGIN
kete.routes.kafka.event-matchers.user=glob:USER_*
Case Sensitivity¶
All matchers in KETE are case-insensitive:
LOGINmatchesLOGIN,login,LoginloginmatchesLOGIN,login,Login