Repository navigation
Complete Azure provisioning SDK integration coverage - #20131
Sébastien Ros (sebastienros) merged 12 commits into
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20131Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20131" |
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
7477b17 to
6f084aa
Compare
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
6f084aa to
b0be6c6
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
The package documentation contains an invalid Redis enum example and an incomplete, branch-relative integration inventory.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds the remaining opt-in Azure Provisioning SDK proxies for polyglot AppHosts.
Changes:
- Adds 12 experimental Azure provisioning proxy packages.
- Fixes proxy generation, union marshalling, and Java enum-name collisions.
- Extends TypeScript, Python, Java, and Go validation fixtures and documentation.
File summaries
| File | Description |
|---|---|
Aspire.slnx |
Registers the new proxy projects. |
src/Aspire.Hosting.RemoteHost/Ats/AtsMarshaller.cs |
Marshals values according to declared union members. |
src/Aspire.Hosting.CodeGeneration.Java/AtsJavaCodeGenerator.cs |
Disambiguates normalized Java enum constants. |
src/Aspire.Hosting.Azure.Provisioning.Generators/AspireProvisioningProxyGenerator.cs |
Handles inherited methods, nullable constructors, and complex value collections. |
src/Aspire.Hosting.Azure.Provisioning/README.md |
Adds the provisioning integration inventory. |
tests/Aspire.Hosting.RemoteHost.Tests/AtsMarshallerTests.cs |
Tests union-result marshalling. |
tests/Aspire.Hosting.Azure.Provisioning.Tests/AspireProvisioningProxyGeneratorTests.cs |
Updates provisioning SDK test doubles. |
src/Aspire.Hosting.Azure.Provisioning.AppConfiguration/README.md |
Documents the App Configuration proxy. |
src/Aspire.Hosting.Azure.Provisioning.AppConfiguration/AtsTypeMappings.cs |
Selects the App Configuration root. |
src/Aspire.Hosting.Azure.Provisioning.AppConfiguration/Aspire.Hosting.Azure.Provisioning.AppConfiguration.csproj |
Defines the App Configuration package. |
src/Aspire.Hosting.Azure.Provisioning.AppContainers/README.md |
Documents the Container Apps proxy. |
src/Aspire.Hosting.Azure.Provisioning.AppContainers/AtsTypeMappings.cs |
Selects Container Apps roots and exclusions. |
src/Aspire.Hosting.Azure.Provisioning.AppContainers/Aspire.Hosting.Azure.Provisioning.AppContainers.csproj |
Defines the Container Apps package. |
src/Aspire.Hosting.Azure.Provisioning.AppService/README.md |
Documents the App Service proxy. |
src/Aspire.Hosting.Azure.Provisioning.AppService/AtsTypeMappings.cs |
Selects App Service roots and exclusions. |
src/Aspire.Hosting.Azure.Provisioning.AppService/Aspire.Hosting.Azure.Provisioning.AppService.csproj |
Defines the App Service package. |
src/Aspire.Hosting.Azure.Provisioning.Cdn/README.md |
Documents the Front Door/CDN proxy. |
src/Aspire.Hosting.Azure.Provisioning.Cdn/AtsTypeMappings.cs |
Selects the CDN profile root. |
src/Aspire.Hosting.Azure.Provisioning.Cdn/Aspire.Hosting.Azure.Provisioning.Cdn.csproj |
Defines the CDN package. |
src/Aspire.Hosting.Azure.Provisioning.ContainerService/README.md |
Documents the AKS proxy. |
src/Aspire.Hosting.Azure.Provisioning.ContainerService/AtsTypeMappings.cs |
Selects the AKS root and exclusion. |
src/Aspire.Hosting.Azure.Provisioning.ContainerService/Aspire.Hosting.Azure.Provisioning.ContainerService.csproj |
Defines the Container Service package. |
src/Aspire.Hosting.Azure.Provisioning.Kusto/README.md |
Documents the Kusto proxy. |
src/Aspire.Hosting.Azure.Provisioning.Kusto/AtsTypeMappings.cs |
Selects the Kusto root. |
src/Aspire.Hosting.Azure.Provisioning.Kusto/Aspire.Hosting.Azure.Provisioning.Kusto.csproj |
Defines the Kusto package. |
src/Aspire.Hosting.Azure.Provisioning.Network/README.md |
Documents the Network proxy. |
src/Aspire.Hosting.Azure.Provisioning.Network/AtsTypeMappings.cs |
Selects Network roots and exclusions. |
src/Aspire.Hosting.Azure.Provisioning.Network/Aspire.Hosting.Azure.Provisioning.Network.csproj |
Defines the Network package. |
src/Aspire.Hosting.Azure.Provisioning.PostgreSql/README.md |
Documents the PostgreSQL proxy. |
src/Aspire.Hosting.Azure.Provisioning.PostgreSql/AtsTypeMappings.cs |
Selects the PostgreSQL root. |
src/Aspire.Hosting.Azure.Provisioning.PostgreSql/Aspire.Hosting.Azure.Provisioning.PostgreSql.csproj |
Defines the PostgreSQL package. |
src/Aspire.Hosting.Azure.Provisioning.PrivateDns/README.md |
Documents the Private DNS proxy. |
src/Aspire.Hosting.Azure.Provisioning.PrivateDns/AtsTypeMappings.cs |
Selects the Private DNS root. |
src/Aspire.Hosting.Azure.Provisioning.PrivateDns/Aspire.Hosting.Azure.Provisioning.PrivateDns.csproj |
Defines the Private DNS package. |
src/Aspire.Hosting.Azure.Provisioning.Redis/README.md |
Documents the legacy Redis proxy. |
src/Aspire.Hosting.Azure.Provisioning.Redis/AtsTypeMappings.cs |
Selects the Redis root and exclusion. |
src/Aspire.Hosting.Azure.Provisioning.Redis/Aspire.Hosting.Azure.Provisioning.Redis.csproj |
Defines the Redis package. |
src/Aspire.Hosting.Azure.Provisioning.RedisEnterprise/README.md |
Documents the Managed Redis proxy. |
src/Aspire.Hosting.Azure.Provisioning.RedisEnterprise/AtsTypeMappings.cs |
Selects the Redis Enterprise root. |
src/Aspire.Hosting.Azure.Provisioning.RedisEnterprise/Aspire.Hosting.Azure.Provisioning.RedisEnterprise.csproj |
Defines the Redis Enterprise package. |
src/Aspire.Hosting.Azure.Provisioning.SignalR/README.md |
Documents the SignalR proxy. |
src/Aspire.Hosting.Azure.Provisioning.SignalR/AtsTypeMappings.cs |
Selects the SignalR root. |
src/Aspire.Hosting.Azure.Provisioning.SignalR/Aspire.Hosting.Azure.Provisioning.SignalR.csproj |
Defines the SignalR package. |
tests/PolyglotAppHosts/Aspire.Hosting/TypeScript/aspire.config.json |
Adds the Container Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting/TypeScript/apphost.mts |
Exercises AKS provisioning from TypeScript. |
tests/PolyglotAppHosts/Aspire.Hosting/Python/aspire.config.json |
Adds the Container Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting/Python/apphost.py |
Exercises AKS provisioning from Python. |
tests/PolyglotAppHosts/Aspire.Hosting/Java/aspire.config.json |
Adds the Container Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting/Java/AppHost.java |
Exercises AKS provisioning from Java. |
tests/PolyglotAppHosts/Aspire.Hosting/Go/aspire.config.json |
Adds Kubernetes and Container Service packages. |
tests/PolyglotAppHosts/Aspire.Hosting/Go/apphost.go |
Exercises AKS provisioning from Go. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/TypeScript/aspire.config.json |
Adds Front Door and CDN packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/TypeScript/apphost.mts |
Exercises CDN provisioning from TypeScript. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Python/aspire.config.json |
Adds Front Door and CDN packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Python/apphost.py |
Exercises CDN provisioning from Python. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Java/aspire.config.json |
Adds Front Door and CDN packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Java/AppHost.java |
Exercises CDN provisioning from Java. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Go/aspire.config.json |
Adds Front Door and CDN packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure/Go/apphost.go |
Exercises CDN provisioning from Go. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/TypeScript/aspire.config.json |
Adds the SignalR proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/TypeScript/apphost.mts |
Exercises SignalR provisioning from TypeScript. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Python/aspire.config.json |
Adds the SignalR proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Python/apphost.py |
Exercises SignalR provisioning from Python. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Java/aspire.config.json |
Adds the SignalR proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Java/AppHost.java |
Exercises SignalR provisioning from Java. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Go/aspire.config.json |
Adds the SignalR proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.SignalR/Go/apphost.go |
Exercises SignalR provisioning from Go. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/TypeScript/aspire.config.json |
Adds both Redis proxy dependencies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/TypeScript/apphost.mts |
Exercises managed and legacy Redis proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Python/aspire.config.json |
Adds both Redis proxy dependencies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Python/apphost.py |
Exercises managed and legacy Redis proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Java/aspire.config.json |
Adds both Redis proxy dependencies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Java/AppHost.java |
Exercises managed and legacy Redis proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Go/aspire.config.json |
Adds both Redis proxy dependencies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Redis/Go/apphost.go |
Exercises managed and legacy Redis proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/TypeScript/aspire.config.json |
Adds the PostgreSQL proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/TypeScript/apphost.mts |
Exercises PostgreSQL provisioning from TypeScript. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Python/aspire.config.json |
Adds the PostgreSQL proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Python/apphost.py |
Exercises PostgreSQL provisioning from Python. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Java/aspire.config.json |
Adds the PostgreSQL proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Java/AppHost.java |
Exercises PostgreSQL provisioning from Java. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Go/aspire.config.json |
Adds the PostgreSQL proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.PostgreSQL/Go/apphost.go |
Exercises PostgreSQL provisioning from Go. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/TypeScript/aspire.config.json |
Adds Network, Private DNS, and Storage packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/TypeScript/apphost.mts |
Exercises Network and Private DNS proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Python/aspire.config.json |
Adds Network, Private DNS, and Storage packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Python/apphost.py |
Exercises Network and Private DNS proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Java/aspire.config.json |
Adds Network, Private DNS, and Storage packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Java/AppHost.java |
Exercises Network proxies and enum collisions. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Go/aspire.config.json |
Adds Network, Private DNS, and Storage packages. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Network/Go/apphost.go |
Exercises Network and Private DNS proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/TypeScript/aspire.config.json |
Adds the Kusto proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/TypeScript/apphost.mts |
Exercises Kusto resources and inherited AddTo. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Python/aspire.config.json |
Adds the Kusto proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Python/apphost.py |
Exercises Kusto resources and inherited AddTo. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Java/aspire.config.json |
Adds the Kusto proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Java/AppHost.java |
Exercises Kusto resources and inherited AddTo. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Go/aspire.config.json |
Adds the Kusto proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.Kusto/Go/apphost.go |
Exercises Kusto resources and inherited AddTo. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/TypeScript/aspire.config.json |
Adds the App Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/TypeScript/apphost.mts |
Exercises plan, site, and location proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Python/aspire.config.json |
Adds the App Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Python/apphost.py |
Exercises plan, site, and location proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Java/aspire.config.json |
Adds the App Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Java/AppHost.java |
Exercises plan, site, and location proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Go/aspire.config.json |
Adds the App Service proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppService/Go/apphost.go |
Exercises plan, site, and location proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/TypeScript/aspire.config.json |
Adds the Container Apps proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/TypeScript/apphost.mts |
Exercises environment, app, and job proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Python/aspire.config.json |
Adds the Container Apps proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Python/apphost.py |
Exercises environment, app, and job proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Java/aspire.config.json |
Adds the Container Apps proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Java/AppHost.java |
Exercises environment, app, and job proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Go/aspire.config.json |
Adds the Container Apps proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppContainers/Go/apphost.go |
Exercises environment, app, and job proxies. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/TypeScript/aspire.config.json |
Adds the App Configuration proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/TypeScript/apphost.mts |
Exercises App Configuration provisioning. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Python/aspire.config.json |
Adds the App Configuration proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Python/apphost.py |
Exercises App Configuration provisioning. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Java/aspire.config.json |
Adds the App Configuration proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Java/AppHost.java |
Exercises App Configuration provisioning. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Go/aspire.config.json |
Adds the App Configuration proxy dependency. |
tests/PolyglotAppHosts/Aspire.Hosting.Azure.AppConfiguration/Go/apphost.go |
Exercises App Configuration provisioning. |
Review details
- Files reviewed: 123/123 changed files
- Comments generated: 3
- Review effort level: Balanced
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
App Service and Container Apps expose no-argument root getters whose lookup identifiers cannot match the generated resources.
Get a fresh assessment by requesting another Copilot review.
Review details
- Files reviewed: 125/125 changed files
- Comments generated: 2
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
🚀 Deployment tests starting on PR #20131... This will deploy to real Azure infrastructure. Results will be posted here when complete. |
|
The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests. Suspected flaky test(s):
Suggested actions:
You can re-run the failed jobs from the workflow run page. |
This comment has been minimized.
This comment has been minimized.
|
Documentation has been drafted in microsoft/aspire.dev#1748, targeting Updated the existing Azure customization guide with service-specific provisioning package/model mappings, separate SDK opt-ins, Container Apps and App Service lookup identifiers, IPv4/IPv6 and Bicep-handle collections, read-only output restrictions, and explicit projection exclusions. Existing foundational examples are retained. Triggered signals: The draft's repository, base/head, state, changed file and label were verified; the shared outcome validator passed. Note Human review is required before merging. |
Description
Add 12 opt-in Azure Provisioning SDK integrations for polyglot AppHosts, extending the bounded, experimental proxy model introduced by #19675. That parent has merged; this PR targets
main.Changes
<environment>_asplan) and sites (webapp) also use identifier-based lookup.AddTo, nullable-oblivious optional null parameters, and complex value-type collection elements such asAzureLocation.AADversusAad).Hosting-to-provisioning inventory
Hosting suffixes mean
Aspire.Hosting.Azure.<suffix>. SDK/proxy suffixes meanAzure.Provisioning.<suffix>/Aspire.Hosting.Azure.Provisioning.<suffix>.Aspire.Hosting.AzureAzure.Provisioning, shared runtime, and KeyVault support; not a separate service SDK.AppConfigurationStore.ApplicationInsightsComponent; OperationalInsights workspace support.CognitiveServicesAccount, including Azure OpenAI models.ConnectorGatewaymodels forMicrosoft.Web/connectorGatewaysand children. No standalone service SDK or SDK proxy; internal models are not projected.ContainerRegistryService.CosmosDBAccount; shared KeyVault support.EventHubsNamespace; Storage for storage-backed scenarios.CdnProfile, endpoints, origins, groups, and routes; not a separate FrontDoor SDK.KeyVaultService.ContainerServiceManagedCluster; shared Network, PrivateDns, ContainerRegistry, OperationalInsights.KustoCluster; identifier-addressable database children.VirtualNetwork,NetworkSecurityGroup,NatGateway,PublicIPAddress,PrivateEndpoint,NetworkSecurityPerimeter; PrivateDns:PrivateDnsZone. Subnets and DNS VNet links are children.OperationalInsightsWorkspace.PostgreSqlFlexibleServer; SDK spelling differs from hosting.RedisResourcefor Azure Cache for Redis; RedisEnterprise:RedisEnterpriseClusterfor Azure Managed Redis; KeyVault for access-key support.SandboxGroup/endpoint models are not a standalone service SDK and are not projected.SearchService.ServiceBusNamespace.SignalRService.SqlServer; shared Storage, Network, PrivateDns where needed.StorageAccount, including blob, queue, table, file models.WebPubSubService.The shared
Aspire.Hosting.Azure.Provisioningruntime and privateAspire.Hosting.Azure.Provisioning.Generatorsanalyzer complete the infrastructure portion of the inventory. The SDK proxies above account for the SDK-specific projects; the README links each project to its hosting dependency and lookup roots.Explicit exclusions
The projection is bounded, not a promise of complete Azure SDK coverage.
CustomCATrustCertificatesBicepList<BinaryData>lacks a type-safe ATS representation.AdditionalPropertiesBicepDictionary<BinaryData>.AdditionalPropertiesBicepDictionary<BinaryData>.AppContainers
OutboundIPAddressListand AppServiceIPAddresses,ExternalInboundIPAddresses,InternalInboundIPAddresses,LinuxOutboundIPAddresses, andWindowsOutboundIPAddressesare exported through IP address collection proxies. Service output lists retain SDK read-only restrictions.Usage
Existing C# configuration is unchanged. These packages remain experimental (
ASPIREAZUREPROVISIONING001) and do not change cloud authentication, resource lifecycles, or deployment defaults.Validation
The unmodified full fixture runtime suite is not claimed passing: fixtures contain pre-existing duplicate resource names, missing sample projects, and Go option-merging failures. Bounded smoke AppHosts isolate provisioning callbacks. Python smoke code normalizes the existing combined-argv issue with
shlex.splitonly in scratch; no production workaround is included. No Azure resources were deployed.Fixes # (issue)
Checklist
<remarks />and<code />elements on your triple slash comments?