Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
16702b4
infra avm changes in bicep
Priyanka-Microsoft Sep 3, 2025
c4a88d8
infra avm changes in bicep
Priyanka-Microsoft Sep 3, 2025
5d6e355
updated variables
Priyanka-Microsoft Sep 3, 2025
86ed8ff
updated variables
Priyanka-Microsoft Sep 3, 2025
74364ed
updated variables
Priyanka-Microsoft Sep 3, 2025
0225733
webapp bicep changes
Priyanka-Microsoft Sep 4, 2025
3c56145
webapp bicep changes
Priyanka-Microsoft Sep 4, 2025
fd4541b
webapp bicep changes
Priyanka-Microsoft Sep 4, 2025
d8fbf01
webapp bicep changes
Priyanka-Microsoft Sep 4, 2025
c543ed5
webapp bicep changes
Priyanka-Microsoft Sep 4, 2025
cf8e616
only storage account deployment
Priyanka-Microsoft Sep 4, 2025
d8a43ad
only storage account deployment
Priyanka-Microsoft Sep 4, 2025
a941d61
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
1265d4e
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
ceff31a
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
178755c
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
475ae5e
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
63159fc
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
b0d5d7e
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
989069b
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
7b0be8e
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
069f407
only storage, multiservice & search deployment
Priyanka-Microsoft Sep 4, 2025
04eaecf
added disable local auth params
Priyanka-Microsoft Sep 4, 2025
f6403ff
added disable local auth params set to false
Priyanka-Microsoft Sep 4, 2025
5f55e4d
added disable local auth params set to false
Priyanka-Microsoft Sep 4, 2025
020310d
added disable local auth params set to false
Priyanka-Microsoft Sep 4, 2025
8d63077
added disable local auth params set to false
Priyanka-Microsoft Sep 4, 2025
f6d668b
added disable local auth params set to false
Priyanka-Microsoft Sep 4, 2025
6d0b5d2
add keys to key vault
Priyanka-Microsoft Sep 4, 2025
b52a3ea
add keys to key vault
Priyanka-Microsoft Sep 4, 2025
b1660d2
add keys to key vault
Priyanka-Microsoft Sep 4, 2025
0a02344
added owner permission
Priyanka-Microsoft Sep 4, 2025
484c849
changed primaryscripturi to scriptcontent to resolve output error
Priyanka-Microsoft Sep 5, 2025
c82ff8d
changed primaryscripturi to scriptcontent to resolve output error
Priyanka-Microsoft Sep 5, 2025
fc5cdde
changed primaryscripturi to scriptcontent to resolve output error
Priyanka-Microsoft Sep 5, 2025
506585a
changed retentiondays
Priyanka-Microsoft Sep 5, 2025
4d08e90
added depends on
Priyanka-Microsoft Sep 5, 2025
8002389
added depends on
Priyanka-Microsoft Sep 5, 2025
a859a01
added depends on
Priyanka-Microsoft Sep 5, 2025
a2feef5
added depends on
Priyanka-Microsoft Sep 5, 2025
9f7edf0
added depends on
Priyanka-Microsoft Sep 5, 2025
e584789
added depends on
Priyanka-Microsoft Sep 5, 2025
e982eea
added depends on
Priyanka-Microsoft Sep 5, 2025
3933d87
added deployment script file in the module
Priyanka-Microsoft Sep 5, 2025
4bfb888
added deployment script file in the module
Priyanka-Microsoft Sep 5, 2025
271dae1
added azure client id
Priyanka-Microsoft Sep 9, 2025
05e0e3c
fetching azure client id from environment variables
Priyanka-Microsoft Sep 9, 2025
ab73572
changed container registry name
Priyanka-Microsoft Sep 9, 2025
d94daed
changed container registry name
Priyanka-Microsoft Sep 10, 2025
5b77e65
avm and waf latest changes
Priyanka-Microsoft Sep 11, 2025
782f465
fix: Added support to run the script in private network
Prajwal-Microsoft Sep 11, 2025
6e6528c
avm and waf latest changes
Priyanka-Microsoft Sep 11, 2025
ceb93c2
fix: Added permission for storage and deployment script issue fix
Prajwal-Microsoft Sep 11, 2025
a0b3998
added private endpoint changes
Priyanka-Microsoft Sep 12, 2025
35fdb8d
added private endpoint changes
Priyanka-Microsoft Sep 15, 2025
56af4c9
added private endpoint changes
Priyanka-Microsoft Sep 15, 2025
17d4922
cleanup, removed abbr fiel
Priyanka-Microsoft Sep 17, 2025
ced4874
cleanup, removed abbr fiel
Priyanka-Microsoft Sep 18, 2025
b5106a8
cleanup, removed abbr fiel
Priyanka-Microsoft Sep 19, 2025
a867e72
added module for hub and project
Priyanka-Microsoft Sep 19, 2025
6bb5f3a
added module for hub and project
Priyanka-Microsoft Sep 19, 2025
4a84903
Refactored the bicep code based on bicep standards and added paramete…
Abdul-Microsoft Sep 20, 2025
fcb5dd2
updated main.json file
Abdul-Microsoft Sep 22, 2025
d05b984
Update publicNetworkAccess configuration for draft flow deployment
Abdul-Microsoft Sep 22, 2025
25ca5b9
Update Azure Machine Learning private link in main.bicep
Abdul-Microsoft Sep 22, 2025
11e3d5c
Update containerImageTag to use latest version in parameters files
Abdul-Microsoft Sep 22, 2025
f472924
updated openai key
Abdul-Microsoft Sep 22, 2025
63e6038
Enable private networking and add monitoring, scalability, and VM adm…
Abdul-Microsoft Sep 23, 2025
b5e4041
bicep build
Priyanka-Microsoft Sep 23, 2025
93ba2e7
removed system assigned managed identity
Priyanka-Microsoft Sep 23, 2025
bda3fb9
added comment for project and hub
Priyanka-Microsoft Sep 23, 2025
d804ab5
added comment for project and hub
Priyanka-Microsoft Sep 23, 2025
5bb1a9b
Readme update
Priyanka-Microsoft Sep 23, 2025
53c0fa2
Readme update, removed dev container and codespace
Priyanka-Microsoft Sep 23, 2025
b4fdb37
Readme update, removed dev container and codespace
Priyanka-Microsoft Sep 24, 2025
3635a91
condition added for vmusername and password
Priyanka-Microsoft Sep 25, 2025
f6403e6
Refactor networking settings to conditionally enable public network a…
Abdul-Microsoft Sep 26, 2025
c98a962
updated main.json
Abdul-Microsoft Sep 26, 2025
1d42cc3
removed promptflow version
Abdul-Microsoft Sep 26, 2025
4c2173f
Update DraftFlow.zip with latest changes
Abdul-Microsoft Sep 26, 2025
89b3ab1
Merge remote-tracking branch 'origin/byoc-researcher' into infa-avm-b…
Abdul-Microsoft Sep 26, 2025
7673758
Update default values for location and container registry hostname in…
Abdul-Microsoft Sep 26, 2025
cf8b197
Refactor deployment instructions and remove unused parameters from JS…
Abdul-Microsoft Sep 26, 2025
4401d67
Update deployment guides to clarify WAF-aligned production deployment…
Abdul-Microsoft Sep 26, 2025
f27359f
Update deployment templates and documentation for clarity and consist…
Abdul-Microsoft Sep 29, 2025
52e197c
Remove obsolete Bicep files and associated documentation for Azure in…
Abdul-Microsoft Sep 29, 2025
a387660
Remove pre-requisites section from Deployment Guide for clarity and f…
Abdul-Microsoft Sep 29, 2025
50c07d2
Update project name in azure.yaml
Abdul-Microsoft Sep 29, 2025
5974e69
Enhance AI Foundry Deployment Guide with detailed Azure Bastion conne…
Abdul-Microsoft Sep 29, 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
4 changes: 2 additions & 2 deletions .github/workflows/RAdeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ jobs:

az deployment group create \
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
--template-file infra/bicep/main.bicep \
--parameters solutionPrefix=${{ env.SOLUTION_PREFIX }} createdBy="Pipeline" tags="{'SecurityControl':'Ignore','Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}"
--template-file infra/main.bicep \
--parameters solutionName=${{ env.SOLUTION_PREFIX }} createdBy="Pipeline" tags="{'SecurityControl':'Ignore','Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}"
- name: List KeyVaults and Store in Array
id: list_keyvaults
run: |
Expand Down
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-regi

2. Click the following deployment button to create the required resources for this accelerator in your Azure Subscription.

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoft%2FBuild-your-own-copilot-Solution-Accelerator%2Fbyoc-researcher%2Finfra%2Fbicep%2Fmain.json)
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoft%2FBuild-your-own-copilot-Solution-Accelerator%2Fbyoc-researcher%2Finfra%2Fmain.json)

3. You will need to select an Azure Subscription, create/select a Resource group, Region, and a unique Solution Prefix.
3. You will need to select an Azure Subscription, create/select a Resource group, Region, and a unique Solution Name.

![image](docs/images/readMe/armDeployment.png)

Expand All @@ -93,6 +93,13 @@ The next steps are optional for additional learning. Not required to deploy the

8. Optional - Follow steps in [Promptflow Safety Evaluation guide](./docs/PromptFlowSafetyEvaluation.md) to set up the safety evaluation flows.

### **Deploying with Azure Developer CLI (AZD)**

Follow the quick deploy steps on the deployment guide to deploy this solution using Azure Developer CLI(AZD) to your own Azure subscription.

[Click here to launch the deployment guide](./docs/DeploymentGuide.md)
<br/><br/>


<br/>
<br>
Expand Down
8 changes: 8 additions & 0 deletions azure.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: byoc-research-assistant

requiredVersions:
azd: ">= 1.15.0"

metadata:
template: byoc-research-assistant@1.0
36 changes: 36 additions & 0 deletions docs/AIFoundryDeployment.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,40 @@
# AI Foundry Deployment Guide

> **Important**: For WAF-aligned production deployments, ensure you are logged into the designated virtual machine before proceeding with the below steps.

### Accessing the Virtual Machine via Azure Bastion

For WAF-aligned production environments, you must perform these deployment steps from within the designated virtual machine. Follow these steps to connect:

1. **Navigate to your Virtual Machine in Azure Portal**
- Go to [Azure Portal](https://portal.azure.com/)
- Search for "Virtual machines" in the top search bar
- Click on your VM named `vm-{your-deployment-prefix}` or similar

2. **Connect using Azure Bastion**
- In your VM overview page, click the **Connect** button
- Select **Connect via Bastion** from the dropdown menu

3. **Enter your credentials**
- **Username**: Use the admin username you specified during the initial deployment (e.g., `JumpboxAdminUser` or the custom username you provided)
- **Password**: Enter the admin password you set during the deployment process
- **Authentication Type**: Select "Password"
- Click **Connect**

4. **Wait for connection**
- The Bastion connection may take 30-60 seconds to establish
- A new browser tab will open with your VM desktop environment

5. **Open a web browser in the VM**
- Once connected to the VM, open Microsoft Edge or Chrome
- Navigate to [AI Foundry](https://ai.azure.com/) from within the VM
- Sign in with your Azure credentials

> **Troubleshooting**: If you forgot your VM credentials:
> - You can reset the password in Azure Portal: Go to your VM → **Reset password** in the left menu
> - Or contact your Azure administrator for assistance
---

Please follow the steps below to configure the Prompt flow endpoint in App service configuration.

## Step 1: OpenAI Foundry Project
Expand Down
39 changes: 39 additions & 0 deletions docs/CustomizingAzdParameters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## [Optional]: Customizing resource names

By default this template will use the environment name as the prefix to prevent naming collisions within Azure. The parameters below show the default values. You only need to run the statements below if you need to change the values.


> To override any of the parameters, run `azd env set <PARAMETER_NAME> <VALUE>` before running `azd up`. On the first azd command, it will prompt you for the environment name. Be sure to choose 3-20 charaters alphanumeric unique name.

## Parameters

| Name | Type | Default Value | Purpose |
| -----------------------------| ------- | ------------------- | ---------------------------------------------------------------------------------------------------- |
| `AZURE_ENV_NAME` | string | `azdtemp` | Used as a prefix for all resource names to ensure uniqueness across environments. |
| `AZURE_LOCATION` | string | `<User selects during deployment>` | Sets the Azure region for resource deployment. |
| `AZURE_OPENAI_MODEL_DEPLOYMENT_TYPE` | string | `Standard` | Change the Model Deployment Type (allowed values: Standard, GlobalStandard). |
| `AZURE_OPENAI_DEPLOYMENT_MODEL` | string | `gpt-35-turbo` | Set the GPT model name (allowed values: `gpt-35-turbo`, `gpt-4`, `gpt-4o`). |
| `AZURE_OPENAI_API_VERSION` | string | `0125` | Set the Azure OpenAI model version. |
| `AZURE_OPENAI_DEPLOYMENT_MODEL_CAPACITY` | integer | `30` | Set the model capacity for GPT deployment. Choose based on your Azure quota and usage needs. |
| `AZURE_OPENAI_EMBEDDING_MODEL` | string | `text-embedding-ada-002` | Set the model name used for embeddings. |
| `AZURE_OPENAI_EMBEDDING_MODEL_VERSION` | string | `2` | Set the version for the embedding model. |
| `AZURE_OPENAI_EMBEDDING_MODEL_CAPACITY` | integer | `45` | Set the capacity for embedding model deployment. |
| `AZURE_ENV_IMAGETAG` | string | `latest` | Set the container image tag (allowed values: `latest`, `dev`, `hotfix`). |
| `AZURE_ENV_ENABLE_TELEMETRY` | boolean | `true` | Enable or disable telemetry collection for the deployment. |
| `AZURE_ENV_VM_ADMIN_USERNAME` | string | `<Set when enablePrivateNetworking=true>` | Admin username for the jumpbox VM when private networking is enabled. |
| `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `<Set when enablePrivateNetworking=true>` | Admin password for the jumpbox VM when private networking is enabled. |


## How to Set a Parameter
To customize any of the above values, run the following command **before** `azd up`:

```bash
azd env set <PARAMETER_NAME> <VALUE>

```

**Example:**

```bash
azd env set AZURE_LOCATION westus2
```
78 changes: 78 additions & 0 deletions docs/DeploymentGuide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Deployment Guide

## Deployment Options

### Sandbox or WAF Aligned Deployment Options

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

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.

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:

- 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:**

* 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`

### VM Credentials Configuration

By default, the solution sets the VM administrator username and password from environment variables.

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.


> [!IMPORTANT]
> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates.

---

### Deploying with AZD

Once you've opened the project in locally, you can deploy it to Azure by following these steps:

1. Login to Azure:

```shell
azd auth login
```

#### To authenticate with Azure Developer CLI (`azd`), use the following command with your **Tenant ID**:

```sh
azd auth login --tenant-id <tenant-id>
```

2. Provision and deploy all the resources:

```shell
azd up
```

3. Provide an `azd` environment name (e.g., "resass").
4. Select a subscription from your Azure account and choose a location that has quota for all the resources.
-- This deployment will take *15-20 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. When Deployment is complete, follow steps in [AI Foundry Deployment guide](./AIFoundryDeployment.md) to configure the grant draft proposal endpoint.

5. 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`.

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

---
Binary file modified docs/images/readMe/armDeployment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading