Repository navigation
[Question]-Issue: Named Values not overridden via configuration.prod.yaml in APIOps Publisher #845
Description
Activity
Thank you for opening this issue! Please be patient while we will look into it and get back to you as this is an open source project. In the meantime make sure you take a look at the [closed issues](https://github.com/Azure/apiops/issues?q=is%3Aissue+is%3Aclosed) in case your question has already been answered. Don't forget to provide any additional information if needed (e.g. scrubbed logs, detailed feature requests,etc.). Whenever it's feasible, please don't hesitate to send a Pull Request (PR) our way. We'd greatly appreciate it, and we'll gladly assess and incorporate your changes.I think something broke your formatting, and I can't really parse your configuration. Regardless, named value overrides are supported. Couple of things to check:
- Here is a sample configuration file that shows named value overrides.
- When overriding your named value, make sure you specify the named value name, not the display name. You can find your named value name in
artifacts/named values/{your-named-value-name}.namedValues: - name: **MUST BE NAMED VALUE NAME** properties: displayName: environment
Hi guythetechie ,
Thanks for your response.
I have revalidated the configuration multiple times based on your suggestions.
What I have verified -
- The named value name used in configuration.prod.yaml matches exactly with:
Dev APIM named value name
Extracted artifact under artifacts/named values/{name} - I am not using displayName incorrectly — I am using the correct name field
- YAML structure and indentation are correct (validated multiple times)
- The publisher pipeline is definitely reading configuration.prod.yaml, because:
Backends are getting overridden successfully
Only named values are not getting overridden
Pipelines & Config Reference -
I am sharing my actual pipeline and configuration files for clarity:
Extractor pipeline →tools/pipelines/run-extractor.yaml -
parameters:
-
name: APIM_INSTANCE_NAME
displayName: APIM instance name
type: string
default: APIM-Dev -
name: RESOURCE_GROUP_NAME
displayName: APIM instance resource group name
type: string
default: apim-dev-rg -
name: GITHUB_REPOSITORY
displayName: GitHub repository (org/repo)
type: string
default: APIM-Org/APIM-Repo -
name: API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH
displayName: Folder where you want to extract the artifacts
type: string
default: artifacts -
name: TARGET_BRANCH_NAME
displayName: Target branch for pull request
type: string
default: main -
name: API_SPECIFICATION_FORMAT
displayName: API Specification Format
type: string
default: OpenAPIV3Yaml
trigger: none
variables:
- group: apim-automation
- name: System.Debug
value: true - name: SYNC_BRANCH
value: apim-sync
stages:
=====================================================
STAGE 1 – EXTRACT APIM
=====================================================
-
stage: extract_from_apim
displayName: Extract APIM artifactsjobs:
-
job: extract
pool:
vmImage: ubuntu-lateststeps:
-
checkout: self
-
task: AzureCLI@2
displayName: Azure Login & Set Variables
inputs:
azureSubscription: "$(SERVICE_CONNECTION_NAME)"
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
$accessToken = az account get-access-token --query accessToken -o tsv
$subscription = az account show --query id -o tsv
$tenant = az account show --query tenantId -o tsvWrite-Host "##vso[task.setvariable issecret=true;variable=AZURE_BEARER_TOKEN]$accessToken" Write-Host "##vso[task.setvariable variable=AZURE_SUBSCRIPTION_ID]$subscription" Write-Host "##vso[task.setvariable variable=AZURE_TENANT_ID]$tenant" -
task: PowerShell@2
displayName: Download API Ops
inputs:
pwsh: true
targetType: inline
script: |
$version = "$ (apiops_release_version)"
$zipName = "extractor-linux-x64.zip"
$url = "https://github.com/Azure/apiops/releases/download/v$version/$zipName"
$zipPath = "$ (Agent.TempDirectory)/apiops.zip"
$extractPath = "$ (Agent.TempDirectory)/apiops"Invoke-WebRequest -Uri $url -OutFile $zipPath Expand-Archive $zipPath $extractPath -Force chmod +x "$extractPath/extractor" Write-Host "##vso[task.setvariable variable=API_OPS_PATH]$extractPath/extractor" -
task: PowerShell@2
displayName: Run extractor
inputs:
pwsh: true
targetType: inline
script: |
& "$(API_OPS_PATH)" extract
env:
AZURE_BEARER_TOKEN: $(AZURE_BEARER_TOKEN)
AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
AZURE_TENANT_ID: $(AZURE_TENANT_ID)
AZURE_RESOURCE_GROUP_NAME: ${{ parameters.RESOURCE_GROUP_NAME }}
API_MANAGEMENT_SERVICE_NAME: ${{ parameters.APIM_INSTANCE_NAME }}
API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH:$(Build.ArtifactStagingDirectory)/$ {{ parameters.API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH }}
API_SPECIFICATION_FORMAT: ${{ parameters.API_SPECIFICATION_FORMAT }} -
task: PowerShell@2
displayName: Extraction Cleanup
inputs:
pwsh: true
targetType: inline
script: |
$basePath = "$ (Build.ArtifactStagingDirectory)/${{ parameters.API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH }}"Write-Host "Scanning for specification.yaml files in $basePath" $files = Get-ChildItem -Path $basePath -Recurse -Filter "specification.yaml" foreach ($file in $files) { Write-Host "Cleaning file: $($file.FullName)" $content = Get-Content $file.FullName $cleaned = @() $skip = $false foreach ($line in $content) { # Detect servers block if ($line.Trim() -eq "servers:") { $skip = $true continue } # Skip server URL lines if ($skip -and $line.Trim().StartsWith("- url:")) { continue } # Stop skipping once block ends if ($skip -and $line.Trim() -notmatch "^- url:") { $skip = $false } $cleaned += $line } $cleaned | Set-Content $file.FullName } Write-Host "Extraction Clean up all APIs" -
task: PublishPipelineArtifact@1
displayName: Publish extracted artifacts
inputs:
targetPath: "$(Build.ArtifactStagingDirectory)"
artifactName: apim-artifacts
-
-
=====================================================
STAGE 2 – PUSH TO GITHUB + CREATE PR
=====================================================
-
stage: github_pr
displayName: Push artifacts & create GitHub PR
dependsOn: extract_from_apimjobs:
-
job: pr
pool:
vmImage: ubuntu-lateststeps:
-
checkout: self
-
task: DownloadPipelineArtifact@2
inputs:
artifactName: apim-artifacts
targetPath: $(Pipeline.Workspace)/artifacts
Commit artifacts to apim-sync
-
script: |
git clone https://$(GITHUB_PAT)@github.com/${{ parameters.GITHUB_REPOSITORY }} repo
cd repogit config user.email "azuredevops@automation.com"
git config user.name "Azure DevOps Pipeline"git fetch origin
if git show-ref --verify --quiet refs/remotes/origin/$(SYNC_BRANCH); then
git checkout $(SYNC_BRANCH)
git pull origin $(SYNC_BRANCH)
else
git checkout -b $(SYNC_BRANCH)
firsync -av --delete "$(Pipeline.Workspace)/artifacts/artifacts/" "artifacts/"
git add .
if git diff --cached --quiet; then
echo "No changes detected"
exit 0
figit commit -m "APIM extraction (Build $(Build.BuildId))"
git push origin $(SYNC_BRANCH)
displayName: Commit artifacts
Create PR using GitHub API
-
script: |
ORG=$(echo "${{ parameters.GITHUB_REPOSITORY }}" | cut -d'/' -f1)
RESPONSE=$(curl -s
-H "Authorization: token $(GITHUB_PAT)"
https://api.github.com/repos/${{ parameters.GITHUB_REPOSITORY }}/pulls?head=$ORG:$(SYNC_BRANCH))if echo "$RESPONSE" | grep "html_url"; then
echo "PR already exists"
elsecurl -X POST \ -H "Authorization: token $(GITHUB_PAT)" \ -H "Accept: application/vnd.github+json" \ https://api.github.com/repos/${{ parameters.GITHUB_REPOSITORY }}/pulls \ -d '{ "title": "APIM artifacts update (Build $(Build.BuildId))", "head": "apim-sync", "base": "${{ parameters.TARGET_BRANCH_NAME }}", "body": "Automated extraction from Dev APIM" }'fi
displayName: Create Pull Request
-
-
Publisher pipeline → included in same reference
tools/pipelines/run-publisher-with-env.yaml -
==========================================================
APIM Publisher Pipeline (Manual)
Supports configuration..yaml
Enterprise Ready
==========================================================
trigger: none
pr: noneparameters:
-
name: API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH
type: string
displayName: Folder where artifacts reside
default: artifacts -
name: ENVIRONMENT
type: string
displayName: Environment (dev/prod)
default: prod -
name: RESOURCE_GROUP_NAME
type: string
displayName: Resource Group Name
default: APIM-Prod -
name: API_MANAGEMENT_SERVICE_NAME
type: string
displayName: APIM Instance Name
default: apim-prod-rg -
name: CONFIGURATION_YAML_PATH
type: string
displayName: Optional configuration file
default: tools/configuration.prod.yaml
variables:
- group: apim-automation
- name: System.Debug
value: false
steps:
---------------------------------------------------------
Checkout Repository (GitHub App handles auth)
---------------------------------------------------------
- checkout: self
fetchDepth: 0
---------------------------------------------------------
Azure Login & Set Variables
---------------------------------------------------------
-
task: AzureCLI@2
displayName: Azure Login
inputs:
azureSubscription: "$(SERVICE_CONNECTION_NAME_PROD)"
scriptType: pscore
scriptLocation: inlineScript
addSpnToEnvironment: true
failOnStandardError: true
inlineScript: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"Write-Host "Logging into Azure..." $accessToken = az account get-access-token --query accessToken -o tsv $subscriptionId = az account show --query id -o tsv Write-Host "##vso[task.setvariable issecret=true;variable=AZURE_BEARER_TOKEN]$accessToken" Write-Host "##vso[task.setvariable issecret=true;variable=AZURE_SUBSCRIPTION_ID]$subscriptionId" Write-Host "##vso[task.setvariable issecret=true;variable=AZURE_CLIENT_ID]$env:servicePrincipalId" Write-Host "##vso[task.setvariable issecret=true;variable=AZURE_CLIENT_SECRET]$env:servicePrincipalKey" Write-Host "##vso[task.setvariable issecret=true;variable=AZURE_TENANT_ID]$env:tenantId"
---------------------------------------------------------
Replace tokens in configuration file (Optional)
---------------------------------------------------------
- ${{ if ne(parameters.CONFIGURATION_YAML_PATH, '') }}:
- task: qetza.replacetokens.replacetokens-task.replacetokens@6
displayName: Substitute variables in configuration file
inputs:
sources: ${{ parameters.CONFIGURATION_YAML_PATH }}
tokenPattern: custom
tokenPrefix: "{#"
tokenSuffix: "#}"
- task: qetza.replacetokens.replacetokens-task.replacetokens@6
---------------------------------------------------------
Download API Ops Publisher
---------------------------------------------------------
-
task: PowerShell@2
displayName: Download API Ops Publisher
inputs:
pwsh: true
targetType: inline
script: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"$releaseFileName = "publisher-linux-x64.zip" $executableFileName = "publisher" if ("$(Agent.OS)" -like "*Windows*") { $releaseFileName = "publisher-win-x64.zip" $executableFileName = "publisher.exe" } $uri = "https://github.com/Azure/apiops/releases/download/v$(apiops_release_version)/$releaseFileName" $downloadFilePath = Join-Path "$(Agent.TempDirectory)" $releaseFileName Write-Host "Downloading API Ops Publisher v$(apiops_release_version)..." Invoke-WebRequest -Uri $uri -OutFile $downloadFilePath $extractPath = Join-Path "$(Agent.TempDirectory)" "publisher" Expand-Archive -Path $downloadFilePath -DestinationPath $extractPath -Force $executableFilePath = Join-Path $extractPath $executableFileName if ("$(Agent.OS)" -like "*Linux*") { chmod +x $executableFilePath } Write-Host "##vso[task.setvariable variable=PUBLISHER_FILE_PATH]$executableFilePath"
---------------------------------------------------------
Run Publisher
---------------------------------------------------------
-
task: PowerShell@2
displayName: Publish to ${{ parameters.ENVIRONMENT }}
inputs:
pwsh: true
targetType: inline
script: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"Write-Host "Starting publish to environment: ${{ parameters.ENVIRONMENT }}" & "$(PUBLISHER_FILE_PATH)" if ($LASTEXITCODE -ne 0) { throw "Publisher execution failed." } Write-Host "Publisher completed successfully."env:
AZURE_BEARER_TOKEN: $(AZURE_BEARER_TOKEN)
AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)
AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET)
AZURE_TENANT_ID: $(AZURE_TENANT_ID)
AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)AZURE_RESOURCE_GROUP_NAME: ${{ parameters.RESOURCE_GROUP_NAME }}
API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH:$(Build.SourcesDirectory)/$ {{ parameters.API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH }}API_MANAGEMENT_SERVICE_NAME: ${{ parameters.API_MANAGEMENT_SERVICE_NAME }}
CONFIGURATION_YAML_PATH:
$(Build.SourcesDirectory)/$ {{ parameters.CONFIGURATION_YAML_PATH }}COMMIT_ID: $(Build.SourceVersion)
# ---------------------------------------------------------
# Updating Named Values
# ---------------------------------------------------------
-
task: AzureCLI@2
displayName: Updating Named Values
inputs:
azureSubscription: "$(SERVICE_CONNECTION_NAME_PROD)"
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"Install-Module powershell-yaml -Force -Scope CurrentUser -AllowClobber $configPath = "$(Build.SourcesDirectory)/${{ parameters.CONFIGURATION_YAML_PATH }}" $config = Get-Content $configPath -Raw | ConvertFrom-Yaml $updated = 0 $skipped = 0 foreach ($nv in $config.namedValues) { $name = $nv.name if (-not $nv.properties -or -not $nv.properties.value) { Write-Host "Skipping $name → invalid config" $skipped++ continue } $value = $nv.properties.value # Get current PROD value $current = az apim nv show ` --resource-group "${{ parameters.RESOURCE_GROUP_NAME }}" ` --service-name "${{ parameters.API_MANAGEMENT_SERVICE_NAME }}" ` --named-value-id $name ` --query "value" -o tsv 2>$null if (-not $current) { Write-Host "Skipping $name → not found in PROD" $skipped++ continue } # Compare if ($current -eq $value) { Write-Host "Skipping $name → already correct" $skipped++ continue } # Update only if different Write-Host "Updating $name → $value" az apim nv update ` --resource-group "${{ parameters.RESOURCE_GROUP_NAME }}" ` --service-name "${{ parameters.API_MANAGEMENT_SERVICE_NAME }}" ` --named-value-id $name ` --value "$value" if ($LASTEXITCODE -ne 0) { throw "Failed to update $name" } $updated++ } Write-Host "===============================" Write-Host "Updated : $updated" Write-Host "Skipped : $skipped" Write-Host "==============================="
configuration.prod.yaml → includes multiple named values and backends
tools/configuration.prod.yaml -
apimServiceName: APIM-Prod
namedValues:-
name: approval-matrix-url
properties:
displayName: approval-matrix-url
value: "https://abcwebapi.abc.com" -
name: azure-blob-url
properties:
displayName: azure-blob-url
value: "https://abcdlfinancedata.blob.core.windows.net" -
name: D365-s4-url
properties:
displayName: D365-s4-url
value: "https://projopsprod.abc.com" -
name: greenit-quickfms-url
properties:
displayName: greenit-quickfms-url
value: "https://abc-odata-prod.azurewebsites.net" -
name: immidart-url
properties:
displayName: immidart-url
value: "https://abcwebapi.abc.com" -
name: iris-url
properties:
displayName: iris-url
value: "https://abc-api.abc.com" -
name: pulse-url
properties:
displayName: pulse-url
value: "https://pulse.abc.com" -
name: pulse-v2-url
properties:
displayName: pulse-v2-url
value: "https://pulse.abc.com" -
name: s4-rest-url
properties:
displayName: s4-rest-url
value: "http://10.23.81.4:40000" -
name: success-url
properties:
displayName: success-url
value: "https://api10.abc.com" -
name: test-url
properties:
displayName: test-url
value: "https://pfi.abc.com"
backends:
- name: AI-CS
properties:
url: "https://abc.cognitiveservices.azure.com" - name: abc-ai-endpoint
properties:
url: "https://abc.services.ai.azure.com/models"
resourceId: "https://management.azure.com/subscriptions/df4r--------84fe/resourceGroups/rg-------fd8/providers/Microsoft.CognitiveServices/accounts/abc-----resource" - name: abc-openai-ai-endpoint
properties:
url: "https://abc.services.ai.azure.com/openai"
resourceId: "https://management.azure.com/subscriptions/df4r--------84fe/resourceGroups/rg-------fd8/providers/Microsoft.CognitiveServices/accounts/abc-----resource"
Additional Context -
I am using Azure DevOps pipelines with a GitHub repository
Flow:Extractor → pushes artifacts to GitHub
Publisher → reads from GitHub repo and deploys to Prod APIMCould you please confirm:
Is there any limitation or known issue when using Azure DevOps + GitHub together with APIOps?
Does named value override behave differently in this setup?Current Observation -
Backend override → working
Named value override → not working
Same configuration file used for bothAdditional Clarifications Needed -
It would really help if you can guide on the following:
Are there any additional flags/env variables required for namedValues override in v7?
Does APIOps require named values to be:marked as secret/non-secret explicitly?
present/not present in target APIM before override?
Does publisher only create named values but not update existing ones?
Any known issues with v7.0.0-alpha.3.0.1 related to named values?
Should named values be managed separately (outside APIOps) as best practice?Important Note -
As a workaround, I had to add a custom Azure CLI step to update named values after publisher execution, which works correctly.This suggests:
- Issue is likely with APIOps publisher behavior, not permissions or configuration.
Please let me know if you need any additional logs or artifact samples — I can share those as well.
- The named value name used in configuration.prod.yaml matches exactly with:
From my last apiops publisher run, these are the logs which shows overriding for backends and putting for named values -
2026-04-25T11:26:14.3510098Z ##[section]Starting: Publish to prod
2026-04-25T11:26:14.3516340Z ==============================================================================
2026-04-25T11:26:14.3516455Z Task : PowerShell
2026-04-25T11:26:14.3516532Z Description : Run a PowerShell script on Linux, macOS, or Windows
2026-04-25T11:26:14.3516636Z Version : 2.268.1
2026-04-25T11:26:14.3516707Z Author : Microsoft Corporation
2026-04-25T11:26:14.3516788Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2026-04-25T11:26:14.3516884Z ==============================================================================
2026-04-25T11:26:14.4487174Z Generating script.
2026-04-25T11:26:14.4491175Z ========================== Starting Command Output ===========================
2026-04-25T11:26:14.4499038Z [command]/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command . '/home/vsts/work/_temp/ae3d118f-07fd-4282-b871-22.ps1'
2026-04-25T11:26:15.2244065Z Starting publish to environment: prod
2026-04-25T11:26:15.2539479Z Publisher version is 7.0.0.
2026-04-25T11:26:15.5864024Z Configuration summary
2026-04-25T11:26:15.6036503Z apimServiceName ........................... LTT****
2026-04-25T11:26:15.6037604Z apiSpecificationFormat .................... (not set)
2026-04-25T11:26:15.6040304Z API_MANAGEMENT_SERVICE_NAME ............... LTT****
2026-04-25T11:26:15.6040730Z API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH . /home/vsts/work/1/s/artifacts
2026-04-25T11:26:15.6041138Z API_SPECIFICATION_FORMAT .................. (not set)
2026-04-25T11:26:15.6041513Z APPLICATION_INSIGHTS_CONNECTION_STRING .... (not set)
2026-04-25T11:26:15.6041897Z ARM_API_VERSION ........................... (not set)
2026-04-25T11:26:15.6042283Z AZURE_BEARER_TOKEN ........................ eyJ****
2026-04-25T11:26:15.6042679Z AZURE_CLOUD_ENVIRONMENT ................... (not set)
2026-04-25T11:26:15.6043071Z AZURE_RESOURCE_GROUP_NAME ................. LTT****
2026-04-25T11:26:15.6043467Z AZURE_SUBSCRIPTION_ID ..................... 915****
2026-04-25T11:26:15.6043871Z COMMIT_ID ................................. (not set)
2026-04-25T11:26:15.6044324Z CONFIGURATION_YAML_PATH ................... /home/vsts/work/1/s/tools/configuration.prod.yaml
2026-04-25T11:26:15.6045021Z DRY-RUN ................................... (not set)
2026-04-25T11:26:15.6045398Z DRY_RUN ................................... (not set)
2026-04-25T11:26:15.6219765Z OTEL_EXPORTER_OTLP_ENDPOINT ............... (not set)
2026-04-25T11:26:15.6220442Z STRICT_VALIDATION ......................... (not set)
2026-04-25T11:26:15.6562080Z info: Microsoft.Hosting.Lifetime[0]
2026-04-25T11:26:15.6563090Z Application started. Press Ctrl+C to shut down.
2026-04-25T11:26:15.6564257Z info: Microsoft.Hosting.Lifetime[0]
2026-04-25T11:26:15.6565102Z Hosting environment: Production
2026-04-25T11:26:15.6566503Z info: Microsoft.Hosting.Lifetime[0]
2026-04-25T11:26:15.6567274Z Content root path: /home/vsts/work/1/s
2026-04-25T11:26:15.6575857Z info: publisher[0]
2026-04-25T11:26:15.6576831Z Running publisher...
2026-04-25T11:26:15.6596395Z info: publisher[0]
2026-04-25T11:26:15.6597097Z No commit ID provided.
2026-04-25T11:26:15.9841068Z warn: publisher[0]
2026-04-25T11:26:15.9846690Z Resource 'subscriptions/greenIT-Test' is missing its predecessor 'apis/ltts-agenticiq-9588-resource'.
2026-04-25T11:26:15.9857317Z warn: publisher[0]
2026-04-25T11:26:15.9862820Z Resource 'subscriptions/openAi' is missing its predecessor 'apis/ltts-agenticiq-9588-resource'.
2026-04-25T11:26:15.9883459Z warn: publisher[0]
2026-04-25T11:26:15.9897077Z Resource 'subscriptions/Claude' is missing its predecessor 'apis/ltts-agenticiq-9588-resource'.
2026-04-25T11:26:16.0997328Z info: publisher[0]
2026-04-25T11:26:16.0998077Z Putting products/starter...
2026-04-25T11:26:16.0998855Z info: publisher[0]
2026-04-25T11:26:16.0999596Z Putting apis/immidart...
2026-04-25T11:26:17.1501236Z info: publisher[0]
2026-04-25T11:26:17.1503028Z Putting products/starter/groupLinks/246-7A28-48AE-8144-705...
2026-04-25T11:26:18.3203984Z info: publisher[0]
2026-04-25T11:26:18.3210711Z Putting apis/successfactor_to_ssc...
2026-04-25T11:26:18.3267562Z info: publisher[0]
2026-04-25T11:26:18.3269197Z Putting namedValues/successfactor-url...
2026-04-25T11:26:19.2831145Z info: publisher[0]
2026-04-25T11:26:19.2837701Z Putting apis/approval_matrix...
2026-04-25T11:26:21.4198307Z info: publisher[0]
2026-04-25T11:26:21.4200810Z Putting apis/successfactor_to_ssc/policies/policy...
2026-04-25T11:26:21.4730088Z info: publisher[0]
2026-04-25T11:26:21.4733113Z Putting apis/attendance_api...
2026-04-25T11:26:21.4733487Z info: publisher[0]
2026-04-25T11:26:21.4733835Z Putting namedValues/attendance-api-url...
2026-04-25T11:26:21.9645733Z info: publisher[0]
2026-04-25T11:26:21.9648611Z Found override for backends/ltts-agenticiq-9588-resource-ai-endpoint...
2026-04-25T11:26:21.9649149Z info: publisher[0]
2026-04-25T11:26:21.9649546Z Putting backends/ltts-agenticiq-9588-resource-ai-endpoint...
2026-04-25T11:26:22.6337212Z info: publisher[0]
2026-04-25T11:26:22.6338043Z Putting apis/successfactor_to_datalake...
2026-04-25T11:26:23.9486672Z info: publisher[0]
2026-04-25T11:26:23.9493031Z Putting apis/attendance_api/policies/policy...
2026-04-25T11:26:24.4196299Z info: publisher[0]
2026-04-25T11:26:24.4197517Z Putting tags/Audio...
2026-04-25T11:26:24.6715368Z info: publisher[0]
2026-04-25T11:26:24.6718193Z Putting apis/azure-blob-dev...
2026-04-25T11:26:25.5231842Z info: publisher[0]
2026-04-25T11:26:25.5232660Z Putting namedValues/greenit-quickfms-url...
2026-04-25T11:26:27.0413908Z info: publisher[0]
2026-04-25T11:26:27.0414849Z Putting namedValues/iris-url...
2026-04-25T11:26:27.0415512Z info: publisher[0]
2026-04-25T11:26:27.0416414Z Putting apis/iris-dev...
2026-04-25T11:26:27.6047067Z info: publisher[0]
2026-04-25T11:26:27.6047578Z Putting apis/ltts-agenticiq-9588-resource-openai...
2026-04-25T11:26:28.3198181Z info: publisher[0]
2026-04-25T11:26:28.3201605Z Putting apis/pulse-dev...
2026-04-25T11:26:28.3202420Z info: publisher[0]
2026-04-25T11:26:28.3202752Z Putting namedValues/pulse-url...
2026-04-25T11:26:29.2019905Z info: publisher[0]
2026-04-25T11:26:29.2020433Z Putting apis/iris-dev/policies/policy...
2026-04-25T11:26:29.9954456Z info: publisher[0]
2026-04-25T11:26:29.9954932Z Putting apis/successfactor_to_immidart...
2026-04-25T11:26:30.3086346Z info: publisher[0]
2026-04-25T11:26:30.3090767Z Putting apis/pulse-dev/policies/policy...
2026-04-25T11:26:30.8040129Z info: publisher[0]
2026-04-25T11:26:30.8041638Z Putting apis/immidart/operations/associatepassport/policies/policy...
2026-04-25T11:26:31.0634448Z info: publisher[0]
2026-04-25T11:26:31.0636451Z Putting loggers/azuremonitor...
2026-04-25T11:26:31.4592076Z info: publisher[0]
2026-04-25T11:26:31.4593646Z Putting tags/Images...
2026-04-25T11:26:31.7026236Z info: publisher[0]
2026-04-25T11:26:31.7027265Z Putting products/unlimited...
2026-04-25T11:26:32.1807638Z info: publisher[0]
2026-04-25T11:26:32.1808813Z Putting apis/successfactor_to_ad_user_tool...
2026-04-25T11:26:32.3349759Z info: publisher[0]
2026-04-25T11:26:32.3350833Z Putting apis/successfactor_to_immidart/policies/policy...
2026-04-25T11:26:32.7945165Z info: publisher[0]
2026-04-25T11:26:32.7950008Z Putting namedValues/s4-restadapter-url...
2026-04-25T11:26:32.7950905Z info: publisher[0]
2026-04-25T11:26:32.7953285Z Putting apis/s4-rest-adapter...
2026-04-25T11:26:34.2199565Z info: publisher[0]
2026-04-25T11:26:34.2200403Z Putting apis/successfactor_to_ad_user_tool/policies/policy...
2026-04-25T11:26:34.6860114Z info: publisher[0]
2026-04-25T11:26:34.6861228Z Putting apis/s4-rest-adapter/policies/policy...
2026-04-25T11:26:34.7343193Z info: publisher[0]
2026-04-25T11:26:34.7343538Z Putting policies/policy...
2026-04-25T11:26:35.1600305Z info: publisher[0]
2026-04-25T11:26:35.1601857Z Putting apis/immidart/operations/lassociatedependentpassport/policies/policy...
2026-04-25T11:26:35.2158181Z info: publisher[0]
2026-04-25T11:26:35.2159024Z Putting apis/reunite_api...
2026-04-25T11:26:35.2159422Z info: publisher[0]
2026-04-25T11:26:35.2159819Z Putting namedValues/reunite-api-url...
2026-04-25T11:26:35.4449454Z info: publisher[0]
2026-04-25T11:26:35.4450326Z Found override for backends/ltts-agenticiq-988-resource-openai-ai-endpoint...
2026-04-25T11:26:35.4451028Z info: publisher[0]
2026-04-25T11:26:35.4451648Z Putting backends/ltts-agenticiq-9588-resource-openai-ai-endpoint...
2026-04-25T11:26:35.7617948Z info: publisher[0]
2026-04-25T11:26:35.7618484Z Putting namedValues/prism_force_application_url...
2026-04-25T11:26:37.0180844Z info: publisher[0]
2026-04-25T11:26:37.0181507Z Putting apis/d365-dev...
2026-04-25T11:26:37.3540768Z info: publisher[0]
2026-04-25T11:26:37.3541508Z Putting apis/reunite_api/policies/policy...
2026-04-25T11:26:37.8809523Z info: publisher[0]
2026-04-25T11:26:37.8810335Z Putting apis/successfactor_to_datalake/policies/policy...
2026-04-25T11:26:38.3698390Z info: publisher[0]
2026-04-25T11:26:38.3699183Z Putting apis/approval_matrix/operations/lttsbusinesstravel_getdomestictravel/policies/policy...
2026-04-25T11:26:38.6407828Z info: publisher[0]
2026-04-25T11:26:38.6408600Z Putting namedValues/fastcollab_application_url...
2026-04-25T11:26:38.6409140Z info: publisher[0]
2026-04-25T11:26:38.6409484Z Putting apis/fastcollab_application...
2026-04-25T11:26:39.1748341Z info: publisher[0]
2026-04-25T11:26:39.1749436Z Putting apis/pulse-dev-v2...
2026-04-25T11:26:39.1751182Z info: publisher[0]
2026-04-25T11:26:39.1751925Z Putting namedValues/pulse-v2-url...
2026-04-25T11:26:40.6810980Z info: publisher[0]
2026-04-25T11:26:40.6811999Z Putting apis/fastcollab_application/policies/policy...
2026-04-25T11:26:40.9182368Z info: publisher[0]
2026-04-25T11:26:40.9187164Z Putting apis/pulse-dev-v2/policies/policy...
2026-04-25T11:26:41.1491029Z info: publisher[0]
2026-04-25T11:26:41.1492042Z Putting apis/greenit...
2026-04-25T11:26:41.3496944Z info: publisher[0]
2026-04-25T11:26:41.3498213Z Putting tags/Completions...
2026-04-25T11:26:43.0957800Z info: publisher[0]
2026-04-25T11:26:43.0958606Z Putting apis/greenit/operations/get-quick-fms-employee/policies/policy...
2026-04-25T11:26:43.0958966Z info: publisher[0]
2026-04-25T11:26:43.0959292Z Putting apis/greenit/operations/get-all-employees/policies/policy...
2026-04-25T11:26:43.3693250Z info: publisher[0]
2026-04-25T11:26:43.3693904Z Putting apis/prism_force_application...
2026-04-25T11:26:43.3703389Z info: publisher[0]
2026-04-25T11:26:43.3704164Z Putting namedValues/approval-matrix-url...
2026-04-25T11:26:44.7588516Z info: publisher[0]
2026-04-25T11:26:44.7588942Z Putting apis/ams_api...
2026-04-25T11:26:45.1694129Z info: publisher[0]
2026-04-25T11:26:45.1695151Z Putting namedValues/test-pf-employee-url...
2026-04-25T11:26:46.5344399Z info: publisher[0]
2026-04-25T11:26:46.5344908Z Putting namedValues/immidart-url...
2026-04-25T11:26:46.6518742Z info: publisher[0]
2026-04-25T11:26:46.6519824Z Putting tags/Responses...
2026-04-25T11:26:46.8601912Z info: publisher[0]
2026-04-25T11:26:46.8602940Z Putting products/starter/policies/policy...
2026-04-25T11:26:47.2850289Z info: publisher[0]
2026-04-25T11:26:47.2851235Z Putting subscriptions/greenIT-Test...
2026-04-25T11:26:47.7505341Z info: publisher[0]
2026-04-25T11:26:47.7510618Z Putting apis/immidart/operations/lttsemployee/policies/policy...
2026-04-25T11:26:48.0233161Z info: publisher[0]
2026-04-25T11:26:48.0237080Z Putting products/unlimited/groupLinks/AEFAB2E6-1CAE-426B-96F9-15...
2026-04-25T11:26:48.0719199Z info: publisher[0]
2026-04-25T11:26:48.0720217Z Putting namedValues/ams-api-url...
2026-04-25T11:26:48.2618608Z info: publisher[0]
2026-04-25T11:26:48.2619994Z Putting namedValues/D365-s4-url...
2026-04-25T11:26:49.4118876Z info: publisher[0]
2026-04-25T11:26:49.4119363Z Putting namedValues/azure-blob-url...
2026-04-25T11:26:49.6211169Z info: publisher[0]
2026-04-25T11:26:49.6212343Z Putting apis/greenit/operations/greenitempbyemail/policies/policy...
2026-04-25T11:26:51.1313878Z info: publisher[0]
2026-04-25T11:26:51.1316906Z Putting apis/azure-blob-dev/policies/policy...
2026-04-25T11:26:51.1317649Z info: publisher[0]
2026-04-25T11:26:51.1318313Z Found override for backends/AI-CS-LTTS-CTO-AI-Co-vf2gx...
2026-04-25T11:26:51.1318983Z info: publisher[0]
2026-04-25T11:26:51.1319611Z Putting backends/AI-CS-LTTS-CTO-AI-Co-vfe2gx...
2026-04-25T11:26:51.4092259Z info: publisher[0]
2026-04-25T11:26:51.4098612Z Putting subscriptions/openAi...
2026-04-25T11:26:51.6380045Z info: publisher[0]
2026-04-25T11:26:51.6380556Z Putting apis/approval_matrix/policies/policy...
2026-04-25T11:26:51.6594600Z info: publisher[0]
2026-04-25T11:26:51.6596772Z Putting apis/greenit/operations/get-quick-fms-hrms/policies/policy...
2026-04-25T11:26:51.9076180Z info: publisher[0]
2026-04-25T11:26:51.9076948Z Putting tags/Embeddings...
2026-04-25T11:26:52.1769409Z info: publisher[0]
2026-04-25T11:26:52.1770404Z Putting apis/greenit/operations/get-greenit-head-by-role/policies/policy...
2026-04-25T11:26:52.2456205Z info: publisher[0]
2026-04-25T11:26:52.2457033Z Putting diagnostics/azuremonitor...
2026-04-25T11:26:52.4873411Z info: publisher[0]
2026-04-25T11:26:52.4873890Z Putting apis/greenit/policies/policy...
2026-04-25T11:26:52.5808296Z info: publisher[0]
2026-04-25T11:26:52.5808945Z Putting subscriptions/Claude...
2026-04-25T11:26:52.8308077Z info: publisher[0]
2026-04-25T11:26:52.8308923Z Putting apis/immidart/policies/policy...
2026-04-25T11:26:53.0079743Z info: publisher[0]
2026-04-25T11:26:53.0080235Z Putting products/starter/groupLinks/920-506C-428F-AD6C-A4...
2026-04-25T11:26:53.2372248Z info: publisher[0]
2026-04-25T11:26:53.2372970Z Putting subscriptions/6978c02...
2026-04-25T11:26:53.5093969Z info: publisher[0]
2026-04-25T11:26:53.5094806Z Putting apis/ams_api/policies/policy...
2026-04-25T11:26:53.5667437Z info: publisher[0]
2026-04-25T11:26:53.5668495Z Putting subscriptions/69831d1...
2026-04-25T11:26:53.9741850Z info: publisher[0]
2026-04-25T11:26:53.9744930Z Putting tags/Assistants...
2026-04-25T11:26:54.0798084Z info: publisher[0]
2026-04-25T11:26:54.0798498Z Putting apis/d365-dev/policies/policy...
2026-04-25T11:26:54.1256277Z info: publisher[0]
2026-04-25T11:26:54.1258147Z Putting apis/prism_force_application/policies/policy...
2026-04-25T11:26:54.6035453Z info: publisher[0]
2026-04-25T11:26:54.6038685Z Putting tags/Vector-Stores...
2026-04-25T11:26:54.7122893Z info: publisher[0]
2026-04-25T11:26:54.7123665Z Putting tags/Chat...
2026-04-25T11:26:54.8229993Z info: publisher[0]
2026-04-25T11:26:54.8231008Z Putting products/unlimited/groupLinks/3CF8-B14A-48E5-B869-921B...
2026-04-25T11:26:54.9627043Z info: publisher[0]
2026-04-25T11:26:54.9627575Z Putting products/starter/groupLinks/613-95B7-4B9D-A46D-726...
2026-04-25T11:26:55.1190306Z info: publisher[0]
2026-04-25T11:26:55.1190835Z Putting apis/ltts-agenticiq-9588-resource-openai/policies/policy...
2026-04-25T11:26:55.2289292Z info: publisher[0]
2026-04-25T11:26:55.2289777Z Putting subscriptions/GPTopen...
2026-04-25T11:26:55.3185028Z info: publisher[0]
2026-04-25T11:26:55.3185786Z Putting products/unlimited/groupLinks/8DE1-76DB-4AF2-A185-98E9...
2026-04-25T11:26:55.5788956Z info: publisher[0]
2026-04-25T11:26:55.5789848Z Publisher completed successfully.
2026-04-25T11:26:55.5790579Z info: Microsoft.Hosting.Lifetime[0]
2026-04-25T11:26:55.5791222Z Application is shutting down...
2026-04-25T11:26:55.6105107Z Publisher completed successfully.
2026-04-25T11:26:55.6946952Z
2026-04-25T11:26:55.7020313Z ##[section]Finishing: Publish to prod
Release version
v7.0.0-alpha.3.0.1
Question Details
Description :-
I am using APIOps to promote APIs from a Dev APIM instance to a Prod APIM instance across different resource groups (same tenant).
While backends are correctly overridden using configuration.prod.yaml, named values are NOT getting overridden and retain Dev values in Prod.
Environment :-
Both resource groups have proper Contributor access via service connections
Setup / Workflow
After running extractor pipeline:
apimServiceName: prod-apim-instance
namedValues:
properties:
displayName: agify-url
value: "https://prod-agify.io"
backends:
properties:
url: "https://prod-genderize.io"
Expected behavior
Key Observation
Backend override works
Named Value override does NOT
This suggests:
Either namedValues override is not supported / broken in this version
Or additional configuration/flag is required
Question
If not:
Actual behavior
Reproduction Steps
If not: