From fd1af72e7fc0613bf0eb4a077ee78d7f98edfd6b Mon Sep 17 00:00:00 2001 From: VishalS-Microsoft Date: Mon, 22 Sep 2025 14:09:11 +0530 Subject: [PATCH 01/22] fix: added tags in CAdeploy.yml file (#675) * CI Pipeline fix for Client Advisor * added tags in CAdeploy.yml file * add my feature branch * tags changes updated in CAdeploy.yml file * added template name condition based * removed my feature branch from pipeline * Additional Troubleshooting steps --- .github/workflows/CAdeploy.yml | 5 +- docs/ACRBuildAndPushGuide.md | 94 +++++++++++ docs/TroubleShootingSteps.md | 253 +++++++++++++++++++++++++++- docs/images/AppServiceContainer.png | Bin 0 -> 123401 bytes docs/images/ContainerApp.png | Bin 0 -> 96874 bytes infra/main.bicep | 2 +- tests/e2e-test/pages/homePage.py | 3 +- 7 files changed, 346 insertions(+), 11 deletions(-) create mode 100644 docs/ACRBuildAndPushGuide.md create mode 100644 docs/images/AppServiceContainer.png create mode 100644 docs/images/ContainerApp.png diff --git a/.github/workflows/CAdeploy.yml b/.github/workflows/CAdeploy.yml index 46a8bdfa0..ac6c53ee2 100644 --- a/.github/workflows/CAdeploy.yml +++ b/.github/workflows/CAdeploy.yml @@ -141,10 +141,13 @@ jobs: # Install azd (Azure Developer CLI) - required by process_sample_data.sh curl -fsSL https://aka.ms/install-azd.sh | bash + # Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ + current_date=$(date -u +"%Y-%m-%dT%H:%M:%S.%7NZ") + DEPLOY_OUTPUT=$(az deployment group create \ --resource-group ${{ env.RESOURCE_GROUP_NAME }} \ --template-file infra/main.bicep \ - --parameters location=${{ env.AZURE_LOCATION }} azureAiServiceLocation=${{ env.AZURE_LOCATION }} solutionName=${{ env.SOLUTION_PREFIX }} cosmosLocation=westus gptModelCapacity=${{ env.GPT_MIN_CAPACITY }} embeddingDeploymentCapacity=${{ env.TEXT_EMBEDDING_MIN_CAPACITY }} containerImageTag=${{ env.IMAGE_TAG }} createdBy="Pipeline" \ + --parameters location=${{ env.AZURE_LOCATION }} azureAiServiceLocation=${{ env.AZURE_LOCATION }} solutionName=${{ env.SOLUTION_PREFIX }} cosmosLocation=westus gptModelCapacity=${{ env.GPT_MIN_CAPACITY }} embeddingDeploymentCapacity=${{ env.TEXT_EMBEDDING_MIN_CAPACITY }} containerImageTag=${{ env.IMAGE_TAG }} createdBy="Pipeline" tags="{'SecurityControl':'Ignore','Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}" \ --query "properties.outputs" -o json) echo "Deployment output: $DEPLOY_OUTPUT" diff --git a/docs/ACRBuildAndPushGuide.md b/docs/ACRBuildAndPushGuide.md new file mode 100644 index 000000000..f75b32d6c --- /dev/null +++ b/docs/ACRBuildAndPushGuide.md @@ -0,0 +1,94 @@ +# Azure Container Registry (ACR) – Build & Push Guide + +This guide provides step-by-step instructions to build and push Docker images for **WebApp** and **Backend** services into Azure Container Registry (ACR). + +## 📋 Prerequisites +Before starting, ensure you have: +- An active [Azure Subscription](https://portal.azure.com/) +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) installed and logged in +- [Docker Desktop](https://docs.docker.com/get-docker/) installed and running +- Access to your Azure Container Registry (ACR) +- To create an Azure Container Registry (ACR), you can refer to the following guides: + + - [Create Container Registry using Azure CLI](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-get-started-azure-cli) + + - [Create Container Registry using Azure Portal](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal?tabs=azure-cli) + + - [Create Container Registry using PowerShell](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-get-started-powershell) + + - [Create Container Registry using ARM Template](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-get-started-geo-replication-template) + + - [Create Container Registry using Bicep](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-get-started-bicep?tabs=CLI) + +--- + +Login to ACR : +``` bash +az acr login --name $ACR_NAME +``` + +## 🚀 Build and Push Images + +**Backend :** + + ```bash +az acr login --name +docker build --no-cache -f docker/Backend.Dockerfile -t /: . +docker push /: + ``` + + If you want to update image tag and image manually you can follow below steps: +- Go to your **Container App** in the [Azure Portal](https://portal.azure.com/#home). +- In the left menu, select **Containers**. +- Under your container, update: + + - Image source → Azure Container Registry / Docker Hub. + + - Image name → myapp/backend. + + - Tag → change to the new one you pushed (e.g., v2). + +- Click **Save** → this will create a new revision automatically with the updated image. + +![alt text](./images/ContainerApp.png) + +**WebApp :** + +```bash +az acr login --name +docker build --no-cache -f docker/Frontend.Dockerfile -t /: . +docker push /: +``` + +If you want to update image tag and image manually you can follow below steps: +- Go to your App Service in the [Azure Portal](https://portal.azure.com/#home). +- In the left menu, select Deployment → Deployment Center +- Under Container settings, you can configure: + + - Image Source → (e.g., Azure Container Registry / Docker Hub / Other). + + - Image Name → e.g., myapp/backend. + + - Tag → e.g., v1.2.3. + +![alt text](./images/AppServiceContainer.png) + + +## ✅ Verification + +Run the following command to verify that images were pushed successfully: +```bash +az acr repository list --name $ACR_NAME --output table +``` + +You should see repositories in the output. + +## 📝 Notes + +- Always use meaningful tags (v1.0.0, staging, prod) instead of just latest. + +- If you are pushing from a CI/CD pipeline, make sure the pipeline agent has access to Docker and ACR. + +- For private images, ensure your services (e.g., Azure Container Apps, AKS, App Service) are configured with appropriate ACR pull permissions. + + diff --git a/docs/TroubleShootingSteps.md b/docs/TroubleShootingSteps.md index 89570275e..9d7536005 100644 --- a/docs/TroubleShootingSteps.md +++ b/docs/TroubleShootingSteps.md @@ -1,4 +1,3 @@ - # 🛠️ Troubleshooting When deploying Azure resources, you may come across different error codes that stop or delay the deployment process. This section lists some of the most common errors along with possible causes and step-by-step resolutions. @@ -103,13 +102,13 @@ based on available quota you can deploy application otherwise, you can request f
-DeploymentModelNotSupported +DeploymentModelNotSupported/ ServiceModelDeprecated/ InvalidResourceProperties - The updated model may not be supported in the selected region. Please verify its availability in the [Azure AI Foundry models](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models?tabs=global-standard%2Cstandard-chat-completions) document.
-LinkedInvalidPropertyId/ ResourceNotFound/DeploymentOutputEvaluationFailed/ CanNotRestoreANonExistingResource +LinkedInvalidPropertyId/ ResourceNotFound/DeploymentOutputEvaluationFailed/ CanNotRestoreANonExistingResource / The language expression property array index is out of bounds - Before using any resource ID, ensure it follows the correct format. - Verify that the resource ID you are passing actually exists. @@ -128,6 +127,8 @@ based on available quota you can deploy application otherwise, you can request f ``` /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{name} ``` +- You may encounter the error `The language expression property array index '8' is out of bounds` if the resource ID is incomplete. Please ensure your resource ID is correct and contains all required information, as shown in sample resource IDs. + - For more information refer [Resource Not Found errors solutions](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-not-found?tabs=bicep)
@@ -318,10 +319,10 @@ The subscription 'xxxx-xxxx' cannot have more than 1 Container App Environments
ResourceProviderError - -- This error occurs when the resource provider is not registered in your subscription. -- To register it, refer to [Register Resource Provider](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-providers-and-types) documentation. - + +- This error occurs when the resource provider is not registered in your subscription. +- To register it, refer to [Register Resource Provider](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-register-resource-provider?tabs=azure-cli) documentation. +
Conflict - Cannot use the SKU Basic with File Change Audit for site. @@ -351,6 +352,242 @@ The subscription 'xxxx-xxxx' cannot have more than 1 Container App Environments
+
InvalidRequestContent + +- The deployment values either include values that aren't recognized, or required values are missing. Confirm the values for your resource type. +- You can refer [Invalid Request Content error](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/common-deployment-errors#:~:text=InvalidRequestContent,Template%20reference) documentation. + +
+ +
ReadOnlyDisabledSubscription + +- Depending on the type of the Azure Subscription, the expiration date might have been reached. + +- You have to activate the Azure Subscription before creating any Azure resource. +- You can refer [Reactivate a disabled Azure subscription](https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/subscription-disabled) Documentation. + +
+ + +
SkuNotAvailable + +- You receive this error in the following scenarios: + - When the resource SKU you've selected, such as VM size, isn't available for a location or zone. + - If you're deploying an Azure Spot VM or Spot scale set instance, and there isn't any capacity for Azure Spot in this location. For more information, see Spot error messages. +
+ +
CrossTenantDeploymentNotPermitted + +- Check tenant match: Ensure your deployment identity (user/SP) and the target resource group are in the same tenant. + ``` + az account show + az group show --name + ``` + +- Verify pipeline/service principal: If using CI/CD, confirm the service principal belongs to the same tenant and has permissions on the resource group. + +- Avoid cross-tenant references: Make sure your Bicep doesn’t reference subscriptions, resource groups, or resources in another tenant. + +- Test minimal deployment: Deploy a simple resource to the same resource group to confirm identity and tenant are correct. + +- Guest/external accounts: Avoid using guest users from other tenants; use native accounts or SPs in the tenant. + +
+ +
RequestDisallowedByPolicy + +- This typically indicates that an Azure Policy is preventing the requested action due to policy restrictions in your subscription. + +- For more details and guidance on resolving this issue, please refer to the official Microsoft documentation: [RequestDisallowedByPolicy](https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/create-upgrade-delete/error-code-requestdisallowedbypolicy) + +
+ +
+FlagMustBeSetForRestore/NameUnavailable/CustomDomainInUse + +- This error occurs when you try to deploy a Cognitive Services resource that was **soft-deleted** earlier. +- Azure requires you to explicitly set the **`restore` flag** to `true` if you want to recover the soft-deleted resource. +- If you don’t want to restore the resource, you must **purge the deleted resource** first before redeploying. +Example causes: +- Trying to redeploy a Cognitive Services account with the same name as a previously deleted one. +- The deleted resource still exists in a **soft-delete retention state**. +**How to fix:** +1. If you want to restore → add `"restore": true` in your template properties. +2. If you want a fresh deployment → purge the resource using: + ```bash + az cognitiveservices account purge \ + --name \ + --resource-group \ + --location + ``` +For more details, refer to [Soft delete and resource restore](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/delete-resource-group?tabs=azure-powershell). +
+ +
+PrincipalNotFound + +- This error occurs when the **principal ID** (Service Principal, User, or Group) specified in a role assignment or deployment does not exist in the Azure Active Directory tenant. +- It can also happen due to **replication delays** right after creating a new principal. +**Example causes:** +- The specified **Object ID** is invalid or belongs to another tenant. +- The principal was recently created but Azure AD has not yet replicated it. +- Attempting to assign a role to a non-existing or deleted Service Principal/User/Group. +**How to fix:** +1. Verify that the **principal ID is correct** and exists in the same directory/tenant. + ```bash + az ad sp show --id + ``` +2. If the principal was just created, wait a few minutes and retry. +3. Explicitly set the principalType property (ServicePrincipal, User, or Group) in your ARM/Bicep template to avoid replication delays. +4. If the principal does not exist, create it again before assigning roles. +For more details, see [Azure PrincipalType documentation](https://learn.microsoft.com/en-us/azure/role-based-access-control/troubleshooting?tabs=bicep) +
+
+RedundancyConfigurationNotAvailableInRegion + +- This issue happens when you try to create a **Storage Account** with a redundancy configuration (e.g., `Standard_GRS`) that is **not supported in the selected Azure region**. +- Example: Creating a storage account with **GRS** in **italynorth** will fail with this error. +```bash +az storage account create -n mystorageacct123 -g myResourceGroup -l italynorth --sku Standard_GRS --kind StorageV2 +``` +- To check supported SKUs for your region: +```bash +az storage account list-skus -l italynorth -o table +``` +Use a supported redundancy option (e.g., Standard_LRS) in the same region +Or deploy the Storage Account in a region that supports your chosen redundancy. +For more details, refer to [Azure Storage redundancy documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy?utm_source=chatgpt.com). +
+ +
DeploymentNotFound + +- This issue occurs when the user deletes a previous deployment along with the resource group (RG), and then redeploys the same RG with the same environment name but in a different location. + +- To avoid the DeploymentNotFound error, Do not change the location when redeploying a deleted RG, or Use new names for the RG and environment during redeployment. +
+ +
DeploymentCanceled(user.canceled) + +- Indicates the deployment was manually canceled by the user (Portal, CLI, or pipeline). + +- Check deployment history and logs to confirm who/when it was canceled. + +- If accidental, retry the deployment. + +- For pipelines, ensure no automation or timeout is triggering cancellation. + +- Use deployment locks or retry logic to prevent accidental cancellations. + +
+ +
ResourceGroupDeletionTimeout + +- Some resources in the resource group may be stuck deleting or have dependencies; check RG resources and status. + +- Ensure no resource locks or Azure Policies are blocking deletion. + +- Retry deletion via CLI/PowerShell `(az group delete --name --yes --no-wait)`. + +- Check Activity Log to identify failing resources; escalate to Azure Support if deletion is stuck. + +
+ +
+SubscriptionDoesNotHaveServer + +- This issue happens when you try to reference an **Azure SQL Server** (`Microsoft.Sql/servers`) that does not exist in the selected subscription. +- It can occur if: + - The SQL server name is typed incorrectly. + - The SQL server was **deleted** but is still being referenced. + - You are working in the **wrong subscription context**. + - The server exists in a **different subscription/tenant** where you don’t have access. + +**Reproduce:** +1. Run an Azure CLI command with a non-existent server name: +```bash + az sql db list --server sql-doesnotexist --resource-group myResourceGroup +``` + + or + +```bash + az sql server show --name sql-caqfrhxr4i3hyj --resource-group myResourceGroup + +``` + +Resolution: + +Verify the SQL Server name exists in your subscription: + +```bash + az sql server list --output table +``` +Make sure you are targeting the correct subscription: + +```bash + az account show + az account set --subscription +``` +If the server was deleted, either restore it (if possible) or update references to use a valid existing server. + +
+ + +
DeploymentCanceled(user.canceled) + +- Indicates the deployment was manually canceled by the user (Portal, CLI, or pipeline). + +- Check deployment history and logs to confirm who/when it was canceled. + +- If accidental, retry the deployment. + +- For pipelines, ensure no automation or timeout is triggering cancellation. + +- Use deployment locks or retry logic to prevent accidental cancellations. + +
+ +
BadRequest - DatabaseAccount is in a failed provisioning state because the previous attempt to create it was not successful + +- This error occurs when a user attempts to redeploy a resource that previously failed to provision. + +- To resolve the issue, delete the failed deployment first, then start a new deployment. + +- For guidance on deleting a resource from a Resource Group, refer to the following link: [Delete an Azure Cosmos DB account](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/manage-with-powershell#delete-account:~:text=%3A%24enableMultiMaster-,Delete%20an%20Azure%20Cosmos%20DB%20account,-This%20command%20deletes) + +
+ +
+ +SpecialFeatureOrQuotaIdRequired + +This error occurs when your subscription does not have access to certain Azure OpenAI models. + +**Example error message:** +`SpecialFeatureOrQuotaIdRequired: The current subscription does not have access to this model 'Format:OpenAI,Name:o3,Version:2025-04-16'.` + +**Resolution:** +To gain access, submit a request using the official form: +👉 [Azure OpenAI Model Access Request](https://customervoice.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7en2Ais5pxKtso_Pz4b1_xUQ1VGQUEzRlBIMVU2UFlHSFpSNkpOR0paRSQlQCN0PWcu) + +You’ll need to use this form if you require access to the following restricted models: +- gpt-5 +- o3 +- o3-pro +- deep research +- reasoning summary +- gpt-image-1 + +Once your request is approved, redeploy your resource. + +
+ +
+ContainerAppOperationError + +- The error is likely due to an improperly built container image. For resolution steps, refer to the [Azure Container Registry (ACR) – Build & Push Guide](./ACRBuildAndPushGuide.md) + +
💡 Note: If you encounter any other issues, you can refer to the [Common Deployment Errors](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/common-deployment-errors) documentation. -If the problem persists, you can also raise an bug in our [BYOC-Client Advisor Github Issues](https://github.com/microsoft/Build-your-own-copilot-Solution-Accelerator/issues) for further support. +If the problem persists, you can also raise an bug in our [MACAE Github Issues](https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/issues) for further support. \ No newline at end of file diff --git a/docs/images/AppServiceContainer.png b/docs/images/AppServiceContainer.png new file mode 100644 index 0000000000000000000000000000000000000000..3786259aebe353078e8b737b83915e71d88579e4 GIT binary patch literal 123401 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%0D!0NAOd^&Xv`T&FtRhz}vnl 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

a87(4B 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৺r|oB-T|Rq1L>U=qpE<>M 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�bEX{^&I2w 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 z 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 literal 0 HcmV?d00001 diff --git a/infra/main.bicep b/infra/main.bicep index 578156a8f..b64b4b521 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -284,7 +284,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { properties: { tags: { ...tags - TemplateName: 'Client Advisor' + TemplateName: enablePrivateNetworking ? 'Client Advisor-WAF' : 'Client Advisor' CreatedBy: createdBy } } diff --git a/tests/e2e-test/pages/homePage.py b/tests/e2e-test/pages/homePage.py index 2b354f01e..9a3b6aeb6 100644 --- a/tests/e2e-test/pages/homePage.py +++ b/tests/e2e-test/pages/homePage.py @@ -56,8 +56,9 @@ def delete_chat_history(self): else: self.page.locator(self.CLEAR_CHAT_HISTORY_MENU).click() self.page.locator(self.CLEAR_CHAT_HISTORY).click() + self.page.wait_for_timeout(4000) self.page.get_by_role("button", name="Clear All").click() - self.page.wait_for_timeout(10000) + self.page.wait_for_timeout(6000) self.page.locator(self.HIDE_CHAT_HISTORY_BUTTON).click() self.page.wait_for_load_state('networkidle') self.page.wait_for_timeout(2000) From 2fcaf2b0cf3c643789f1cb17280791c6876e6713 Mon Sep 17 00:00:00 2001 From: NirajC-Microsoft Date: Tue, 23 Sep 2025 15:50:03 +0530 Subject: [PATCH 02/22] =?UTF-8?q?fix:=20Remove=20createdby=20from=20pipeli?= =?UTF-8?q?ne=20and=20add=20change=20Createdby=20logic=20in=20bice?= =?UTF-8?q?=E2=80=A6=20(#678)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove createdby from pipeline and add change Createdby logic in bicep file * Add 'createdBy' parameter to Azure deployment * Add 'createdBy' parameter for tagging --- infra/main.bicep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index b64b4b521..e573b5c94 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -275,8 +275,8 @@ resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces var logAnalyticsWorkspaceResourceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace!.outputs.resourceId -@description('Optional created by user name') -param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] +@description('Tag, Created by user name') +param createdBy string = contains(deployer(), 'userPrincipalName')? split(deployer().userPrincipalName, '@')[0]: deployer().objectId // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { From a6ced109ff7f67d23cf9597dbafa9a992d914502 Mon Sep 17 00:00:00 2001 From: VishalS-Microsoft Date: Tue, 23 Sep 2025 17:09:39 +0530 Subject: [PATCH 03/22] added new 'type' tag (#682) --- infra/main.bicep | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index e573b5c94..1fb0f6a5b 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -284,7 +284,8 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { properties: { tags: { ...tags - TemplateName: enablePrivateNetworking ? 'Client Advisor-WAF' : 'Client Advisor' + TemplateName: 'Client Advisor' + Type: enablePrivateNetworking ? 'WAF' : 'Non-WAF' CreatedBy: createdBy } } From 46671f749d22143883bf9b2435d543ea6990773e Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Fri, 26 Sep 2025 04:44:37 +0000 Subject: [PATCH 04/22] Create new Managed Identity for SQL operations with least privileges --- infra/main.bicep | 36 +++++++++++++++++++++-- infra/scripts/process_sample_data.sh | 22 +++++++------- src/App/backend/common/config.py | 4 ++- src/App/backend/services/sqldb_service.py | 3 +- 4 files changed, 50 insertions(+), 15 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 1fb0f6a5b..b285fa938 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -388,6 +388,19 @@ module userAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-id } } +// ========== SQL Operations User Assigned Identity ========== // +// Dedicated identity for backend SQL operations with limited permissions (db_datareader, db_datawriter) +var sqlUserAssignedIdentityResourceName = 'id-sql-${solutionSuffix}' +module sqlUserAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.1' = { + name: take('avm.res.managed-identity.user-assigned-identity.${sqlUserAssignedIdentityResourceName}', 64) + params: { + name: sqlUserAssignedIdentityResourceName + location: solutionLocation + tags: tags + enableTelemetry: enableTelemetry + } +} + // ========== Network Module ========== // module network 'modules/network.bicep' = if (enablePrivateNetworking) { name: take('network-${solutionSuffix}-deployment', 64) @@ -509,6 +522,11 @@ module keyvault 'br/public:avm/res/key-vault/vault:0.12.1' = { principalType: 'ServicePrincipal' roleDefinitionIdOrName: 'Key Vault Administrator' } + { + principalId: sqlUserAssignedIdentity.outputs.principalId + principalType: 'ServicePrincipal' + roleDefinitionIdOrName: 'Key Vault Secrets User' + } ] secrets: [ { @@ -539,6 +557,10 @@ module keyvault 'br/public:avm/res/key-vault/vault:0.12.1' = { name: 'AZURE-SEARCH-ENDPOINT' value: 'https://${aiSearchName}.search.windows.net' } + { + name: 'SQLDB-USER-MID' + value: sqlUserAssignedIdentity.outputs.clientId + } ] enableTelemetry: enableTelemetry } @@ -918,6 +940,7 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = { systemAssigned: true userAssignedResourceIds: [ userAssignedIdentity.outputs.resourceId + sqlUserAssignedIdentity.outputs.resourceId ] } primaryUserAssignedIdentityResourceId: userAssignedIdentity.outputs.resourceId @@ -988,7 +1011,7 @@ module webSite 'modules/web-sites.bicep' = { name: webSiteResourceName tags: tags location: solutionLocation - managedIdentities: { userAssignedResourceIds: [userAssignedIdentity!.outputs.resourceId] } + managedIdentities: { userAssignedResourceIds: [userAssignedIdentity!.outputs.resourceId, sqlUserAssignedIdentity!.outputs.resourceId] } kind: 'app,linux,container' serverFarmResourceId: webServerFarm.?outputs.resourceId siteConfig: { @@ -1035,7 +1058,7 @@ module webSite 'modules/web-sites.bicep' = { AZURE_COSMOSDB_CONVERSATIONS_CONTAINER: collectionName AZURE_COSMOSDB_DATABASE: cosmosDbDatabaseName AZURE_COSMOSDB_ENABLE_FEEDBACK: azureCosmosDbEnableFeedback - SQLDB_USER_MID: userAssignedIdentity.outputs.clientId + SQLDB_USER_MID: sqlUserAssignedIdentity.outputs.clientId AZURE_AI_SEARCH_ENDPOINT: 'https://${aiSearchName}.search.windows.net' AZURE_SQL_SYSTEM_PROMPT: functionAppSqlPrompt AZURE_CALL_TRANSCRIPT_SYSTEM_PROMPT: functionAppCallTranscriptSystemPrompt @@ -1226,6 +1249,12 @@ output MANAGEDIDENTITY_WEBAPP_NAME string = userAssignedIdentity.outputs.name @description('Client ID of the managed identity used by the web app.') output MANAGEDIDENTITY_WEBAPP_CLIENTID string = userAssignedIdentity.outputs.clientId + +@description('Name of the managed identity used for SQL database operations.') +output MANAGEDIDENTITY_SQL_NAME string = sqlUserAssignedIdentity.outputs.name + +@description('Client ID of the managed identity used for SQL database operations.') +output MANAGEDIDENTITY_SQL_CLIENTID string = sqlUserAssignedIdentity.outputs.clientId @description('Name of the AI Search service.') output AI_SEARCH_SERVICE_NAME string = aiSearchName @@ -1367,3 +1396,6 @@ output USE_AI_PROJECT_CLIENT string = useAIProjectClientFlag @description('Indicates whether the internal stream should be used.') output USE_INTERNAL_STREAM string = useInternalStream + +@description('The client ID of the managed identity.') +output AZURE_CLIENT_ID string = userAssignedIdentity.outputs.clientId diff --git a/infra/scripts/process_sample_data.sh b/infra/scripts/process_sample_data.sh index c0b9f8a34..d59a24662 100644 --- a/infra/scripts/process_sample_data.sh +++ b/infra/scripts/process_sample_data.sh @@ -8,8 +8,8 @@ keyvaultName="$5" sqlServerName="$6" SqlDatabaseName="$7" - webAppManagedIdentityClientId="$8" - webAppManagedIdentityDisplayName="$9" + sqlManagedIdentityClientId="$8" + sqlManagedIdentityDisplayName="$9" aiSearchName="${10}" aif_resource_id="${11}" @@ -316,12 +316,14 @@ SqlDatabaseName=$(azd env get-value SQLDB_DATABASE) fi - if [ -z "$webAppManagedIdentityClientId" ]; then - webAppManagedIdentityClientId=$(azd env get-value MANAGEDIDENTITY_WEBAPP_CLIENTID) + if [ -z "$sqlManagedIdentityClientId" ]; then + # Use the SQL-specific managed identity for database operations with limited permissions + sqlManagedIdentityClientId=$(azd env get-value MANAGEDIDENTITY_SQL_CLIENTID) fi - if [ -z "$webAppManagedIdentityDisplayName" ]; then - webAppManagedIdentityDisplayName=$(azd env get-value MANAGEDIDENTITY_WEBAPP_NAME) + if [ -z "$sqlManagedIdentityDisplayName" ]; then + # Use the SQL-specific managed identity for database operations with limited permissions + sqlManagedIdentityDisplayName=$(azd env get-value MANAGEDIDENTITY_SQL_NAME) fi if [ -z "$aiSearchName" ]; then @@ -335,8 +337,8 @@ azSubscriptionId=$(azd env get-value AZURE_SUBSCRIPTION_ID) # Check if all required arguments are provided - if [ -z "$resourceGroupName" ] || [ -z "$cosmosDbAccountName" ] || [ -z "$storageAccount" ] || [ -z "$fileSystem" ] || [ -z "$keyvaultName" ] || [ -z "$sqlServerName" ] || [ -z "$SqlDatabaseName" ] || [ -z "$webAppManagedIdentityClientId" ] || [ -z "$webAppManagedIdentityDisplayName" ] || [ -z "$aiSearchName" ] || [ -z "$aif_resource_id" ]; then - echo "Usage: $0 " + if [ -z "$resourceGroupName" ] || [ -z "$cosmosDbAccountName" ] || [ -z "$storageAccount" ] || [ -z "$fileSystem" ] || [ -z "$keyvaultName" ] || [ -z "$sqlServerName" ] || [ -z "$SqlDatabaseName" ] || [ -z "$sqlManagedIdentityClientId" ] || [ -z "$sqlManagedIdentityDisplayName" ] || [ -z "$aiSearchName" ] || [ -z "$aif_resource_id" ]; then + echo "Usage: $0 " exit 1 fi @@ -437,8 +439,8 @@ # Call create_sql_user_and_role.sh echo "Running create_sql_user_and_role.sh" bash infra/scripts/add_user_scripts/create_sql_user_and_role.sh "$sqlServerName.database.windows.net" "$SqlDatabaseName" '[ - {"clientId":"'"$webAppManagedIdentityClientId"'", "displayName":"'"$webAppManagedIdentityDisplayName"'", "role":"db_datareader"}, - {"clientId":"'"$webAppManagedIdentityClientId"'", "displayName":"'"$webAppManagedIdentityDisplayName"'", "role":"db_datawriter"} + {"clientId":"'"$sqlManagedIdentityClientId"'", "displayName":"'"$sqlManagedIdentityDisplayName"'", "role":"db_datareader"}, + {"clientId":"'"$sqlManagedIdentityClientId"'", "displayName":"'"$sqlManagedIdentityDisplayName"'", "role":"db_datawriter"} ]' if [ $? -ne 0 ]; then echo "Error: create_sql_user_and_role.sh failed." diff --git a/src/App/backend/common/config.py b/src/App/backend/common/config.py index 06073a427..c3c3a5391 100644 --- a/src/App/backend/common/config.py +++ b/src/App/backend/common/config.py @@ -142,7 +142,9 @@ def __init__(self): self.SQL_USERNAME = os.getenv("SQLDB_USERNAME") self.SQL_PASSWORD = os.getenv("SQLDB_PASSWORD") self.ODBC_DRIVER = "{ODBC Driver 18 for SQL Server}" - self.MID_ID = os.getenv("SQLDB_USER_MID") + self.MID_ID = os.getenv("AZURE_CLIENT_ID") + self.SQL_MID_ID = os.getenv("SQLDB_USER_MID") + # System Prompts self.SQL_SYSTEM_PROMPT = os.environ.get("AZURE_SQL_SYSTEM_PROMPT") diff --git a/src/App/backend/services/sqldb_service.py b/src/App/backend/services/sqldb_service.py index 063c08bd1..1d484b3da 100644 --- a/src/App/backend/services/sqldb_service.py +++ b/src/App/backend/services/sqldb_service.py @@ -17,8 +17,7 @@ database = config.SQL_DATABASE username = config.SQL_USERNAME password = config.SQL_PASSWORD -mid_id = config.MID_ID - +mid_id = config.SQL_MID_ID def dict_cursor(cursor): """ From 3db41373c7c66d95b5692e6fde46b4a821889e67 Mon Sep 17 00:00:00 2001 From: NirajC-Microsoft Date: Mon, 29 Sep 2025 10:21:50 +0530 Subject: [PATCH 05/22] Update docs/TroubleShootingSteps.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/TroubleShootingSteps.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/docs/TroubleShootingSteps.md b/docs/TroubleShootingSteps.md index 9d7536005..d67f1c191 100644 --- a/docs/TroubleShootingSteps.md +++ b/docs/TroubleShootingSteps.md @@ -533,20 +533,6 @@ If the server was deleted, either restore it (if possible) or update references -
DeploymentCanceled(user.canceled) - -- Indicates the deployment was manually canceled by the user (Portal, CLI, or pipeline). - -- Check deployment history and logs to confirm who/when it was canceled. - -- If accidental, retry the deployment. - -- For pipelines, ensure no automation or timeout is triggering cancellation. - -- Use deployment locks or retry logic to prevent accidental cancellations. - -
-
BadRequest - DatabaseAccount is in a failed provisioning state because the previous attempt to create it was not successful - This error occurs when a user attempts to redeploy a resource that previously failed to provision. From c6f19ab289e79b11a503b46048cf1f3227c77a79 Mon Sep 17 00:00:00 2001 From: NirajC-Microsoft Date: Mon, 29 Sep 2025 11:34:51 +0530 Subject: [PATCH 06/22] Update GitHub Issues link in troubleshooting steps --- docs/TroubleShootingSteps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/TroubleShootingSteps.md b/docs/TroubleShootingSteps.md index d67f1c191..6ef587600 100644 --- a/docs/TroubleShootingSteps.md +++ b/docs/TroubleShootingSteps.md @@ -576,4 +576,4 @@ Once your request is approved, redeploy your resource.
💡 Note: If you encounter any other issues, you can refer to the [Common Deployment Errors](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/common-deployment-errors) documentation. -If the problem persists, you can also raise an bug in our [MACAE Github Issues](https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/issues) for further support. \ No newline at end of file +If the problem persists, you can also raise an bug in our [BYOC-Client Advisor Github Issues](https://github.com/microsoft/Build-your-own-copilot-Solution-Accelerator/issues) for further support. From 4abbc6d335d103109c5cdc190b579831da63e7fd Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Mon, 29 Sep 2025 10:51:54 +0000 Subject: [PATCH 07/22] removed SQL user assigned identity from key vault and SQL DB module --- infra/main.bicep | 5 ----- 1 file changed, 5 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index b285fa938..565aca04b 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -557,10 +557,6 @@ module keyvault 'br/public:avm/res/key-vault/vault:0.12.1' = { name: 'AZURE-SEARCH-ENDPOINT' value: 'https://${aiSearchName}.search.windows.net' } - { - name: 'SQLDB-USER-MID' - value: sqlUserAssignedIdentity.outputs.clientId - } ] enableTelemetry: enableTelemetry } @@ -940,7 +936,6 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = { systemAssigned: true userAssignedResourceIds: [ userAssignedIdentity.outputs.resourceId - sqlUserAssignedIdentity.outputs.resourceId ] } primaryUserAssignedIdentityResourceId: userAssignedIdentity.outputs.resourceId From ad371b422a841d179344e7aedeff1917229a6d30 Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Tue, 30 Sep 2025 05:26:19 +0000 Subject: [PATCH 08/22] Refactor DNS zone naming and update SQL database redundancy settings --- infra/main.bicep | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 565aca04b..30ec8b466 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -463,7 +463,7 @@ var aiRelatedDnsZoneIndices = [ @batchSize(5) module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.7.1' = [ for (zone, i) in privateDnsZones: if (enablePrivateNetworking && (empty(existingFoundryProjectResourceId) || !contains(aiRelatedDnsZoneIndices, i))) { - name: 'dns-zone-${i}' + name: 'avm.res.network.private-dns-zone.${split(zone, '.')[1]}' params: { name: zone tags: tags @@ -914,7 +914,11 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = { connectionPolicy: 'Redirect' databases: [ { - availabilityZone: enableRedundancy ? 1 : -1 + zoneRedundant: enableRedundancy ? true : false + // When enableRedundancy is true (zoneRedundant=true), set availabilityZone to -1 + // to let Azure automatically manage zone placement across multiple zones. + // When enableRedundancy is false, also use -1 (no specific zone assignment). + availabilityZone: -1 collation: 'SQL_Latin1_General_CP1_CI_AS' diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspaceResourceId }] From d6a21f8350791f464abb5ac4dd37b7754300f04e Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Tue, 30 Sep 2025 05:36:43 +0000 Subject: [PATCH 09/22] fix pylint issues --- src/App/backend/common/config.py | 1 - src/App/backend/services/sqldb_service.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App/backend/common/config.py b/src/App/backend/common/config.py index c3c3a5391..f841fb43d 100644 --- a/src/App/backend/common/config.py +++ b/src/App/backend/common/config.py @@ -145,7 +145,6 @@ def __init__(self): self.MID_ID = os.getenv("AZURE_CLIENT_ID") self.SQL_MID_ID = os.getenv("SQLDB_USER_MID") - # System Prompts self.SQL_SYSTEM_PROMPT = os.environ.get("AZURE_SQL_SYSTEM_PROMPT") self.CALL_TRANSCRIPT_SYSTEM_PROMPT = os.environ.get( diff --git a/src/App/backend/services/sqldb_service.py b/src/App/backend/services/sqldb_service.py index 1d484b3da..1e003616a 100644 --- a/src/App/backend/services/sqldb_service.py +++ b/src/App/backend/services/sqldb_service.py @@ -19,6 +19,7 @@ password = config.SQL_PASSWORD mid_id = config.SQL_MID_ID + def dict_cursor(cursor): """ Converts rows fetched by the cursor into a list of dictionaries. From 1b49c5d97432a44341b18b740257159883e04799 Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Wed, 1 Oct 2025 07:00:31 +0000 Subject: [PATCH 10/22] refactor: Update README, azure.yml for minimum azd version 1.18.0 & removed the unsued params (#690) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Dev to main (#681) * fix: added tags in CAdeploy.yml file (#675) * CI Pipeline fix for Client Advisor * added tags in CAdeploy.yml file * add my feature branch * tags changes updated in CAdeploy.yml file * added template name condition based * removed my feature branch from pipeline * Additional Troubleshooting steps * fix: Remove createdby from pipeline and add change Createdby logic in bice… (#678) * Remove createdby from pipeline and add change Createdby logic in bicep file * Add 'createdBy' parameter to Azure deployment * Add 'createdBy' parameter for tagging * added new 'type' tag (#682) * Update docs/TroubleShootingSteps.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update GitHub Issues link in troubleshooting steps --------- Co-authored-by: VishalS-Microsoft Co-authored-by: Harsh-Microsoft Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: Removed commented params * Update README and azure.yml for minimum azd version 1.18.0 --------- Co-authored-by: NirajC-Microsoft Co-authored-by: VishalS-Microsoft Co-authored-by: Harsh-Microsoft Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Prajwal D C --- README.md | 2 ++ azure.yaml | 2 +- docs/DeploymentGuide.md | 3 ++- infra/main.bicep | 15 --------------- infra/main.json | 24 ++++++------------------ 5 files changed, 11 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 839859577..be09669ba 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,8 @@ Quick deploy ### How to install or deploy Follow the quick deploy steps on the deployment guide to deploy this solution to your own Azure subscription. +> **Note:** This solution accelerator requires **Azure Developer CLI (azd) version 1.18.0 or higher**. Please ensure you have the latest version installed before proceeding with deployment. [Download azd here](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd). + [Click here to launch the deployment guide](./docs/DeploymentGuide.md)

diff --git a/azure.yaml b/azure.yaml index 851de4db5..f8a7f3607 100644 --- a/azure.yaml +++ b/azure.yaml @@ -3,7 +3,7 @@ name: build-your-own-copilot-solution-accelerator requiredVersions: - azd: ">= 1.15.0" + azd: ">= 1.18.0" metadata: template: build-your-own-copilot-solution-accelerator@1.0 diff --git a/docs/DeploymentGuide.md b/docs/DeploymentGuide.md index 449db6bfe..496f00523 100644 --- a/docs/DeploymentGuide.md +++ b/docs/DeploymentGuide.md @@ -111,7 +111,7 @@ If you're not using one of the above options for opening the project, then you'l 1. Make sure the following tools are installed: - [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.5) (v7.0+) - available for Windows, macOS, and Linux. - - [Azure Developer CLI (azd)](https://aka.ms/install-azd) (v1.15.0+) - version + - [Azure Developer CLI (azd)](https://aka.ms/install-azd) (v1.18.0+) - version - [Python 3.9 to 3.11](https://www.python.org/downloads/) - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - [Git](https://git-scm.com/downloads) @@ -213,6 +213,7 @@ Once you've opened the project in [Codespaces](#github-codespaces), [Dev Contain ```shell azd up ``` + > **Note:** This solution accelerator requires **Azure Developer CLI (azd) version 1.18.0 or higher**. Please ensure you have the latest version installed before proceeding with deployment. [Download azd here](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd). 3. Provide an `azd` environment name (e.g., "byocaapp"). 4. Select a subscription from your Azure account and choose a location that has quota for all the resources. diff --git a/infra/main.bicep b/infra/main.bicep index 30ec8b466..8cb0244bc 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -53,9 +53,6 @@ param embeddingModel string = 'text-embedding-ada-002' @description('Optional. Capacity of the Embedding Model deployment') param embeddingDeploymentCapacity int = 80 -// @description('Fabric Workspace Id if you have one, else leave it empty. ') -// param fabricWorkspaceId string - //restricting to these regions because assistants api for gpt-4o-mini is available only in these regions @allowed([ 'australiaeast' @@ -68,8 +65,6 @@ param embeddingDeploymentCapacity int = 80 'westus' 'westus3' ]) -// @description('Azure OpenAI Location') -// param AzureOpenAILocation string = 'eastus2' @metadata({ azd: { type: 'location' @@ -174,12 +169,10 @@ param vmSize string? @description('Optional. Admin username for the Jumpbox Virtual Machine. Set to custom value if enablePrivateNetworking is true.') @secure() -//param vmAdminUsername string = take(newGuid(), 20) param vmAdminUsername string? @description('Optional. Admin password for the Jumpbox Virtual Machine. Set to custom value if enablePrivateNetworking is true.') @secure() -//param vmAdminPassword string = newGuid() param vmAdminPassword string? var functionAppSqlPrompt = '''Generate a valid T-SQL query to find {query} for tables and columns provided below: @@ -264,14 +257,6 @@ var cosmosDbHaLocation = cosmosDbZoneRedundantHaRegionPairs[resourceGroup().loca // Extracts subscription, resource group, and workspace name from the resource ID when using an existing Log Analytics workspace var useExistingLogAnalytics = !empty(existingLogAnalyticsWorkspaceId) -var existingLawSubscription = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[2] : '' -var existingLawResourceGroup = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[4] : '' -var existingLawName = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[8] : '' - -resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExistingLogAnalytics) { - name: existingLawName - scope: resourceGroup(existingLawSubscription, existingLawResourceGroup) -} var logAnalyticsWorkspaceResourceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace!.outputs.resourceId diff --git a/infra/main.json b/infra/main.json index 7976c4482..36c818f24 100644 --- a/infra/main.json +++ b/infra/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.37.4.10188", - "templateHash": "14524300692672359611" + "templateHash": "4964769336109788957" } }, "parameters": { @@ -258,9 +258,9 @@ }, "createdBy": { "type": "string", - "defaultValue": "[if(empty(deployer().userPrincipalName), '', split(deployer().userPrincipalName, '@')[0])]", + "defaultValue": "[if(contains(deployer(), 'userPrincipalName'), split(deployer().userPrincipalName, '@')[0], deployer().objectId)]", "metadata": { - "description": "Optional created by user name" + "description": "Tag, Created by user name" } } }, @@ -322,9 +322,6 @@ "allTags": "[union(createObject('azd-env-name', parameters('solutionName')), parameters('tags'))]", "cosmosDbHaLocation": "[variables('cosmosDbZoneRedundantHaRegionPairs')[resourceGroup().location]]", "useExistingLogAnalytics": "[not(empty(parameters('existingLogAnalyticsWorkspaceId')))]", - "existingLawSubscription": "[if(variables('useExistingLogAnalytics'), split(parameters('existingLogAnalyticsWorkspaceId'), '/')[2], '')]", - "existingLawResourceGroup": "[if(variables('useExistingLogAnalytics'), split(parameters('existingLogAnalyticsWorkspaceId'), '/')[4], '')]", - "existingLawName": "[if(variables('useExistingLogAnalytics'), split(parameters('existingLogAnalyticsWorkspaceId'), '/')[8], '')]", "logAnalyticsWorkspaceResourceName": "[format('log-{0}', variables('solutionSuffix'))]", "applicationInsightsResourceName": "[format('appi-{0}', variables('solutionSuffix'))]", "userAssignedIdentityResourceName": "[format('id-{0}', variables('solutionSuffix'))]", @@ -396,21 +393,12 @@ "aiSearchName": "[format('srch-{0}', variables('solutionSuffix'))]" }, "resources": { - "existingLogAnalyticsWorkspace": { - "condition": "[variables('useExistingLogAnalytics')]", - "existing": true, - "type": "Microsoft.OperationalInsights/workspaces", - "apiVersion": "2020-08-01", - "subscriptionId": "[variables('existingLawSubscription')]", - "resourceGroup": "[variables('existingLawResourceGroup')]", - "name": "[variables('existingLawName')]" - }, "resourceGroupTags": { "type": "Microsoft.Resources/tags", "apiVersion": "2021-04-01", "name": "default", "properties": { - "tags": "[shallowMerge(createArray(parameters('tags'), createObject('TemplateName', 'Client Advisor', 'CreatedBy', parameters('createdBy'))))]" + "tags": "[shallowMerge(createArray(parameters('tags'), createObject('TemplateName', 'Client Advisor', 'Type', if(parameters('enablePrivateNetworking'), 'WAF', 'Non-WAF'), 'CreatedBy', parameters('createdBy'))))]" } }, "existingAiFoundryAiServices": { @@ -32703,8 +32691,8 @@ }, "dependsOn": [ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", "logAnalyticsWorkspace", "network", "userAssignedIdentity" @@ -42311,8 +42299,8 @@ } }, "dependsOn": [ - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageQueue)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]", "keyvault", "network", "userAssignedIdentity" From e95aed3844cd8b65055f1c89d8b9a1b5332dfc4b Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Wed, 1 Oct 2025 14:37:18 +0530 Subject: [PATCH 11/22] Update Azure template validation action to latest version --- .github/workflows/azure-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 10f4737bf..bcad67cb8 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -24,7 +24,7 @@ jobs: # Step 2: Validate the Azure template using microsoft/template-validation-action - name: Validate Azure Template - uses: microsoft/template-validation-action@v0.3.5 + uses: microsoft/template-validation-action@Latest id: validation env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} From 9258bc9b3775bb4a8477e3b7e678010314e786b9 Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Wed, 1 Oct 2025 15:29:39 +0530 Subject: [PATCH 12/22] Update azure-dev.yml --- .github/workflows/azure-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index bcad67cb8..c519339aa 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -24,7 +24,7 @@ jobs: # Step 2: Validate the Azure template using microsoft/template-validation-action - name: Validate Azure Template - uses: microsoft/template-validation-action@Latest + uses: microsoft/template-validation-action@0.4.2 id: validation env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} From 78b56a39c15889f102b60b041b7661bca96e7700 Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Wed, 1 Oct 2025 15:30:53 +0530 Subject: [PATCH 13/22] Update azure-dev.yml --- .github/workflows/azure-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index c519339aa..81e11b720 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -24,7 +24,7 @@ jobs: # Step 2: Validate the Azure template using microsoft/template-validation-action - name: Validate Azure Template - uses: microsoft/template-validation-action@0.4.2 + uses: microsoft/template-validation-action@v0.4.2 id: validation env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} From 65cff53fea3b4cee3f0d28394d6a80d4da99ae3f Mon Sep 17 00:00:00 2001 From: Prajwal-Microsoft Date: Wed, 1 Oct 2025 18:38:29 +0530 Subject: [PATCH 14/22] Chore: Disable Dev Container usage in Azure validation step Disable the use of Dev Container for Azure template validation. --- .github/workflows/azure-dev.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 81e11b720..961fd968e 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -26,6 +26,8 @@ jobs: - name: Validate Azure Template uses: microsoft/template-validation-action@v0.4.2 id: validation + with: + useDevContainer: false env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} From 36f0162cf1695006b75cd67e5724e980fa922c08 Mon Sep 17 00:00:00 2001 From: Prajwal-Microsoft Date: Wed, 1 Oct 2025 18:52:12 +0530 Subject: [PATCH 15/22] chore: Refactor Azure DevOps workflow configuration --- .github/workflows/azure-dev.yml | 73 +++++++++++++++------------------ 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 961fd968e..677537c33 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -1,41 +1,36 @@ -name: Azure Template Validation -on: - push: - branches: - - main - - dev - workflow_dispatch: - -permissions: - contents: read - id-token: write - pull-requests: write - -jobs: - template_validation_job: +name: Azure Template Validation +on: + workflow_dispatch: + push: + branches: + - main +permissions: + contents: read + id-token: write + pull-requests: write +jobs: + template_validation_job: + runs-on: ubuntu-latest environment: production - runs-on: ubuntu-latest - name: Template validation - - steps: - # Step 1: Checkout the code from your repository - - name: Checkout code - uses: actions/checkout@v4 - - # Step 2: Validate the Azure template using microsoft/template-validation-action - - name: Validate Azure Template - uses: microsoft/template-validation-action@v0.4.2 - id: validation + name: Template validation + steps: + # Step 1: Checkout the code from your repository + - name: Checkout code + uses: actions/checkout@v4 + # Step 2: Validate the Azure template using microsoft/template-validation-action + - name: Validate Azure Template + uses: microsoft/template-validation-action@Latest + id: validation with: - useDevContainer: false - env: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }} - AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # Step 3: Print the result of the validation - - name: Print result - run: cat ${{ steps.validation.outputs.resultFile }} + useDevContainer: false + env: + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }} + AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Step 3: Print the result of the validation + - name: Print result + run: cat ${{ steps.validation.outputs.resultFile }} From cdb0f7f5945ace904fce9e6355b23ed99ede27ba Mon Sep 17 00:00:00 2001 From: Prajwal D C Date: Wed, 1 Oct 2025 21:11:42 +0530 Subject: [PATCH 16/22] fix: Rename main.bicep for network module --- infra/modules/network.bicep | 2 +- infra/modules/network/{main.bicep => network-resources.bicep} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename infra/modules/network/{main.bicep => network-resources.bicep} (100%) diff --git a/infra/modules/network.bicep b/infra/modules/network.bicep index 7a69101fd..ace0139f1 100644 --- a/infra/modules/network.bicep +++ b/infra/modules/network.bicep @@ -63,7 +63,7 @@ param vmSize string // - Document subnet usage and purpose in code comments. // - For AVM modules, ensure only one delegation per subnet and leave delegations empty if not required. -module network 'network/main.bicep' = { +module network 'network/network-resources.bicep' = { name: take('network-${resourcesName}-create', 64) params: { resourcesName: resourcesName diff --git a/infra/modules/network/main.bicep b/infra/modules/network/network-resources.bicep similarity index 100% rename from infra/modules/network/main.bicep rename to infra/modules/network/network-resources.bicep From 7976ca9e064b18ec7a55f1eda4480b1c79232771 Mon Sep 17 00:00:00 2001 From: Prajwal-Microsoft Date: Wed, 1 Oct 2025 21:18:06 +0530 Subject: [PATCH 17/22] chore: Update Azure template validation action version --- .github/workflows/azure-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 677537c33..7ad84eacd 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v4 # Step 2: Validate the Azure template using microsoft/template-validation-action - name: Validate Azure Template - uses: microsoft/template-validation-action@Latest + uses: microsoft/template-validation-action@v0.3.5 id: validation with: useDevContainer: false From 431d908bc88f49febd4ce973e50621e6a08cf142 Mon Sep 17 00:00:00 2001 From: Prajwal-Microsoft Date: Wed, 1 Oct 2025 21:51:33 +0530 Subject: [PATCH 18/22] chore: Add validateTests parameter to Azure Dev workflow --- .github/workflows/azure-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 7ad84eacd..5d6b93c0f 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -23,6 +23,7 @@ jobs: id: validation with: useDevContainer: false + validateTests: '' env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} From fe67217a919e1ccf0435eb3884e100a866070cc9 Mon Sep 17 00:00:00 2001 From: Prajwal-Microsoft Date: Wed, 1 Oct 2025 21:59:38 +0530 Subject: [PATCH 19/22] chore: Update Azure template validation action version --- .github/workflows/azure-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 5d6b93c0f..b1ef09810 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v4 # Step 2: Validate the Azure template using microsoft/template-validation-action - name: Validate Azure Template - uses: microsoft/template-validation-action@v0.3.5 + uses: microsoft/template-validation-action@v0.4.2 id: validation with: useDevContainer: false From 1df88766aeb7657580e02daafd49859b7f3bdd79 Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Wed, 1 Oct 2025 17:25:02 +0000 Subject: [PATCH 20/22] fix post deployment script to support exp --- infra/scripts/process_sample_data.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/infra/scripts/process_sample_data.sh b/infra/scripts/process_sample_data.sh index d59a24662..b92f6e931 100644 --- a/infra/scripts/process_sample_data.sh +++ b/infra/scripts/process_sample_data.sh @@ -81,10 +81,13 @@ aif_resource_name=$(basename "$aif_account_resource_id") # Extract resource group from the AI Foundry account resource ID aif_resource_group=$(echo "$aif_account_resource_id" | sed -n 's|.*/resourceGroups/\([^/]*\)/.*|\1|p') - + # Extract subscription ID from the AI Foundry account resource ID + aif_subscription_id=$(echo "$aif_account_resource_id" | sed -n 's|.*/subscriptions/\([^/]*\)/.*|\1|p') + original_foundry_public_access=$(az cognitiveservices account show \ --name "$aif_resource_name" \ --resource-group "$aif_resource_group" \ + --subscription "$aif_subscription_id" \ --query "properties.publicNetworkAccess" \ --output tsv) if [ -z "$original_foundry_public_access" ] || [ "$original_foundry_public_access" = "null" ]; then From 21e668e6033beb3d4b6c208067bbb93da4177ff9 Mon Sep 17 00:00:00 2001 From: Prajwal D C Date: Thu, 2 Oct 2025 21:35:35 +0530 Subject: [PATCH 21/22] refactor: Comments fixed --- infra/main.bicep | 2 +- infra/main.json | 527 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 521 insertions(+), 8 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 8cb0244bc..b6e9df9c2 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -899,7 +899,7 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = { connectionPolicy: 'Redirect' databases: [ { - zoneRedundant: enableRedundancy ? true : false + zoneRedundant: enableRedundancy // When enableRedundancy is true (zoneRedundant=true), set availabilityZone to -1 // to let Azure automatically manage zone placement across multiple zones. // When enableRedundancy is false, also use -1 (no specific zone assignment). diff --git a/infra/main.json b/infra/main.json index 36c818f24..d3dc9ca02 100644 --- a/infra/main.json +++ b/infra/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.37.4.10188", - "templateHash": "4964769336109788957" + "templateHash": "7078592419671147745" } }, "parameters": { @@ -325,6 +325,7 @@ "logAnalyticsWorkspaceResourceName": "[format('log-{0}', variables('solutionSuffix'))]", "applicationInsightsResourceName": "[format('appi-{0}', variables('solutionSuffix'))]", "userAssignedIdentityResourceName": "[format('id-{0}', variables('solutionSuffix'))]", + "sqlUserAssignedIdentityResourceName": "[format('id-sql-{0}', variables('solutionSuffix'))]", "privateDnsZones": [ "privatelink.cognitiveservices.azure.com", "privatelink.openai.azure.com", @@ -4772,6 +4773,488 @@ } } }, + "sqlUserAssignedIdentity": { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2022-09-01", + "name": "[take(format('avm.res.managed-identity.user-assigned-identity.{0}', variables('sqlUserAssignedIdentityResourceName')), 64)]", + "properties": { + "expressionEvaluationOptions": { + "scope": "inner" + }, + "mode": "Incremental", + "parameters": { + "name": { + "value": "[variables('sqlUserAssignedIdentityResourceName')]" + }, + "location": { + "value": "[variables('solutionLocation')]" + }, + "tags": { + "value": "[parameters('tags')]" + }, + "enableTelemetry": { + "value": "[parameters('enableTelemetry')]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "languageVersion": "2.0", + "contentVersion": "1.0.0.0", + "metadata": { + "_generator": { + "name": "bicep", + "version": "0.34.44.8038", + "templateHash": "16707109626832623586" + }, + "name": "User Assigned Identities", + "description": "This module deploys a User Assigned Identity." + }, + "definitions": { + "federatedIdentityCredentialType": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the federated identity credential." + } + }, + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. The list of audiences that can appear in the issued token." + } + }, + "issuer": { + "type": "string", + "metadata": { + "description": "Required. The URL of the issuer to be trusted." + } + }, + "subject": { + "type": "string", + "metadata": { + "description": "Required. The identifier of the external identity." + } + } + }, + "metadata": { + "__bicep_export!": true, + "description": "The type for the federated identity credential." + } + }, + "lockType": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. Specify the name of lock." + } + }, + "kind": { + "type": "string", + "allowedValues": [ + "CanNotDelete", + "None", + "ReadOnly" + ], + "nullable": true, + "metadata": { + "description": "Optional. Specify the type of lock." + } + } + }, + "metadata": { + "description": "An AVM-aligned type for a lock.", + "__bicep_imported_from!": { + "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1" + } + } + }, + "roleAssignmentType": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. The name (as GUID) of the role assignment. If not provided, a GUID will be generated." + } + }, + "roleDefinitionIdOrName": { + "type": "string", + "metadata": { + "description": "Required. The role to assign. You can provide either the display name of the role definition, the role definition GUID, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'." + } + }, + "principalId": { + "type": "string", + "metadata": { + "description": "Required. The principal ID of the principal (user/group/identity) to assign the role to." + } + }, + "principalType": { + "type": "string", + "allowedValues": [ + "Device", + "ForeignGroup", + "Group", + "ServicePrincipal", + "User" + ], + "nullable": true, + "metadata": { + "description": "Optional. The principal type of the assigned principal ID." + } + }, + "description": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. The description of the role assignment." + } + }, + "condition": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase \"foo_storage_container\"." + } + }, + "conditionVersion": { + "type": "string", + "allowedValues": [ + "2.0" + ], + "nullable": true, + "metadata": { + "description": "Optional. Version of the condition." + } + }, + "delegatedManagedIdentityResourceId": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. The Resource Id of the delegated managed identity resource." + } + } + }, + "metadata": { + "description": "An AVM-aligned type for a role assignment.", + "__bicep_imported_from!": { + "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1" + } + } + } + }, + "parameters": { + "name": { + "type": "string", + "metadata": { + "description": "Required. Name of the User Assigned Identity." + } + }, + "location": { + "type": "string", + "defaultValue": "[resourceGroup().location]", + "metadata": { + "description": "Optional. Location for all resources." + } + }, + "federatedIdentityCredentials": { + "type": "array", + "items": { + "$ref": "#/definitions/federatedIdentityCredentialType" + }, + "nullable": true, + "metadata": { + "description": "Optional. The federated identity credentials list to indicate which token from the external IdP should be trusted by your application. Federated identity credentials are supported on applications only. A maximum of 20 federated identity credentials can be added per application object." + } + }, + "lock": { + "$ref": "#/definitions/lockType", + "nullable": true, + "metadata": { + "description": "Optional. The lock settings of the service." + } + }, + "roleAssignments": { + "type": "array", + "items": { + "$ref": "#/definitions/roleAssignmentType" + }, + "nullable": true, + "metadata": { + "description": "Optional. Array of role assignments to create." + } + }, + "tags": { + "type": "object", + "nullable": true, + "metadata": { + "description": "Optional. Tags of the resource." + } + }, + "enableTelemetry": { + "type": "bool", + "defaultValue": true, + "metadata": { + "description": "Optional. Enable/Disable usage telemetry for module." + } + } + }, + "variables": { + "copy": [ + { + "name": "formattedRoleAssignments", + "count": "[length(coalesce(parameters('roleAssignments'), createArray()))]", + "input": "[union(coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')], createObject('roleDefinitionId', coalesce(tryGet(variables('builtInRoleNames'), coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName), if(contains(coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName, '/providers/Microsoft.Authorization/roleDefinitions/'), coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName)))))]" + } + ], + "builtInRoleNames": { + "Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]", + "Managed Identity Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'e40ec5ca-96e0-45a2-b4ff-59039f2c2b59')]", + "Managed Identity Operator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f1a07417-d97a-45cb-824c-7a7467783830')]", + "Owner": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]", + "Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]", + "Role Based Access Control Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f58310d9-a9f6-439a-9e8d-f62e7b41a168')]", + "User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]" + } + }, + "resources": { + "avmTelemetry": { + "condition": "[parameters('enableTelemetry')]", + "type": "Microsoft.Resources/deployments", + "apiVersion": "2024-03-01", + "name": "[format('46d3xbcp.res.managedidentity-userassignedidentity.{0}.{1}', replace('0.4.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]", + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "resources": [], + "outputs": { + "telemetry": { + "type": "String", + "value": "For more information, see https://aka.ms/avm/TelemetryInfo" + } + } + } + } + }, + "userAssignedIdentity": { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities", + "apiVersion": "2024-11-30", + "name": "[parameters('name')]", + "location": "[parameters('location')]", + "tags": "[parameters('tags')]" + }, + "userAssignedIdentity_lock": { + "condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]", + "type": "Microsoft.Authorization/locks", + "apiVersion": "2020-05-01", + "scope": "[format('Microsoft.ManagedIdentity/userAssignedIdentities/{0}', parameters('name'))]", + "name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]", + "properties": { + "level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]", + "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]" + }, + "dependsOn": [ + "userAssignedIdentity" + ] + }, + "userAssignedIdentity_roleAssignments": { + "copy": { + "name": "userAssignedIdentity_roleAssignments", + "count": "[length(coalesce(variables('formattedRoleAssignments'), createArray()))]" + }, + "type": "Microsoft.Authorization/roleAssignments", + "apiVersion": "2022-04-01", + "scope": "[format('Microsoft.ManagedIdentity/userAssignedIdentities/{0}', parameters('name'))]", + "name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]", + "properties": { + "roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]", + "principalId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId]", + "description": "[tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'description')]", + "principalType": "[tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'principalType')]", + "condition": "[tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'condition')]", + "conditionVersion": "[if(not(empty(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'condition'))), coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'conditionVersion'), '2.0'), null())]", + "delegatedManagedIdentityResourceId": "[tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'delegatedManagedIdentityResourceId')]" + }, + "dependsOn": [ + "userAssignedIdentity" + ] + }, + "userAssignedIdentity_federatedIdentityCredentials": { + "copy": { + "name": "userAssignedIdentity_federatedIdentityCredentials", + "count": "[length(coalesce(parameters('federatedIdentityCredentials'), createArray()))]", + "mode": "serial", + "batchSize": 1 + }, + "type": "Microsoft.Resources/deployments", + "apiVersion": "2022-09-01", + "name": "[format('{0}-UserMSI-FederatedIdentityCred-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]", + "properties": { + "expressionEvaluationOptions": { + "scope": "inner" + }, + "mode": "Incremental", + "parameters": { + "name": { + "value": "[coalesce(parameters('federatedIdentityCredentials'), createArray())[copyIndex()].name]" + }, + "userAssignedIdentityName": { + "value": "[parameters('name')]" + }, + "audiences": { + "value": "[coalesce(parameters('federatedIdentityCredentials'), createArray())[copyIndex()].audiences]" + }, + "issuer": { + "value": "[coalesce(parameters('federatedIdentityCredentials'), createArray())[copyIndex()].issuer]" + }, + "subject": { + "value": "[coalesce(parameters('federatedIdentityCredentials'), createArray())[copyIndex()].subject]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "metadata": { + "_generator": { + "name": "bicep", + "version": "0.34.44.8038", + "templateHash": "13656021764446440473" + }, + "name": "User Assigned Identity Federated Identity Credential", + "description": "This module deploys a User Assigned Identity Federated Identity Credential." + }, + "parameters": { + "userAssignedIdentityName": { + "type": "string", + "metadata": { + "description": "Conditional. The name of the parent user assigned identity. Required if the template is used in a standalone deployment." + } + }, + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the secret." + } + }, + "audiences": { + "type": "array", + "metadata": { + "description": "Required. The list of audiences that can appear in the issued token. Should be set to api://AzureADTokenExchange for Azure AD. It says what Microsoft identity platform should accept in the aud claim in the incoming token. This value represents Azure AD in your external identity provider and has no fixed value across identity providers - you might need to create a new application registration in your IdP to serve as the audience of this token." + } + }, + "issuer": { + "type": "string", + "metadata": { + "description": "Required. The URL of the issuer to be trusted. Must match the issuer claim of the external token being exchanged." + } + }, + "subject": { + "type": "string", + "metadata": { + "description": "Required. The identifier of the external software workload within the external identity provider. Like the audience value, it has no fixed format, as each IdP uses their own - sometimes a GUID, sometimes a colon delimited identifier, sometimes arbitrary strings. The value here must match the sub claim within the token presented to Azure AD." + } + } + }, + "resources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials", + "apiVersion": "2024-11-30", + "name": "[format('{0}/{1}', parameters('userAssignedIdentityName'), parameters('name'))]", + "properties": { + "audiences": "[parameters('audiences')]", + "issuer": "[parameters('issuer')]", + "subject": "[parameters('subject')]" + } + } + ], + "outputs": { + "name": { + "type": "string", + "metadata": { + "description": "The name of the federated identity credential." + }, + "value": "[parameters('name')]" + }, + "resourceId": { + "type": "string", + "metadata": { + "description": "The resource ID of the federated identity credential." + }, + "value": "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentityName'), parameters('name'))]" + }, + "resourceGroupName": { + "type": "string", + "metadata": { + "description": "The name of the resource group the federated identity credential was created in." + }, + "value": "[resourceGroup().name]" + } + } + } + }, + "dependsOn": [ + "userAssignedIdentity" + ] + } + }, + "outputs": { + "name": { + "type": "string", + "metadata": { + "description": "The name of the user assigned identity." + }, + "value": "[parameters('name')]" + }, + "resourceId": { + "type": "string", + "metadata": { + "description": "The resource ID of the user assigned identity." + }, + "value": "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('name'))]" + }, + "principalId": { + "type": "string", + "metadata": { + "description": "The principal ID (object ID) of the user assigned identity." + }, + "value": "[reference('userAssignedIdentity').principalId]" + }, + "clientId": { + "type": "string", + "metadata": { + "description": "The client ID (application ID) of the user assigned identity." + }, + "value": "[reference('userAssignedIdentity').clientId]" + }, + "resourceGroupName": { + "type": "string", + "metadata": { + "description": "The resource group the user assigned identity was deployed into." + }, + "value": "[resourceGroup().name]" + }, + "location": { + "type": "string", + "metadata": { + "description": "The location the resource was deployed into." + }, + "value": "[reference('userAssignedIdentity', '2024-11-30', 'full').location]" + } + } + } + } + }, "network": { "condition": "[parameters('enablePrivateNetworking')]", "type": "Microsoft.Resources/deployments", @@ -20521,7 +21004,7 @@ "condition": "[and(parameters('enablePrivateNetworking'), or(empty(parameters('existingFoundryProjectResourceId')), not(contains(variables('aiRelatedDnsZoneIndices'), copyIndex()))))]", "type": "Microsoft.Resources/deployments", "apiVersion": "2022-09-01", - "name": "[format('dns-zone-{0}', copyIndex())]", + "name": "[format('avm.res.network.private-dns-zone.{0}', split(variables('privateDnsZones')[copyIndex()], '.')[1])]", "properties": { "expressionEvaluationOptions": { "scope": "inner" @@ -23742,6 +24225,11 @@ "principalId": "[reference('userAssignedIdentity').outputs.principalId.value]", "principalType": "ServicePrincipal", "roleDefinitionIdOrName": "Key Vault Administrator" + }, + { + "principalId": "[reference('sqlUserAssignedIdentity').outputs.principalId.value]", + "principalType": "ServicePrincipal", + "roleDefinitionIdOrName": "Key Vault Secrets User" } ] }, @@ -26903,6 +27391,7 @@ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').keyVault)]", "logAnalyticsWorkspace", "network", + "sqlUserAssignedIdentity", "userAssignedIdentity" ] }, @@ -32690,9 +33179,9 @@ } }, "dependsOn": [ - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", "logAnalyticsWorkspace", "network", "userAssignedIdentity" @@ -45506,7 +45995,8 @@ "databases": { "value": [ { - "availabilityZone": "[if(parameters('enableRedundancy'), 1, -1)]", + "zoneRedundant": "[parameters('enableRedundancy')]", + "availabilityZone": -1, "collation": "SQL_Latin1_General_CP1_CI_AS", "diagnosticSettings": "[if(parameters('enableMonitoring'), createArray(createObject('workspaceResourceId', if(variables('useExistingLogAnalytics'), parameters('existingLogAnalyticsWorkspaceId'), reference('logAnalyticsWorkspace').outputs.resourceId.value))), null())]", "licenseType": "LicenseIncluded", @@ -52712,7 +53202,8 @@ "managedIdentities": { "value": { "userAssignedResourceIds": [ - "[reference('userAssignedIdentity').outputs.resourceId.value]" + "[reference('userAssignedIdentity').outputs.resourceId.value]", + "[reference('sqlUserAssignedIdentity').outputs.resourceId.value]" ] } }, @@ -52769,7 +53260,7 @@ "AZURE_COSMOSDB_CONVERSATIONS_CONTAINER": "[variables('collectionName')]", "AZURE_COSMOSDB_DATABASE": "[variables('cosmosDbDatabaseName')]", "AZURE_COSMOSDB_ENABLE_FEEDBACK": "[variables('azureCosmosDbEnableFeedback')]", - "SQLDB_USER_MID": "[reference('userAssignedIdentity').outputs.clientId.value]", + "SQLDB_USER_MID": "[reference('sqlUserAssignedIdentity').outputs.clientId.value]", "AZURE_AI_SEARCH_ENDPOINT": "[format('https://{0}.search.windows.net', variables('aiSearchName'))]", "AZURE_SQL_SYSTEM_PROMPT": "[variables('functionAppSqlPrompt')]", "AZURE_CALL_TRANSCRIPT_SYSTEM_PROMPT": "[variables('functionAppCallTranscriptSystemPrompt')]", @@ -54778,6 +55269,7 @@ "cosmosDb", "logAnalyticsWorkspace", "network", + "sqlUserAssignedIdentity", "userAssignedIdentity", "webServerFarm" ] @@ -57422,6 +57914,20 @@ }, "value": "[reference('userAssignedIdentity').outputs.clientId.value]" }, + "MANAGEDIDENTITY_SQL_NAME": { + "type": "string", + "metadata": { + "description": "Name of the managed identity used for SQL database operations." + }, + "value": "[reference('sqlUserAssignedIdentity').outputs.name.value]" + }, + "MANAGEDIDENTITY_SQL_CLIENTID": { + "type": "string", + "metadata": { + "description": "Client ID of the managed identity used for SQL database operations." + }, + "value": "[reference('sqlUserAssignedIdentity').outputs.clientId.value]" + }, "AI_SEARCH_SERVICE_NAME": { "type": "string", "metadata": { @@ -57750,6 +58256,13 @@ "description": "Indicates whether the internal stream should be used." }, "value": "[variables('useInternalStream')]" + }, + "AZURE_CLIENT_ID": { + "type": "string", + "metadata": { + "description": "The client ID of the managed identity." + }, + "value": "[reference('userAssignedIdentity').outputs.clientId.value]" } } } \ No newline at end of file From a5321f31dd6264fbcd02c3d174a0dffe924b7452 Mon Sep 17 00:00:00 2001 From: Harsh-Microsoft Date: Fri, 3 Oct 2025 18:31:27 +0530 Subject: [PATCH 22/22] ci: Fix deploy workflow (#697) * ci: Update environment variable assignments for SQL client IDs and names in deploy wf * Remove redundant branch from deployment triggers --- .github/workflows/CAdeploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CAdeploy.yml b/.github/workflows/CAdeploy.yml index 94869636c..0b27423e9 100644 --- a/.github/workflows/CAdeploy.yml +++ b/.github/workflows/CAdeploy.yml @@ -172,9 +172,9 @@ jobs: echo "SQL_SERVER_NAME=$SQL_SERVER_NAME" >> $GITHUB_ENV export SQL_DATABASE=$(echo "$DEPLOY_OUTPUT" | jq -r '.sqldB_DATABASE.value') echo "SQL_DATABASE=$SQL_DATABASE" >> $GITHUB_ENV - export CLIENT_ID=$(echo "$DEPLOY_OUTPUT" | jq -r '.managedidentitY_WEBAPP_CLIENTID.value') + export CLIENT_ID=$(echo "$DEPLOY_OUTPUT" | jq -r '.managedidentitY_SQL_CLIENTID.value') echo "CLIENT_ID=$CLIENT_ID" >> $GITHUB_ENV - export CLIENT_NAME=$(echo "$DEPLOY_OUTPUT" | jq -r '.managedidentitY_WEBAPP_NAME.value') + export CLIENT_NAME=$(echo "$DEPLOY_OUTPUT" | jq -r '.managedidentitY_SQL_NAME.value') echo "CLIENT_NAME=$CLIENT_NAME" >> $GITHUB_ENV export RG_NAME=$(echo "$DEPLOY_OUTPUT" | jq -r '.resourcE_GROUP_NAME.value') echo "RG_NAME=$RG_NAME" >> $GITHUB_ENV