I'd like to propose adding support for clients to pass an additional filter dictionary when subscribing to a channel/topic.
The core need is this: for each message published to that topic, the Centrifugo server should be able to evaluate a filter expression defined by the client at subscription time. Only if the expression evaluates to true for a given message should that message be delivered to the subscribing client.
This filtering should occur on the server side to efficiently reduce unnecessary message traffic. A suggested implementation approach is to leverage the CEL (Common Expression Language) specification. CEL is well-suited for this type of secure, runtime-evaluated expression logic.
I'd like to propose adding support for clients to pass an additional
filterdictionary when subscribing to a channel/topic.The core need is this: for each message published to that topic, the Centrifugo server should be able to evaluate a filter expression defined by the client at subscription time. Only if the expression evaluates to
truefor a given message should that message be delivered to the subscribing client.This filtering should occur on the server side to efficiently reduce unnecessary message traffic. A suggested implementation approach is to leverage the CEL (Common Expression Language) specification. CEL is well-suited for this type of secure, runtime-evaluated expression logic.