93 ms·
Cloudflare workers use this in an interesting way as well. The capability is basically a function or an object with data and functions is returned from a call t
by nurple 2y ago
Cloudflare workers use this in an interesting way as well. The capability is basically a function or an object with data and functions is returned from a call to a remote service. The functions are intercepted with proxy to call other services instead of local code.
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.
- spencerflem 2y agoCloudflare workers are lead by the creator of sandstorm, and use CapnProto internally which has a really neat capabilities based RPC mechanism as well.
- nurple 2y agoGreat 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.
- spencerflem 2y agoI'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.
- kentonv 2y agoI believe you're referring to this: https://blog.cloudflare.com/javascript-native-rpc 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.)
- nurple 2y agoYes, great post and really interesting work! Thank you, I really appreciate the sharing culture at Cloudflare.
- oasisaimlessly 2y agoWhat happens if authorization to do something is revoked while your code is holding such a function handle?
- spencerflem 2y agoI'd assume it throws an exception, like it would for a network error