sandstorm-io / sandstorm

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.
https://sandstorm.io
Other
6.72k stars 705 forks source link

Powerbox stretch goal #2450

Closed dckc closed 4 years ago

dckc commented 8 years ago

In a January 2015 sandstorm blog item we see:

With our new funding, we will be able to implement all of the “stretch goals” listed in our Indiegogo campaign. We don’t have a timeline for these yet, but they are coming! ...

  • Powerbox: We will develop rich sharing, federation, and service discovery through the use of Cap’n Proto and capability-based security. Users will be able to connect apps to each other through a Powerbox interface, allowing apps to establish secure links without worrying about any of the details of authentication or access control, even when they are not owned by the same user.

I would very much like to see a checklist or set of issues that form a rough plan for completing this.

For my part, I can enumerate various places where I get "the powerbox will solve that problem, but not yet" messages:

In April discussion of sending emails from wordpress:

I've been hesitant to hook this up until we have proper powerbox support ... ... some explanation about the powerbox ...

That explanation speaks of it in the present tense:

To that end, Sandstorm implements other kinds of powerbox flows for different occasions.

In grain.capnp:

... example a document editor app accepting a document offer may want to then open the editor for long-term use.

In Capability-based Usable Security:

.. At some point, an app that the user is using makes a request to the platform saying "I need a capability implementing interface Foo". The platform renders a picker UI to the user, where the user can choose from among all their apps that implement API Foo.

But in IRC:

Aug 18 15:37:07 <zarvox> eternaleye: DanC: you are correct that we currently do not provide a way to create new grains in response to powerbox requests or offers, but that we hope to some day provide such a capability Aug 18 15:39:06 <zarvox> So, one piece of the challenge is that we still don't have fully generic interface-matching implemented, nor the UI bits for making a grain able to respond intelligently to newRequestSession() Aug 18 15:44:05 <zarvox> You might want to pick a thing that quacks like a file to attach to an email from a file sync grain, so the email app would request a FileObject (some new interface). To enable a useful UI, grains would need to be able to mark themselves as capable of "responding to" that interface. So then you get a list of grains which are candidates for responding to this request, but you still need to somehow tell Aug 18 15:44:11 <zarvox> the responding grain which object it should be offering to complete the request. Aug 18 15:44:34 <zarvox> So that's where newRequestSession comes in - you need some way for the app to display appropriate UI for you to pick a thing to offer().

JamborJan commented 8 years ago

I'm also interested in a current status of federation and service discovery.

kentonv commented 8 years ago

Currently:

Not implemented:

The main reason why this has taken a long time is not because it's hard but rather because there are a very large number of things that Sandstorm needs which seem more immediately important, so we've been focused elsewhere. :/

dckc commented 8 years ago

Thanks for the update! I didn't know about the Rocket.Chat example; I'll have to check it out.

I understand that things take time; I just want a way to track the progress.

ocdtrekkie commented 8 years ago

I also didn't know Rocket.Chat did that, and thought I read like every possible thing I can read around here. \o/

zenhack commented 4 years ago

Are there any actionable tasks associated with this issue? The specific funding milestone is sortof moot at this point. It seems like at most this is asking for grouping some issues by milestone or label. But at this point the bones of the powerbox are in place, though certainly there are improvements to be made.

ocdtrekkie commented 4 years ago

I think we can close it. We should have specific issues for specific needs, and we are now using the app-platform label to categorize issues and feature requests relating to the Powerbox.