Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
3c2effc
Refactor code structure for improved readability and maintainability
Akhileswara-Microsoft May 13, 2026
5007611
Update dependencies: add @ungap/structured-clone@1.3.1 and uuid@11.1.0
Akhileswara-Microsoft May 13, 2026
280028c
feat: Enhance email template, add RG owner tag, scalability input
Vamshi-Microsoft May 19, 2026
70abfcc
fix: clarify description for enableScalability input in deploy-v2.yml
Vamshi-Microsoft May 19, 2026
7adc453
fix: update event stream names and enforce security settings in Bicep…
Kanchan-Microsoft May 19, 2026
e13d1c5
fix: update event log configuration and refine xPathQueries for data …
Kanchan-Microsoft May 19, 2026
ee3777a
Merge branch 'dev' into sfi-fix
Kanchan-Microsoft May 20, 2026
85ea0b0
refactor: update log analytics resource naming in Bicep templates
Kanchan-Microsoft May 20, 2026
3f17071
refactor: update log analytics workspace resource name in Bicep templ…
Kanchan-Microsoft May 20, 2026
0e8375c
Merge pull request #587 from microsoft/Dependentbot_Akhileswara
Roopan-Microsoft May 21, 2026
91c4622
Merge pull request #592 from microsoft/pls-workflowchanges
Roopan-Microsoft May 21, 2026
81f8181
Merge pull request #593 from microsoft/sfi-fix
Prajwal-Microsoft May 21, 2026
90183be
fix: fixed copilot comments
VishalS-Microsoft May 25, 2026
9d87762
feat: add HTML escape helper for email template safety
VishalS-Microsoft May 25, 2026
3e52cc1
Merge pull request #603 from microsoft/psl-fixcopilotcomments-cpsv2
Prajwal-Microsoft May 25, 2026
8033e01
Merge pull request #600 from microsoft/dev
Roopan-Microsoft May 25, 2026
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
6 changes: 6 additions & 0 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ on:
required: false
default: false
type: boolean
enableScalability:
description: 'Enable Scalability (WAF only - opt-in)'
required: false
default: false
type: boolean
EXP:
description: 'Enable EXP'
required: false
Expand Down Expand Up @@ -83,6 +88,7 @@ jobs:
azure_location: ${{ inputs.azure_location }}
resource_group_name: ${{ inputs.resource_group_name }}
waf_enabled: ${{ inputs.waf_enabled }}
enableScalability: ${{ inputs.enableScalability }}
EXP: ${{ inputs.EXP }}
build_docker_image: ${{ inputs.build_docker_image }}
existing_webapp_url: ${{ inputs.existing_webapp_url }}
Expand Down
40 changes: 31 additions & 9 deletions .github/workflows/deploy-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ on:
- 'Local'
default: 'codespace'
azure_location:
description: 'Azure Location For Deployment'
description: 'Azure Region (Non-AI Services)'
required: false
default: 'australiaeast'
type: choice
Expand All @@ -49,25 +49,31 @@ on:
required: false
default: ''
type: string
build_docker_image:
description: 'Build & Use Custom Images (Optional)'
required: false
default: false
type: boolean

waf_enabled:
description: 'Enable WAF'
description: 'Deploy WAF'
required: false
default: false
type: boolean
EXP:
description: 'Enable EXP'
description: 'Deploy EXP'
required: false
default: false
type: boolean
build_docker_image:
description: 'Build And Push Docker Image (Optional)'

enableScalability:
description: 'Enable Scalability (WAF only)'
required: false
default: false
type: boolean

cleanup_resources:
description: 'Cleanup Deployed Resources'
description: 'Auto Delete RG'
required: false
default: false
type: boolean
Expand All @@ -83,17 +89,17 @@ on:
- 'None'

AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace Resource ID (Optional)'
description: 'Existing Log Analytics Workspace Resource ID (Optional)'
required: false
default: ''
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
description: 'AI Project Resource ID (Optional)'
description: 'Existing AI Project Resource ID (Optional)'
required: false
default: ''
type: string
existing_webapp_url:
description: 'Existing Container WebApp URL (Skips Deployment)'
description: 'Run Tests Against Existing RG (Provide Web App URL)'
required: false
default: ''
type: string
Expand All @@ -113,6 +119,7 @@ jobs:
azure_location: ${{ steps.validate.outputs.azure_location }}
resource_group_name: ${{ steps.validate.outputs.resource_group_name }}
waf_enabled: ${{ steps.validate.outputs.waf_enabled }}
enable_scalability: ${{ steps.validate.outputs.enable_scalability }}
exp: ${{ steps.validate.outputs.exp }}
build_docker_image: ${{ steps.validate.outputs.build_docker_image }}
cleanup_resources: ${{ steps.validate.outputs.cleanup_resources }}
Expand All @@ -128,6 +135,7 @@ jobs:
INPUT_AZURE_LOCATION: ${{ github.event.inputs.azure_location }}
INPUT_RESOURCE_GROUP_NAME: ${{ github.event.inputs.resource_group_name }}
INPUT_WAF_ENABLED: ${{ github.event.inputs.waf_enabled }}
INPUT_ENABLE_SCALABILITY: ${{ github.event.inputs.enableScalability }}
INPUT_EXP: ${{ github.event.inputs.EXP }}
INPUT_BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image }}
INPUT_CLEANUP_RESOURCES: ${{ github.event.inputs.cleanup_resources }}
Expand Down Expand Up @@ -187,6 +195,18 @@ jobs:
else
echo "✅ waf_enabled: '$WAF_ENABLED' is valid"
fi

# Validate enableScalability (boolean, WAF-only opt-in)
ENABLE_SCALABILITY="${INPUT_ENABLE_SCALABILITY:-false}"
if [[ "$ENABLE_SCALABILITY" != "true" && "$ENABLE_SCALABILITY" != "false" ]]; then
echo "❌ ERROR: enableScalability must be 'true' or 'false', got: '$ENABLE_SCALABILITY'"
VALIDATION_FAILED=true
else
echo "✅ enableScalability: '$ENABLE_SCALABILITY' is valid"
if [[ "$ENABLE_SCALABILITY" == "true" && "$WAF_ENABLED" != "true" ]]; then
echo "ℹ️ Note: enableScalability=true only applies when waf_enabled=true; it will be ignored for non-WAF deployments."
fi
fi

# Validate EXP (boolean)
EXP_ENABLED="${INPUT_EXP:-false}"
Expand Down Expand Up @@ -280,6 +300,7 @@ jobs:
echo "azure_location=$LOCATION" >> $GITHUB_OUTPUT
echo "resource_group_name=$INPUT_RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "waf_enabled=$WAF_ENABLED" >> $GITHUB_OUTPUT
echo "enable_scalability=$ENABLE_SCALABILITY" >> $GITHUB_OUTPUT
echo "exp=$EXP_ENABLED" >> $GITHUB_OUTPUT
echo "build_docker_image=$BUILD_DOCKER" >> $GITHUB_OUTPUT
echo "cleanup_resources=$CLEANUP_RESOURCES" >> $GITHUB_OUTPUT
Expand All @@ -297,6 +318,7 @@ jobs:
azure_location: ${{ needs.validate-inputs.outputs.azure_location || 'australiaeast' }}
resource_group_name: ${{ needs.validate-inputs.outputs.resource_group_name || '' }}
waf_enabled: ${{ needs.validate-inputs.outputs.waf_enabled == 'true' }}
enableScalability: ${{ needs.validate-inputs.outputs.enable_scalability == 'true' }}
EXP: ${{ needs.validate-inputs.outputs.exp == 'true' }}
build_docker_image: ${{ needs.validate-inputs.outputs.build_docker_image == 'true' }}
cleanup_resources: ${{ needs.validate-inputs.outputs.cleanup_resources == 'true' }}
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ on:
required: false
default: false
type: boolean
enableScalability:
description: 'Enable Scalability (WAF only - opt-in)'
required: false
default: false
type: boolean
EXP:
description: 'Enable EXP'
required: false
Expand Down Expand Up @@ -87,6 +92,7 @@ jobs:
azure_location: ${{ steps.validate.outputs.azure_location }}
resource_group_name: ${{ steps.validate.outputs.resource_group_name }}
waf_enabled: ${{ steps.validate.outputs.waf_enabled }}
enable_scalability: ${{ steps.validate.outputs.enable_scalability }}
exp: ${{ steps.validate.outputs.exp }}
build_docker_image: ${{ steps.validate.outputs.build_docker_image }}
cleanup_resources: ${{ steps.validate.outputs.cleanup_resources }}
Expand All @@ -102,6 +108,7 @@ jobs:
INPUT_AZURE_LOCATION: ${{ github.event.inputs.azure_location }}
INPUT_RESOURCE_GROUP_NAME: ${{ github.event.inputs.resource_group_name }}
INPUT_WAF_ENABLED: ${{ github.event.inputs.waf_enabled }}
INPUT_ENABLE_SCALABILITY: ${{ github.event.inputs.enableScalability }}
INPUT_EXP: ${{ github.event.inputs.EXP }}
INPUT_BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image }}
INPUT_CLEANUP_RESOURCES: ${{ github.event.inputs.cleanup_resources }}
Expand Down Expand Up @@ -147,6 +154,18 @@ jobs:
echo "✅ waf_enabled: '$WAF_ENABLED' is valid"
fi

# Validate enableScalability (boolean, WAF-only opt-in)
ENABLE_SCALABILITY="${INPUT_ENABLE_SCALABILITY:-false}"
if [[ "$ENABLE_SCALABILITY" != "true" && "$ENABLE_SCALABILITY" != "false" ]]; then
echo "❌ ERROR: enableScalability must be 'true' or 'false', got: '$ENABLE_SCALABILITY'"
VALIDATION_FAILED=true
else
echo "✅ enableScalability: '$ENABLE_SCALABILITY' is valid"
if [[ "$ENABLE_SCALABILITY" == "true" && "$WAF_ENABLED" != "true" ]]; then
echo "ℹ️ Note: enableScalability=true only applies when waf_enabled=true; it will be ignored for non-WAF deployments."
fi
fi

# Validate EXP (boolean)
EXP_ENABLED="${INPUT_EXP:-false}"
if [[ "$EXP_ENABLED" != "true" && "$EXP_ENABLED" != "false" ]]; then
Expand Down Expand Up @@ -238,6 +257,7 @@ jobs:
echo "azure_location=$LOCATION" >> $GITHUB_OUTPUT
echo "resource_group_name=$INPUT_RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "waf_enabled=$WAF_ENABLED" >> $GITHUB_OUTPUT
echo "enable_scalability=$ENABLE_SCALABILITY" >> $GITHUB_OUTPUT
echo "exp=$EXP_ENABLED" >> $GITHUB_OUTPUT
echo "build_docker_image=$BUILD_DOCKER" >> $GITHUB_OUTPUT
echo "cleanup_resources=$CLEANUP_RESOURCES" >> $GITHUB_OUTPUT
Expand All @@ -255,6 +275,7 @@ jobs:
azure_location: ${{ needs.validate-inputs.outputs.azure_location || 'australiaeast' }}
resource_group_name: ${{ needs.validate-inputs.outputs.resource_group_name || '' }}
waf_enabled: ${{ needs.validate-inputs.outputs.waf_enabled == 'true' }}
enableScalability: ${{ needs.validate-inputs.outputs.enable_scalability == 'true' }}
EXP: ${{ needs.validate-inputs.outputs.exp == 'true' }}
build_docker_image: ${{ needs.validate-inputs.outputs.build_docker_image == 'true' }}
cleanup_resources: ${{ needs.validate-inputs.outputs.cleanup_resources == 'true' }}
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,12 @@ jobs:
id: check_create_rg
run: |
set -e
OWNER_TAG_VALUE="${{ github.actor }}"
echo "Checking if resource group exists..."
rg_exists=$(az group exists --name ${{ env.RESOURCE_GROUP_NAME }})
if [ "$rg_exists" = "false" ]; then
echo "Resource group does not exist. Creating..."
echo "🏷️ Adding Owner tag: Owner=${OWNER_TAG_VALUE}"

# Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ
current_date=$(date -u +"%Y-%m-%dT%H:%M:%S.%7NZ")
Expand All @@ -115,9 +117,12 @@ jobs:
"Purpose=Deploying and Cleaning Up Resources for Validation" \
"CreatedDate=$current_date" \
"ApplicationName=Content Processing Accelerator" \
"Owner=${OWNER_TAG_VALUE}" \
|| { echo "Error creating resource group"; exit 1; }
else
echo "Resource group already exists."
echo "🏷️ Merging Owner tag on existing resource group: Owner=${OWNER_TAG_VALUE}"
az group update --name "${{ env.RESOURCE_GROUP_NAME }}" --set tags.Owner="${OWNER_TAG_VALUE}" --output none || echo "⚠️ Warning: failed to update Owner tag on existing resource group '${{ env.RESOURCE_GROUP_NAME }}'."
fi

- name: Generate Environment Name
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ on:
required: false
type: string
default: "false"
ENABLE_SCALABILITY:
description: 'Enable Scalability (WAF only - opt-in)'
required: false
type: string
default: "false"
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
required: false
type: string
Expand Down Expand Up @@ -188,12 +193,24 @@ jobs:
shell: bash
env:
WAF_ENABLED: ${{ inputs.WAF_ENABLED }}
ENABLE_SCALABILITY: ${{ inputs.ENABLE_SCALABILITY }}
run: |
if [[ "$WAF_ENABLED" == "true" ]]; then
cp infra/main.waf.parameters.json infra/main.parameters.json
echo "✅ Successfully copied WAF parameters to main parameters file"
SCALABILITY_VAL="${ENABLE_SCALABILITY:-false}"
if [[ "$SCALABILITY_VAL" != "true" && "$SCALABILITY_VAL" != "false" ]]; then
echo "⚠️ Invalid ENABLE_SCALABILITY value '$SCALABILITY_VAL'; defaulting to false."
SCALABILITY_VAL="false"
fi
echo "🔧 Setting enableScalability=$SCALABILITY_VAL in infra/main.parameters.json (WAF deployment)"
jq --argjson val "$SCALABILITY_VAL" '.parameters.enableScalability.value = $val' infra/main.parameters.json > infra/main.parameters.tmp.json \
&& mv infra/main.parameters.tmp.json infra/main.parameters.json
else
echo "🔧 Configuring Non-WAF deployment - using default main.parameters.json..."
if [[ "${ENABLE_SCALABILITY:-false}" == "true" ]]; then
echo "ℹ️ enableScalability=true was provided but WAF is disabled; the flag will be ignored for this deployment."
fi
fi

- name: Install azd
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ on:
required: false
type: string
default: "false"
ENABLE_SCALABILITY:
description: 'Enable Scalability (WAF only - opt-in)'
required: false
type: string
default: "false"
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
required: false
type: string
Expand Down Expand Up @@ -188,12 +193,24 @@ jobs:
shell: bash
env:
WAF_ENABLED: ${{ inputs.WAF_ENABLED }}
ENABLE_SCALABILITY: ${{ inputs.ENABLE_SCALABILITY }}
run: |
if [[ "$WAF_ENABLED" == "true" ]]; then
cp infra/main.waf.parameters.json infra/main.parameters.json
echo "✅ Successfully copied WAF parameters to main parameters file"
SCALABILITY_VAL="${ENABLE_SCALABILITY:-false}"
if [[ "$SCALABILITY_VAL" != "true" && "$SCALABILITY_VAL" != "false" ]]; then
echo "⚠️ Invalid ENABLE_SCALABILITY value '$SCALABILITY_VAL'; defaulting to false."
SCALABILITY_VAL="false"
fi
echo "🔧 Setting enableScalability=$SCALABILITY_VAL in infra/main.parameters.json (WAF deployment)"
jq --argjson val "$SCALABILITY_VAL" '.parameters.enableScalability.value = $val' infra/main.parameters.json > infra/main.parameters.tmp.json \
&& mv infra/main.parameters.tmp.json infra/main.parameters.json
else
echo "🔧 Configuring Non-WAF deployment - using default main.parameters.json..."
if [[ "${ENABLE_SCALABILITY:-false}" == "true" ]]; then
echo "ℹ️ enableScalability=true was provided but WAF is disabled; the flag will be ignored for this deployment."
fi
fi

- name: Setup Azure Developer CLI (Windows)
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/job-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ on:
required: false
default: false
type: boolean
enableScalability:
description: 'Enable Scalability (WAF only - opt-in)'
required: false
default: false
type: boolean
EXP:
description: 'Enable EXP'
required: false
Expand Down Expand Up @@ -400,15 +405,19 @@ jobs:
id: check_create_rg
shell: bash
run: |
set -e
set -e
OWNER_TAG_VALUE="${{ github.actor }}"
echo "🔍 Checking if resource group '$RESOURCE_GROUP_NAME' exists..."
rg_exists=$(az group exists --name $RESOURCE_GROUP_NAME)
if [ "$rg_exists" = "false" ]; then
echo "📦 Resource group does not exist. Creating new resource group '$RESOURCE_GROUP_NAME' in location '$AZURE_LOCATION'..."
az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION --tags ${{ env.RG_TAGS }} || { echo "❌ Error creating resource group"; exit 1; }
echo "🏷️ Adding Owner tag: Owner=${OWNER_TAG_VALUE}"
az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION --tags ${{ env.RG_TAGS }} "Owner=${OWNER_TAG_VALUE}" || { echo "❌ Error creating resource group"; exit 1; }
echo "✅ Resource group '$RESOURCE_GROUP_NAME' created successfully."
else
echo "✅ Resource group '$RESOURCE_GROUP_NAME' already exists. Deploying to existing resource group."
echo "🏷️ Merging Owner tag on existing resource group: Owner=${OWNER_TAG_VALUE}"
az group update --name "$RESOURCE_GROUP_NAME" --set tags.Owner="${OWNER_TAG_VALUE}" --output none || echo "⚠️ Warning: failed to update Owner tag on existing resource group '$RESOURCE_GROUP_NAME'."
fi
echo "RESOURCE_GROUP_NAME=$RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "RESOURCE_GROUP_NAME=$RESOURCE_GROUP_NAME" >> $GITHUB_ENV
Expand Down Expand Up @@ -536,6 +545,7 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
ENABLE_SCALABILITY: ${{ inputs.enableScalability == true && 'true' || 'false' }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
secrets: inherit
Expand All @@ -554,6 +564,7 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
ENABLE_SCALABILITY: ${{ inputs.enableScalability == true && 'true' || 'false' }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
secrets: inherit
Loading
Loading