Decouple annotation index from entities

Description

From https://sagebionetworks.jira.com/wiki/spaces/PLFM/pages/1023246363/Evaluation+Submissions+Annotations

In order to support annotation on objects other than entities we first need to decouple the annotation index from entities.

This involves a refactoring of the backend so that the entity replication and the annotation index tables store data that is bound to an object type + id rather than entity id only (since the id space is shared among different objects).
Additionally we need to generalize how we get properties and annotations from objects removing the link to the node layer from the index.
We also need to generalize the services that are node specific and that provide operations to compute the index so that they can be implemented on an object type basis.
Finally we need to generalize the way annotations are updated so that we can perform bulk updates from the index.

Environment

None

Assignee

Marco Marasca

Reporter

Marco Marasca

Labels

None

Validator

Bruce Hoff

Development Area

Synapse Core Infrastructure

Release Version History

None

Sprint

Priority

Major
Configure