Support for assigning unique keys in cosmos collections

Why is this needed

Unique key constraints in Azure Cosmos DB make sure that one or more values within a logical partition is unique.

Current behaviour

Currently there is no support for adding unique keys for a cosmos collection during deployment.

Expected behavior

Adding support for unique keys will allow us to set the unique keys required for the cosmos collection(s). For the collection WorkflowTasksSharingInfo used by ingestion service, we need to make sure that runId is a unique key, for which support needs to be added.

Acceptance criteria

  • Add functionality to assign unique keys for cosmos collection
  • Obtain approval for any infrastructure requirements.
  • Implement any required infrastructure changes.
  • Obtain approval for merge request(s) containing infrastructure changes.

Note: Upon adding the support for unique keys, this will bring in a breaking change as the cosmos collection WorkflowTasksSharingInfo will be deleted and re-created. This will be raised in a separate MR.

Edited by Aalekh Jain