Skip to content

API review fixes for 13.4 (PR #17700) - #17706

Merged
Jose Perez Rodriguez (joperezr) merged 2 commits into
release/13.4from
joperezr/api-review-13-4-fixes
May 30, 2026
Merged

API review fixes for 13.4 (PR #17700)#17706
Jose Perez Rodriguez (joperezr) merged 2 commits into
release/13.4from
joperezr/api-review-13-4-fixes

Conversation

@joperezr

@joperezr Jose Perez Rodriguez (joperezr) commented May 29, 2026

Copy link
Copy Markdown
Member

Addresses API design feedback from PR #17700 review while preserving the public API that has already shipped.

Changes

Network identifier naming

Aspire convention is Id (one word), so new/implementation-facing members use NetworkId / ContextNetworkId where possible. The shipped public members are kept for compatibility with the 13.x baseline:

  • AllocatedEndpoint.NetworkID
  • EndpointAnnotation.DefaultNetworkID
  • EndpointReference.ContextNetworkID
  • NetworkEndpointSnapshot.NetworkID

Constructor and method parameter renames such as networkID -> networkId are kept because they do not affect binary compatibility.

Azure role assignment experimental marker

AzureRoleAssignmentResource is marked [Experimental("ASPIREAZURE003")], reusing the existing diagnostic. Suppressions were added where existing code references the type.

EndpointReferenceAnnotation endpoint names

EndpointReferenceAnnotation.EndpointNames uses ISet<string> on the public surface while keeping a HashSet<string> backing field with the case-insensitive comparer.

Sealed resource classes

Classes that are new in 13.4 and not used as generic constraints remain sealed, including:

  • KubernetesHelmChartResource
  • BlazorWasmAppResource
  • BunAppResource

Classes that already shipped unsealed remain unsealed to avoid APICompat CP0009 breaks. This includes the resource types reported by the Build packages check:

  • ViteAppResource
  • AzureNatGatewayResource
  • AzureNetworkSecurityGroupResource
  • AzurePrivateEndpointResource
  • AzurePublicIPAddressResource
  • AzureSubnetResource
  • AzureVirtualNetworkResource

GoAppResource and NodeAppResource also remain unsealed because C# does not allow sealed types as generic constraints.

WithHiddenOnCompletion overload disambiguation

The = 0 default was removed from WithHiddenOnCompletion<T>(builder, int exitCode) so calls bind unambiguously:

  • WithHiddenOnCompletion(builder) -> params int[] overload
  • WithHiddenOnCompletion(builder, 5) -> int overload
  • WithHiddenOnCompletion(builder, 3, 7) -> params int[] overload

API compatibility

The Build packages check reported breaking changes from removed members and newly sealed shipped classes. This PR now undoes those check-reported breaks rather than reverting unrelated changes.

The targeted compatibility fixes are:

  • Restored NetworkID, DefaultNetworkID, ContextNetworkID, and NetworkEndpointSnapshot.NetworkID public members.
  • Removed sealed from the shipped JavaScript/Azure.Network resource classes listed above.

api/*.cs surface files

Intentionally not updated in this PR. Those files are regenerated as part of the API surface update process.

Validation

  • dotnet build src\Aspire.Hosting\Aspire.Hosting.csproj /p:SkipNativeBuild=true
  • dotnet build src\Aspire.Hosting.JavaScript\Aspire.Hosting.JavaScript.csproj /p:SkipNativeBuild=true
  • dotnet build src\Aspire.Hosting.Azure.Network\Aspire.Hosting.Azure.Network.csproj /p:SkipNativeBuild=true
  • dotnet pack for the same three projects

Addresses several issues found during API surface review:

1. Rename NetworkID -> NetworkId (and networkID -> networkId) on
   AllocatedEndpoint, EndpointAnnotation, EndpointReference,
   EndpointReferenceAnnotation, NetworkEndpointSnapshot,
   NetworkEndpointSnapshotList, and related methods/parameters.
2. Add [Experimental("ASPIREAZURE003")] to AzureRoleAssignmentResource.
3. Change EndpointReferenceAnnotation.EndpointNames from HashSet<string>
   to ISet<string> (backing field stays HashSet).
4. Add 'sealed' to new public resource classes that are not subclassed
   in the repo: KubernetesHelmChartResource, BlazorWasmAppResource,
   BunAppResource, NextJsAppResource, ViteAppResource,
   AzureNatGatewayResource, AzureNetworkSecurityGroupResource,
   AzureNetworkSecurityPerimeterResource, AzurePrivateEndpointResource,
   AzurePublicIPAddressResource, AzureSubnetResource,
   AzureVirtualNetworkResource. (GoAppResource and NodeAppResource left
   non-sealed because they are used as generic type constraints in the
   same assembly.)
5. Disambiguate WithHiddenOnCompletion overloads by removing the
   '= 0' default from the int overload, so calls with no argument
   resolve to the params overload.

api/*.cs and api/*.ats.txt are intentionally not updated here - the API
surface PR will regenerate them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17706

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17706"

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 applies API-review cleanup for the 13.4 surface by aligning naming with .NET/Aspire conventions, marking the role-assignment resource experimental, narrowing exposed collection types, sealing new public resource classes, and removing an ambiguous default parameter from WithHiddenOnCompletion.

Changes:

  • Renames NetworkID/networkID APIs and call sites to NetworkId/networkId.
  • Adds experimental annotation/suppressions for AzureRoleAssignmentResource.
  • Seals new public resource types and adjusts WithHiddenOnCompletion overload resolution.

A non-blocking spelling nit was stored on ResourceExtensions.cs.

Show a summary per file
File Description
src/Shared/StringComparers.cs Renames network comparer members to NetworkId.
src/Aspire.Hosting/ResourceBuilderExtensions.cs Updates network parameter/member names and WithHiddenOnCompletion overload docs/signature.
src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs Uses renamed endpoint default network property.
src/Aspire.Hosting/Dcp/DcpModelUtilities.cs Uses renamed allocated endpoint network members/locals.
src/Aspire.Hosting/Dcp/DcpExecutor.cs Uses renamed endpoint default network property.
src/Aspire.Hosting/ApplicationModel/ResourceUrlsCallbackContext.cs Renames context network parameter.
src/Aspire.Hosting/ApplicationModel/ResourceExtensions.cs Renames context network parameters in endpoint helpers.
src/Aspire.Hosting/ApplicationModel/HostUrl.cs Uses renamed endpoint default network property.
src/Aspire.Hosting/ApplicationModel/EndpointReferenceAnnotation.cs Changes EndpointNames to ISet<string> and renames context network property.
src/Aspire.Hosting/ApplicationModel/EndpointReference.cs Renames context network field/property/parameters.
src/Aspire.Hosting/ApplicationModel/EndpointAnnotation.cs Renames default network members and snapshot record field.
src/Aspire.Hosting/ApplicationModel/AllocatedEndpoint.cs Renames constructor parameter/property to NetworkId.
src/Aspire.Hosting.Kubernetes/KubernetesHelmChartResource.cs Seals the Helm chart resource type.
src/Aspire.Hosting.JavaScript/ViteAppResource.cs Seals the Vite resource type.
src/Aspire.Hosting.JavaScript/NextJsAppResource.cs Seals the Next.js resource type.
src/Aspire.Hosting.JavaScript/BunAppResource.cs Seals the Bun resource type.
src/Aspire.Hosting.Blazor/Resources/BlazorWasmAppResource.cs Seals the Blazor WASM resource type.
src/Aspire.Hosting.Azure/RoleAssignmentResourceAnnotation.cs Adds suppression for experimental role assignment usage.
src/Aspire.Hosting.Azure/AzureRoleAssignmentResource.cs Marks the role assignment resource experimental.
src/Aspire.Hosting.Azure.Network/AzureVirtualNetworkResource.cs Seals the virtual network resource type.
src/Aspire.Hosting.Azure.Network/AzureSubnetResource.cs Seals the subnet resource type.
src/Aspire.Hosting.Azure.Network/AzurePublicIPAddressResource.cs Seals the public IP resource type.
src/Aspire.Hosting.Azure.Network/AzurePrivateEndpointResource.cs Seals the private endpoint resource type.
src/Aspire.Hosting.Azure.Network/AzureNetworkSecurityPerimeterResource.cs Seals the NSP resource type.
src/Aspire.Hosting.Azure.Network/AzureNetworkSecurityGroupResource.cs Seals the NSG resource type.
src/Aspire.Hosting.Azure.Network/AzureNatGatewayResource.cs Seals the NAT gateway resource type.
tests/Aspire.Hosting.Tests/WithEnvironmentTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.Tests/EndpointReferenceTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs Updates assertions to use NetworkId.
tests/Aspire.Hosting.Redis.Tests/AddRedisTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.Qdrant.Tests/AddQdrantTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.PostgreSQL.Tests/PostgresMcpBuilderTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.PostgreSQL.Tests/AddPostgresTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.Milvus.Tests/AddMilvusTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.JavaScript.Tests/AddNodeAppTests.cs Updates named argument usage to networkId.
tests/Aspire.Hosting.Azure.Tests/RoleAssignmentTests.cs Suppresses experimental role assignment diagnostics in tests.
tests/Aspire.Hosting.Azure.Tests/AzureUserAssignedIdentityTests.cs Suppresses experimental role assignment diagnostics in tests.
tests/Aspire.Hosting.Azure.Tests/AzurePostgresExtensionsTests.cs Updates named argument usage to networkId.

Copilot's findings

  • Files reviewed: 38/38 changed files
  • Comments generated: 1

/// </summary>
/// <param name="resource">The <see cref="IResourceWithEndpoints"/> which contains <see cref="EndpointAnnotation"/> annotations.</param>
/// <param name="contextNetworkID">The ID of the network that serves as the context context for the endpoint references.</param>
/// <param name="contextNetworkId">The ID of the network that serves as the context context for the endpoint references.</param>
Reverts the subset of API changes from the previous commit that would be
binary-breaking against 13.3.5, and bumps PackageValidationBaselineVersion
from 13.2.2 to 13.3.5 so pack validation runs against the latest shipped
release.

Reverts (binary-breaking against 13.3.5):
- AllocatedEndpoint.NetworkID (kept ctor param 'networkId' - not breaking)
- EndpointAnnotation.DefaultNetworkID (kept ctor param 'networkId')
- EndpointReference.ContextNetworkID (kept ctor param 'contextNetworkId')
- NetworkEndpointSnapshot.NetworkID record positional param
- Removed 'sealed' from 9 shipped resource classes:
  - NextJsAppResource, ViteAppResource
  - AzureNatGatewayResource, AzureNetworkSecurityGroupResource,
    AzureNetworkSecurityPerimeterResource, AzurePrivateEndpointResource,
    AzurePublicIPAddressResource, AzureSubnetResource, AzureVirtualNetworkResource

Kept (not binary-breaking):
- All constructor/method parameter renames (networkID->networkId, etc.)
- EndpointReferenceAnnotation.ContextNetworkId (new in 13.4)
- EndpointNames type change (HashSet -> ISet)
- WithHiddenOnCompletion overload disambiguation
- [Experimental("ASPIREAZURE003")] on AzureRoleAssignmentResource
- 'sealed' on KubernetesHelmChartResource, BlazorWasmAppResource, BunAppResource (new in 13.4)

Package validation:
- Bumped PackageValidationBaselineVersion 13.2.2 -> 13.3.5
- Regenerated CompatibilitySuppressions.xml in 4 projects: most legacy
  entries against 13.2.2 are no longer needed because those APIs already
  shipped in 13.3.x. The remaining suppression is PublishAsNpmScript in
  Aspire.Hosting.JavaScript (documented removal from PR #17382).
@github-actions

Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 110 passed, 0 failed, 2 unknown (commit 63a06c7)

View all recordings
Status Test Recording Job Artifacts
AddPackageInteractiveWhileAppHostRunningDetached Recording #78679540032 Logs
AddPackageWhileAppHostRunningDetached Recording #78679540032 Logs
AgentCommands_AllHelpOutputs_AreCorrect Recording #78679539704 Logs
AgentInitCommand_DefaultSelection_InstallsDefaultSkills Recording #78679539704 Logs
AgentInitCommand_MigratesDeprecatedConfig Recording #78679539704 Logs
AgentInitCommand_NonInteractive_BundleOnlySkillsBeyondCliCatalog_AreInstallable Recording #78679539704 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp Recording #78679539534 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp_DevLocalhost Recording #78679539534 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp_Isolated Recording #78679539534 Logs
AllPublishMethodsBuildDockerImages Recording #78679539801 Logs
AspireAddAndStartWorkAgainstLegacyAppHostTs Recording #78679539716 Logs
AspireAddPackageVersionToDirectoryPackagesProps Recording #78679539770 Logs
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost Recording #78679539980 Logs
AspireInitWithExistingAppHostDirRecreatesMissingNuGetConfigAndPreservesFiles Recording #78679539993 Logs
AspireInitWithSolutionFileGeneratesAppHostThatBuildsAgainstChannelHive Recording #78679539993 Logs
AspireStartUpdatesStaleTypeScriptAppHostPath Recording #78679539482 Logs
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps Recording #78679539770 Logs
AspireUpdateRemovesOrphanAppHostPackageVersionWhenSdkAlreadyCurrent Recording #78679539770 Logs
Banner_DisplayedOnFirstRun Recording #78679539718 Logs
Banner_DisplayedWithExplicitFlag Recording #78679539718 Logs
Banner_NotDisplayedWithNoLogoFlag Recording #78679539718 Logs
CertificatesClean_RemovesCertificates Recording #78679539717 Logs
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate Recording #78679539717 Logs
CertificatesTrust_WithUntrustedCert_TrustsCertificate Recording #78679539717 Logs
ConfigSetGet_CreatesNestedJsonFormat Recording #78679539764 Logs
CreateAndRunAspireStarterProject Recording #78679539766 Logs
CreateAndRunAspireStarterProjectWithBundle Recording #78679539493 Logs
CreateAndRunEmptyAppHostProject Recording #78679539728 Logs
CreateAndRunJavaEmptyAppHostProject Recording #78679539860 Logs
CreateAndRunJsReactProject Recording #78679539774 Logs
CreateAndRunPolyglotAppHostWithDevLocalhostUrls Recording #78679539766 Logs
CreateAndRunPythonReactProject Recording #78679539547 Logs
CreateAndRunTypeScriptEmptyAppHostProject Recording #78679539726 Logs
CreateAndRunTypeScriptStarterProject Recording #78679539381 Logs
CreateJavaAppHostWithViteApp Recording #78679540029 Logs
CreateTypeScriptAppHostWithViteApp_AllowsGuestAppPackageManagerToDiffer Recording #78679540039 Logs
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain Recording #78679540039 Logs
DashboardRunWithAgentMcpListTracesReturnsNoTraces Recording #78679539583 Logs
DashboardRunWithAgentMcpListTracesReturnsNoTraces_DevLocalhost Recording #78679539583 Logs
DashboardRunWithOtelTracesReturnsNoTraces Recording #78679539583 Logs
DashboardRunWithOtelTracesReturnsNoTraces_DevLocalhost Recording #78679539583 Logs
DeployK8sBasicApiService Recording #78679539429 Logs
DeployK8sWithExternalHelmChart Recording #78679540035 Logs
DeployK8sWithGarnet Recording #78679539972 Logs
DeployK8sWithMongoDB Recording #78679539758 Logs
DeployK8sWithMySql Recording #78679539714 Logs
DeployK8sWithPostgres Recording #78679539337 Logs
DeployK8sWithRabbitMQ Recording #78679539588 Logs
DeployK8sWithRedis Recording #78679539672 Logs
DeployK8sWithSqlServer Recording #78679539366 Logs
DeployK8sWithValkey Recording #78679539753 Logs
DeployTypeScriptAppToKubernetes Recording #78679539858 Logs
DescribeCommandResolvesReplicaNames Recording #78679539594 Logs
DescribeCommandShowsRunningResources Recording #78679539594 Logs
DetachFormatJsonProducesValidJson Recording #78679539732 Logs
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance Recording #78679539732 Logs
DoPublishAndDeployListStepsWork Recording #78679539757 Logs
DocsCommand_RendersInteractiveMarkdownFromLocalSource Recording #78679539664 Logs
DoctorCommand_DetectsDeprecatedAgentConfig Recording #78679539704 Logs
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain Recording #78679540090 Logs
DoctorCommand_WithSslCertDir_ShowsTrusted Recording #78679540090 Logs
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted Recording #78679540090 Logs
GatewayWithoutExternalEndpoint_FailsPublishWithGuidance Recording #78679539851 Logs
GeneratedAspireDevScript_StartsWatchMode_WithConfiguredToolchain Recording #78679540039 Logs
GlobalMigration_HandlesCommentsAndTrailingCommas Recording #78679539764 Logs
GlobalMigration_HandlesMalformedLegacyJson Recording #78679539764 Logs
GlobalMigration_PreservesAllValueTypes Recording #78679539764 Logs
GlobalMigration_SkipsWhenNewConfigExists Recording #78679539764 Logs
GlobalSettings_MigratedFromLegacyFormat Recording #78679539764 Logs
IngressWithoutExternalEndpoint_FailsPublishWithGuidance Recording #78679539851 Logs
InitTypeScriptAppHost_AugmentsExistingViteRepoInWorkspaceSubdirectory Recording #78679540039 Logs
InteractiveCSharpInitCreatesExpectedFiles Recording #78679539666 Logs
InvalidAppHostPathWithComments_IsHealedOnRun Recording #78679539677 Logs
JavaScriptHostingApisRunFromTypeScriptAppHost Recording #78679539801 Logs
LatestCliCanStartStableChannelAppHost Recording #78679539766 Logs
LatestCliCanStartStableChannelTypeScriptAppHost Recording #78679539766 Logs
LegacySettingsMigration_AdjustsRelativeAppHostPath Recording #78679539482 Logs
LogsCommandShowsResourceLogs Recording #78679539404 Logs
OtelLogsReturnsStructuredLogsFromStarterApp Recording #78679539951 Logs
OtelLogsReturnsStructuredLogsFromStarterAppIsolated Recording #78679539951 Logs
PsCommandListsRunningAppHost Recording #78679540012 Logs
PsFormatJsonOutputsOnlyJsonToStdout Recording #78679540012 Logs
PublishJavaScriptPatternsGeneratesExpectedDockerComposeArtifacts Recording #78679539970 Logs
PublishWithConfigureEnvFileUpdatesEnvOutput Recording #78679539970 Logs
PublishWithDockerComposeServiceCallbackSucceeds Recording #78679539970 Logs
PublishWithoutOutputPathUsesAppHostDirectoryDefault Recording #78679539970 Logs
ResourceCommand_FailedExecution_DisplaysAppHostLogPathAndLogContainsEntries Recording #78679540023 Logs
ResourceCommand_SetAndDeleteParameterUpdatesDescribeOutput Recording #78679540023 Logs
RestoreGeneratesSdkFiles Recording #78679539581 Logs
RestoreGeneratesSdkFiles_WithConfiguredToolchain Recording #78679540043 Logs
RestoreRefreshesGeneratedSdkAfterAddingIntegration Recording #78679540043 Logs
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes Recording #78679539514 Logs
RunFromParentDirectory_UsesExistingConfigNearAppHost Recording #78679540020 Logs
RunReportsSyntaxErrorsForDotNetAppHost Recording #78679539509 Logs
RunReportsSyntaxErrorsForTypeScriptAppHost Recording #78679539509 Logs
SecretCrudOnDotNetAppHost Recording #78679539737 Logs
SecretCrudOnTypeScriptAppHost Recording #78679539563 Logs
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels Recording #78679539958 Logs
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets Recording #78679539651 Logs
StartReportsSyntaxErrorsForDotNetAppHost Recording #78679539509 Logs
StartReportsSyntaxErrorsForTypeScriptAppHost Recording #78679539509 Logs
StopAllAppHostsFromAppHostDirectory Recording #78679539566 Logs
StopJavaPolyglotAppHostUsingApphostDirectory Recording #78679539841 Logs
StopNonInteractiveSingleAppHost Recording #78679539566 Logs
StopTypeScriptPolyglotAppHostUsingApphostDirectory Recording #78679539759 Logs
StopWithNoRunningAppHostExitsSuccessfully Recording #78679540032 Logs
TypeScriptAppHostRunDoesNotDeadlockWhenLazyOptionsInvokeAsyncCallback Recording #78679539726 Logs
UnAwaitedChainsCompileWithAutoResolvePromises Recording #78679540043 Logs
UpdateProjectChannelToStable_CSharpEmptyAppHost_PreservesAspireConfigChannel Recording #78679540112 Logs
UpdateProjectChannelToStable_CSharpSingleFileInit_PreservesAspireConfigChannel Recording #78679540112 Logs
UpdateProjectChannelToStable_TypeScriptSingleFileInit_PreservesAspireConfigChannel Recording #78679540112 Logs
UpdateProjectChannelToStable_TypeScript_PreviewsStablePackagesAndPreservesChannel Recording #78679540112 Logs

📹 Recordings uploaded automatically from CI run #26674466350

@joperezr

Copy link
Copy Markdown
Member Author

Validated that the failure here is unrelated to the changes. Merging.

@joperezr
Jose Perez Rodriguez (joperezr) merged commit da473d2 into release/13.4 May 30, 2026
918 of 927 checks passed
@joperezr
Jose Perez Rodriguez (joperezr) deleted the joperezr/api-review-13-4-fixes branch May 30, 2026 21:54
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 13.4 milestone May 30, 2026
aspire-repo-bot Bot added a commit to microsoft/aspire.dev that referenced this pull request May 30, 2026
AzureRoleAssignmentResource is now marked [Experimental("ASPIREAZURE003")]
as part of the 13.4 API review fixes (microsoft/aspire#17706). Update the
diagnostic page to list all APIs that trigger ASPIREAZURE003 and add an
experimental caution to the role-assignments programmatic inspection section.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Pull request created: #1140

Generated by PR Documentation Check

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

📝 Documentation has been drafted in microsoft/aspire.dev#1140 targeting release/13.4.

Updated docs for two triggered signals:

  • experimental_attribute_added (AzureRoleAssignmentResource.cs: +[Experimental("ASPIREAZURE003", ...)]): Updated diagnostics/aspireazure003.mdx to list AzureRoleAssignmentResource as a new API that triggers this diagnostic since 13.4, alongside the existing Virtual Network APIs.
  • new_public_type (sealed classes in the diff): The three types (BlazorWasmAppResource, BunAppResource, KubernetesHelmChartResource) are new in 13.4 and not yet publicly documented; no docs action needed for the sealing change itself. The primary user-facing change is the ASPIREAZURE003 annotation.

Files changed: src/frontend/src/content/docs/diagnostics/aspireazure003.mdx, src/frontend/src/content/docs/integrations/cloud/azure/role-assignments.mdx.

Note

This draft PR needs human review before merging.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants