Skip to content

Require external endpoint for Kubernetes ingress/gateway routes#17232

Merged
mitchdenny merged 6 commits into
mainfrom
mitchdenny/external-endpoint-routing-check
May 19, 2026
Merged

Require external endpoint for Kubernetes ingress/gateway routes#17232
mitchdenny merged 6 commits into
mainfrom
mitchdenny/external-endpoint-routing-check

Conversation

@mitchdenny
Copy link
Copy Markdown
Member

Description

Today the Kubernetes AddIngress / AddGateway APIs will happily route any endpoint passed to WithRoute(...) / WithDefaultBackend(...), even one that the resource owner never marked external. That is a privacy / security footgun: an ingress or gateway exposes its backing service to traffic from outside the cluster, so the routed endpoint should have been an explicit opt-in via WithExternalHttpEndpoints() (or isExternal: true). Front Door already enforces this; the K8s and AKS paths did not.

This change adds that check on the publish path. A new internal helper EndpointRoutingValidation.ThrowIfEndpointNotExternal is called from KubernetesEnvironmentResource.ProcessIngressResources / ProcessGatewayResources during model materialization, so the user gets a clear InvalidOperationException (with the resource name, endpoint name, ingress/gateway name, and a pointer at WithExternalHttpEndpoints()) before any Helm output is generated. AKS is covered automatically because AddAzureKubernetesEnvironment delegates ingress/gateway routing to the same code path.

Validation runs at publish time rather than at WithRoute(...) call time on purpose: authoring order is not significant. Users may legitimately register a route and then call WithExternalHttpEndpoints() afterwards, so we want to evaluate intent once the model is finalized.

Tests

  • 6 new K8s unit tests and 2 new AKS unit tests covering positive and negative cases for WithRoute, WithHostRoute, and WithDefaultBackend.
  • All pre-existing K8s / AKS / deployment E2E tests whose routed endpoints were not previously marked external have been updated to call WithExternalHttpEndpoints() on the target resource (Polyglot Go AppHost needed no change because it does not call WithRoute).
  • New CLI E2E test KubernetesPublishRequiresExternalEndpointTests scaffolds an EmptyAppHost, wires an ingress (and a gateway, in a sibling fact) at a non-external endpoint, runs aspire publish --non-interactive, and asserts the CLI exits non-zero with the guidance text on screen.

Notes for reviewers

  • The exception bubbles out of a pipeline step, so it is wrapped in AggregateException at the app.Run() boundary. The new unit tests flatten and assert on the InvalidOperationException whose message contains WithExternalHttpEndpoints.
  • Aligning the existing Front Door GetOriginEndpoint check on the same shared helper is intentionally out of scope for this PR; the K8s path is the immediate gap.

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Throw InvalidOperationException at publish time when an ingress or gateway
route references an endpoint that was not flagged as external (via
WithExternalHttpEndpoints or isExternal: true). Validation runs inside
KubernetesEnvironmentResource.Process{Ingress,Gateway}Resources so it
covers both the standard Kubernetes hosting and the AKS wrappers, and
mirrors the existing Front Door check.

Updates existing unit and deployment E2E tests whose routed endpoints
were not previously marked external, and adds focused unit tests +
a CLI E2E test that asserts aspire publish fails with the guidance
message pointing at WithExternalHttpEndpoints.

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

github-actions Bot commented May 19, 2026

🚀 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 -- 17232

Or

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

Copy link
Copy Markdown
Member Author

@mitchdenny mitchdenny left a comment

Choose a reason for hiding this comment

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

Two issues found:

  1. Test regression in WithLoadBalancer_RespectsExplicitGatewayClass (deleted assertions).
  2. Wrong pragma diagnostic ID in the new CLI E2E test.

Comment thread tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishRequiresExternalEndpointTests.cs Outdated
Mitch Denny and others added 2 commits May 19, 2026 12:19
- Restore the two AGC annotation assertions in
  WithLoadBalancer_RespectsExplicitGatewayClass that were accidentally
  dropped when reformatting the test for the new validation cases.
- Remove the misleading #pragma warning disable ASPIREHOSTINGAZURE001
  blocks from the new CLI E2E test. None of the K8s extension APIs the
  embedded AppHost calls carries that diagnostic, so the pragma was
  silently ignored and only added noise.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The EmptyAppHost template lays out the project as
`{ProjectName}/apphost.cs` (file-based app), not
`{ProjectName}/{ProjectName}.AppHost/AppHost.cs`, which caused the
test to fail with DirectoryNotFoundException when reading the AppHost
to mutate it. Switch to the Starter template so the mutation path
matches KubernetesPublishTests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mitchdenny
Copy link
Copy Markdown
Member Author

/deployment-test

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Deployment tests starting on PR #17232...

This will deploy to real Azure infrastructure. Results will be posted here when complete.

View workflow run

@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot had a problem deploying to deployment-testing May 19, 2026 03:27 Failure
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot had a problem deploying to deployment-testing May 19, 2026 03:27 Failure
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions github-actions Bot temporarily deployed to deployment-testing May 19, 2026 03:27 Inactive
@github-actions
Copy link
Copy Markdown
Contributor

Deployment E2E Tests failed — 36 passed, 2 failed, 0 cancelled

View test results and recordings

View workflow run

Test Result Recording
Deployment.EndToEnd-AzureEventHubsDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureKeyVaultDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureStorageDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureServiceBusDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetSqlServerInfraDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AcaCompactNamingDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-KubernetesGatewayTlsDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureContainerRegistryDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureLogAnalyticsDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetKeyVaultConnectivityDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-NspStorageKeyVaultDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-TypeScriptExpressDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-TypeScriptVnetSqlServerInfraDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetSqlServerConnectivityDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-KubernetesHelmChartDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksMultipleNodePoolsDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetKeyVaultInfraDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksStarterWithRedisHelmDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksBlazorRedisDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AcaCustomRegistryDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AuthenticationTests ✅ Passed
Deployment.EndToEnd-AksStarterDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AzureAppConfigDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksAzureKubernetesEnvironmentCertManagerTypeScriptDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksVnetInfraDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksWithAzureResourcesDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksAzureKubernetesEnvironmentGatewayDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetStorageBlobInfraDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AcaDeploymentErrorOutputTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksVnetWithAzureResourcesDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksWithHelmChartDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AksAzureKubernetesEnvironmentCertManagerDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-VnetStorageBlobConnectivityDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AcaExistingRegistryDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AppServiceReactDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-AcaStarterDeploymentTests ✅ Passed ▶️ View Recording
Deployment.EndToEnd-FrontDoorDeploymentTests ❌ Failed ▶️ View Recording
Deployment.EndToEnd-AcaManagedRedisDeploymentTests ❌ Failed ▶️ View Recording

@mitchdenny mitchdenny marked this pull request as ready for review May 19, 2026 03:59
Copilot AI review requested due to automatic review settings May 19, 2026 03:59
Copy link
Copy Markdown
Member Author

@mitchdenny mitchdenny left a comment

Choose a reason for hiding this comment

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

One stale-comment nit found in the latest changes.

Comment thread tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishRequiresExternalEndpointTests.cs Outdated
Copy link
Copy Markdown
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 publish-time validation requiring that endpoints routed via Kubernetes AddIngress/AddGateway (and the inherited AKS path) be explicitly marked external. Today these APIs route any endpoint, which is a privacy/security footgun since ingress/gateway expose backing services to outside-cluster traffic. The new check throws a clear InvalidOperationException pointing users at WithExternalHttpEndpoints() before any Helm output is generated.

Changes:

  • New internal helper EndpointRoutingValidation.ThrowIfEndpointNotExternal invoked from KubernetesEnvironmentResource.ProcessIngressResources/ProcessGatewayResources, covering routes and ingress DefaultBackend.
  • Unit tests added for K8s + AKS positive/negative paths; existing K8s/AKS/deployment E2E tests updated to opt into WithExternalHttpEndpoints() for routed endpoints.
  • New CLI E2E test scaffolds an EmptyAppHost, wires a non-external ingress/gateway, and asserts aspire publish --non-interactive fails with the guidance text.
Show a summary per file
File Description
src/Aspire.Hosting.Kubernetes/Extensions/EndpointRoutingValidation.cs New internal validation helper that throws if an endpoint is not external.
src/Aspire.Hosting.Kubernetes/KubernetesEnvironmentResource.cs Calls validation in ingress and gateway processing prior to materializing objects.
tests/Aspire.Hosting.Kubernetes.Tests/KubernetesIngressTests.cs Adds positive/negative ingress tests; updates existing tests to call WithExternalHttpEndpoints().
tests/Aspire.Hosting.Kubernetes.Tests/KubernetesGatewayTests.cs Adds positive/negative gateway tests; updates existing tests similarly.
tests/Aspire.Hosting.Azure.Kubernetes.Tests/AzureKubernetesIngressTests.cs Adds AKS ingress/gateway negative tests and updates the existing positive test.
tests/Aspire.Deployment.EndToEnd.Tests/KubernetesGatewayTlsDeploymentTests.cs Marks the webfrontend endpoint external to satisfy new validation.
tests/Aspire.Deployment.EndToEnd.Tests/AksAzureKubernetesEnvironmentGatewayDeploymentTests.cs Marks apiService external in the AKS gateway E2E.
tests/Aspire.Deployment.EndToEnd.Tests/AksAzureKubernetesEnvironmentCertManagerDeploymentTests.cs Marks apiService external in the cert-manager AKS E2E.
tests/Aspire.Cli.EndToEnd.Tests/KubernetesPublishRequiresExternalEndpointTests.cs New CLI E2E test exercising the full aspire publish failure path with guidance text assertions.

Copilot's findings

  • Files reviewed: 9/9 changed files
  • Comments generated: 0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Member

@JamesNK JamesNK left a comment

Choose a reason for hiding this comment

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

Looks good — clean validation with clear error messages, comprehensive test coverage, and correct placement at publish time. One minor nit on workspace disposal in the E2E test.

Mitch Denny and others added 2 commits May 19, 2026 14:33
Match the established pattern in the sibling KubernetesPublishTests
so the temp directory is cleaned up after the test runs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update the aspire-deployment skill's Kubernetes reference to note that
endpoints routed via AddIngress/AddGateway must be explicitly marked
external, and that publish fails fast otherwise.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mitchdenny mitchdenny merged commit f4056ba into main May 19, 2026
299 checks passed
@mitchdenny mitchdenny deleted the mitchdenny/external-endpoint-routing-check branch May 19, 2026 05:05
@github-actions github-actions Bot added this to the 13.4 milestone May 19, 2026
@github-actions
Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 90 passed, 0 failed, 2 unknown (commit 5d58570)

View all recordings
Status Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View recording
AddPackageWhileAppHostRunningDetached ▶️ View recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View recording
AgentInitCommand_DefaultSelection_InstallsDefaultSkills ▶️ View recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View recording
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost ▶️ View recording
AspireInitWithExistingAppHostDirRecreatesMissingNuGetConfigAndPreservesFiles ▶️ View recording
AspireInitWithSolutionFileGeneratesAppHostThatBuildsAgainstChannelHive ▶️ View recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View recording
AspireUpdateRemovesOrphanAppHostPackageVersionWhenSdkAlreadyCurrent ▶️ View recording
Banner_DisplayedOnFirstRun ▶️ View recording
Banner_DisplayedWithExplicitFlag ▶️ View recording
Banner_NotDisplayedWithNoLogoFlag ▶️ View recording
CertificatesClean_RemovesCertificates ▶️ View recording
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate ▶️ View recording
CertificatesTrust_WithUntrustedCert_TrustsCertificate ▶️ View recording
ConfigSetGet_CreatesNestedJsonFormat ▶️ View recording
CreateAndRunAspireStarterProject ▶️ View recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View recording
CreateAndRunEmptyAppHostProject ▶️ View recording
CreateAndRunJavaEmptyAppHostProject ▶️ View recording
CreateAndRunJsReactProject ▶️ View recording
CreateAndRunPythonReactProject ▶️ View recording
CreateAndRunTypeScriptEmptyAppHostProject ▶️ View recording
CreateAndRunTypeScriptStarterProject ▶️ View recording
CreateJavaAppHostWithViteApp ▶️ View recording
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain ▶️ View recording
DashboardRunWithOtelTracesReturnsNoTraces ▶️ View recording
DeployK8sBasicApiService ▶️ View recording
DeployK8sWithExternalHelmChart ▶️ View recording
DeployK8sWithGarnet ▶️ View recording
DeployK8sWithMongoDB ▶️ View recording
DeployK8sWithMySql ▶️ View recording
DeployK8sWithPostgres ▶️ View recording
DeployK8sWithRabbitMQ ▶️ View recording
DeployK8sWithRedis ▶️ View recording
DeployK8sWithSqlServer ▶️ View recording
DeployK8sWithValkey ▶️ View recording
DeployTypeScriptAppToKubernetes ▶️ View recording
DescribeCommandResolvesReplicaNames ▶️ View recording
DescribeCommandShowsRunningResources ▶️ View recording
DetachFormatJsonProducesValidJson ▶️ View recording
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance ▶️ View recording
DoListStepsShowsPipelineSteps ▶️ View recording
DocsCommand_RendersInteractiveMarkdownFromLocalSource ▶️ View recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View recording
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain ▶️ View recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View recording
GlobalMigration_HandlesCommentsAndTrailingCommas ▶️ View recording
GlobalMigration_HandlesMalformedLegacyJson ▶️ View recording
GlobalMigration_PreservesAllValueTypes ▶️ View recording
GlobalMigration_SkipsWhenNewConfigExists ▶️ View recording
GlobalSettings_MigratedFromLegacyFormat ▶️ View recording
InitTypeScriptAppHost_AugmentsExistingViteRepoAtRoot ▶️ View recording
InteractiveCSharpInitCreatesExpectedFiles ▶️ View recording
InvalidAppHostPathWithComments_IsHealedOnRun ▶️ View recording
LatestCliCanStartStableChannelAppHost ▶️ View recording
LatestCliCanStartStableChannelTypeScriptAppHost ▶️ View recording
LegacySettingsMigration_AdjustsRelativeAppHostPath ▶️ View recording
LogLevelTrace_ProducesTraceEntriesInCliLogFile ▶️ View recording
LogsCommandShowsResourceLogs ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterApp ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterAppIsolated ▶️ View recording
PsCommandListsRunningAppHost ▶️ View recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View recording
PublishWithConfigureEnvFileUpdatesEnvOutput ▶️ View recording
PublishWithDockerComposeServiceCallbackSucceeds ▶️ View recording
PublishWithoutOutputPathUsesAppHostDirectoryDefault ▶️ View recording
ResourceCommand_FailedExecution_DisplaysAppHostLogPathAndLogContainsEntries ▶️ View recording
ResourceCommand_FailsWhenInteractionServiceIsRequired ▶️ View recording
ResourceCommand_SetAndDeleteParameterUpdatesDescribeOutput ▶️ View recording
RestoreGeneratesSdkFiles ▶️ View recording
RestoreGeneratesSdkFiles_WithConfiguredToolchain ▶️ View recording
RestoreRefreshesGeneratedSdkAfterAddingIntegration ▶️ View recording
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes ▶️ View recording
RunFromParentDirectory_UsesExistingConfigNearAppHost ▶️ View recording
RunPublishFailureScenarioAsync ▶️ View recording
RunReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
RunReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
SecretCrudOnDotNetAppHost ▶️ View recording
SecretCrudOnTypeScriptAppHost ▶️ View recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View recording
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets ▶️ View recording
StartReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
StartReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
StopAllAppHostsFromAppHostDirectory ▶️ View recording
StopNonInteractiveSingleAppHost ▶️ View recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View recording
UnAwaitedChainsCompileWithAutoResolvePromises ▶️ View recording
UpdateProjectChannelToStable_TypeScript_PicksUpStablePackages ▶️ View recording

📹 Recordings uploaded automatically from CI run #26076445443

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants