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

[WIP] Implement abstractions to annotate non-sharable datasets & objectstores. #14044

Closed

Conversation

jmchilton
Copy link
Member

Sketched out so far:

  • Allow marking objectstores (in either XML or YAML) as private - indicating datasets stored in them should not be shared.
  • Add sharable property to model.Dataset that checks its object_store_id against the configured object store to determine if it is not stored in a private objectstore.
  • Add abstraction to security_agent to check if a dataset is restricted to a single user and augment galaxy.jobs.JobWrapper._set_object_store_ids and ObjectStorePopulator to prevent jobs that might create non-private datasets in private objectstores.
  • Model/security layer prevents copying non-sharable dataset into libraries or attaching private sharing roles to them.
  • The edit metadata form will display a message that the dataset is unsharable on the permissions page.
  • Integration test case to ensure cannot upload public datasets to a private objectstore.
  • Integration test case to ensure cannot modify access permissions of datasets stored in private objectstores.
  • Expose information about whether objectstores are privateObjectStore metadata display (User-facing objectstore metadata. #10233).

Left to do:

  • Test case to verify library sets can't be uploaded to private objectstores.
  • Test case to verify private object stores operate appropriately with dynamically discovered collection datasets. (past @jmchilton had this in his notes - not sure exactly what his concern was).

xrefs:

How to test the changes?

(Select all options that apply)

License

Setup abstractions to prevent sharing transient or private per-user objects in an objectstore.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant