DataBiosphere / data-store

AWS and GCP data storage system for genomic data.
https://dss.dev.ucsc-cgp-redwood.org
Other
3 stars 2 forks source link

Auth0 FLAC user stories #93

Closed kozbo closed 4 years ago

kozbo commented 4 years ago

Investigate

As an admin I would like to restrict access to files and or bundles or projects to a particular group or individual As a user I would expect to be able to access data that I have permission to, and not data that I am restricted from

chmreid commented 4 years ago

As an admin, I woud like to restrict public access to a resource (project/bundle/file).

As an admin, I would like to explicitly grant permission to access a resource (project/bundle/file) to a principal (user/group).

As an admin, I would like to be able to grant specific principal (user/group) access to all versions of a resource.

OPTIONAL: DISCUSS

As an admin, I would like to be able to grant specific principal (user/group) access to a particular version of a resource (project/bundle/file), while leaving other versions protected.

chmreid commented 4 years ago

As a user, I would like to be able to access any data that is public.

As a user, I would like to be granted access to data I have permission to access.

As a user, I would like to be denied access to data I do not have permission to access.

chmreid commented 4 years ago

To digest this into an MVP, the FLAC mechanism should do the following:

chmreid commented 4 years ago

To discuss at next standup:

kozbo commented 4 years ago

yes, let's discuss. Is there a priority to these use cases?

chmreid commented 4 years ago

@kozbo IMO - yes, there is, the top priority should be providing FLAC based on UUIDs only. This keeps the FLAC implementation as simple as possible.

Version-specific FLAC would be a little more complicated to implement, and we don't have a specific customer asking for that requirement. Since any new customers would force us to revisit auth anyway, we can expand the FLAC system as needed at that time.

chmreid commented 4 years ago

Based on discussion at 2020-02-14 architecture meeting, here are the amendments we made to the above user stories:

chmreid commented 4 years ago

Create:

Read:

Update:

Delete:

chmreid commented 4 years ago

API endpoints that we are protecting (from swagger_auth.py script):

default_auth = {"/files/{uuid}": ["put"],
                "/subscriptions": ["get", "put"],
                "/subscriptions/{uuid}": ["get", "delete"],
                "/collections": ["get", "put"],
                "/collections/{uuid}": ["get", "patch", "delete"],
                "/bundles/{uuid}": ["put", "patch", "delete"]
               }