diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 8b77b194..ec71a5d1 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -20,10 +20,20 @@ on: # Set this to the mainline branch you are using branches: - main + paths-ignore: + - 'docs/**' + - 'decision-log/**' + - 'cicd/**' + - '*.md' pull_request: # Run when pull requests are opened or updated branches: - main + paths-ignore: + - 'docs/**' + - 'decision-log/**' + - 'cicd/**' + - '*.md' # GitHub Actions workflow to deploy to Azure using azd # Ensure only one deployment runs at a time to prevent conflicts @@ -47,17 +57,17 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: persist-credentials: false - name: Install azd - uses: Azure/setup-azd@c495e71ba59e44bfaaac10a32c8ee90d191ca4a3 # v2.2.1 + uses: Azure/setup-azd@c495e71ba59e44bfaaac10a32c8ee90d191ca4a3 # v2.2.1 with: version: '1.20.0' # Specify your desired azd version here - name: Setup Node.js - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: node-version: '18.x' @@ -67,7 +77,7 @@ jobs: terraform_version: 1.13.3 - name: Install TFLint - uses: terraform-linters/setup-tflint@4cb9feea73331a35b422df102992a03a44a3bb33 # v6.2.1 + uses: terraform-linters/setup-tflint@4cb9feea73331a35b422df102992a03a44a3bb33 # v6.2.1 with: tflint_version: v0.58.1 github_token: ${{ secrets.GITHUB_TOKEN }} # Used to avoid rate @@ -121,7 +131,7 @@ jobs: pac help - name: Set Up Python - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # 6.1.0 + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # 6.1.0 with: python-version: "3.x" @@ -182,7 +192,7 @@ jobs: azd provision --no-prompt - - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 if: success() || failure() with: name: sarif-reports @@ -253,4 +263,4 @@ jobs: --name "$OPENAI_RESOURCE_NAME" || echo "Resource may not be in soft-delete state or already purged" else echo "OpenAI resource information not found in environment outputs. Skipping purge." - fi + fi diff --git a/README.md b/README.md index 0ba4cbeb..b1fbda19 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,14 @@ network security. - Pre-configured backend setup for remote state storage. - Documentation and examples for quick onboarding and usage. +## CAIRA Assets +This is one of several acceleration assets within the CAIRA (Composable AI Reference Architectures) suite. + +| Asset | Purpose | What it offers | Link | +|-------|---------------|----------------|------------| +| **AI Foundry Acceleration** | For organizations building modern AI solutions in the cloud | • Faster time to value: Deploy enterprise AI solutions with minimal upfront investment using reliable accelerator components
• Enterprise-grade security and observability acceleration: Baseline configurations with private networking, security controls, and compliance patterns
• Infrastructure as Code: Repeatable, version-controlled deployments with composable Terraform modules for Azure AI Foundry and supporting infrastructure
• Agentic acceleration: Deploy and configure through natural language, with seamless agent communication | [aka.ms/CAIRA](https://github.com/microsoft/CAIRA) | +| **Copilot Studio + Azure AI Search Acceleration** | For customers building enterprise solutions involving the low-code platform Copilot Studio (Power Platform) | • Rapid provisioning: Deploy a full Copilot Studio + Azure AI Search environment
• Enterprise-ready baseline: Preconfigured networking (VNets, private endpoints) and secure authentication patterns
• CI/CD friendly: Modular Terraform templates for repeatable, automated deployments
• Faster time-to-value: Move from proof-of-concept to production quickly and confidently
• Extensible architecture: Supports bring-your-own networking and ALM patterns for dev/test/prod environments | This repository | + ## Architecture This enterprise-ready architecture demonstrates how to securely connect Copilot Studio with Azure AI Search through a private virtual network infrastructure. The solution focuses on data security, network isolation, and compliance with enterprise governance policies. diff --git a/infra/modules/copilot_studio/power_platform_core.tf b/infra/modules/copilot_studio/power_platform_core.tf index e02cfc7b..787b9aab 100644 --- a/infra/modules/copilot_studio/power_platform_core.tf +++ b/infra/modules/copilot_studio/power_platform_core.tf @@ -74,7 +74,5 @@ resource "powerplatform_managed_environment" "this" { max_limit_user_sharing = var.power_platform_managed_environment.max_limit_user_sharing solution_checker_mode = var.power_platform_managed_environment.solution_checker_mode suppress_validation_emails = var.power_platform_managed_environment.suppress_validation_emails - maker_onboarding_markdown = var.power_platform_managed_environment.maker_onboarding_markdown - maker_onboarding_url = var.power_platform_managed_environment.maker_onboarding_url } diff --git a/infra/modules/copilot_studio/terraform.tf b/infra/modules/copilot_studio/terraform.tf index e8bab4ae..878d29f1 100644 --- a/infra/modules/copilot_studio/terraform.tf +++ b/infra/modules/copilot_studio/terraform.tf @@ -10,7 +10,7 @@ terraform { } azurerm = { source = "hashicorp/azurerm" - version = "4.55.0" + version = "4.56.0" } modtm = { source = "Azure/modtm" @@ -18,7 +18,7 @@ terraform { } powerplatform = { source = "microsoft/power-platform" - version = "3.9.1" + version = "4.0.0" } random = { source = "hashicorp/random" diff --git a/infra/modules/copilot_studio/variables.tf b/infra/modules/copilot_studio/variables.tf index c49dfb42..dfa2c2fe 100644 --- a/infra/modules/copilot_studio/variables.tf +++ b/infra/modules/copilot_studio/variables.tf @@ -57,8 +57,6 @@ variable "power_platform_managed_environment" { max_limit_user_sharing = number solution_checker_mode = string suppress_validation_emails = bool - maker_onboarding_markdown = string - maker_onboarding_url = string }) description = <