Skip to content

Commit bb4e212

Browse files
Merge branch 'main' into dev
2 parents 8b8c39b + 3539f67 commit bb4e212

File tree

11 files changed

+174
-13
lines changed

11 files changed

+174
-13
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Broken Link Checker
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- '**/*.md'
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
markdown-link-check:
14+
name: Check Markdown Broken Links
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout Repo
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
23+
# For PR : Get only changed markdown files
24+
- name: Get changed markdown files (PR only)
25+
id: changed-markdown-files
26+
if: github.event_name == 'pull_request'
27+
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
28+
with:
29+
files: |
30+
**/*.md
31+
32+
33+
# For PR: Check broken links only in changed files
34+
- name: Check Broken Links in Changed Markdown Files
35+
id: lychee-check-pr
36+
if: github.event_name == 'pull_request' && steps.changed-markdown-files.outputs.any_changed == 'true'
37+
uses: lycheeverse/[email protected]
38+
with:
39+
args: >
40+
--verbose --exclude-mail --no-progress --exclude ^https?://
41+
${{ steps.changed-markdown-files.outputs.all_changed_files }}
42+
failIfEmpty: false
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
46+
# For manual trigger: Check all markdown files in repo
47+
- name: Check Broken Links in All Markdown Files in Entire Repo (Manual Trigger)
48+
id: lychee-check-manual
49+
if: github.event_name == 'workflow_dispatch'
50+
uses: lycheeverse/[email protected]
51+
with:
52+
args: >
53+
--verbose --exclude-mail --no-progress --exclude ^https?://
54+
'**/*.md'
55+
failIfEmpty: false
56+
env:
57+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/deploy-waf.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
2222
export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
2323
export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
24-
export GPT_MIN_CAPACITY="140"
24+
export GPT_MIN_CAPACITY="5"
2525
export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
2626
2727
chmod +x infra/scripts/checkquota.sh
@@ -102,7 +102,9 @@ jobs:
102102
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
103103
--template-file infra/main.bicep \
104104
--parameters \
105+
useWafAlignedArchitecture=true \
105106
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
107+
gptModelCapacity=5 \
106108
virtualMachineConfiguration='{"adminUsername": "adminuser", "adminPassword": "P@ssw0rd1234"}' \
107109
logAnalyticsWorkspaceConfiguration='{"existingWorkspaceResourceId": ""}'
108110

.github/workflows/deploy.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
2222
export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
2323
export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
24-
export GPT_MIN_CAPACITY="140"
24+
export GPT_MIN_CAPACITY="5"
2525
export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
2626
2727
chmod +x infra/scripts/checkquota.sh
@@ -102,7 +102,9 @@ jobs:
102102
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
103103
--template-file infra/main.bicep \
104104
--parameters \
105+
useWafAlignedArchitecture=false \
105106
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
107+
gptModelCapacity=5 \
106108
logAnalyticsWorkspaceConfiguration='{"dataRetentionInDays": 30, "existingWorkspaceResourceId": ""}' \
107109
applicationInsightsConfiguration='{"retentionInDays": 30}' \
108110
virtualNetworkConfiguration='{"enabled": false}' \

docs/DeploymentGuide.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,29 @@ This will allow the scripts to run for the current session without permanently c
3232

3333
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.
3434

35-
By default, the `azd up` command uses the [`main.bicepparam`](../infra/main.bicepparam) 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.
35+
When running `azd up`, you’ll now be prompted to choose between a **WAF-aligned configuration** and a **sandbox configuration** using a simple selection:
3636

37-
For **production deployments**, the repository also provides [`main.waf-aligned.bicepparam`](../infra/main.waf-aligned.bicepparam), 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:
37+
- A **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.
3838

39-
- Enhanced network security (e.g., Network protection with private endpoints)
40-
- Stricter access controls and managed identities
41-
- Logging, monitoring, and diagnostics enabled by default
42-
- Resource tagging and cost management recommendations
39+
- 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:
40+
- Enhanced network security (e.g., Network protection with private endpoints)
41+
- Stricter access controls and managed identities
42+
- Logging, monitoring, and diagnostics enabled by default
43+
- Resource tagging and cost management recommendations
4344

4445
**How to choose your deployment configuration:**
45-
- Use the default [`main.bicepparam`](../infra/main.bicepparam) for a sandbox/dev environment.
46-
- For a WAF-aligned, production-ready deployment, copy the contents of [`main.waf-aligned.bicepparam`](../infra/main.waf-aligned.bicepparam) into `main.bicepparam` before running `azd up`.
46+
47+
When prompted during `azd up`:
48+
49+
![useWAFAlignedArchitecture](images/macae_waf_prompt.png)
50+
51+
- Select **`true`** to deploy a **WAF-aligned, production-ready environment**
52+
- Select **`false`** to deploy a **lightweight sandbox/dev environment**
4753

4854
> [!TIP]
4955
> 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.
5056
51-
> To reuse an existing Log Analytics workspace, update the existingWorkspaceResourceId field under the logAnalyticsWorkspaceConfiguration parameter in the bicepparam file with the resource ID of your existing workspace.
57+
> 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.
5258
For example:
5359
```
5460
param logAnalyticsWorkspaceConfiguration = {
@@ -162,6 +168,14 @@ To adjust quota settings, follow these [steps](./AzureGPTQuotaSettings.md).
162168

163169
</details>
164170

171+
<details>
172+
173+
<summary><b>Reusing an Existing Log Analytics Workspace</b></summary>
174+
175+
Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md)
176+
177+
</details>
178+
165179
### Deploying with AZD
166180

167181
Once you've opened the project in [Codespaces](#github-codespaces), [Dev Containers](#vs-code-dev-containers), or [locally](#local-environment), you can deploy it to Azure by following these steps:

docs/NON_DEVCONTAINER_SETUP.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
[Back to *Chat with your data* README](../README.md)
2+
3+
# Non-DevContainer Setup
4+
5+
If you are unable to run this accelerator using a DevContainer or in GitHub CodeSpaces, then you will need to install the following prerequisites on your local machine.
6+
7+
- A code editor. We recommend [Visual Studio Code](https://code.visualstudio.com/), with the following extensions:
8+
- [Azure Functions](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions)
9+
- [Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack)
10+
- [Bicep](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep)
11+
- [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
12+
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
13+
- [Teams Toolkit](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension) **Optional**
14+
- [Python 3.11](https://www.python.org/downloads/release/python-3119/)
15+
- [Node.js LTS](https://nodejs.org/en)
16+
- [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd)
17+
- [Azure Functions Core Tools](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local)
18+
19+
## Setup
20+
21+
1. Review the contents of [.devcontainer/setupEnv.sh](../.devcontainer/setupEnv.sh) and then run it:
22+
23+
```bash
24+
.devcontainer/setupEnv.sh
25+
```
26+
27+
1. Select the Python interpreter in Visual Studio Code:
28+
29+
- Open the command palette (`Ctrl+Shift+P` or `Cmd+Shift+P`).
30+
- Type `Python: Select Interpreter`.
31+
- Select the Python 3.11 environment created by Poetry.
32+
33+
### Running the sample using the Azure Developer CLI (azd)
34+
35+
The Azure Developer CLI (`azd`) is a developer-centric command-line interface (CLI) tool for creating Azure applications.
36+
37+
1. Log in to Azure using `azd`:
38+
39+
```
40+
azd auth login
41+
```
42+
43+
1. Execute the `azd init` command to initialize the environment and enter the solution accelerator name when prompted:
44+
45+
```
46+
azd init -t Multi-Agent-Custom-Automation-Engine-Solution-Accelerator
47+
```
48+
49+
1. Run `azd up` to provision all the resources to Azure and deploy the code to those resources.
50+
51+
```
52+
azd up
53+
```
54+
55+
> Select your desired `subscription` and `location`. Wait a moment for the resource deployment to complete, click the website endpoint and you will see the web app page.

docs/images/macae_waf_prompt.png

5.06 KB
Loading
142 KB
Loading
196 KB
Loading
88.9 KB
Loading

docs/re-use-log-analytics.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[← Back to *DEPLOYMENT* guide](/docs/DeploymentGuide.md#deployment-options--steps)
2+
3+
# Reusing an Existing Log Analytics Workspace
4+
To configure your environment to use an existing Log Analytics Workspace, follow these steps:
5+
---
6+
### 1. Go to Azure Portal
7+
Go to https://portal.azure.com
8+
9+
### 2. Search for Log Analytics
10+
In the search bar at the top, type "Log Analytics workspaces" and click on it and click on the workspace you want to use.
11+
12+
![alt text](../docs/images/re_use_log/logAnalyticsList.png)
13+
14+
### 3. Copy Resource ID
15+
In the Overview pane, Click on JSON View
16+
17+
![alt text](../docs/images/re_use_log/logAnalytics.png)
18+
19+
Copy Resource ID that is your Workspace ID
20+
21+
![alt text](../docs/images/re_use_log/logAnalyticsJson.png)
22+
23+
### 4. Set the Workspace ID in Your Environment
24+
Run the following command in your terminal
25+
```bash
26+
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID '<Existing Log Analytics Workspace Id>'
27+
```
28+
Replace `<Existing Log Analytics Workspace Id>` with the value obtained from Step 3.
29+
30+
### 5. Continue Deployment
31+
Proceed with the next steps in the [deployment guide](/docs/DeploymentGuide.md#deployment-options--steps).

0 commit comments

Comments
 (0)