Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
e2dd7b0
New version following agreed standards and compliant with AVM WAF con…
alguadam Aug 6, 2025
0e97262
Refactor Azure credential retrieval to use AZURE_CLIENT_ID across mul…
Abdul-Microsoft Aug 11, 2025
9d6ecbd
Refactor Cosmos DB role definitions and assignments for clarity and c…
Abdul-Microsoft Aug 12, 2025
240f5cf
Merge all the changes from main
Abdul-Microsoft Aug 13, 2025
a99914c
Fix the user assigned identity issue and added quota check, removed h…
Abdul-Microsoft Aug 13, 2025
422c8fb
Added more parameters
Abdul-Microsoft Aug 13, 2025
7a0b86b
Fixes for the command shared by Alvaro
Abdul-Microsoft Aug 14, 2025
7290f29
Merge pull request #379 from microsoft/psl-avmwafchanges
Abdul-Microsoft Aug 14, 2025
3e955bd
Added Troubleshoot doc for telemtry errors
NirajC-Microsoft Aug 18, 2025
fc6235b
UpdatedTestFiles
UtkarshMishra-Microsoft Aug 18, 2025
f1ce21a
Added space between content and summary tag
NirajC-Microsoft Aug 19, 2025
484736c
add one more step in Service Unavailable
NirajC-Microsoft Aug 19, 2025
b78d149
added ReadOnlyDisabledSubscription in troubleshooting doc
NirajC-Microsoft Aug 19, 2025
4844590
Differentiate between setup and processing errors
AjitPadhi-Microsoft Aug 19, 2025
9b5f754
lint issue fix
AjitPadhi-Microsoft Aug 19, 2025
fec5880
added Provision error troubleshoot error in troubleshoot doc
NirajC-Microsoft Aug 19, 2025
5b3b15d
added updated AzureHomePage.png
NirajC-Microsoft Aug 19, 2025
64ff24c
fix unit test
AjitPadhi-Microsoft Aug 19, 2025
d3487c1
fix unit test
AjitPadhi-Microsoft Aug 19, 2025
31ec335
Merge pull request #386 from microsoft/UnitTest
Roopan-Microsoft Aug 19, 2025
b6d2cc2
Merge branch 'dev' of https://github.com/microsoft/Multi-Agent-Custom…
AjitPadhi-Microsoft Aug 19, 2025
3ba2195
added troubleshooting step for DeploymentOutputEvaluationFailed error
NirajC-Microsoft Aug 19, 2025
53124b4
Merge pull request #384 from microsoft/task_error_logging
Roopan-Microsoft Aug 19, 2025
c476b99
removed local deployment file as content is similar to DeploymentGuide
Priyanka-Microsoft Aug 19, 2025
d7413b1
removed local deployment file as content is similar to DeploymentGuide
Priyanka-Microsoft Aug 19, 2025
e502aa2
removed local deployment file as content is similar to DeploymentGuide
Priyanka-Microsoft Aug 19, 2025
ffffd12
Merge pull request #387 from microsoft/remove-local-deployment-file
Roopan-Microsoft Aug 19, 2025
a95e5e6
Merge pull request #383 from microsoft/dev
Roopan-Microsoft Aug 19, 2025
b42f0fd
Refactor private DNS zone configurations
Abdul-Microsoft Aug 19, 2025
8ee525d
Added changes to reuse the existing log analytics
Abdul-Microsoft Aug 20, 2025
2e0ed5b
Removed the str conversion of the kernel function tools and renoved k…
Dhruvkumar-Microsoft Aug 20, 2025
ca8530f
resolved the pytlint comments
Dhruvkumar-Microsoft Aug 20, 2025
68ef958
Added bicep changes related to reuse existing foundry project
Abdul-Microsoft Aug 21, 2025
6ae0800
sfi issue fix
Ravikirana-Microsoft Aug 21, 2025
c7b4d74
Added CanNotRestoreANonExistingResource error in troubleshoot doc
NirajC-Microsoft Aug 21, 2025
bffa0dc
Improvised Troubleshoot.md file
NirajC-Microsoft Aug 21, 2025
b30dc15
restricting dns zone creation based on reuse existing foundry project
Abdul-Microsoft Aug 21, 2025
354ec37
condition removed
Ravikirana-Microsoft Aug 21, 2025
8145d53
path update
Ravikirana-Microsoft Aug 21, 2025
b7166d2
Merge pull request #385 from microsoft/psl-troubleshootdoc-telemtry
Roopan-Microsoft Aug 21, 2025
ff0847d
path updated
Ravikirana-Microsoft Aug 21, 2025
fd98122
Added Error Code title and description of troubleshooting document
NirajC-Microsoft Aug 21, 2025
14a2223
Added MaxNumberOfRegionalEnvironmentsInSubExceeded
NirajC-Microsoft Aug 21, 2025
ea835ff
Update docs/DeploymentGuide.md
NirajC-Microsoft Aug 21, 2025
933b935
Merge pull request #392 from microsoft/psl-spellingfixes-troubleshoot…
Roopan-Microsoft Aug 21, 2025
730f556
form-data security issue fix
Ravikirana-Microsoft Aug 22, 2025
c60faf5
UpdatedLocaldocs
UtkarshMishra-Microsoft Aug 22, 2025
e2b5e13
Refactor AI project module: consolidate parameters and outputs for be…
alguadam Aug 22, 2025
754a441
Update DeploymentGuide.md
Roopan-Microsoft Aug 22, 2025
dcd8f36
docs: Document updated for .env setup steps for local development wit…
Avijit-Microsoft Aug 22, 2025
ffcfa86
Merge pull request #390 from microsoft/sfi-issue-fix
Prajwal-Microsoft Aug 22, 2025
a1cb771
Merge pull request #393 from microsoft/dev
Roopan-Microsoft Aug 25, 2025
e305238
Refactor AI project output structure and remove unused modules
alguadam Aug 25, 2025
169a654
Refactor AI services module: remove deprecated deployments module and…
alguadam Aug 25, 2025
efcf54f
Refactor AI project parameters: rename existing AI Foundry resource I…
alguadam Aug 25, 2025
5a440d0
removed the planner agent prompt
Dhruvkumar-Microsoft Aug 26, 2025
53107c9
Update .gitignore: add patterns to ignore Bicep and ARM local paramet…
alguadam Aug 26, 2025
c6d5947
Refactor AI Foundry AI Services module: remove commented-out code and…
alguadam Aug 26, 2025
e16ac5f
Refactor AI services module: update aiServicesName assignment to hand…
alguadam Aug 26, 2025
b9b8f24
Refactor AI Foundry AI Services module: add comment for implicit depe…
alguadam Aug 26, 2025
f3f30f7
Refactor AI Foundry AI Services module: simplify aiServicesName assig…
alguadam Aug 26, 2025
072d611
Refactor AI Foundry AI Services module: streamline resource group and…
alguadam Aug 26, 2025
70cc0e7
Refactor parameter files: rename existingFoundryProjectResourceId to …
Abdul-Microsoft Aug 26, 2025
d3a313c
Merge pull request #395 from microsoft/psl-avmwfchanges-alguadam
Roopan-Microsoft Aug 26, 2025
347c79d
Merge pull request #391 from microsoft/psl-avmwafchanges
alguadam Aug 26, 2025
0933f74
Merge pull request #389 from microsoft/psl-bug-22336
Roopan-Microsoft Aug 27, 2025
79aaf3e
Merge pull request #412 from microsoft/dev
Roopan-Microsoft Aug 28, 2025
a47445d
reverted the original prompt of planner agent
Dhruvkumar-Microsoft Aug 29, 2025
93c4500
removed the spaces
Dhruvkumar-Microsoft Aug 29, 2025
97d5614
Merge pull request #413 from microsoft/psl-planneragentrevertpromptch…
Roopan-Microsoft Aug 29, 2025
0df22c1
Merge branch 'main' into dev
Roopan-Microsoft Sep 1, 2025
16a7542
Merge branch 'dev' into infra-avm-waf
Roopan-Microsoft Sep 1, 2025
5532fb1
bicep udpated post downmerge
Roopan-Microsoft Sep 1, 2025
16a3ea8
always enable public network access for Container App Environment and…
Abdul-Microsoft Sep 1, 2025
427f019
Merge pull request #414 from microsoft/dev
Roopan-Microsoft Sep 1, 2025
8b7b2b8
Remove unused private endpoint configurations and ensure public netwo…
Abdul-Microsoft Sep 1, 2025
557f57d
Update AZURE_OPENAI_ENDPOINT
Abdul-Microsoft Sep 1, 2025
a2f76b0
fixed the unit test case issue in test_cosmos_memory.py
Abdul-Microsoft Sep 2, 2025
9e7cd5a
Merge pull request #416 from microsoft/infra-avm-waf
Roopan-Microsoft Sep 2, 2025
bdbf325
Enhance documentation and configuration for Azure deployment paramete…
Abdul-Microsoft Sep 2, 2025
b339965
Fix link formatting for main.parameters.json in Deployment Guide
Abdul-Microsoft Sep 2, 2025
b3c771f
Fix formatting issue in Deployment Guide for main.parameters.json ref…
Abdul-Microsoft Sep 2, 2025
9c2983c
Merge pull request #421 from microsoft/infra-avm-waf
Roopan-Microsoft Sep 2, 2025
96f6a36
Merge pull request #424 from microsoft/dev
Roopan-Microsoft Sep 2, 2025
f56230e
Merge branch 'main' into psl-waf-macaev3
Roopan-Microsoft Sep 2, 2025
5ddd89c
code updated based on latest infra changes
Roopan-Microsoft Sep 2, 2025
d6a956b
Add deployer name in Createdby tag
NirajC-Microsoft Sep 3, 2025
32989a9
Merge pull request #433 from microsoft/psl-CreatedBy-Tag
Roopan-Microsoft Sep 3, 2025
8ed289a
updated the main.bicep and main_custom.bicep and dockerfile for mcp
Dhruvkumar-Microsoft Sep 3, 2025
f656c8c
updated the bicep file to comply with standards, assigned roles to th…
Harsh-Microsoft Sep 3, 2025
8253e96
sync custom bicep file with main bicep
Harsh-Microsoft Sep 3, 2025
4851be6
Merge branch 'macae-v3-dev-v2-vip' into psl-waf-macaev3
Roopan-Microsoft Sep 4, 2025
cb0f6f0
added the intallation changes
Dhruvkumar-Microsoft Sep 4, 2025
901c355
Merge branch 'dev' of https://github.com/microsoft/Multi-Agent-Custom…
Dhruvkumar-Microsoft Sep 4, 2025
bbb83ad
Merge pull request #440 from microsoft/psl-bug-22757-docs
Roopan-Microsoft Sep 4, 2025
eb3e874
added scripts to upload team configurations to cosmos
Harsh-Microsoft Sep 4, 2025
304af60
added the environment varibale values
Dhruvkumar-Microsoft Sep 4, 2025
49751f5
added post deployment script in azure_custom.yaml
Dhruvkumar-Microsoft Sep 4, 2025
8c39455
Update image tags for backend and frontend containers
Harmanpreet-Microsoft Sep 4, 2025
a27b6df
uncommented the RAI check
Dhruvkumar-Microsoft Sep 4, 2025
71a0e00
Merge pull request #441 from Harmanpreet-Microsoft/main
Roopan-Microsoft Sep 4, 2025
bdebf95
frontend Docker file updated
Roopan-Microsoft Sep 4, 2025
5082901
Merge branch 'psl-waf-macaev3' of https://github.com/microsoft/Multi-…
Roopan-Microsoft Sep 4, 2025
b4db122
Merge branch 'macae-v3-dev-v2-vip' into psl-waf-macaev3
Roopan-Microsoft Sep 5, 2025
35ce6e9
provision key vault and use apikey for ai search
Harsh-Microsoft Sep 5, 2025
0fc8447
added model deployment
Dhruvkumar-Microsoft Sep 5, 2025
79fbe68
Merge branch 'psl-waf-macaev3' of https://github.com/microsoft/Multi-…
Dhruvkumar-Microsoft Sep 5, 2025
6dcfe52
Adding a hardcoded createdBy parameter to the deploy.yml file to prev…
NirajC-Microsoft Sep 5, 2025
fa11d6b
added the bicep changes related to deployment models
Dhruvkumar-Microsoft Sep 5, 2025
8620c03
Add guide for setting up Grounding with Bing Search in Azure AI Foundry
Abdul-Microsoft Sep 5, 2025
1b438b5
Update Bing Search Grounding setup guide
Abdul-Microsoft Sep 5, 2025
952ac52
Merge pull request #448 from microsoft/psl-addcreatedbyparaminyml
Roopan-Microsoft Sep 5, 2025
7abb413
Remove unnecessary markdown syntax from the Bing Search Grounding set…
Abdul-Microsoft Sep 5, 2025
40bc54b
Merge branch 'psl-waf-macaev3' of https://github.com/microsoft/Multi-…
Dhruvkumar-Microsoft Sep 5, 2025
492517f
Merge pull request #439 from microsoft/dev
Roopan-Microsoft Sep 5, 2025
d042fd8
Merge branch 'main' into psl-waf-macaev3
Roopan-Microsoft Sep 5, 2025
417fb34
update upload team_config scripts
Harsh-Microsoft Sep 5, 2025
b654199
added tags in custom bicep
Dhruvkumar-Microsoft Sep 5, 2025
f120eaa
updated the frontend docker file with the main branch
Dhruvkumar-Microsoft Sep 5, 2025
4ce8d86
added type as module in package.json
Roopan-Microsoft Sep 5, 2025
81271d4
updated the qouta check
Dhruvkumar-Microsoft Sep 5, 2025
f42075c
Merge branch 'psl-waf-macaev3' of https://github.com/microsoft/Multi-…
Dhruvkumar-Microsoft Sep 5, 2025
b3c866f
Enhance script output with color coding and update script paths in te…
Harsh-Microsoft Sep 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions .github/workflows/deploy-waf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,13 +109,15 @@ jobs:
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
--template-file infra/main.bicep \
--parameters \
environmentName=${{ env.SOLUTION_PREFIX }} \
useWafAlignedArchitecture=true \
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
solutionName=${{ env.SOLUTION_PREFIX }} \
location="${{ env.AZURE_LOCATION }}" \
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
gptModelCapacity=5 \
virtualMachineConfiguration='{"adminUsername": "adminuser", "adminPassword": "P@ssw0rd1234"}' \
logAnalyticsWorkspaceConfiguration='{"existingWorkspaceResourceId": ""}'
enableTelemetry=true \
enableMonitoring=true \
enablePrivateNetworking=true \
enableScalability=true \
- name: Send Notification on Failure
if: failure()
Expand Down
17 changes: 7 additions & 10 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,19 +129,16 @@ jobs:
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
--template-file infra/main.bicep \
--parameters \
environmentName=${{ env.SOLUTION_PREFIX }} \
solutionLocation="${{ env.AZURE_LOCATION }}" \
modelDeploymentType="GlobalStandard" \
solutionName=${{ env.SOLUTION_PREFIX }} \
location="${{ env.AZURE_LOCATION }}" \
gptModelDeploymentType="GlobalStandard" \
gptModelName="gpt-4o" \
gptModelVersion="2024-08-06" \
imageTag="${IMAGE_TAG}" \
useWafAlignedArchitecture=false \
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
backendContainerImageTag="${IMAGE_TAG}" \
frontendContainerImageTag="${IMAGE_TAG}" \
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
gptModelCapacity=150 \
logAnalyticsWorkspaceConfiguration='{"dataRetentionInDays": 30, "existingWorkspaceResourceId": ""}' \
applicationInsightsConfiguration='{"retentionInDays": 30}' \
virtualNetworkConfiguration='{"enabled": false}' \
webServerFarmConfiguration='{"skuCapacity": 1, "skuName": "B2"}' \
createdBy="Pipeline" \
--output json
- name: Extract Web App and API App URLs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- name: Run tests with coverage
if: env.skip_tests == 'false'
run: |
pytest --cov=. --cov-report=term-missing --cov-report=xml
pytest --cov=. --cov-report=term-missing --cov-report=xml --ignore=tests/e2e-test/tests
- name: Skip coverage report if no tests
if: env.skip_tests == 'true'
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -460,4 +460,7 @@ __pycache__/
.azure
.github/copilot-instructions.md
# Ignore sample code folder
data/sample_code/
data/sample_code/
# Bicep local files
*.local*.bicepparam
*.local*.parameters.json
36 changes: 35 additions & 1 deletion azure.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,38 @@ name: multi-agent-custom-automation-engine-solution-accelerator
metadata:
template: [email protected]
requiredVersions:
azd: ">=1.15.0 !=1.17.1"
azd: ">=1.15.0 !=1.17.1"
hooks:
postdeploy:
windows:
run: |
Write-Host "To upload Team Configurations to Cosmos. Run the following command in PowerShell:"
Write-Host "infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "To index Sample Data into Azure Search. Run the following command in PowerShell:"
Write-Host "infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "To upload team configurations and index sample data both in one command, you can use the following command in PowerShell:"
Write-Host "infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "You can access the deployed Frontend application at the following URL:"
Write-Host "https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
shell: pwsh
interactive: true
posix:
run: |
Blue='\033[0;34m'
NC='\033[0m'
echo "To upload Team Configurations to Cosmos. Run the following command in Bash:"
echo "${Blue}bash infra/scripts/upload_team_config.sh"
echo ""
echo "${NC}To index Sample Data into Azure Search. Run the following command in Bash:"
echo "${Blue}bash infra/scripts/process_sample_data.sh"
echo ""
echo "${NC}To upload team configurations and index sample data both in one command, you can use the following command in Bash:"
echo "${Blue}bash infra/scripts/team_config_and_data.sh"
echo ""
echo "${NC}You can access the deployed Frontend application at the following URL:"
echo "${Blue}https://$webSiteDefaultHostname"
shell: sh
interactive: true
37 changes: 36 additions & 1 deletion azure_custom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,39 @@ services:
shell: sh
run: bash ../../infra/scripts/package_frontend.sh
interactive: true
continueOnError: false
continueOnError: false

hooks:
postdeploy:
windows:
run: |
Write-Host "To upload Team Configurations to Cosmos. Run the following command in PowerShell:"
Write-Host "infra\scripts\Upload-Team-Config.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "To index Sample Data into Azure Search. Run the following command in PowerShell:"
Write-Host "infra\scripts\Process-Sample-Data.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "If you want to run both scripts as single command, you can use the following command in PowerShell:"
Write-Host "infra\scripts\Team-Config-And-Data.ps1" -ForegroundColor Cyan
Write-Host ""
Write-Host "You can access the deployed Frontend application at the following URL:"
Write-Host "https://$env:webSiteDefaultHostname" -ForegroundColor Cyan
shell: pwsh
interactive: true
posix:
run: |
Blue='\033[0;34m'
NC='\033[0m'
echo "To upload Team Configurations to Cosmos. Run the following command in Bash:"
echo "${Blue}bash infra/scripts/upload_team_config.sh"
echo ""
echo "${NC}To index Sample Data into Azure Search. Run the following command in Bash:"
echo "${Blue}bash infra/scripts/process_sample_data.sh"
echo ""
echo "${NC}If you want to run both scripts as single command, you can use the following command in Bash:"
echo "${Blue}bash infra/scripts/team_config_and_data.sh"
echo ""
echo "${NC}You can access the deployed Frontend application at the following URL:"
echo "${Blue}https://$webSiteDefaultHostname"
shell: sh
interactive: true
2 changes: 2 additions & 0 deletions docs/CustomizingAzdParameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ By default this template will use the environment name as the prefix to prevent
| `AZURE_ENV_IMAGETAG` | string | `latest` | Docker image tag used for container deployments. |
| `AZURE_ENV_ENABLE_TELEMETRY` | bool | `true` | Enables telemetry for monitoring and diagnostics. |
| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID` | string | Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md) | Set this if you want to reuse an existing Log Analytics Workspace instead of creating a new one. |
| `AZURE_ENV_VM_ADMIN_USERNAME` | string | `take(newGuid(), 20)` | The administrator username for the virtual machine. |
| `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `newGuid()` | The administrator password for the virtual machine. |
---

## How to Set a Parameter
Expand Down
144 changes: 118 additions & 26 deletions docs/DeploymentGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,42 +26,68 @@ Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

This will allow the scripts to run for the current session without permanently changing your system's policy.

### **Azure Developer CLI (azd) Requirement**

Ensure that you are using the latest version of the [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview).
The `azd` version must be **1.18.0 or higher**.

Upgrade commands by OS:

* **Windows (using winget):**

```bash
winget install microsoft.azd
```

* **Linux (using apt):**

```bash
curl -fsSL https://aka.ms/install-azd.sh | bash
```

* **macOS (using Homebrew):**

```bash
brew update && brew tap azure/azd && brew install azd
```

## Deployment Options & Steps

### Sandbox or WAF Aligned Deployment Options

The [`infra`](../infra) folder of the Multi Agent Solution Accelerator contains the [`main.bicep`](../infra/main.bicep) Bicep script, which defines all Azure infrastructure components for this solution.

When running `azd up`, you’ll now be prompted to choose between a **WAF-aligned configuration** and a **sandbox configuration** using a simple selection:
By default, the `azd up` command uses the [`main.parameters.json`](../infra/main.parameters.json) file to deploy the solution. This file is pre-configured for a **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.

- A **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.
For **production deployments**, the repository also provides [`main.waf.parameters.json`](../infra/main.waf.parameters.json), which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as:

- A **production deployments environment**, which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as:
- Enhanced network security (e.g., Network protection with private endpoints)
- Stricter access controls and managed identities
- Logging, monitoring, and diagnostics enabled by default
- Resource tagging and cost management recommendations

**How to choose your deployment configuration:**

When prompted during `azd up`:
* Use the default `main.parameters.json` file for a **sandbox/dev environment**
* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up`

![useWAFAlignedArchitecture](images/macae_waf_prompt.png)
---

- Select **`true`** to deploy a **WAF-aligned, production-ready environment**
- Select **`false`** to deploy a **lightweight sandbox/dev environment**
### VM Credentials Configuration

By default, the solution sets the VM administrator username and password from environment variables.
If you do not configure these values, a randomly generated GUID will be used for both the username and password.

To set your own VM credentials before deployment, use:

```sh
azd env set AZURE_ENV_VM_ADMIN_USERNAME <your-username>
azd env set AZURE_ENV_VM_ADMIN_PASSWORD <your-password>
```

> [!TIP]
> Always review and adjust parameter values (such as region, capacity, security settings and log analytics workspace configuration) to match your organization’s requirements before deploying. For production, ensure you have sufficient quota and follow the principle of least privilege for all identities and role assignments.
> To reuse an existing Log Analytics workspace, update the existingWorkspaceResourceId field under the logAnalyticsWorkspaceConfiguration parameter in the .bicep file with the resource ID of your existing workspace.
For example:
```
param logAnalyticsWorkspaceConfiguration = {
dataRetentionInDays: 30
existingWorkspaceResourceId: '/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>'
}
```

> [!IMPORTANT]
> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates.
Expand Down Expand Up @@ -213,11 +239,51 @@ Once you've opened the project in [Codespaces](#github-codespaces), [Dev Contain
- This deployment will take _4-6 minutes_ to provision the resources in your account and set up the solution with sample data.
- If you encounter an error or timeout during deployment, changing the location may help, as there could be availability constraints for the resources.

5. Once the deployment has completed successfully, open the [Azure Portal](https://portal.azure.com/), go to the deployed resource group, find the App Service, and get the app URL from `Default domain`.
5. After deployment completes, you can upload Team Configurations using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root:

- **For Bash (Linux/macOS/WSL):**
```bash
bash infra/scripts/upload_team_config.sh
```

- **For PowerShell (Windows):**
```powershell
infra\scripts\Upload-Team-Config.ps1
```

6. After deployment completes, you can index Sample Data into Search Service using command printed in the terminal. The command will look like one of the following. Run the appropriate command for your shell from the project root:

6. When Deployment is complete, follow steps in [Set Up Authentication in Azure App Service](../docs/azure_app_service_auth_setup.md) to add app authentication to your web app running on Azure App Service
- **For Bash (Linux/macOS/WSL):**
```bash
bash infra/scripts/process_sample_data.sh
```

7. If you are done trying out the application, you can delete the resources by running `azd down`.
- **For PowerShell (Windows):**
```powershell
infra\scripts\Process-Sample-Data.ps1
```

7. To upload team configurations and index sample data in one step. Run the appropriate command for your shell from the project root:

- **For Bash (Linux/macOS/WSL):**
```bash
bash infra/scripts/team_config_and_data.sh
```

- **For PowerShell (Windows):**
```powershell
infra\scripts\Team-Config-And-Data.ps1
```

8. Once the deployment has completed successfully, open the [Azure Portal](https://portal.azure.com/), go to the deployed resource group, find the App Service, and get the app URL from `Default domain`.

9. When Deployment is complete, follow steps in [Set Up Authentication in Azure App Service](../docs/azure_app_service_auth_setup.md) to add app authentication to your web app running on Azure App Service

10. If you are done trying out the application, you can delete the resources by running `azd down`.


### 🛠️ Troubleshooting
If you encounter any issues during the deployment process, please refer [troubleshooting](../docs/TroubleShootingSteps.md) document for detailed steps and solutions.

# Local setup

Expand Down Expand Up @@ -324,27 +390,39 @@ The files for the dev container are located in `/.devcontainer/` folder.
- Update the `.env` file with the required values from your Azure resource group in Azure Portal App Service environment variables.
- Alternatively, if resources were
provisioned using `azd provision` or `azd up`, a `.env` file is automatically generated in the `.azure/<env-name>/.env`
file. To get your `<env-name>` run `azd env list` to see which env is default.
file. You can copy the contents of this file into your backend `.env` file.
_**Note**: To get your `<env-name>` run `azd env list` to see which env is default._
6. **Fill in the `.env` file:**
- Use the output from the deployment or check the Azure Portal under "Deployments" in the resource group.
- Make sure to set APP_ENV to "**dev**" in `.env` file.
- For local development, make sure to include below env variables in the `.env`
- `BACKEND_API_URL=http://localhost:8000`
- `FRONTEND_SITE_NAME=http://127.0.0.1:3000` .
7. **(Optional) Set up a virtual environment:**
- If you are using `venv`, create and activate your virtual environment for both the frontend and backend folders.
8. **Install requirements - frontend:**
8. **Install requirements - Backend:**
- In each of the frontend and backend folders -
Open a terminal in the `src` folder and run:
- To install the requirement for backend -
Open a terminal in the `src/backend` folder and run:
```bash
pip install -r requirements.txt
pip install uv
uv sync
```
9. **Build the frontend (important):**
- To install the requirement for frontend -
Open a terminal in the `src/frontend` folder and run:
```bash
pip install -r requirements.txt
```
- Before running the frontend server, you must build the frontend to generate the necessary `build/assets` directory.
From the `src/frontend` directory, run:
Expand All @@ -356,7 +434,7 @@ The files for the dev container are located in `/.devcontainer/` folder.
10. **Run the application:**
- From the src/backend directory:
- From the `src/backend` directory activate the virtual environment created through step 8 and Run:
```bash
python app_kernel.py
Expand All @@ -368,8 +446,22 @@ python app_kernel.py
python frontend_server.py
```
10. Open a browser and navigate to `http://localhost:3000`
11. To see swagger API documentation, you can navigate to `http://localhost:8000/docs`
or Run
```bash
npm run dev
```
11. Open a browser and navigate to `http://localhost:3000`
12. To see swagger API documentation, you can navigate to `http://localhost:8000/docs`
## Deploy Your local changes
To Deploy your local changes rename the below files.
1. Rename `azure.yaml` to `azure_custom2.yaml` and `azure_custom.yaml` to `azure.yaml`.
2. Go to `infra` directory
- Remove `main.bicep` to `main_custom2.bicep` and `main_custom.bicep` to `main.bicep`.
Continue with the [deploying steps](#deploying-with-azd).
## Debugging the solution locally
Expand Down
Loading
Loading