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

[Feature Request] Add study concept #812

Closed
frankcorneliusmartin opened this issue Sep 6, 2023 · 1 comment
Closed

[Feature Request] Add study concept #812

frankcorneliusmartin opened this issue Sep 6, 2023 · 1 comment

Comments

@frankcorneliusmartin
Copy link
Contributor

Problem description
Allow users to create subsets of organizations within a collaboration and call these a study (within a collaboration).
This is required as we want to use a single node for multiple studies (which have different organization configurations) and we do not want to create new collaboration and nodes for each of them.

In terms of security the node does not enforce the study concept. This means that if a data owner connected a vantage6 node in a collaboration it gives permission to run all studies within a collaboration. On the server we can limit to which studies you can send tasks.

This is related to the new policies system

@bartvanb
Copy link
Member

bartvanb commented Feb 22, 2024

  • Add study model
  • Modify models of collaboration/task/organization to contain study_id reference
  • Add input and output schema's
  • modify output schema's for collaboration / task / organization
  • Add permissions and add to default roles where necessary
  • Implement endpoints
  • Add endpoints to app
  • Modify endpoints for task:
    • Add filter option study_id
    • Add optional input field study_id to create task
    • If study_id is set, add a check that no organizations are assigned outside of the study
  • Add filter options to organization list
  • Add filter options to node list
  • Modify collaboration DELETE endpoint to check that no dangling studies are left
    • And add this to unit test
  • Implement unit tests for study itself
  • Modify unit tests for task to ensure that no tasks can be created outside the study
  • Implement subclass Python client
  • Add changes in task/collaboration/organization/node also to python client
  • Modify algorithm client
    • Added the study_id to the container token so that the algorithm client knows it
    • Modified client.organization.list so that it only gets organizations in the study (if a study is defined)
  • Modify node client? -> doesn't look like it's necessary
  • Implement in UI
    • In create task, if studies are present add a new step to pick a study
      • Also set up for repeating task (and other scenarios?)
      • Make sure it also works for collaborations that don't have a study
    • Add study management to the collaboration page
    • Add study filter in task page (or create issue to add that later)
  • Add function documentation
  • Add documentation

Other things fixed in the PR that are not necessarily study-related

  • Collaboration client: delete, update, add_organization and remove_organization functions added

Not planning to do:

  • separate permission scope for studies
  • filter option to find collaboration by study id

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

2 participants