Fine Grain Gaia Storage Access


#1

Hi all, not sure if something similar has already been posted here (I took a quick look and didn’t see any real discussion on this), but I was wondering if it was possible to have fine grain control over items in storage? From what I’ve read in the docs, files are either encrypted and only user-readable, or readable by everyone is that correct?

EDIT: I re-read the gaia docs and realized that I completely missed the section discussing exactly how to do this, so to salvage this topic, are there any existing open source projects that implement this?


#2

Technically you could store it encrypted by your app and share the private keys for it via url params. I.E.

my-drive.com/u/origaniam.id/my-file.md?key=abcdef0123456789.

but that’s more of a workaround and might not work for most apps. IIRC though multiplayer-data-storage is a thing and you can share between a specific set of users, see: https://blog.blockstack.org/connecting-users-and-their-data-on-the-decentralized-internet/


but I see you already found a solution, lol. I’m pretty sure there was a prototype cloud-storage app that did my solution, XORdrive doesn’t however (yet). Multiplayer data storage is used by Stealthy IIRC.


#3

What is the meaning of multiplayer storage?

A set of users can access the same data privately?
Or all users can access the others users data publicly? (as described in the link provided by @MichaelFedora

OI Timesheet (github.com/friedger/time-calc) shares a set of time information with the user’s client. It uses the pub key of the client to encrypt the data and then publishing it unencrypted (i.e. the data is still encrypted on the server). This works as long as the public key of the user app is published on a well know location (for OI Timesheet: key.json)


#4

For OI Calendar, I actually implemented multi player storage, and group encryption sharing a private key where the event owner can revoke the key. github.com/friedger/oi-calendar