Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for external file stores #3

Open
almereyda opened this issue May 4, 2023 · 4 comments
Open

Support for external file stores #3

almereyda opened this issue May 4, 2023 · 4 comments

Comments

@almereyda
Copy link

The upcoming export and import logic could also be hooked to the client libraries of:

  • Solid
  • RemoteStorage
  • S3 with short-term tokens
  • Google Drive
  • Dropbox
  • Nextcloud
  • ...

I had expressed similar ideas in gristlabs/grist-core#359 (comment) before, but leaving it here, since the last newsletter asks for feedback.

This would make Grist Static a collaborative web application.

@paulfitz
Copy link
Member

paulfitz commented May 5, 2023

Your ideas are interesting @almereyda. I wonder if you could spell out how you'd imagine credentials or authentication would be handled for the grist-static case, I can't quite picture it.

@almereyda
Copy link
Author

almereyda commented May 6, 2023

Most of these protocols align around OAuth2/OIDC primitives and implicit auth grants. It is well exemplified in StackEdit.io (benweet/stackedit), how such an integration can play out: The client libraries of said platforms are surfaced in one's own application, and bring their own login flows + data stores. 0data.app also names fission.codes, but I had never tried that.

After the clients are authenticated against their individual data stores, one uses the provided sinks and taps for CRUD in the browser, and that's it. Eventually a dedicated "save" or "auto-save" feature might be needed, to synchronise between server and client, when no such protocol is provided already. With Solid it's even fun to access other people's "pods" and their content via CORS, either publicly or with WebACL.

S3 odds out of the listing, as it requires the creation of signed (capability) URLs for third party users, either manually or by another dedicated web service. A nice user platform on S3 is Notea, but that's not client-side application, very much like grist-core then. But I'm sure it could be done client-side, given a separate auxilary service to exchange signing tokens for authenticated sessions some place else.

@paulfitz
Copy link
Member

paulfitz commented Aug 3, 2023

@almereyda if you were to support one first external file store for grist-static, what would it be? I looked at StackEdit.io but did not find a clear model to follow, maybe I missed it.

@rcaught
Copy link

rcaught commented Nov 6, 2023

Since this is all client side, credentials and authentication to files is debatably pointless. The files should be public.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants