Release 2.11.0 ### Added - A way to delete an annotation (via `DELETE /api/annotations/<uuid:annotationId>` or `DELETE /api/collections/<uuid:collectionId>/items/<uuid:itemId>/annotations/<uuid:annotationId>`). Anyone authenticated can delete an annotation (and the changes are tracked in the history). - Added a new way to restrict who can view a sequence/picture, instead of the old `hidden` mechanism, we can now set a `visibility` field at the sequence/picture/upload_set level. This parameter can have (for the moment) the values: - `anyone`: the sequence is visible to anyone - `owner-only`: the sequence is visible to the owner and administrator only - `logged-only`: the sequence is visible to logged users only A default `visibility` can also be set at the `account` or instance level. - Change the permissions, now an instance administrator (and account that has the `admin` role), can see, edit and delete all sequences and pictures. - Display the collection semantics in the `/api/collections/<uuid:collectionId>/items` endpoint, to make it easier to be crawled by the metacatalog. - Add a new search capability with the query `/api/search?filter=semantics IS NOT NULL` to search for all items with some semantics (be it linked to the picture, its sequence or an annotation in the picture). - Add a way to know that the terms of service have been updated, and the users have read the latest changes. - Add an admin cli command to delete all the pictures of a user (`user <ACCOUNT_ID_OR_NAME> --delete-data`). ### Changed - ⚠️ API breaking change ⚠️: we do not support anymore the `status` filter (and especially the `status='deleted'` filter) when querying the sequences, since it could leak information about some sequences with restricted visibility (since we treated those sequences as `deleted` to tell potential crawlers not to consider them anymore). This parameter is now replaced by a new `show_deleted` boolean parameter that makes the API return collections with only an `id` and a `deleted` status, without additional fields. Note that thus, when using this parameter, the response does no longer follow the STAC format for deleted collections. ### Fixed - Use fully qualified path for the pictures_grid materialized view to avoid the `relation "pictures" does not exist` issue on some server.