Glob Matcher¶
Unix-style wildcard pattern matching.
Syntax¶
| Wildcard | Matches | Example | Matches |
|---|---|---|---|
* |
Any number of characters | LOGIN* |
LOGIN, LOGIN_ERROR |
? |
Exactly one character | USER_? |
USER_A, USER_1 |
Underscores (_) are treated as literal characters, not wildcards.
Examples¶
Prefix Matching¶
# All login-related events
kete.routes.kafka.event-matchers.login=glob:LOGIN*
# Matches: LOGIN, LOGIN_ERROR, LOGIN_FAILED
# All user admin events (format: RESOURCETYPE_OPERATIONTYPE)
kete.routes.kafka.event-matchers.user=glob:USER_*
# Matches: USER_CREATE, USER_UPDATE, USER_DELETE
Suffix Matching¶
# All error events
kete.routes.kafka.event-matchers.errors=glob:*_ERROR
# Matches: LOGIN_ERROR, REGISTER_ERROR, UPDATE_ERROR
# All delete operations
kete.routes.kafka.event-matchers.deletes=glob:*_DELETE
# Matches: USER_DELETE, CLIENT_DELETE, REALM_DELETE
Single Character Matching¶
# Events with single character suffix
kete.routes.kafka.event-matchers.match=glob:USER_?
# Matches: USER_A, USER_1 (not USER_AB)
Exclude Patterns¶
# Exclude refresh 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-refresh=glob:not:REFRESH*
Configuration Examples¶
Multiple Patterns¶
# Match login OR user events
kete.routes.kafka.event-matchers.login=glob:LOGIN*
kete.routes.kafka.event-matchers.user=glob:USER_*
Combining with Other Matchers¶
# Exact match for LOGIN, glob for USER events
kete.routes.kafka.event-matchers.login=list:LOGIN
kete.routes.kafka.event-matchers.user=glob:USER_*
Realm-Specific Filtering¶
# Production realm - only errors
kete.routes.prod.realm-matchers.realm=list:production
kete.routes.prod.event-matchers.errors=glob:*_ERROR
# Dev realm - all login events
kete.routes.dev.realm-matchers.realm=list:development
kete.routes.dev.event-matchers.login=glob:LOGIN*
Case Sensitivity¶
All matchers in KETE are case-insensitive:
glob:LOGIN*matchesLOGIN,login,Loginglob:login*matchesLOGIN,login