Revisit signed streams implementation and introduce a standalone mode—an upgraded version of RPC-less setup suitable for any application (not only Hotwire).
What changes did you make? (overview)
[x] Added a reserved "$pubsub" channel for direct pub/sub support
[x] Unifed signed stream controllers implementations
Deprecated older sign key options in favor of a single --streams_secret
Deprecated cleartext modes for Turbo and CableReady ($pubsub with --public_streams must be used instead)
[x] Renamed JWT params and simplified terminology (switch focus from identification to authentication for the standalone mode)
What is the purpose of this pull request?
Revisit signed streams implementation and introduce a standalone mode—an upgraded version of RPC-less setup suitable for any application (not only Hotwire).
What changes did you make? (overview)
[x] Added a reserved "$pubsub" channel for direct pub/sub support
[x] Unifed signed stream controllers implementations
--streams_secret
$pubsub
with--public_streams
must be used instead)[x] Renamed JWT params and simplified terminology (switch focus from identification to authentication for the standalone mode)
[x] Add no auth mode (
--noauth
)[x] Introduce shortcut configuration options (
--secret
,--public
)[x] Introduce
--broadcast_key
option (instead of older--http_broadcast_secret
, but can be used with other broadcasters)[x] Auto-generate broadcast key and RPC secret from the application secret (if not set explicitly)
[x] Added new broadcasting docs (AnyCable server oriented)
[x] Added new RPC docs
[x] HTTP broadcaster is enabled by default
Changes in other libraries
anycable
:AnyCable.signed_stream(val)
andconfig.streams_secret
andconfig.secret
anycable
: upgrade HTTP adapter and RPC HTTP to auto-generate auth secrets from the application secretanycable
: added JWTanycable-rails
:#signed_stream_name
helperanycable-rails
: JWT integration@anycable/core
:cable.streamFrom(...)
andcable.streamFromSigned(...)
.@anycable/serverless
:signStream(name: string): string
@anycable/serverless
: upgrade broadcaster to sign requestsIs there anything you'd like reviewers to focus on?
Check out the docs:
Checklist