Feature #14874

[API] Protected collection property -- preserves original project owner through copy/move/modify operations

Added by Tom Clegg 3 months ago. Updated 26 days ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
2.0

Description

This feature enables a site to use a collection properties entry for tracking ownership/responsibility for file data found in collections ("who was responsible for uploading these files to Arvados?") even after the collections are modified and copied/moved from one project to another.

The feature will be activated by configuring two new API behaviors.

  # In application.yml / cluster configuration file:
  collection_properties:
    responsible_person_uuid: {function: original_owner, protected: true}
    foo_bar: {value: baz, protected: false}

When creating a new collection, if the caller has not provided values for these keys in the properties hash, they are automatically populated with the UUID of the user who owns [the parent of …] the containing project.

When updating a collection, a protected entry in the properties hash cannot be changed by a non-admin user, even the collection's owner. Attempting to do so results in a 403 error.

The default is the empty set (no special behavior).

Supporting this, we should provide some example admin scripts:
  • List UUIDs/names of collections with no responsible_person_uuid property value
  • Update the responsible_person_uuid property from nil to X on all collections in the project hierarchy rooted at P, where P is a user UUID or a group UUID.
  • Update the responsible_person_uuid property from X to Y on all collections where it is X.

We should also confirm that Workbench/Workbench2 preserve the properties hash when copying a collection.

History

#1 Updated by Tom Morris 3 months ago

  • Target version set to To Be Groomed

#2 Updated by Tom Clegg 3 months ago

  • Subject changed from [API] Preserve collection's original owner "data owner" in subsequent copy/move/modify operations to [API] Protected collection property -- preserves original project owner through copy/move/modify operations
  • Description updated (diff)

#3 Updated by Tom Clegg 3 months ago

  • Description updated (diff)

#4 Updated by Tom Clegg 3 months ago

  • Description updated (diff)

#5 Updated by Tom Clegg 3 months ago

  • Description updated (diff)

#6 Updated by Tom Clegg 3 months ago

  • Description updated (diff)

#7 Updated by Tom Clegg 3 months ago

  • Story points set to 2.0

#8 Updated by Tom Morris 2 months ago

  • Target version changed from To Be Groomed to Arvados Future Sprints

Also available in: Atom PDF