From 9b45c8d74b980b490460ec07698d8ada8a3a140f Mon Sep 17 00:00:00 2001 From: mateoperezrivera Date: Fri, 27 Feb 2026 15:43:13 -0300 Subject: [PATCH] Cosmos DB containers optimized for conversation history Refactor Cosmos DB container configurations to include partition keys and indexing policies --- infra/main.bicep | 3 ++- infra/main.parameters.json | 31 +++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 05510d8f..6a1a45d6 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -1973,9 +1973,10 @@ module cosmosDBAccount 'br/public:avm/res/document-db/database-account:0.15.1' = containers: [ for container in databaseContainersList: { name: container.name - paths: ['/id'] + paths: [container.partitionKey] defaultTtl: -1 throughput: 400 + indexingPolicy: contains(container, 'indexingPolicy') ? container.indexingPolicy : null } ] } diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 0eb292a5..78cfb4c3 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -143,19 +143,41 @@ "value": [ { "name": "conversations", - "canonical_name": "CONVERSATIONS_DATABASE_CONTAINER" + "canonical_name": "CONVERSATIONS_DATABASE_CONTAINER", + "partitionKey": "/principal_id", + "indexingPolicy": { + "compositeIndexes": [ + [ + { "path": "/isDeleted", "order": "Ascending" }, + { "path": "/_ts", "order": "Descending" } + ], + [ + { "path": "/isDeleted", "order": "Ascending" }, + { "path": "/name", "order": "Ascending" }, + { "path": "/_ts", "order": "Descending" } + ] + ] + } }, { "name": "datasources", - "canonical_name": "DATASOURCES_DATABASE_CONTAINER" + "canonical_name": "DATASOURCES_DATABASE_CONTAINER", + "partitionKey": "/id" }, { "name": "prompts", - "canonical_name": "PROMPTS_CONTAINER" + "canonical_name": "PROMPTS_CONTAINER", + "partitionKey": "/id" }, { "name": "mcp", - "canonical_name": "MCP_CONTAINER" + "canonical_name": "MCP_CONTAINER", + "partitionKey": "/id" + }, + { + "name": "chainlit_users", + "canonical_name": "USERS_DATABASE_CONTAINER", + "partitionKey": "/identifier" } ] }, @@ -192,6 +214,7 @@ "roles": [ "AppConfigurationDataReader", "AcrPull", + "CosmosDBBuiltInDataContributor", "StorageBlobDataReader", "StorageBlobDelegator", "KeyVaultSecretsUser"