Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8bd4e47
refactor: Replace secrets with vars for ACR name in Docker workflows
Vamshi-Microsoft Jun 16, 2026
1963df3
Merge pull request #622 from microsoft/psl-refactor-docker-workflow
Roopan-Microsoft Jun 16, 2026
1ceafb4
Add swedencentral region, explicit dependsOn for private endpoint, im…
Ashwal-Microsoft Jun 16, 2026
0137481
Fix quota check to use effective deployment capacity and region fallback
Ashwal-Microsoft Jun 16, 2026
5c12ef5
Add swedencentral replica region pairing for Log Analytics workspace …
Ashwal-Microsoft Jun 16, 2026
6c6ad96
chore: upgrade vulnerable packages (Python + NPM)
Ayaz-Microsoft Jun 17, 2026
4fd854e
Revert non-Bicep changes from recent infra commits
Ashwal-Microsoft Jun 17, 2026
03c64a9
Regenerate main.json from main.bicep
Ashwal-Microsoft Jun 17, 2026
6fdac2e
Regenerate main.json using Bicep v0.44.1
Ashwal-Microsoft Jun 17, 2026
7f770ae
Merge pull request #628 from microsoft/Ash17-Bicep17-Changes17
Roopan-Microsoft Jun 17, 2026
e978828
Merge pull request #629 from microsoft/feature/dependabot-june2026-06…
Roopan-Microsoft Jun 18, 2026
0b81084
chore: update pydantic-settings to version 2.14.2 in pyproject.toml a…
Dhanushree-Microsoft Jun 25, 2026
5aeb4f7
Fix CI failures: cap @babel/core to v7 and upgrade agent-framework to…
Dhanushree-Microsoft Jun 25, 2026
cb9a6d5
Potential fix for pull request finding
Dhanushree-Microsoft Jun 25, 2026
e81586f
Refactor code structure for improved readability and maintainability
Dhanushree-Microsoft Jun 25, 2026
6cf123c
Merge branch 'psl-congen24' of https://github.com/microsoft/content-p…
Dhanushree-Microsoft Jun 25, 2026
5be9a47
Downgrade agent-framework dependency from 1.9.0 to 1.3.0 in pyproject…
Dhanushree-Microsoft Jun 25, 2026
4d882fd
Upgrade agent-framework dependency from 1.3.0 to 1.9.0 in pyproject.t…
Dhanushree-Microsoft Jun 25, 2026
a6e7ef7
Update package.json and pnpm-lock.yaml to use caret (^) versioning fo…
Dhanushree-Microsoft Jun 25, 2026
48c93af
fix: update pydantic-settings to version 2.14.2 in pyproject.toml
Avijit-Microsoft Jun 26, 2026
3ca0180
Merge pull request #639 from microsoft/main
Avijit-Microsoft Jun 27, 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
4 changes: 1 addition & 3 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,8 @@ env:

jobs:
docker-build:
if: inputs.trigger_type == 'workflow_dispatch' && inputs.build_docker_image == true
uses: ./.github/workflows/job-docker-build.yml
with:
trigger_type: ${{ inputs.trigger_type }}
build_docker_image: ${{ inputs.build_docker_image }}
secrets: inherit

deploy:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ jobs:
azd env set AZURE_ENV_IMAGETAG="$IMAGE_TAG"

if [[ "$BUILD_DOCKER_IMAGE" == "true" ]]; then
ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}")
ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}")
azd env set AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT="$ACR_NAME"
echo "Set ACR name to: $ACR_NAME"
Comment on lines +269 to 271
else
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ jobs:
# Set ACR name only when building Docker image
if ($env:BUILD_DOCKER_IMAGE -eq "true") {
# Extract ACR name from login server and set as environment variable
$ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}"
$ACR_NAME = "${{ vars.ACR_TEST_LOGIN_SERVER }}"
azd env set AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT="$ACR_NAME"
Write-Host "Set ACR name to: $ACR_NAME"
Comment on lines 266 to 270
} else {
Expand Down
42 changes: 20 additions & 22 deletions .github/workflows/job-docker-build.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
name: Docker Build Job
name: Build & Push Test Images (Feature Branch)

on:
workflow_call:
inputs:
trigger_type:
description: 'Trigger type (workflow_dispatch, pull_request, schedule)'
required: true
type: string
build_docker_image:
description: 'Build And Push Docker Image (Optional)'
required: false
default: false
type: boolean
outputs:
IMAGE_TAG:
description: "Generated Docker Image Tag"
value: ${{ jobs.docker-build.outputs.IMAGE_TAG }}
workflow_dispatch:

permissions:
contents: read
id-token: write

env:
BRANCH_NAME: ${{ github.event.workflow_run.head_branch || github.head_ref || github.ref_name }}

jobs:
docker-build:
if: inputs.trigger_type == 'workflow_dispatch' && inputs.build_docker_image == true
runs-on: ubuntu-latest
environment: production
outputs:
Expand Down Expand Up @@ -56,7 +50,11 @@ jobs:
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Log in to Azure Container Registry
run: az acr login --name ${{ secrets.ACR_TEST_LOGIN_SERVER }}
shell: bash
run: |
# Extract registry name from login server (e.g., myacr.azurecr.io -> myacr)
ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}" | cut -d'.' -f1)
az acr login --name "$ACR_NAME"

- name: Build and Push ContentProcessor Docker image
uses: docker/build-push-action@v7
Expand All @@ -67,8 +65,8 @@ jobs:
file: ./src/ContentProcessor/Dockerfile
push: true
tags: |
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessor:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessor:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessor:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessor:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}

- name: Build and Push ContentProcessorAPI Docker image
uses: docker/build-push-action@v7
Expand All @@ -79,8 +77,8 @@ jobs:
file: ./src/ContentProcessorAPI/Dockerfile
push: true
tags: |
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorapi:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorapi:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorapi:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorapi:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}

- name: Build and Push ContentProcessorWeb Docker image
uses: docker/build-push-action@v7
Expand All @@ -91,8 +89,8 @@ jobs:
file: ./src/ContentProcessorWeb/Dockerfile
push: true
tags: |
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorweb:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorweb:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorweb:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorweb:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}

- name: Build and Push ContentProcessorWorkflow Docker image
uses: docker/build-push-action@v6
Expand All @@ -103,8 +101,8 @@ jobs:
file: ./src/ContentProcessorWorkflow/Dockerfile
push: true
tags: |
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorworkflow:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorworkflow:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorworkflow:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}
${{ vars.ACR_TEST_LOGIN_SERVER }}/contentprocessorworkflow:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}

- name: Verify Docker Image Build
shell: bash
Expand All @@ -116,7 +114,7 @@ jobs:
if: always()
shell: bash
run: |
ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}")
ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}")
Comment thread
AjitPadhi1-Microsoft marked this conversation as resolved.
echo "## 🐳 Docker Build Job Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
Expand Down
7 changes: 7 additions & 0 deletions infra/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ param solutionName string = 'cps'
'japaneast'
'northeurope'
'southeastasia'
'swedencentral'
'uksouth'
])
param location string
Expand Down Expand Up @@ -170,6 +171,7 @@ var replicaRegionPairs = {
japaneast: 'eastasia'
northeurope: 'westeurope'
southeastasia: 'eastasia'
swedencentral: 'northeurope'
uksouth: 'westeurope'
westeurope: 'northeurope'
}
Expand Down Expand Up @@ -786,6 +788,11 @@ module avmAiServices 'modules/account/aifoundry.bicep' = {

module cognitiveServicePrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking && empty(existingProjectResourceId)) {
name: take('avm.res.network.private-endpoint.${solutionSuffix}', 64)
dependsOn: [
avmAiServices
virtualNetwork
avmPrivateDnsZones
]
params: {
name: 'pep-aiservices-${solutionSuffix}'
location: location
Expand Down
55 changes: 27 additions & 28 deletions infra/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "12545195410241248179"
"version": "0.44.1.10279",
"templateHash": "3841741921827855283"
},
"name": "Content Processing Solution Accelerator",
"description": "Bicep template to deploy the Content Processing Solution Accelerator with AVM compliance."
Expand All @@ -31,6 +31,7 @@
"japaneast",
"northeurope",
"southeastasia",
"swedencentral",
"uksouth"
],
"metadata": {
Expand Down Expand Up @@ -236,6 +237,7 @@
"japaneast": "eastasia",
"northeurope": "westeurope",
"southeastasia": "eastasia",
"swedencentral": "northeurope",
"uksouth": "westeurope",
"westeurope": "northeurope"
},
Expand Down Expand Up @@ -337,8 +339,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "13206959925771644022"
"version": "0.44.1.10279",
"templateHash": "4148028483891244972"
}
},
"definitions": {
Expand Down Expand Up @@ -19306,8 +19308,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "13200482898648544945"
"version": "0.44.1.10279",
"templateHash": "14763088429533772999"
}
},
"parameters": {
Expand Down Expand Up @@ -23332,8 +23334,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "15729887991536611208"
"version": "0.44.1.10279",
"templateHash": "14944034125601240095"
}
},
"parameters": {
Expand Down Expand Up @@ -23936,8 +23938,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "8672669912945312056"
"version": "0.44.1.10279",
"templateHash": "3008626070117491750"
},
"name": "Container Registry Module"
},
Expand Down Expand Up @@ -36314,8 +36316,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "9621562991003135575"
"version": "0.44.1.10279",
"templateHash": "9717412251971567270"
},
"name": "Cognitive Services",
"description": "This module deploys a Cognitive Service."
Expand Down Expand Up @@ -37574,8 +37576,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "8864856500234357706"
"version": "0.44.1.10279",
"templateHash": "7181684108515692296"
}
},
"definitions": {
Expand Down Expand Up @@ -39307,8 +39309,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "312284397710022090"
"version": "0.44.1.10279",
"templateHash": "4868310155755856428"
}
},
"definitions": {
Expand Down Expand Up @@ -39461,8 +39463,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "276675105610077046"
"version": "0.44.1.10279",
"templateHash": "4168378797065634217"
}
},
"definitions": {
Expand Down Expand Up @@ -39679,8 +39681,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "8864856500234357706"
"version": "0.44.1.10279",
"templateHash": "7181684108515692296"
}
},
"definitions": {
Expand Down Expand Up @@ -41412,8 +41414,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "312284397710022090"
"version": "0.44.1.10279",
"templateHash": "4868310155755856428"
}
},
"definitions": {
Expand Down Expand Up @@ -41566,8 +41568,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.43.8.12551",
"templateHash": "276675105610077046"
"version": "0.44.1.10279",
"templateHash": "4168378797065634217"
}
},
"definitions": {
Expand Down Expand Up @@ -42487,10 +42489,7 @@
},
"dependsOn": [
"avmAiServices",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').contentUnderstanding)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
"avmPrivateDnsZones",
"virtualNetwork"
]
},
Expand Down
7 changes: 7 additions & 0 deletions infra/main_custom.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ param solutionName string = 'cps'
'japaneast'
'northeurope'
'southeastasia'
'swedencentral'
'uksouth'
])
param location string
Expand Down Expand Up @@ -173,6 +174,7 @@ var replicaRegionPairs = {
japaneast: 'eastasia'
northeurope: 'westeurope'
southeastasia: 'eastasia'
swedencentral: 'northeurope'
uksouth: 'westeurope'
westeurope: 'northeurope'
}
Expand Down Expand Up @@ -789,6 +791,11 @@ module avmAiServices 'modules/account/aifoundry.bicep' = {

module cognitiveServicePrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking && empty(existingProjectResourceId)) {
name: take('avm.res.network.private-endpoint.${solutionSuffix}', 64)
dependsOn: [
avmAiServices
virtualNetwork
avmPrivateDnsZones
]
params: {
name: 'pep-aiservices-${solutionSuffix}'
location: location
Expand Down
4 changes: 2 additions & 2 deletions src/ContentProcessor/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ dependencies = [
"pdf2image==1.17.0",
"poppler-utils==0.1.0",
"pydantic==2.13.3",
"pydantic-settings==2.13.1",
"pydantic-settings==2.14.2",
"pymongo==4.16.0",
"python-dotenv==1.2.2",
"tiktoken==0.12.0",
"protobuf==6.33.6",
"pyjwt==2.12.1",
"pyjwt==2.13.0",
"pyasn1==0.6.3",
]

Expand Down
6 changes: 3 additions & 3 deletions src/ContentProcessor/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ charset-normalizer==3.4.6
click==8.3.1
colorama==0.4.6
coverage==7.13.5
cryptography==46.0.7
cryptography==48.0.1
dnspython==2.8.0
idna==3.15
iniconfig==2.3.0
Expand All @@ -31,9 +31,9 @@ poppler-utils==0.1.0
pycparser==3.0
pydantic==2.13.3
pydantic-core==2.46.3
pydantic-settings==2.13.1
pydantic-settings==2.14.2
pygments==2.20.0
pyjwt==2.12.1
pyjwt==2.13.0
pymongo==4.16.0
pytest==9.0.3
pytest-asyncio==1.3.0
Expand Down
Loading
Loading