Feature #14874
Updated by Tom Clegg over 5 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"> collection_properties: special_properties: responsible_person_uuid: {function: {builtin: 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.