Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oasis specific visibility, rights, and role management #2

Open
markus1978 opened this issue Feb 18, 2021 · 2 comments
Open

Oasis specific visibility, rights, and role management #2

markus1978 opened this issue Feb 18, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@markus1978
Copy link
Member

NOMAD has only a very simple management of visibility, rights, and roles tailored towards publication on the central server.
Entries have owners, coauthors, and "shared with" users. All users are the same. All users have the same rights on the central server and on each Oasis. For the Oasis we need a more powerful management of visibility, rights, and roles.

In #1 the notion of "project" is introduced. Here we still talk about uploads as they are currently used in NOMAD. As entity uploads/"projects" will obviously play an important role in these features.

Stories

  • Oasis owner control who can upload and access data on the Oasis
  • Oasis owner can invite users to their Oasis
  • upload owner manage who can modify files and see unpublished data

Requirements

  • there are roles "owner", "author", "reviewer". These roles can be assigned to users per Oasis and per upload, [maybe] per entry
  • Oasis roles: owner (invite, manage users), author (create uploads), reviewer (view published uploads)
  • upload roles: owner (manage users, publish, delete), author (add files, delete files), reviewer (view unpublished data)
  • Oasis owner can determine that all NOMAD users get a certain default role (e.g. "reviewer")
  • upload roles can be assigned to all users, independent of them belonging to the Oasis
  • on the central NOMAD all users are "authors", i.e. can create uploads
  • Oasis owner have owner rights on all Oasis uploads

Implementation

  • the Oasis gets a singleton entity to manage users
  • we extend the user API to manipulate the Oasis user roles
  • we add a GUI page to manage Oasis users
  • the upload part is a "side quest" for A flexible staging area #1

Later feature request might extend this with a "team" or "group" notion. We should start with "user's only" to have less complexity in the beginning. As a general comment, NOMAD's user rights management will be limited due to its non relational backend, where most relations (e.g. team-user) need to be "unfolded" on lower levels (e.g. in elasticsearch).

@markus1978 markus1978 added the enhancement New feature or request label Feb 18, 2021
@markus1978
Copy link
Member Author

We implemented a very simple white-list based restriction mechanism that you can use, if you cannot wait for this. We will add this to the upcoming NOMAD v0.10.0 release. You can test with the pre-release build:
gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-fair:oasis-with-auth (i.e. the regular nomad docker image with oasis-with-auth tag).

This will allow you to add a list of NOMAD account email addresses to your nomad.yaml and only those accounts can access your Oasis:

oasis:
    allowed_users:
        - [email protected]
        - [email protected]

markus1978 pushed a commit that referenced this issue Nov 7, 2023
@helgestein
Copy link

Can this get a bump? It would be great to have the possibility to have multiple users within an oasis wth some more fine grained acess controls of who sees what.
Example user stories beyond what is written above:

  • Uploader has data that needs to be in database but contains sensitive information (i.e. patient data) that should only be disclosed to some people the uploader specifies
  • Uploader has data that is originating from a project only a group of people is allowed to see (industry or protected project)
  • Option to set embargo period on Oasis to infinity in well defined use cases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants