Skip to content

Commit d7edc61

Browse files
Merge branch 'main' into demo
2 parents 85b2cd2 + 54b1b90 commit d7edc61

486 files changed

Lines changed: 20969 additions & 104146 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ USE_FOUNDRY=false
1616
# Format: https://<project-name>.services.ai.azure.com
1717
AZURE_AI_PROJECT_ENDPOINT=
1818

19-
# Image model deployment name in Foundry (e.g., gpt-image-1)
20-
AZURE_AI_IMAGE_DEPLOYMENT=gpt-image-1
19+
# Image model deployment name in Foundry (e.g., gpt-image-1-mini)
20+
AZURE_AI_IMAGE_MODEL_DEPLOYMENT=gpt-image-1-mini
2121

2222
# =============================================================================
2323
# Azure OpenAI Configuration
@@ -31,15 +31,14 @@ AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
3131
AZURE_OPENAI_GPT_MODEL=gpt-5.1
3232

3333
# Image Generation Model Configuration
34-
# Supported models: dall-e-3 or gpt-image-1
35-
AZURE_OPENAI_IMAGE_MODEL=gpt-image-1
34+
# Supported models: gpt-image-1-mini or gpt-image-1.5
35+
AZURE_OPENAI_IMAGE_MODEL=gpt-image-1-mini
3636

37-
# For gpt-image-1 (if using a different endpoint than DALL-E)
37+
# For gpt-image-1-mini or gpt-image-1.5, the endpoint is the same as the main OpenAI endpoint, but you can specify a different one if needed
3838
AZURE_OPENAI_GPT_IMAGE_ENDPOINT=https://your-openai.openai.azure.com
3939

4040
# Image generation settings
41-
# For dall-e-3: sizes are 1024x1024, 1024x1792, 1792x1024; quality is standard or hd
42-
# For gpt-image-1: sizes are 1024x1024, 1536x1024, 1024x1536, auto; quality is low, medium, high, auto
41+
# For gpt-image-1-mini/1.5: sizes are 1024x1024, 1536x1024, 1024x1536, auto; quality is low, medium, high, auto
4342
AZURE_OPENAI_IMAGE_SIZE=1024x1024
4443
AZURE_OPENAI_IMAGE_QUALITY=medium
4544

@@ -114,3 +113,13 @@ WORKERS=4
114113
# Feature flags
115114
AUTH_ENABLED=false
116115
SANITIZE_ANSWER=false
116+
117+
# =============================================================================
118+
# Logging Configuration
119+
# =============================================================================
120+
# Basic logging level (DEBUG, INFO, WARNING, ERROR)
121+
AZURE_BASIC_LOGGING_LEVEL=INFO
122+
# Logging level for Azure SDK and third-party packages (DEBUG, INFO, WARNING, ERROR)
123+
AZURE_PACKAGE_LOGGING_LEVEL=WARNING
124+
# Comma-separated list of Python logger names to apply package logging level to
125+
AZURE_LOGGING_PACKAGES=

.flake8

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[flake8]
2+
max-line-length = 88
3+
extend-ignore = E501
4+
exclude = .venv, frontend
5+
ignore = E203, W503, G004, G200
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
# Each line is a file pattern followed by one or more owners.
33

44
# These owners will be the default owners for everything in the repo.
5-
* @toherman-msft @Avijit-Microsoft @Roopan-Microsoft @Prajwal-Microsoft @Vinay-Microsoft @malrose07 @aniaroramsft @nchandhi @dgp10801
6-
5+
* @Avijit-Microsoft @Roopan-Microsoft @Prajwal-Microsoft @aniaroramsft @Vinay-Microsoft @malrose07 @toherman-msft @nchandhi

.github/dependabot.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: 2
2+
3+
updates:
4+
# GitHub Actions - grouped
5+
- package-ecosystem: "github-actions"
6+
directory: "/"
7+
schedule:
8+
interval: "monthly"
9+
target-branch: "dependabotchanges"
10+
commit-message:
11+
prefix: "build"
12+
open-pull-requests-limit: 10
13+
groups:
14+
github-actions:
15+
patterns:
16+
- "*"
17+
18+
# Python (pip) dependencies - grouped
19+
- package-ecosystem: "pip"
20+
directories:
21+
- "/src/backend"
22+
- "/infra/vscode_web"
23+
- "/scripts"
24+
schedule:
25+
interval: "monthly"
26+
target-branch: "dependabotchanges"
27+
commit-message:
28+
prefix: "build"
29+
open-pull-requests-limit: 10
30+
groups:
31+
python-deps:
32+
patterns:
33+
- "*"
34+
35+
# npm dependencies - grouped
36+
- package-ecosystem: "npm"
37+
directories:
38+
- "/src/app/frontend"
39+
- "/src/app/frontend-server"
40+
schedule:
41+
interval: "monthly"
42+
target-branch: "dependabotchanges"
43+
commit-message:
44+
prefix: "build"
45+
open-pull-requests-limit: 10
46+
groups:
47+
npm-deps:
48+
patterns:
49+
- "*"

.github/workflows/azure-dev.yml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,52 @@
11
name: Azure Template Validation
22
on:
33
workflow_dispatch:
4-
4+
push:
5+
branches:
6+
- main
7+
58
permissions:
69
contents: read
710
id-token: write
811
pull-requests: write
9-
12+
1013
jobs:
1114
template_validation_job:
1215
runs-on: ubuntu-latest
16+
environment: production
1317
name: Template validation
14-
18+
1519
steps:
1620
# Step 1: Checkout the code from your repository
1721
- name: Checkout code
1822
uses: actions/checkout@v4
1923

20-
# Step 2: Validate the Azure template using microsoft/template-validation-action
24+
# Step 2: Pre-authenticate Azure for azd validation
25+
- name: Login to Azure
26+
shell: bash
27+
run: |
28+
az login --service-principal -u "${{ secrets.AZURE_CLIENT_ID }}" -p "${{ secrets.AZURE_CLIENT_SECRET }}" --tenant "${{ secrets.AZURE_TENANT_ID }}"
29+
az account set --subscription "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
30+
31+
# Step 3: Validate the Azure template using microsoft/template-validation-action
2132
- name: Validate Azure Template
2233
uses: microsoft/template-validation-action@v0.4.3
23-
id: validation
2434
with:
25-
workingDirectory: ./content-gen
35+
workingDirectory: .
36+
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
37+
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}
38+
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
39+
id: validation
2640
env:
2741
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
2842
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
43+
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
2944
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
3045
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
3146
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
47+
AZURE_ENV_OPENAI_LOCATION: ${{ secrets.AZURE_ENV_OPENAI_LOCATION }}
3248
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33-
34-
# Step 3: Print the result of the validation
49+
50+
# Step 4: Print the result of the validation
3551
- name: Print result
36-
run: cat ${{ steps.validation.outputs.resultFile }}
52+
run: cat ${{ steps.validation.outputs.resultFile }}

archive-doc-gen/.github/workflows/broken-links-checker.yml renamed to .github/workflows/broken-links-checker.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88

99
permissions:
1010
contents: read
11+
actions: read
1112

1213
jobs:
1314
markdown-link-check:

.github/workflows/codeql.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
paths:
7+
- '**/*.py'
8+
- '.github/workflows/codeql.yml'
9+
pull_request:
10+
branches: [ "main" ]
11+
paths:
12+
- '**/*.py'
13+
- '.github/workflows/codeql.yml'
14+
schedule:
15+
- cron: '17 11 * * 0'
16+
17+
jobs:
18+
analyze:
19+
name: Analyze
20+
runs-on: ubuntu-latest
21+
timeout-minutes: 360
22+
permissions:
23+
actions: read
24+
contents: read
25+
security-events: write
26+
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
language: [ 'python' ]
31+
32+
steps:
33+
- name: Checkout repository
34+
uses: actions/checkout@v6
35+
36+
- name: Initialize CodeQL
37+
uses: github/codeql-action/init@v4
38+
with:
39+
languages: ${{ matrix.language }}
40+
41+
- name: Perform CodeQL Analysis
42+
uses: github/codeql-action/analyze@v4
43+
with:
44+
category: "/language:${{matrix.language}}"

.github/workflows/deploy-orchestrator.yml

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,15 @@ on:
6161
description: 'Trigger type (workflow_dispatch, pull_request, schedule)'
6262
required: true
6363
type: string
64+
image_model_choice:
65+
description: 'Image model to deploy (gpt-image-1-mini, gpt-image-1.5, none)'
66+
required: false
67+
default: 'gpt-image-1-mini'
68+
type: string
6469

6570
env:
6671
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
67-
permissions:
68-
contents: read
69-
actions: read
70-
72+
7173
jobs:
7274
docker-build:
7375
uses: ./.github/workflows/job-docker-build.yml
@@ -94,6 +96,7 @@ jobs:
9496
docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }}
9597
run_e2e_tests: ${{ inputs.run_e2e_tests }}
9698
cleanup_resources: ${{ inputs.cleanup_resources }}
99+
image_model_choice: ${{ inputs.image_model_choice }}
97100
secrets: inherit
98101

99102
e2e-test:
@@ -105,9 +108,25 @@ jobs:
105108
TEST_SUITE: ${{ inputs.trigger_type == 'workflow_dispatch' && inputs.run_e2e_tests || 'GoldenPath-Testing' }}
106109
secrets: inherit
107110

111+
cleanup-deployment:
112+
if: "!cancelled() && needs.deploy.outputs.RESOURCE_GROUP_NAME != '' && inputs.existing_webapp_url == '' && (inputs.trigger_type != 'workflow_dispatch' || inputs.cleanup_resources)"
113+
needs: [docker-build, deploy, e2e-test]
114+
uses: ./.github/workflows/job-cleanup-deployment.yml
115+
with:
116+
runner_os: ${{ inputs.runner_os }}
117+
trigger_type: ${{ inputs.trigger_type }}
118+
cleanup_resources: ${{ inputs.cleanup_resources }}
119+
existing_webapp_url: ${{ inputs.existing_webapp_url }}
120+
RESOURCE_GROUP_NAME: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}
121+
AZURE_LOCATION: ${{ needs.deploy.outputs.AZURE_LOCATION }}
122+
AZURE_ENV_OPENAI_LOCATION: ${{ needs.deploy.outputs.AZURE_ENV_OPENAI_LOCATION }}
123+
ENV_NAME: ${{ needs.deploy.outputs.ENV_NAME }}
124+
IMAGE_TAG: ${{ needs.deploy.outputs.IMAGE_TAG }}
125+
secrets: inherit
126+
108127
send-notification:
109128
if: "!cancelled()"
110-
needs: [docker-build, deploy, e2e-test]
129+
needs: [docker-build, deploy, e2e-test, cleanup-deployment]
111130
uses: ./.github/workflows/job-send-notification.yml
112131
with:
113132
trigger_type: ${{ inputs.trigger_type }}
@@ -122,20 +141,5 @@ jobs:
122141
QUOTA_FAILED: ${{ needs.deploy.outputs.QUOTA_FAILED }}
123142
TEST_SUCCESS: ${{ needs.e2e-test.outputs.TEST_SUCCESS }}
124143
TEST_REPORT_URL: ${{ needs.e2e-test.outputs.TEST_REPORT_URL }}
125-
secrets: inherit
126-
127-
cleanup-deployment:
128-
if: "!cancelled() && needs.deploy.outputs.RESOURCE_GROUP_NAME != '' && inputs.existing_webapp_url == '' && (inputs.trigger_type != 'workflow_dispatch' || inputs.cleanup_resources)"
129-
needs: [docker-build, deploy, e2e-test]
130-
uses: ./.github/workflows/job-cleanup-deployment.yml
131-
with:
132-
runner_os: ${{ inputs.runner_os }}
133-
trigger_type: ${{ inputs.trigger_type }}
134-
cleanup_resources: ${{ inputs.cleanup_resources }}
135-
existing_webapp_url: ${{ inputs.existing_webapp_url }}
136-
RESOURCE_GROUP_NAME: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}
137-
AZURE_LOCATION: ${{ needs.deploy.outputs.AZURE_LOCATION }}
138-
AZURE_ENV_OPENAI_LOCATION: ${{ needs.deploy.outputs.AZURE_ENV_OPENAI_LOCATION }}
139-
ENV_NAME: ${{ needs.deploy.outputs.ENV_NAME }}
140-
IMAGE_TAG: ${{ needs.deploy.outputs.IMAGE_TAG }}
144+
cleanup_result: ${{ needs.cleanup-deployment.result }}
141145
secrets: inherit

0 commit comments

Comments
 (0)