Skip to content

Commit cda7c40

Browse files
Merge branch 'us-42666-pr565-followup' of https://github.com/microsoft/content-processing-solution-accelerator into us-42666-pr565-followup
2 parents 5d4e989 + a37253f commit cda7c40

10 files changed

Lines changed: 168 additions & 33 deletions

infra/scripts/configure_auth.ps1

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,26 @@ function Azd-Get($key, $default = "") {
6464
$EnvName = Azd-Get "AZURE_ENV_NAME" "cps"
6565
$ResourceGroup = Azd-Get "AZURE_RESOURCE_GROUP"
6666
$SubscriptionId = Azd-Get "AZURE_SUBSCRIPTION_ID"
67+
68+
# If already logged in, pin Azure CLI context to the azd environment subscription.
69+
# If not logged in, preflight check 1 will provide the auth guidance.
70+
if ($SubscriptionId) {
71+
$currentSub = (az account show --query id -o tsv 2>$null)
72+
if ($currentSub) {
73+
az account set --subscription $SubscriptionId 2>$null
74+
if ($LASTEXITCODE -ne 0) {
75+
Write-Error "Failed to switch Azure CLI context to subscription '$SubscriptionId'. Verify access and re-run."
76+
exit 1
77+
}
78+
79+
$activeSub = (az account show --query id -o tsv 2>$null)
80+
if (-not $activeSub -or $activeSub -ne $SubscriptionId) {
81+
Write-Error "Azure CLI active subscription '$activeSub' does not match AZURE_SUBSCRIPTION_ID '$SubscriptionId'."
82+
exit 1
83+
}
84+
}
85+
}
86+
6787
$TenantId = (az account show --query tenantId -o tsv 2>$null)
6888
if (-not $TenantId) { $TenantId = Azd-Get "AZURE_TENANT_ID" "" }
6989
# (Preflight Check 1 will catch missing authentication with a clear error message)

infra/scripts/configure_auth.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,25 @@ fi
8787
ENV_NAME="$(azd env get-value AZURE_ENV_NAME 2>/dev/null || echo "")"
8888
RESOURCE_GROUP="$(azd env get-value AZURE_RESOURCE_GROUP 2>/dev/null || true)"
8989
SUBSCRIPTION_ID="$(azd env get-value AZURE_SUBSCRIPTION_ID 2>/dev/null || true)"
90+
91+
# If already logged in, pin Azure CLI context to the azd environment subscription.
92+
# If not logged in, preflight check 1 will provide the auth guidance.
93+
if [[ -n "$SUBSCRIPTION_ID" ]]; then
94+
CURRENT_SUB="$(az account show --query id -o tsv 2>/dev/null || true)"
95+
if [[ -n "$CURRENT_SUB" ]]; then
96+
if ! az account set --subscription "$SUBSCRIPTION_ID" >/dev/null 2>&1; then
97+
echo "❌ Failed to switch Azure CLI context to subscription '$SUBSCRIPTION_ID'. Verify access and re-run." >&2
98+
exit 1
99+
fi
100+
101+
ACTIVE_SUB="$(az account show --query id -o tsv 2>/dev/null || true)"
102+
if [[ -z "$ACTIVE_SUB" || "$ACTIVE_SUB" != "$SUBSCRIPTION_ID" ]]; then
103+
echo "❌ Azure CLI active subscription '$ACTIVE_SUB' does not match AZURE_SUBSCRIPTION_ID '$SUBSCRIPTION_ID'." >&2
104+
exit 1
105+
fi
106+
fi
107+
fi
108+
90109
TENANT_ID="$(az account show --query tenantId -o tsv 2>/dev/null || true)"
91110
if [[ -z "$TENANT_ID" ]]; then
92111
TENANT_ID="$(azd env get-value AZURE_TENANT_ID 2>/dev/null || true)"

infra/scripts/docker-build.ps1

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,19 @@ function Ensure-AzLogin {
6161
exit 1
6262
}
6363

64-
# Set Azure subscription
65-
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
66-
if ($LASTEXITCODE -ne 0) {
67-
Write-Error "Failed to set Azure subscription."
68-
exit 1
69-
}
64+
}
65+
66+
# Always pin the Azure CLI context to the azd environment subscription.
67+
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
68+
if ($LASTEXITCODE -ne 0) {
69+
Write-Error "Failed to set Azure subscription to '$AZURE_SUBSCRIPTION_ID'."
70+
exit 1
71+
}
72+
73+
$activeSubscriptionId = az account show --query id -o tsv --only-show-errors 2>$null
74+
if (-not $activeSubscriptionId -or $activeSubscriptionId -ne $AZURE_SUBSCRIPTION_ID) {
75+
Write-Error "Azure CLI active subscription '$activeSubscriptionId' does not match AZURE_SUBSCRIPTION_ID '$AZURE_SUBSCRIPTION_ID'."
76+
exit 1
7077
}
7178
}
7279

infra/scripts/docker-build.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,17 @@ echo "Checking Azure login status..."
5555
if ! az account show --only-show-errors &>/dev/null; then
5656
echo "No active Azure session found. Logging in..."
5757
az login --only-show-errors
58-
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
58+
fi
59+
60+
if ! az account set --subscription "$AZURE_SUBSCRIPTION_ID" >/dev/null 2>&1; then
61+
echo "❌ Failed to set Azure subscription to '$AZURE_SUBSCRIPTION_ID'." >&2
62+
exit 1
63+
fi
64+
65+
ACTIVE_SUBSCRIPTION_ID=$(az account show --query id -o tsv --only-show-errors 2>/dev/null || true)
66+
if [ -z "$ACTIVE_SUBSCRIPTION_ID" ] || [ "$ACTIVE_SUBSCRIPTION_ID" != "$AZURE_SUBSCRIPTION_ID" ]; then
67+
echo "❌ Azure CLI active subscription '$ACTIVE_SUBSCRIPTION_ID' does not match AZURE_SUBSCRIPTION_ID '$AZURE_SUBSCRIPTION_ID'." >&2
68+
exit 1
5969
fi
6070

6171
# Deploy container registry

infra/scripts/post_deployment.ps1

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,23 @@ $CONTAINER_WORKFLOW_APP_NAME = azd env get-value CONTAINER_WORKFLOW_APP_NAME
1616
$SUBSCRIPTION_ID = azd env get-value AZURE_SUBSCRIPTION_ID
1717
$RESOURCE_GROUP = azd env get-value AZURE_RESOURCE_GROUP
1818

19+
# If already logged in, pin Azure CLI context to the azd environment subscription.
20+
# If not logged in, the az command that needs auth will surface the login guidance.
21+
if ($SUBSCRIPTION_ID) {
22+
$CurrentSub = (az account show --query id -o tsv 2>$null)
23+
if ($CurrentSub) {
24+
az account set --subscription $SUBSCRIPTION_ID 2>$null
25+
if ($LASTEXITCODE -ne 0) {
26+
throw "Failed to switch Azure CLI context to subscription '$SUBSCRIPTION_ID'. Verify access and re-run."
27+
}
28+
29+
$ActiveSub = (az account show --query id -o tsv 2>$null)
30+
if (-not $ActiveSub -or $ActiveSub -ne $SUBSCRIPTION_ID) {
31+
throw "Azure CLI active subscription '$ActiveSub' does not match AZURE_SUBSCRIPTION_ID '$SUBSCRIPTION_ID'."
32+
}
33+
}
34+
}
35+
1936
# Construct Azure Portal URLs
2037
$WEB_APP_PORTAL_URL = "https://portal.azure.com/#resource/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/containerApps/$CONTAINER_WEB_APP_NAME"
2138
$API_APP_PORTAL_URL = "https://portal.azure.com/#resource/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/containerApps/$CONTAINER_API_APP_NAME"
@@ -412,6 +429,31 @@ if (-not $ApiReady) {
412429
}
413430
}
414431

432+
# --- Refresh Content Understanding Cognitive Services account ---
433+
Write-Host ""
434+
Write-Host ("=" * 60)
435+
Write-Host "Refreshing Content Understanding Cognitive Services account..."
436+
Write-Host ("=" * 60)
437+
438+
$CuAccountName = azd env get-value CONTENT_UNDERSTANDING_ACCOUNT_NAME 2>$null
439+
440+
if (-not $CuAccountName) {
441+
Write-Host " ⚠️ CONTENT_UNDERSTANDING_ACCOUNT_NAME not found in azd env. Skipping refresh."
442+
} else {
443+
Write-Host " Refreshing account: $CuAccountName in resource group: $RESOURCE_GROUP"
444+
az cognitiveservices account update `
445+
-g $RESOURCE_GROUP `
446+
-n $CuAccountName `
447+
--tags refresh=true `
448+
--output none
449+
450+
if ($LASTEXITCODE -eq 0) {
451+
Write-Host " ✅ Successfully refreshed Cognitive Services account '$CuAccountName'."
452+
} else {
453+
Write-Host " ❌ Failed to refresh Cognitive Services account '$CuAccountName'."
454+
}
455+
}
456+
415457
Write-Host ""
416458
Write-Host ("=" * 60)
417459
Write-Host "Post-deployment data setup completed."

infra/scripts/post_deployment.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,24 @@ CONTAINER_WORKFLOW_APP_NAME=$(azd env get-value CONTAINER_WORKFLOW_APP_NAME)
1818
SUBSCRIPTION_ID=$(azd env get-value AZURE_SUBSCRIPTION_ID)
1919
RESOURCE_GROUP=$(azd env get-value AZURE_RESOURCE_GROUP)
2020

21+
# If already logged in, pin Azure CLI context to the azd environment subscription.
22+
# If not logged in, the az command that needs auth will surface the login guidance.
23+
if [ -n "$SUBSCRIPTION_ID" ]; then
24+
CURRENT_SUB=$(az account show --query id -o tsv 2>/dev/null || true)
25+
if [ -n "$CURRENT_SUB" ]; then
26+
if ! az account set --subscription "$SUBSCRIPTION_ID" >/dev/null 2>&1; then
27+
echo "❌ Failed to switch Azure CLI context to subscription '$SUBSCRIPTION_ID'. Verify access and re-run." >&2
28+
exit 1
29+
fi
30+
31+
ACTIVE_SUB=$(az account show --query id -o tsv 2>/dev/null || true)
32+
if [ -z "$ACTIVE_SUB" ] || [ "$ACTIVE_SUB" != "$SUBSCRIPTION_ID" ]; then
33+
echo "❌ Azure CLI active subscription '$ACTIVE_SUB' does not match AZURE_SUBSCRIPTION_ID '$SUBSCRIPTION_ID'." >&2
34+
exit 1
35+
fi
36+
fi
37+
fi
38+
2139
# Construct Azure Portal URLs
2240
WEB_APP_PORTAL_URL="https://portal.azure.com/#resource/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/containerApps/$CONTAINER_WEB_APP_NAME"
2341
API_APP_PORTAL_URL="https://portal.azure.com/#resource/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/containerApps/$CONTAINER_API_APP_NAME"
@@ -32,7 +50,7 @@ echo " 🔗 Web App Portal URL: $WEB_APP_PORTAL_URL"
3250
echo " 🔗 API App Portal URL: $API_APP_PORTAL_URL"
3351

3452
# Get the directory where this script is located
35-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
53+
SCRIPT_DIR="${ORIGINAL_SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
3654

3755
# Go from infra/scripts → root → src
3856
DATA_SCRIPT_PATH="$SCRIPT_DIR/../../src/ContentProcessorAPI/samples/schemas"

infra/scripts/register_schemas.sh

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4+
SCRIPT_DIR="${ORIGINAL_SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
5+
tmp_file=""
6+
cleanup() {
7+
if [[ -n "$tmp_file" ]]; then
8+
rm -f "$tmp_file" || true
9+
fi
10+
}
11+
trap cleanup EXIT
12+
513
if ! tmp_file="$(mktemp "${TMPDIR:-/tmp}/cpsa-schema.XXXXXX" 2>/dev/null)"; then
614
tmp_file="$(mktemp -t cpsa-schema.XXXXXX 2>/dev/null)" || {
715
echo "Failed to create temp file" >&2
@@ -13,7 +21,5 @@ if ! tr -d '\r' < "$SCRIPT_DIR/post_deployment.sh" > "$tmp_file"; then
1321
echo "Failed to normalize line endings for: $SCRIPT_DIR/post_deployment.sh" >&2
1422
exit 1
1523
fi
16-
mv "$tmp_file" "$SCRIPT_DIR/post_deployment.sh"
17-
chmod +x "$SCRIPT_DIR/post_deployment.sh"
18-
19-
POST_DEPLOYMENT_MODE=schema bash "$SCRIPT_DIR/post_deployment.sh"
24+
chmod +x "$tmp_file"
25+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" POST_DEPLOYMENT_MODE=schema bash "$tmp_file"

infra/scripts/run_post_deployment.sh

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ normalize_line_endings() {
6464
echo " ❌ Failed to normalize line endings for: $script_file" >&2
6565
exit 1
6666
fi
67-
mv "$tmp_file" "$script_file"
67+
chmod +x "$tmp_file"
68+
echo "$tmp_file"
6869
}
6970

7071
print_banner
@@ -101,11 +102,11 @@ else
101102
exit 1
102103
fi
103104

104-
normalize_line_endings "$STEP1_SCRIPT"
105-
chmod +x "$STEP1_SCRIPT"
105+
STEP1_RUNNER="$(normalize_line_endings "$STEP1_SCRIPT")"
106106

107107
STEP1_EXIT=0
108-
bash "$STEP1_SCRIPT" || STEP1_EXIT=$?
108+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" bash "$STEP1_RUNNER" || STEP1_EXIT=$?
109+
rm -f "$STEP1_RUNNER"
109110

110111
if [[ $STEP1_EXIT -eq 0 ]]; then
111112
step_ok 1
@@ -132,11 +133,11 @@ else
132133
exit 1
133134
fi
134135

135-
normalize_line_endings "$STEP2_SCRIPT"
136-
chmod +x "$STEP2_SCRIPT"
136+
STEP2_RUNNER="$(normalize_line_endings "$STEP2_SCRIPT")"
137137

138138
STEP2_EXIT=0
139-
bash "$STEP2_SCRIPT" || STEP2_EXIT=$?
139+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" bash "$STEP2_RUNNER" || STEP2_EXIT=$?
140+
rm -f "$STEP2_RUNNER"
140141

141142
if [[ $STEP2_EXIT -eq 0 ]]; then
142143
step_ok 2
@@ -179,11 +180,11 @@ else
179180
exit 1
180181
fi
181182

182-
normalize_line_endings "$STEP3_SCRIPT"
183-
chmod +x "$STEP3_SCRIPT"
183+
STEP3_RUNNER="$(normalize_line_endings "$STEP3_SCRIPT")"
184184

185185
STEP3_EXIT=0
186-
bash "$STEP3_SCRIPT" || STEP3_EXIT=$?
186+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" bash "$STEP3_RUNNER" || STEP3_EXIT=$?
187+
rm -f "$STEP3_RUNNER"
187188

188189
if [[ $STEP3_EXIT -eq 0 ]]; then
189190
step_ok 3

infra/scripts/setup_auth.sh

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4+
SCRIPT_DIR="${ORIGINAL_SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
5+
tmp_file=""
6+
cleanup() {
7+
if [[ -n "$tmp_file" ]]; then
8+
rm -f "$tmp_file" || true
9+
fi
10+
}
11+
trap cleanup EXIT
12+
513
if ! tmp_file="$(mktemp "${TMPDIR:-/tmp}/cpsa-auth.XXXXXX" 2>/dev/null)"; then
614
tmp_file="$(mktemp -t cpsa-auth.XXXXXX 2>/dev/null)" || {
715
echo "Failed to create temp file" >&2
@@ -13,7 +21,5 @@ if ! tr -d '\r' < "$SCRIPT_DIR/configure_auth.sh" > "$tmp_file"; then
1321
echo "Failed to normalize line endings for: $SCRIPT_DIR/configure_auth.sh" >&2
1422
exit 1
1523
fi
16-
mv "$tmp_file" "$SCRIPT_DIR/configure_auth.sh"
17-
chmod +x "$SCRIPT_DIR/configure_auth.sh"
18-
19-
bash "$SCRIPT_DIR/configure_auth.sh" "$@"
24+
chmod +x "$tmp_file"
25+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" bash "$tmp_file" "$@"
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4+
SCRIPT_DIR="${ORIGINAL_SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
5+
tmp_file=""
6+
cleanup() {
7+
if [[ -n "$tmp_file" ]]; then
8+
rm -f "$tmp_file" || true
9+
fi
10+
}
11+
trap cleanup EXIT
12+
513
if ! tmp_file="$(mktemp "${TMPDIR:-/tmp}/cpsa-sample.XXXXXX" 2>/dev/null)"; then
614
tmp_file="$(mktemp -t cpsa-sample.XXXXXX 2>/dev/null)" || {
715
echo "Failed to create temp file" >&2
@@ -13,7 +21,5 @@ if ! tr -d '\r' < "$SCRIPT_DIR/post_deployment.sh" > "$tmp_file"; then
1321
echo "Failed to normalize line endings for: $SCRIPT_DIR/post_deployment.sh" >&2
1422
exit 1
1523
fi
16-
mv "$tmp_file" "$SCRIPT_DIR/post_deployment.sh"
17-
chmod +x "$SCRIPT_DIR/post_deployment.sh"
18-
19-
POST_DEPLOYMENT_MODE=sample-data bash "$SCRIPT_DIR/post_deployment.sh"
24+
chmod +x "$tmp_file"
25+
ORIGINAL_SCRIPT_DIR="$SCRIPT_DIR" POST_DEPLOYMENT_MODE=sample-data bash "$tmp_file"

0 commit comments

Comments
 (0)