I think we need a new concept in the data tier - a project.
This will allow better collaboration between users.
- A dataset belongs to a project (potentially to multiple projects).
- A project can be personal or shared.
- A personal project can be changed to being shared but not vice-versa.
- Only an owner of a project can manage datasets in that project.
- A shared project can have multiple owners. An owner can add another user as an owner.
- All users can view and use data in a shared project (later we may add access control).
- Datasets can be listed, filtered based on project.
- Each user starts with a default personal project that has the same name as their username.
- The API should list the available projects.
A consequence of this is that datasets are not really 'owned' by an individual user, they are 'owned' by the project.
Instead each dataset is 'created by' an individual user and as datasets are immutable (other than deleting them and updating metadata) then this will never change.
In terms of filtering, filtering by project is typically more useful than filtering by user.
I think we need a new concept in the data tier - a
project.This will allow better collaboration between users.
A consequence of this is that datasets are not really 'owned' by an individual user, they are 'owned' by the project.
Instead each dataset is 'created by' an individual user and as datasets are immutable (other than deleting them and updating metadata) then this will never change.
In terms of filtering, filtering by project is typically more useful than filtering by user.