cs3apis
cs3apis copied to clipboard
Allow user individual tags (and favorites)
The favorite flag is a user specific property for a file that cannot be mapped to extended attributes without leaking who has marked a file as a favorite.
It is a specific case of a tag, which is user individual as well. I see these types of tags
- public that are maganed by everyone
- private (or user individual) tags that are only visible to the user
- system tags that are only visible to the system
- group tags that are only visible to a group ...
This can be solved using different namespaces or scopes for tags
- public = p:
- private = u:
: for user specific - system = s: for system
- group = g:
: - app? = a:
: for apps?
Obviously this only is secure when the u/s/g/a namespaces are not accessible by users in the filesystem. public tags can be mapped to extended attributes, eg. dublin core metadata.
namespaces for metadata was already mentioned in https://github.com/cs3org/cs3apis/pull/31#issuecomment-530260184
@butonic this issue makes a lot of sense for favourites and any other metadata that user can attach to a shared resource like comments, chats, tags, ...
I've asked Andreas from the EOS team who is/was dealing with such dilemma for extended attributes.
If the extended attributes have support for such visibility we don't need to create a layer on top