I believe you're referring to this:
https://blog.cloudflare.com/javascript-native-rpc
(Just dropping the link here for anyone else wondering.)
(I'm the author of that blog post, and also the tech lead for Workers and the former founder of Sandstorm.)
Yes, great post and really interesting work! Thank you, I really appreciate the sharing culture at Cloudflare.
Re:Distributed Authorization
by spencerflem on Tuesday April 16, 2024 @01:44PM
(#40054941)
Cloudflare workers are lead by the creator of sandstorm, and use CapnProto internally which has a really neat capabilities based RPC mechanism as well.
Great to know! I'm not deep in the space but was reading about their recent impl update and it seems really well done and much of the ideas are quite thought provoking.
I'm not sure I'm sold on nano services, but if their scheduling system ends up being good enough, a lot of the problems behind treating local and remote calls homogeneously could go away.
Re:Distributed Authorization
by spencerflem on Tuesday April 16, 2024 @02:07PM
(#40055260)
I'm not either tbh, haven't used cloudflare workers myself, though I like their style (ultra low weight, run at the edge) a lot more than AWS's where you have to worry about cold starts. But for anything at the scale I'm doing it, one box running everything itself is enough.
Mostly just excited about capability security :) & what it can hopefully do to make doing things the right way (least privilege) as painless as possible - especially across program or network boundaries.
Re:Distributed Authorization
by oasisaimlessly on Tuesday April 16, 2024 @10:31PM
(#40059800)
What happens if authorization to do something is revoked while your code is holding such a function handle?
Re:Distributed Authorization
by spencerflem on Tuesday April 16, 2024 @11:57PM
(#40060272)
I'd assume it throws an exception, like it would for a network error
The callee basically decides what kind of capabilities it provides to the caller with these functions, anything you're given, you have the right to call without any further auth preconditions. Those capabilities can then be delegated by returning them, wrapped or not, to other callers.