opencdms-dev / pyopencdms-old

⭐🐍 pyopencdms aims to build a common Python API on top of multiple Climate Data Management Systems (CDMS) that use different underlying database engines
MIT License
4 stars 6 forks source link

Agree initial rules/roles for data model access #89

Open isedwards opened 1 year ago

isedwards commented 1 year ago

As an OpenCDMS core developer, I need agreement on the initial set of rules/roles that we will implemented for Controlled Access)

Given that different NMHSs may implement different roles, a first implementation may demonstrate three roles:

isedwards commented 1 year ago

Hey team! Please add your planning poker estimate with Zenhub @chinedu117 @david-i-berry @scottylad501

isedwards commented 1 year ago

Using code developed in the previous sprint (currently in the opencdms-data-layer repository), we should initially implement three roles in the policy file: None (access to nothing), Admin (read/write everything) and User (limited access to something)

TASKS

david-i-berry commented 1 year ago

The following roles are defined in SURFACE:

  1. "Guest"
  2. "Data Entry Clerk"
  3. "Instrument Technician"
  4. "Climate Officer"
  5. "Climate Administrator"
  6. "Meteorologist"
  7. "System Administrator"
scottylad501 commented 1 year ago

@david-i-berry

Allow me to explain the permissions of each role

  1. "Guest" - This user was/is given to our stakeholders, basically anyone outside wanting data access would sign a user agreement before hand and be given access to login to the application. They can only view the map and view a restricted amount of data via station report, Station compare and Spatial Analysis. Data restriction are:
  1. Data Entry Clerk - The lowest user level, it's basically an observer or a student given the task of data entry. In addition to the Guest user they have access to the data entry forms. However they are not able to export data.

  2. Technician (i would rename this to simply Technician) - Guest privileges, Station Metadata section, Maintenance section, and Django backend.(if we could have restricted some of the Django backend access we would have) - all the work needed to check that stations are operating properly is needed here for the technician. For the django backend all the options reltaed to automatic file ingestion. Does not have access to Data Export feature

  3. Climate Officer - Guest, Data entry clerk, may or may not get technician roles, it depends on training - but here this person is able to validate data coming into the system. Basically quality control checks for the data. Has access to data export feature. Data export allows the user to create an export job via the UI for any station for any time period. there is no restrictions on the amount of data that can be exported. A record is kept of who made the data export request.

  4. Meteorologist - is weird user role, they are strictly operational so - they do not have data entry permission, nor do they have django backend and access to maintenance, BUT they have access to all products and have access to data export. So in once sense they have access to the entire dataset, but at the same time they are prevented from making any technical changes to the data/instruments/stations.

  5. Climate Administrator - is basically one step down from the System Administrator - confirms the validation done by the climate officer. In essence has access to the entire system but cannot create a new user.

  6. System Administrator - all roles and privileges