Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
6f3e98b
build: bump the all-frontend-deps group in /src/frontend with 21 updates
dependabot[bot] May 1, 2026
69a0541
build: bump the all-actions group with 6 updates
dependabot[bot] May 1, 2026
82bd7b5
build: bump the all-backend-deps group in /src/backend with 6 updates
dependabot[bot] May 1, 2026
06df144
fix: address SFI security compliance issues
Prachig-Microsoft May 15, 2026
e35a8a9
Updated Foundry Roles name
AjitPadhi-Microsoft May 18, 2026
4503d5b
fix: address PR review - remove unneeded SecurityEvent DCR/solution
Prachig-Microsoft May 18, 2026
fdf9237
fix: use Microsoft-Event stream with audit keyword xPath filter
Prachig-Microsoft May 19, 2026
1212d1c
Merge pull request #436 from microsoft/PSL-US-43670
Prajwal-Microsoft May 19, 2026
69fdf3e
Merge pull request #437 from microsoft/downmerge/main-to-dev
Roopan-Microsoft May 20, 2026
ebb515c
chore: merge dev into dependabotchanges
Copilot May 20, 2026
f0137d2
fix(deps): revert OT 1.41/azure-ai-projects 2.1 due to upstream pins
Copilot May 20, 2026
7dc7b06
fix(deps): downgrade eslint to v9 for peer dep compatibility
Copilot May 20, 2026
a4833ab
fix(frontend): add engines.node and refresh babel transitives
Copilot May 20, 2026
0287fca
fix(frontend): remove obsolete @types/react-router-dom
Copilot May 20, 2026
6d62c07
fix: enforce HTTPS-only ingress and refactor DCR destination name
Prachig-Microsoft May 20, 2026
febe9b9
Merge remote-tracking branch 'origin/dev' into feature/sfi-security-f…
Prachig-Microsoft May 20, 2026
19b85e8
Merge pull request #438 from microsoft/feature/dependabot-upgrades-ma…
Roopan-Microsoft May 21, 2026
b22f284
Merge pull request #435 from microsoft/feature/sfi-security-fixes
Prajwal-Microsoft May 21, 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
2 changes: 1 addition & 1 deletion .github/workflows/azd-template-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:

- name: Validate Azure Template
id: validation
uses: microsoft/template-validation-action@v0.4.3
uses: microsoft/template-validation-action@v0.4.4
with:
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/azure-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
uses: Azure/setup-azd@v2

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/broken-links-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Get changed markdown files (PR only)
id: changed-markdown-files
if: github.event_name == 'pull_request'
uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v46
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v46
with:
files: |
**/*.md
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

- name: Login to Azure
if: ${{ inputs.push }}
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
uses: actions/checkout@v6

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down Expand Up @@ -190,7 +190,7 @@ jobs:
steps:

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-cleanup-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
steps:

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
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 @@ -220,7 +220,7 @@ jobs:
uses: Azure/setup-azd@v2

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
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 @@ -220,7 +220,7 @@ jobs:
uses: Azure/setup-azd@v2

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ jobs:
uses: actions/checkout@v6

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: docker/setup-buildx-action@v4

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-automation-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
python-version: '3.13'

- name: Login to Azure
uses: azure/login@v2
uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/validate-bicep-params.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.11'

Expand Down Expand Up @@ -62,7 +62,7 @@ jobs:

- name: Upload validation results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: bicep-validation-results
path: |
Expand Down
4 changes: 2 additions & 2 deletions docs/LocalDevelopmentSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,10 +253,10 @@ az role assignment create \
--scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<azure-openai-name>
```
```bash
# Assign Azure AI User role
# Assign Foundry User role
az role assignment create \
--assignee <aad-user-upn> \
--role "Azure AI User" \
--role "Foundry User" \
--scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<azure-openai-name>
Comment on lines +256 to 260
```

Expand Down
30 changes: 27 additions & 3 deletions infra/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,7 @@ var dataCollectionRulesResourceName = 'dcr-${solutionSuffix}'
var dataCollectionRulesLocation = useExistingLogAnalytics
? existingLogAnalyticsWorkspace!.location
: logAnalyticsWorkspace!.outputs.location
var dcrLogAnalyticsDestinationName = 'la-${logAnalyticsWorkspaceName}-destination'
module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.11.0' = if (enablePrivateNetworking && enableMonitoring) {
name: take('avm.res.insights.data-collection-rule.${dataCollectionRulesResourceName}', 64)
params: {
Expand Down Expand Up @@ -586,12 +587,23 @@ module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-
name: 'perfCounterDataSource60'
}
]
windowsEventLogs: [
{
name: 'SecurityAuditEvents'
streams: [
'Microsoft-Event'
]
xPathQueries: [
'Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]]'
]
}
]
}
destinations: {
logAnalytics: [
{
workspaceResourceId: logAnalyticsWorkspaceResourceId
name: 'la-${dataCollectionRulesResourceName}'
name: dcrLogAnalyticsDestinationName
}
]
}
Expand All @@ -601,8 +613,18 @@ module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-
'Microsoft-Perf'
]
destinations: [
'la-${dataCollectionRulesResourceName}'
dcrLogAnalyticsDestinationName
]
}
{
streams: [
'Microsoft-Event'
]
destinations: [
dcrLogAnalyticsDestinationName
]
transformKql: 'source'
outputStream: 'Microsoft-Event'
}
]
}
Expand Down Expand Up @@ -766,7 +788,7 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
{
principalId: appIdentity.outputs.principalId
principalType: 'ServicePrincipal'
roleDefinitionIdOrName: '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Azure AI User
roleDefinitionIdOrName: '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Foundry User
}
]
tags: allTags
Expand Down Expand Up @@ -1077,6 +1099,7 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.22.0' = {
]
ingressTargetPort: 8000
ingressExternal: true
ingressAllowInsecure: false
scaleSettings: {
// maxReplicas: enableScalability ? 3 : 1
maxReplicas: 1 // maxReplicas set to 1 (not 3) due to multiple agents created per type during WAF deployment
Expand Down Expand Up @@ -1132,6 +1155,7 @@ module containerAppFrontend 'br/public:avm/res/app/container-app:0.22.0' = {
]
ingressTargetPort: 3000
ingressExternal: true
ingressAllowInsecure: false
scaleSettings: {
maxReplicas: enableScalability ? 3 : 1
minReplicas: 1
Expand Down
47 changes: 37 additions & 10 deletions infra/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"_generator": {
"name": "bicep",
"version": "0.42.1.51946",
"templateHash": "1333265003476738511"
"templateHash": "18156607440911418905"
Comment on lines 6 to +9
},
"name": "Modernize Your Code Solution Accelerator",
"description": "CSA CTO Gold Standard Solution Accelerator for Modernize Your Code. \r\n"
Expand Down Expand Up @@ -13101,11 +13101,11 @@
},
"dependsOn": [
"applicationInsights",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').oms)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').ods)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').agentSvc)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').oms)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').monitor)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"dataCollectionEndpoint",
"logAnalyticsWorkspace",
"virtualNetwork"
Expand Down Expand Up @@ -15351,13 +15351,24 @@
],
"name": "perfCounterDataSource60"
}
],
"windowsEventLogs": [
{
"name": "SecurityAuditEvents",
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]]"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[if(variables('useExistingLogAnalytics'), parameters('existingLogAnalyticsWorkspaceId'), reference('logAnalyticsWorkspace').outputs.resourceId.value)]",
"name": "[format('la-{0}', variables('dataCollectionRulesResourceName'))]"
"name": "[format('la-{0}-destination', if(variables('useExistingLogAnalytics'), variables('existingLawName'), reference('logAnalyticsWorkspace').outputs.name.value))]"
}
]
},
Expand All @@ -15367,8 +15378,18 @@
"Microsoft-Perf"
],
"destinations": [
"[format('la-{0}', variables('dataCollectionRulesResourceName'))]"
"[format('la-{0}-destination', if(variables('useExistingLogAnalytics'), variables('existingLawName'), reference('logAnalyticsWorkspace').outputs.name.value))]"
]
},
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"[format('la-{0}-destination', if(variables('useExistingLogAnalytics'), variables('existingLawName'), reference('logAnalyticsWorkspace').outputs.name.value))]"
],
"transformKql": "source",
"outputStream": "Microsoft-Event"
}
]
}
Expand Down Expand Up @@ -32017,9 +32038,9 @@
},
"dependsOn": [
"aiServices",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
"virtualNetwork"
]
},
Expand Down Expand Up @@ -32076,7 +32097,7 @@
"_generator": {
"name": "bicep",
"version": "0.42.1.51946",
"templateHash": "3598447245043879538"
"templateHash": "15460841004653840446"
}
},
"definitions": {
Expand Down Expand Up @@ -32314,7 +32335,7 @@
"value": "TLS1_2"
},
"requireInfrastructureEncryption": {
"value": false
"value": true
},
"keyType": {
"value": "Service"
Expand Down Expand Up @@ -40484,8 +40505,8 @@
},
"dependsOn": [
"appIdentity",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageFile)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageFile)]",
"logAnalyticsWorkspace",
"virtualNetwork"
]
Expand Down Expand Up @@ -47977,6 +47998,9 @@
"ingressExternal": {
"value": true
},
"ingressAllowInsecure": {
"value": false
},
"scaleSettings": {
"value": {
"maxReplicas": 1,
Expand Down Expand Up @@ -49551,6 +49575,9 @@
"ingressExternal": {
"value": true
},
"ingressAllowInsecure": {
"value": false
},
"scaleSettings": {
"value": {
"maxReplicas": "[if(parameters('enableScalability'), 3, 1)]",
Expand Down
Loading
Loading