Feature #14874
Updated by Tom Clegg almost 6 years ago
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.
<pre><code class="yaml">
# In application.yml / cluster configuration file:
collection_properties:
responsible_person_uuid: {function: original_owner, protected: true}
foo_bar: {value: baz, protected: false}
</code></pre>
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.