Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decouple channel rules from library core #129

Merged
merged 23 commits into from
Jul 6, 2020
Merged

Conversation

FZambia
Copy link
Member

@FZambia FZambia commented Jun 27, 2020

Relates to #128

This should make library less opinionated and give more freedom for developers in terms of implementing their own permissions and channel rules.

This is а big refactoring, which should make library more general and extensible. What's inside:

  1. Remove opinionated layer: channel namespaces, channel rules (like user-limited channel, private channels), JWT parsing
  2. Leave a possibility to implement the same with some code on top of library
  3. Make the library feel as wrapper on top of client-server protocol
  4. Event handlers should be set for connection to enable subscribe, publish, history, presence and presence stats. Otherwise client will receive Not Available error
  5. Node config function to let developer return per-channel ChannelOptions to enable features, most of ChannelOptions removed (will be part of Centrifugo server), only core things left here.

Some personal thoughts: I always wanted to remove opinionated layer from library, this pr is a big shift and I am sorry for breaking things. But since we don't have v1 release yet I feel I have a right to do what I feel is a right choice in library positioning. This also should resolve issues like #113 and #80 – otherwise issues like this will always appear making library harder to support with time.

@FZambia FZambia changed the title [WIP] Decouple channel rules from library core Decouple channel rules from library core Jun 28, 2020
@FZambia FZambia mentioned this pull request Jul 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants