Skip to content

[AppConfig] az appconfig create/update: Add support to link store with azure front door profile#32767

Open
ChristineWanjau wants to merge 10 commits intoAzure:devfrom
ChristineWanjau:cwanjau/azureFrontDoorFeature
Open

[AppConfig] az appconfig create/update: Add support to link store with azure front door profile#32767
ChristineWanjau wants to merge 10 commits intoAzure:devfrom
ChristineWanjau:cwanjau/azureFrontDoorFeature

Conversation

@ChristineWanjau
Copy link
Contributor

@ChristineWanjau ChristineWanjau commented Feb 10, 2026

Related command

az appconfig create/update

Description

This PR adds support to link azure front door profile to app configuration store.

Testing Guide

History Notes

[App config] az appconfig create/update: Add support to link azure front door profile


This checklist is used to make sure that common guidelines for a pull request are followed.

Copilot AI review requested due to automatic review settings February 10, 2026 09:35
@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Feb 10, 2026

️✔️AzureCLI-FullTest
️✔️acr
️✔️latest
️✔️3.12
️✔️3.13
️✔️acs
️✔️latest
️✔️3.12
️✔️3.13
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.13
️✔️ams
️✔️latest
️✔️3.12
️✔️3.13
️✔️apim
️✔️latest
️✔️3.12
️✔️3.13
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.13
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.13
️✔️aro
️✔️latest
️✔️3.12
️✔️3.13
️✔️backup
️✔️latest
️✔️3.12
️✔️3.13
️✔️batch
️✔️latest
️✔️3.12
️✔️3.13
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.13
️✔️billing
️✔️latest
️✔️3.12
️✔️3.13
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.13
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.13
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.13
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.13
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.13
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.13
️✔️config
️✔️latest
️✔️3.12
️✔️3.13
️✔️configure
️✔️latest
️✔️3.12
️✔️3.13
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.13
️✔️container
️✔️latest
️✔️3.12
️✔️3.13
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.13
️✔️core
️✔️latest
️✔️3.12
️✔️3.13
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.13
️✔️databoxedge
️✔️latest
️✔️3.12
️✔️3.13
️✔️dls
️✔️latest
️✔️3.12
️✔️3.13
️✔️dms
️✔️latest
️✔️3.12
️✔️3.13
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.13
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.13
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.13
️✔️find
️✔️latest
️✔️3.12
️✔️3.13
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.13
️✔️identity
️✔️latest
️✔️3.12
️✔️3.13
️✔️iot
️✔️latest
️✔️3.12
️✔️3.13
️✔️keyvault
️✔️latest
️✔️3.12
️✔️3.13
️✔️lab
️✔️latest
️✔️3.12
️✔️3.13
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.13
️✔️maps
️✔️latest
️✔️3.12
️✔️3.13
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.13
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.13
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.13
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.13
️✔️network
️✔️latest
️✔️3.12
️✔️3.13
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.13
️✔️postgresql
️✔️latest
️✔️3.12
️✔️3.13
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.13
️✔️profile
️✔️latest
️✔️3.12
️✔️3.13
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.13
️✔️redis
️✔️latest
️✔️3.12
️✔️3.13
️✔️relay
️✔️latest
️✔️3.12
️✔️3.13
️✔️resource
️✔️latest
️✔️3.12
️✔️3.13
️✔️role
️✔️latest
️✔️3.12
️✔️3.13
️✔️search
️✔️latest
️✔️3.12
️✔️3.13
️✔️security
️✔️latest
️✔️3.12
️✔️3.13
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.13
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.13
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.13
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.13
️✔️sql
️✔️latest
️✔️3.12
️✔️3.13
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.13
️✔️storage
️✔️latest
️✔️3.12
️✔️3.13
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.13
️✔️telemetry
️✔️latest
️✔️3.12
️✔️3.13
️✔️util
️✔️latest
️✔️3.12
️✔️3.13
️✔️vm
️✔️latest
️✔️3.12
️✔️3.13

@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Feb 10, 2026

⚠️AzureCLI-BreakingChangeTest
⚠️appconfig
rule cmd_name rule_message suggest_message
⚠️ 1006 - ParaAdd appconfig create cmd appconfig create added parameter azure_front_door_profile
⚠️ 1006 - ParaAdd appconfig update cmd appconfig update added parameter azure_front_door_profile

@yonzhan
Copy link
Collaborator

yonzhan commented Feb 10, 2026

Thank you for your contribution! We will review the pull request and get back to you soon.

@github-actions
Copy link

The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR.

Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions).
After that please run the following commands to enable git hooks:

pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support in the appconfig command module to link/unlink an Azure Front Door (AFD) profile to an App Configuration store, leveraging newer App Configuration management-plane capabilities.

Changes:

  • Bumps azure-mgmt-appconfiguration dependency to 6.0.0b1 to access the azureFrontDoor model surface.
  • Adds --azure-front-door-profile to az appconfig create/update, wiring it through to the ARM payload.
  • Adds a scenario test + recording to validate link/unlink behavior, and updates help/linter exclusions accordingly.

Reviewed changes

Copilot reviewed 11 out of 33 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/azure-cli/setup.py Updates the pinned azure-mgmt-appconfiguration SDK version.
src/azure-cli/requirements.py3.windows.txt Keeps Windows pinned requirements aligned with the new SDK version.
src/azure-cli/requirements.py3.Linux.txt Keeps Linux pinned requirements aligned with the new SDK version.
src/azure-cli/requirements.py3.Darwin.txt Keeps macOS pinned requirements aligned with the new SDK version.
src/azure-cli/azure/cli/command_modules/appconfig/custom.py Adds request payload support for azureFrontDoor.resourceId on create/update.
src/azure-cli/azure/cli/command_modules/appconfig/_params.py Introduces azure_front_door_profile CLI argument for create/update.
src/azure-cli/azure/cli/command_modules/appconfig/_help.py Documents new usage examples for linking/unlinking an AFD profile.
src/azure-cli/azure/cli/command_modules/appconfig/linter_exclusions.yml Adds linter exclusions for the new parameter (and aligns existing ones).
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_mgmt_commands.py Adds scenario test coverage for linking/unlinking AFD profile.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/recordings/test_azconfig_azure_front_door_profile.yaml New recording for the AFD link/unlink scenario test.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/recordings/test_azconfig_user_token_audience.yaml Re-recorded interactions reflecting the new RP api-version/shape.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

'azure-mgmt-advisor==9.0.0',
'azure-mgmt-apimanagement==4.0.0',
'azure-mgmt-appconfiguration==5.0.0',
'azure-mgmt-appconfiguration==6.0.0b1',
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bumps azure-mgmt-appconfiguration to a beta/preview SDK. That changes the default App Configuration RP api-version used by the module (recordings show a switch to 2025-06-01-preview), which can impact compatibility in sovereign clouds and for other appconfig commands. If the preview api-version is required only for the new Azure Front Door linking feature, consider scoping the preview api-version to only the relevant operations (e.g., create/update when --azure-front-door-profile is used) or explicitly documenting/justifying the global switch in the PR (and verifying cloud support).

Copilot uses AI. Check for mistakes.
Comment on lines +518 to +522
location = 'eastus'

self.kwargs.update({
'config_store_name': config_store_name,
'rg_loc': location,
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test overwrites the location argument provided by ResourceGroupPreparer with a hard-coded 'eastus', which makes the scenario less portable and can fail in environments where that region isn't available. Prefer using the injected location (or assign the hard-coded value to a differently named variable like store_location) to avoid shadowing and improve test maintainability.

Copilot uses AI. Check for mistakes.
@ChristineWanjau ChristineWanjau changed the title [AppConfig] az appconfig create/update: Add support to link azure front door profile [AppConfig] az appconfig create/update: Add support to link store with azure front door profile Feb 23, 2026

azure_front_door = None
if azure_front_door_profile is not None:
azure_front_door = AzureFrontDoorProperties(resource_id=azure_front_door_profile if azure_front_door_profile else None)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the inline if check needed since line 76 confirms the front door profile is not none?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AzureFrontDoorProperties object has resource_id as optional, I'd just remove both if statements. i.e. just have this as line 76. See: https://github.com/Azure/azure-sdk-for-python/blob/2d7c1259d52c5ac41aaedf7581478e2ede32b575/sdk/appconfiguration/azure-mgmt-appconfiguration/azure/mgmt/appconfiguration/models/_models.py#L68. I'd rather have the None resource_id that is already typed then the extra None properties object.

azure_front_door = AzureFrontDoorProperties(resource_id=azure_front_door_profile)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense. I have updated accordingly.
Left one check because when user wants to unlink their afd they pass an empty string. The RP doesn't allow an empty string as a valid property, we should be passing None for such a case.
image

Copy link
Member

@albertofori albertofori Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious for the update scenario. Assuming user has already linked an AFD resource and wants to update a different property, will the linked AFD resource be cleared since they will not be specifying it? And if so, is this behavior consistent with other properties? I ask since it appears that we will always pass AzureFrontDoorProperties(None) when the resource_id is not specified, which might be equivalent payload to unlinking a resource.

Is that the case?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah thats the case. Just updated the logic

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I guess the expected behavior is that passing no resource id means no change in update scenario, right? User explicitly passes empty string to unlink.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChristineWanjau I see we have a test for adding and removing the profile. Can we add a test for making sure it's not removed if it isn't included?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that makes sense to me. I have added a test for such a case.

'azure-mgmt-advisor==9.0.0',
'azure-mgmt-apimanagement==4.0.0',
'azure-mgmt-appconfiguration==5.0.0',
'azure-mgmt-appconfiguration==6.0.0b1',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we planning on releasing this as a beta from main? or are we expecting the ga of 6.0.0 before then? This will block main from GA releases until this GAs.

Copy link
Contributor Author

@ChristineWanjau ChristineWanjau Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean the CLI release?
I think it's allowed to release using a beta sdk in the CLI. I see multiple beta sdks in the setup.py

'azure-mgmt-containerinstance==10.2.0b1',

I added is_preview tag in the afd argument.
image
cc: @albertofori thoughts? Is this blocking?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChristineWanjau just to confirm, this beta release should already have Telemetry in the Configuration Store definition, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it should

Copy link
Member

@albertofori albertofori Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, then I don't think there should be anything that we anticipate being GA'd soon so this should be fine. @mrm9084, please correct me if I am wrong or missing something

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants