Configure a collection in the Web UI, in the API and the CLI

User story

As a workspace owner, I need to be able to change the properties of existing collections:

  • name: the name of the collection (only allowed for non-singleton collections)
  • full_history_retention_period, metadata_only_retention_period
  • key-value data: a simple text field with JSON data inside

Having proper dedicated fields to represent the data model of all the categories is out of scope for this feature.

Error handling

  • If the category matches a singleton collection, the name should be forced to "_" (and error out otherwise).
  • The key-value data should be validated against the collection's pydantic data model (if #923 is implemented first; otherwise, add this to that issue).
  • The system should notify a failure, when the given name is already used by an existing collection.

Implementation plan

  • Add the API to configure a collection (!2213 (merged))
  • Add a web UI to configure a collection
  • Add a debusine-client interface to configure a collection (!2308 (merged))

Open questions

  • None at this point.

Notes

This issue description can be modified to integrate feedback from comments and from associated merge requests.

Edited by Colin Watson