when I create a public folder, I suppose that anyone can see its content. But is it possible to allow anyone to insert items on it too? And going further, is it possible to create a shared folder, where only selected collaborators can manage it (like Dropbox)?
Only the owner can write, as far as I know.
It may be possible to create a traditional gateway/proxy type of Web site to allow “members” to upload and have the owner’s account push data to SAFE.
It seems like allowing a visitor/app user to upload a file to a public folder other than their own (like a public folder of the app/website to share content, etc) would be a pretty basic function that would be needed…curious that this function is not available??..
A public object isn’t public. It’s a private object whose secrets are made known to public.
You could create your public share and I could link it from my app in form of a sub-directory or file.
Just attempting to make it comprehensive. Ok, so there are two things - ownership and encryption. We will thus have 4 possible outcomes:
- single owner , encrypted data :: In this case there is one user, who owns data and has encrypted the contents. No one but that user can read or mutate the data - E.g. most of our personal data etc.
- single owner , un-encrypted data :: No one but the user can mutate, but anyone can see it. It is a kind of Public Data but certainly not the only kind. E.g. Website owner’s DNS records (pages).
- multiple owners , encrypted data :: Only the group that owns can read and mutate the data. To allow reading, encryption keys must be available with all individuals in the group but with no one else - so there’s an agreement or a handshake between each individual in the group. For mutation exactly half, rounded to the next higher integer (ceiling), of the total number of owners must agree with the change for the change to take effect. In technical terms this translates to signing of the change request. This is achieved via multi-signature support in Structured Data and works in conjunction with core, routing and vault modules.
- multiple owners , un-encrypted data :: This should be easily guessable now. This of-course is another kind of Public Data, which is modifiable by more that one user.
So there could be multiple ways to do this - for instance you could request ownership - and once you have been added to the list you could mutate it if the consensus allows you to (we don’t want someone getting ownership and doing bad stuffs - like unauthorised deletions, uploads etc.). There will be some questions on this though because right now it is not completely worked out. Though it might seem to be the case of multiple owners, unencrypted data, as i mentioned earlier, it will not be strictly so in every scenario - you don’t want the owner group to infinitely grow and thus require infinite yeses to mutate. So it is very much there in our minds and we will soon come out with a proposal on this maybe.
So when I upload a public webpage with some HTML, pictures etc. it’s not self-encrypted and chunked? Even if it’s over 1MB? Or is it “unencrypted” in a way that the data-map is public??
And what happens when I change my website? The address (pointer???) for the viewers of my website will be the same?
Not trying to answer, just making a parallel: with Maelstrom and Zeronet you have to republish (because the hash is different). Probably here too, unless you can use the MaidSafe name aliasing (my guess).
Pretty much that. In actual fact your changing the pointer (hash), so effectively a republish. There will be the ability to delete the old stuff in future, but you are basically republishing (easiest way to think of it).
thanks, this “4 possibilities” explanation helped me a lot.
So, if I understood correctly, from a network perspective, all data are visible to anyone. SafeNet doesn’t knows which data are “private”, as there’s no flag indicating that. The “private” behavior is implemented on the app level by encrypting the data.
Is that right or the network (at the core level) can really label data as private?
yes that is correct.
And what about public un-encrypted data? Where’s self_encryption at this point?? Or is it encrypted but with the datamap so anyone can decrypt?
Self-encryption produces a data-map. Whether the data-map is public (unencrypted) or private(encrypted) makes all the difference.