Repository navigation
Conversation
Add preview authentication policies and additive API features, including EdgeAction ClientResponse invocation support. Preserve older API pins, add offline regression coverage, and bump the preview extension to 1.0.0b4. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: bc2407c6-94d7-4e44-9a99-cda968db2fb2
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution Zaaaaaa! We will review the pull request and get back to you soon. |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
There was a problem hiding this comment.
🔵 Needs a closer look
The changes require final human review because they are too complex or risky for automated approval.
No open issues 🎉
What changed in this PR
Upgrades the CDN/AFD generated surfaces from 2026-04-01-preview to 2026-09-01-preview, preserving separately pinned APIs.
Changes:
- Adds preview authentication-policy commands and new TLS, certificate-validation, capacity-distribution, and gRPC settings.
- Enables EdgeAction
ClientResponseinvocation across supported rule surfaces. - Releases
1.0.0b4with changelog updates and offline regression coverage.
| File | Description |
|---|---|
| src/cdn/setup.py | Updated as part of this pull request. |
| src/cdn/HISTORY.rst | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/profile_migration/_migrate.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/profile_migration/_commit.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/profile_migration/_check_compatibility.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/profile_migration/_abort.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/origin_group/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_validate_custom_domain.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_stop.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_start.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_purge.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_load.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/endpoint/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/edge_node/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_enable_https.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_disable_https.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/custom_domain/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/_usage.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/cdn/_name_exists.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/waf_log_analytic/ranking/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/waf_log_analytic/metric/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/security_policy/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/secret/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_remove.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/condition/_add.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_remove.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/action/_add.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_usage.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/rule_set/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/route/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/log_scrubbing/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/identity/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/identity/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/identity/_remove.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/identity/_assign.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_usage.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/profile/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/origin_group/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/log_analytic/resource/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/log_analytic/ranking/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/log_analytic/metric/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/log_analytic/location/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_purge.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/endpoint/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_regenerate_validation_token.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/custom_domain/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_wait.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_update.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_show.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_list.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_delete.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/_create.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/__init__.py | Updated as part of this pull request. |
| src/cdn/azext_cdn/aaz/latest/afd/auth_policy/__cmd_group.py | Updated as part of this pull request. |
Review effort: Balanced
Restore Classic CDN and shared profile generated commands to their existing API versions, excluding Classic CDN from new gRPC and ClientResponse features. Add backward-compatibility coverage and correct the changelog without changing recordings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 90ed8a3f-c0f0-4400-87f5-a337220a86e2
Record 22 AFD scenarios against API version 2026-09-01-preview, including AuthPolicy and standalone ClientResponse coverage. Preserve all existing Classic CDN recordings and the original batch RuleSet scenario scope. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 90ed8a3f-c0f0-4400-87f5-a337220a86e2
Separate Classic CDN profile commands from the AFD preview API and align scenario fixtures with refreshed recordings. Restore shared CLI Session state before deleting offline-test configuration directories, including setup-failure cleanup. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 90ed8a3f-c0f0-4400-87f5-a337220a86e2
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
X Engineering Agent ReportReview — Comments Upstream CI is green: 23 checks completed, zero failures. One confirmed TLS-group regression-coverage gap remains; no production failure is inferred from the skip alone. Semantic finding — P2 · Test semantic-strength — verify TLS-group behavior before shipping it.
Resolve the service/Swagger alignment in its owning source and regenerate if needed, then re-enable the scenario; alternatively defer this surface and its release claim. Focused verification: re-record that scenario into Test validation
Evidence-based correction to the supplied applicability result: TLS-group integration coverage is unverified for the concrete reason above. Author-provided recordings separately contain auth-policy updates, certificate validation, capacity/gRPC changes and ClientResponse transitions; they are not Agent live-test results. No tests were executed in this review. Generator reproducibility and sovereign-cloud availability were not independently verified. Risk assessment — 100/100 · CriticalThe Critical rating is driven by security-sensitive behavior, public CLI behavior, dependency or supply chain and 2 additional signal(s).
Posted by x-engineering-agent (Reviewer) |
🤖 PR Validation —⚠️ Review suggested
Summary
Upgrade only the CDN/AFD generated surfaces that previously consumed
2026-04-01-previewto2026-09-01-preview, based on the ARM-signed-off Swagger in Azure/azure-rest-api-specs#46300.az afd auth-policycommand group for Microsoft Entra ID authentication, domain/route associations, Block/Log actions, and token forwarding.ClientResponseinvocation, with offline assertions on the actual serializedparameters.invocationPointfor rule creation, rule action property commands, batch rules, and CDN endpoint delivery policies.cdn profile deployment-versioncommands pinned to2025-09-01-preview, and legacy2021-06-01SDK overrides.1.0.0b3to1.0.0b4and updateHISTORY.rst. Keepazext.isPreview=trueand minimum CLI core2.85.0. Do not modifysrc/index.json.Corresponding AAZ models: Azure/aaz#1132.
Related commands
az afd auth-policy,az afd custom-domain,az afd origin,az afd origin-group,az afd route,az afd rule,az afd rule action,az afd rule-set, and existing sharedaz cdncommand surfaces.Scope and source
Azure/azure-cli-extensionsmain atebea488892f255360e25bc481fc3f01fd5990334(cdn1.0.0b3).Azure/aazmain atf4676b10d373ec9f5c0b63b986fe2a1832682814.cf828ab99c8616af7ec90725025d3ef8fae01fa7.e49e407a066a868ebbb064801b662a5be89ab108; the target OpenAPI content was rechecked against the later PR head and is unchanged.ef6c5c54c68d1534befa1968bf52d2192f4962df.Validation
Offline regression suite: 25 tests passed, 132 subtests passed:
azdev style cdn: PASS, including pylint and flake8. On the local editable Windows setup,PYTHONPATHexplicitly included the CLI, CLI core, and CLI telemetry source roots.Static linter checks, AAZ model verification for
afd/cdn, Python compilation, andgit diff --check: PASS.Strict generated-scope audit: existing code changes are additive after normalizing API-version literals/docstrings; preserved API pins and unchanged legacy/custom registrations are checked separately.
Dedicated compatibility evidence
The upstream CI entry point
.azure-pipelines/breaking-change-tests.ymlusesscripts/ci/breaking_change_test.py, which exports command metadata and invokesazdev command-change meta-diff. The same supported subcommands were run locally against an isolated checkout of the exact main baseline and the final1.0.0b4candidate, using the same CLI runtime (b799e5bc71a603b890705a3c7a9729793a5c5708):3.13.14, azdev0.2.13, azure-cli-diff-tool0.1.1.0; 15 non-breaking findings and 0 breaking findings. The JSON findings were inspected, not inferred from the exit code alone.Release readiness and limitations
cdn1.0.0b4PreviewGeneral guidelines
azdev style cdnlocally.python scripts/ci/test_index.py -qlocally. Not run: this PR does not change the extension index.