Skip to content

{App Configuration} Upgrade data-plane SDK to 1.10.0b1 - #33968

Open
Christine Wanjau (ChristineWanjau) wants to merge 4 commits into
Azure:devfrom
ChristineWanjau:cwanjau/upgradeAppConfigDataPlaneSdk
Open

{App Configuration} Upgrade data-plane SDK to 1.10.0b1#33968
Christine Wanjau (ChristineWanjau) wants to merge 4 commits into
Azure:devfrom
ChristineWanjau:cwanjau/upgradeAppConfigDataPlaneSdk

Conversation

@ChristineWanjau

@ChristineWanjau Christine Wanjau (ChristineWanjau) commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🤖 PR Validation — ️✔️ All clear

Breaking Changes Tests
️✔️ None ️✔️ 130/130

Related command

az appconfig

Description

Upgrade the App Configuration data-plane SDK from azure-appconfiguration 1.8.0 to the 1.10.0b1 prerelease using an exact dependency pin.

Regenerate affected App Configuration recordings with SDK 1.10.0b1 and data-plane API version 2026-05-01-preview. Remove the local run-prefix helper so recording and playback resource names remain deterministic, and make the optional test cleanup remove all resources from the dedicated test resource group with a correct null/empty collection check.

The local-auth scenario cannot be recorded live in the test subscription because policy denies enabling local authentication. Its two data-plane request URIs were migrated to 2026-05-01-preview and verified in playback.

Testing Guide

  • Verified the installed azure-appconfiguration version is 1.10.0b1.
  • Re-recorded 19 affected live scenarios: 19 passed.
  • azdev test appconfig --no-exitfirst --series: 31 passed, 8 skipped.
  • Repository pre-push suite: 32 passed, 9 skipped.
  • Repository pre-commit azdev scan passed.

Copilot AI lite review requested due to automatic review settings August 24, 2026 11:27
@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi Christine Wanjau (@ChristineWanjau),
Since the current milestone time is less than 7 days, this pr may not catch up with this release.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR upgrades the azure-appconfiguration data-plane SDK used by az appconfig from 1.8.0 to 1.9.0, and aligns the App Configuration scenario tests/recordings with the newer SDK behavior (including updated data-plane API version and deterministic resource naming during recording/playback).

Changes:

  • Bump azure-appconfiguration dependency to 1.9.0 across setup and platform requirement files.
  • Remove the local run-prefix helper (get_resource_name_prefix) and switch tests to fixed prefixes for deterministic recordings.
  • Update App Configuration test recordings to reflect SDK 1.9.0 request/response shapes and api-version=2026-04-01; adjust local test runner cleanup behavior.

Reviewed changes

Copilot reviewed 23 out of 39 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/azure-cli/setup.py Updates azure-appconfiguration dependency constraint to ~=1.9.0.
src/azure-cli/requirements.py3.windows.txt Pins azure-appconfiguration==1.9.0 for Windows builds.
src/azure-cli/requirements.py3.Linux.txt Pins azure-appconfiguration==1.9.0 for Linux builds.
src/azure-cli/requirements.py3.Darwin.txt Pins azure-appconfiguration==1.9.0 for macOS builds.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_snapshot_commands.py Removes run-prefix helper usage to keep snapshot test names deterministic.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_replica_commands.py Removes run-prefix helper usage for replica tests.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_nsp_commands.py Removes run-prefix helper usage for NSP scenario tests.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_mgmt_commands.py Removes run-prefix helper usage across management-plane scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_snapshot_reference_commands.py Removes run-prefix helper usage for snapshot reference scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_import_export_commands.py Removes run-prefix helper usage across import/export scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_commands.py Removes run-prefix helper usage to keep KV scenario naming deterministic.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_key_validation.py Removes run-prefix helper usage for key validation scenario.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_json_content_type.py Removes run-prefix helper usage for JSON content-type scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_identity_commands.py Removes run-prefix helper usage for identity scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_feature_commands.py Removes run-prefix helper usage for feature flag scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_credential_commands.py Removes run-prefix helper usage for credential scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_aad_auth.py Removes run-prefix helper usage for AAD auth scenarios.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/recordings/test_azconfig_local_auth.yaml Updates playback-only URIs to api-version=2026-04-01.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/recordings/test_azconfig_key_validation.yaml Regenerates recording for SDK 1.9.0 (headers/body shape and api-version=2026-04-01).
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/_test_utils.py Removes the local prefix helper (get_resource_name_prefix) used for local runs.
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/_run_all_test.ps1 Updates default local RG name and removes timestamp-based prefixing; cleanup now targets all resources.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +46 to +50
# Delete all resources in the test resource group
foreach ($resource in $resources) {
if ($resource.name.StartsWith($prefix)) {
Write-Host "Deleting resource: $($resource.name)"

try {
# Delete the resource using its ID
az resource delete --ids $resource.id
Write-Host "Successfully deleted resource: $($resource.name)"
} catch {
Write-Host "Failed to delete resource: $($resource). Error: $_"
}
Write-Host "Deleting resource: $($resource.name)"

try {
@yonzhan

Copy link
Copy Markdown
Collaborator

App Configuration

@a0x1ab Aditya Pujara (a0x1ab) added the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 24, 2026
@azure-client-tools-agent

Copy link
Copy Markdown
Contributor

Live test results — azdev test --live --series (changed test files only)

FAIL (exit 1)

Selectors: _test_utils test_appconfig_aad_auth test_appconfig_credential_commands test_appconfig_feature_commands test_appconfig_identity_commands test_appconfig_json_content_type test_appconfig_key_validation test_appconfig_kv_commands test_appconfig_kv_import_export_commands test_appconfig_kv_snapshot_reference_commands test_appconfig_mgmt_commands test_appconfig_nsp_commands test_appconfig_replica_commands test_appconfig_snapshot_commands (module)
PR head ref: cwanjau/upgradeAppConfigDataPlaneSdk
PR head sha: c43825b3396bba2593af792ab47fb5c68cf6acc1
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/_test_utils.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_aad_auth.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_credential_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_feature_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_identity_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_json_content_type.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_key_validation.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_import_export_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_kv_snapshot_reference_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_mgmt_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_nsp_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_replica_commands.py
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/test_appconfig_snapshot_commands.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/32727928378

Live-test recordings: 1 regenerated — archived in workflow artifact live-test-pr-33968 (recordings/).

ℹ️ This PR is from a fork, so recordings were not pushed automatically. Download them from the artifact and commit to your branch.

Recording files
src/azure-cli/azure/cli/command_modules/appconfig/tests/latest/recordings/test_azconfig_aad_auth.yaml
Last 80 lines of azdev output
        **kwargs: Any
    ) -> _models.RoleAssignment:
        """Create or update a role assignment by scope and name.
    
        :param scope: The fully qualified Azure Resource manager identifier of the resource. Required.
        :type scope: str
        :param role_assignment_name: The name of the role assignment. It can be any valid GUID.
         Required.
        :type role_assignment_name: str
        :param parameters: Parameters for the role assignment. Is one of the following types:
         RoleAssignmentCreateParameters, JSON, IO[bytes] Required.
        :type parameters: ~azure.mgmt.authorization.models.RoleAssignmentCreateParameters or JSON or
         IO[bytes]
        :return: RoleAssignment. The RoleAssignment is compatible with MutableMapping
        :rtype: ~azure.mgmt.authorization.models.RoleAssignment
        :raises ~azure.core.exceptions.HttpResponseError:
        """
        error_map: MutableMapping = {
            401: ClientAuthenticationError,
            404: ResourceNotFoundError,
            409: ResourceExistsError,
            304: ResourceNotModifiedError,
        }
        error_map.update(kwargs.pop("error_map", {}) or {})
    
        _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
        _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
    
        api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2022-04-01"))
        content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
        cls: ClsType[_models.RoleAssignment] = kwargs.pop("cls", None)
    
        content_type = content_type or "application/json"
        _content = None
        if isinstance(parameters, (IOBase, bytes)):
            _content = parameters
        else:
            _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True)  # type: ignore
    
        _request = build_role_assignments_create_request(
            scope=scope,
            role_assignment_name=role_assignment_name,
            api_version=api_version,
            content_type=content_type,
            content=_content,
            headers=_headers,
            params=_params,
        )
        path_format_arguments = {
            "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
        }
        _request.url = self._client.format_url(_request.url, **path_format_arguments)
    
        _decompress = kwargs.pop("decompress", True)
        _stream = kwargs.pop("stream", False)
        pipeline_response: PipelineResponse = self._client._pipeline.run(  # pylint: disable=protected-access
            _request, stream=_stream, **kwargs
        )
    
        response = pipeline_response.http_response
    
        if response.status_code not in [200, 201]:
            if _stream:
                try:
                    response.read()  # Load the body in memory and close the socket
                except (StreamConsumedError, StreamClosedError):
                    pass
            map_error(status_code=response.status_code, response=response, error_map=error_map)
            error = _failsafe_deserialize(
                _models.ErrorResponse,
                response,
            )
>           raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
E           azure.core.exceptions.HttpResponseError: (AuthorizationFailed) The client '0e3f3a8f-fca3-4bae-a92c-85671f23653d' with object id '2e33964b-16e6-4a21-af39-7a12d4cf766e' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/f758ac53-3e63-4317-a956-0997793808d7/resourceGroups/clitest.rg3u2cykbrptcjns3of57htqgqx2vtlkfdmagtctcsyxviislhnbyjn65ed23vnkiiw/providers/Microsoft.AppConfiguration/configurationStores/aadstoreccixlxrwbcokkj2n/providers/Microsoft.Authorization/roleAssignments/e9b44829-67d0-4f73-8608-8060cc5e0ced' or the scope is invalid. If access was recently granted, please refresh your credentials.
E           Code: AuthorizationFailed
E           Message: The client '0e3f3a8f-fca3-4bae-a92c-85671f23653d' with object id '2e33964b-16e6-4a21-af39-7a12d4cf766e' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/f758ac53-3e63-4317-a956-0997793808d7/resourceGroups/clitest.rg3u2cykbrptcjns3of57htqgqx2vtlkfdmagtctcsyxviislhnbyjn65ed23vnkiiw/providers/Microsoft.AppConfiguration/configurationStores/aadstoreccixlxrwbcokkj2n/providers/Microsoft.Authorization/roleAssignments/e9b44829-67d0-4f73-8608-8060cc5e0ced' or the scope is invalid. If access was recently granted, please refresh your credentials.

.venv/lib/python3.12/site-packages/azure/mgmt/authorization/operations/_operations.py:10039: HttpResponseError
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
========================= 1 failed, 1 passed in 43.72s =========================

Posted by agent-assist live-test workflow.

@azure-client-tools-agent azure-client-tools-agent Bot added the azure-client-tools-agent Pull request reviewed by Azure Client Tools Agent label Aug 24, 2026

@azure-client-tools-agent azure-client-tools-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Christine Wanjau (@ChristineWanjau), ## Review

Upstream CI

Azure.azure-cli

  • Result: failure
  • Failure details:
    • Unit Test for Core Python312 (Not PR-related)
      • Evidence: The job running on agent pool-ubuntu-2204 32 ran longer than the maximum time of 10 minutes. For more information, see https://go.microsoft.com/fwlink/?linkid=2077134
      • Next action: Re-run the timed-out job. If it times out again at the same setup or checkout step, escalate to the pipeline owner instead of changing unrelated PR source.
      • Verify: Re-run Unit Test for Core Python312 and confirm the job completes within its limit.

Test validation

  • Live test: Failed with conclusion failure. Workflow run
  • Regression coverage: Not applicable to the changed files.

CI failure assessment:
The Azure.azure-cli build failure needs investigation. Please review the failing unit tests and address any issues related to changes in this PR. If the failures are unrelated to this PR, rerun the failing workflow.

Risk assessment

11/100 · Low · Low confidence

No additional owning-squad review signal was detected. Main signals: small, isolated diff.

@azure-client-tools-agent azure-client-tools-agent Bot removed the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 24, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

🔔 Routing this PR to @Azure/act-codegen-extensibility-squad.

@ChristineWanjau Christine Wanjau (ChristineWanjau) changed the title {App Configuration} Upgrade data-plane SDK to 1.9.0 {App Configuration} Upgrade data-plane SDK to 1.10.0b1 Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

act-codegen-extensibility-squad App Configuration Auto-Assign Auto assign by bot azure-client-tools-agent Pull request reviewed by Azure Client Tools Agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants