So I’m looking to migrate my project to Datahike and use its live sync features (via konserve-sync).
It’s a multi-tenant project, so I’ll have a separate store per tenant. It’s essential that different tenants cannot access each one’s transactions, so I’m looking to authorize Kabel’s websocket connections with a JWT token; however, it appears that kabel.http-kit ‘s handler https://github.com/replikativ/kabel/blob/main/src/kabel/http_kit.clj#L26 and there’s no API to add custom middleware to the handler. For now I’ll likely be monkey-patching kabel, but is anything like this planned?
Happy to offer PRs if there’s interest!
FWIW I have a PoC of an auth mechanism working with kabel-auth – thank you! I still need to validate how it behaves when the websocket server is put behind a HTTPS proxy (likely nginx), but I don’t foresee issues there.
check kabel, i updated the auth in the last few days, it should be much improved now
I have started to work on https://github.com/replikativ/kabel-auth, but have not fully verified it yet. I will very soon though (probably in the next days). I am happy to get it (or an alternative if needed), working with you.
konserve also has AES encryption support (it still needs to get CBC to be fully secure), so you could be able to do multi-tenant with encryption and auth is done by controlling who has the key to read. I have a design of how to do this with RBAC, but not sure this is necessary for you.