Feature #17944

Updated by Ward Vandewege 10 months ago

Cf. https://doc.arvados.org/admin/workbench2-vocabulary.html

* vocabulary is currently available in wb2 for collections, projects.

* add config parameter to API/VocabularyPath, expected to be local to the machine the controller runs on.
* the vocabulary file will be cached by controller; file timestamp will be checked on any request. If the vocabulary file can't be read (e.g. permissions, invalid json, etc), the existing cached version will be used and a health warning/prometheus alert should be raised.
* if the file can't be read on startup, that's an error. config-check should also check this, and will need to take into account that this is only an error if the context is the controller.


* apply validation before save/update requests. Admin users do not get special treatment.

* the validation code should handle existing data gracefully: if tags are not being changed but are invalid, updates to other fields in the collection should still be permitted.

* change wb2 to get the file from controller (it will need to export the cache copy as a valid json url)