Skip to content

Export TypeScript ATS metadata for documented AppHost APIs #17875

@sebastienros

Description

@sebastienros

The aspire.dev docs audit found C# AppHost samples that cannot be mirrored in TypeScript because the required API or metadata is not present in the .ats.txt exports for microsoft/aspire@release/13.4.

Audit source: microsoft/aspire.dev docs branch release/13.4. The audit compared C# fences in aspire-lang tabs against the .ats.txt metadata files in this repo.

Summary

Out of 144 C# samples missing TypeScript code blocks:

  • 57 are package/config-only documentation fixes.
  • 24 can be fixed in docs because the TypeScript API already exists in ATS.
  • 49 require API/ATS metadata first.
  • 9 require API/metadata or should remain explicitly C#-only.
  • 4 are conceptual C# extension-authoring samples and should stay note-only.
  • 1 is a C# client-integration credential sample and needs either metadata/API support or a clear client-only note.

This issue tracks the API/ATS gaps owned by microsoft/aspire only. CommunityToolkit-owned APIs should be tracked against CommunityToolkit/Aspire or handled from the newer docs/API surface on microsoft/aspire.dev@main.

Missing methods/capabilities in ATS

These C# APIs were used by docs samples but no equivalent exported TypeScript capability was found:

  • AddCheck
  • AddComputeEnvironment
  • AddHealthChecks
  • WithContainerFiles
  • WithEndpointsInEnvironment
  • WithHttpsCertificate

Client/C#-specific case needing a product decision:

  • AddAzureBlobServiceClient / credential override sample: either expose comparable metadata/API for TypeScript-consuming apps, or keep the docs explicitly C# client-only.

Excluded after CommunityToolkit verification

The following previously flagged docs APIs are not tracked in this microsoft/aspire issue because they are CommunityToolkit-owned or CommunityToolkit-related and should be handled from CommunityToolkit/Aspire / current microsoft/aspire.dev@main docs context instead: AddDataAPIBuilder, AddK6, WithScript, AddLavinMQ, AddOllama, AddSqlProject, WithDacpac, WithConfigureDacDeployOptions, WithDacDeployOptions, WithSkipWhenDeployed, and WithDbGate.

AddElasticsearch is also excluded from this issue: it is not in microsoft/aspire, and CommunityToolkit's Elasticsearch package exposes WithElasticvue over an Elasticsearch resource rather than owning AddElasticsearch.

Missing types/DTO metadata

These types were referenced by docs samples but not found in the release/13.4 ATS metadata:

Container files

  • ContainerDirectory
  • ContainerFile
  • ContainerOpenSSLCertificateFile
  • UnixFileMode

Related missing method: WithContainerFiles.

Azure Container Apps jobs / Container Apps customization

  • ContainerAppEnvironmentVariable
  • ContainerAppJobTriggerType
  • ContainerAppManagedEnvironment
  • ContainerAppScale

Note: publishAsAzureContainerAppJob and publishAsScheduledAzureContainerAppJob are exported, but the callback configuration object model/related enum metadata needed to translate the documented C# samples is missing.

Azure.Provisioning typed customization

  • AzureProvisioningOptions
  • CosmosDBAccount
  • FixedNameInfrastructureResolver
  • InfrastructureResolver
  • PrivateEndpoint
  • ProvisioningBuildOptions
  • RedisCacheSku
  • ServiceBusQueue
  • ServiceBusSku
  • StorageAccount
  • StorageAccountEncryption
  • StorageAccountEncryptionServices
  • StorageAccountIPRule
  • StorageAccountNetworkRuleSet
  • StorageEncryptionService
  • StorageSku
  • SubnetReference

Note: configureInfrastructure is exported, but the strongly typed Azure.Provisioning model surface shown in C# docs is not available in ATS. This may be intentional; if so, docs should keep these samples as C#-only and point TypeScript users to the dynamic/generic infrastructure API.

Certificates and custom health checks

  • X509Certificate2 / direct custom certificate support for WithHttpsCertificate
  • HealthCheckResult plus AddHealthChecks().AddCheck(...) registration path

Highest-impact gaps

  1. WithContainerFiles and container file DTOs unblock the English and Japanese container-files samples.
  2. Container Apps job callback metadata unblocks most Container App Jobs examples.
  3. Azure.Provisioning typed metadata needs a product decision: export typed models or keep the docs C#-only with clearer TypeScript guidance.
  4. Direct custom certificate support and custom health-check registration need TypeScript API/metadata or explicit C#-only docs.

CommunityToolkit-owned or CommunityToolkit-related docs/API gaps such as DAB, k6, LavinMQ, Ollama, SqlDatabaseProjects/DACPAC, DbGate, and Elasticsearch/Elasticvue are intentionally not tracked in this microsoft/aspire issue.

Docs impact

A companion docs session was started in microsoft/aspire.dev to fix all docs-only gaps and keep/clarify notes where APIs are not available. That docs work should use the latest microsoft/aspire.dev@main content for recently added CommunityToolkit pages and should not treat CommunityToolkit APIs as missing from microsoft/aspire ATS metadata. The remaining docs samples should be added after the corresponding ATS metadata/API is available, or after product guidance confirms those APIs are intentionally C#-only.

Metadata

Metadata

Assignees

Labels

area-polyglotIssues related to polyglot apphosts

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions