You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first-party Aspire.Hosting.Python package introduced in Aspire 13.0 has no standalone documentation. The existing python-integration doc covers the Community Toolkit package (CommunityToolkit.Aspire.Hosting.Python.Extensions), not the first-party package.
What's Missing
The following APIs are documented only in what's-new-in-aspire-13:
// These are in Aspire.Hosting.Python - NOT the Community Toolkitbuilder.AddPythonApp("etl-job","../etl","process_data.py");builder.AddPythonModule("celery-worker","../worker","celery");builder.AddPythonExecutable("api","../api","gunicorn");builder.AddUvicornApp("api","./api","main:app");// Package management.WithUv()// uv package manager.WithPip()// pip package manager.WithVirtualEnvironment(".venv",createIfNotExists:true)
Suggested Content
Hosting integration section with all 4 app types
Package management - WithUv vs WithPip, auto-detection behavior
Python version detection - .python-version, pyproject.toml, fallback
VS Code debugging - breakpoints work automatically
Examples - FastAPI, Flask, Celery worker patterns
Why It Matters
Python is now a "first-class citizen" in Aspire 13 - this is a major selling point. Users searching for "Aspire Python" find the Community Toolkit doc which uses different APIs.
Aspire 13.0 introduced aspire do pipelines as the replacement for publishing callbacks. This is only documented in what's-new, with no standalone reference.
What's Missing
Core Concepts
// Old way (deprecated).WithPublishingCallback(async(context,ct)=>{ ...});// New way.WithPipelineStepFactory(context =>{returnnewPipelineStep(){Name="CustomDeployStep",Action=CustomDeployAsync,RequiredBySteps=[WellKnownPipelineSteps.Publish]};});
CLI Commands
aspire do# Run default pipeline
aspire do build # Run build step
aspire do push # Push to container registry
aspire do deploy # Deploy to target
aspire do deploy-api # Run specific named step
Aspire 13.0 introduced polyglot-friendly connection properties for database resources, exposing multiple formats (URI, JDBC, individual properties). This is not documented in any database integration doc.
What's Missing
Connection Property Expressions
varpostgres=builder.AddPostgres("db").AddDatabase("mydb");// .NET uses standard connection stringsvardotnetApi=builder.AddProject<Projects.Api>().WithReference(postgres);// Python uses URI formatvarpythonWorker=builder.AddPythonModule("worker","./worker","worker.main").WithEnvironment("DATABASE_URL",postgres.Resource.UriExpression);// Java uses JDBC formatvarjavaApp=builder.AddExecutable("java-app", ...).WithEnvironment("DB_JDBC",postgres.Resource.JdbcConnectionStringExpression);
Auto-exposed Environment Variables
When using WithReference(), these are automatically set:
Aspire 9.4 introduced AddExternalService() for modeling third-party APIs and existing infrastructure not managed by Aspire. This is only in what's-new.
What's Missing
Core API
varbuilder=DistributedApplication.CreateBuilder(args);// Reference an external service by URLvarexternalApi=builder.AddExternalService("external-api","https://api.company.com");// Or use a parameter for dynamic configurationvarapiUrl=builder.AddParameter("api-url");varexternalDb=builder.AddExternalService("external-db",apiUrl).WithHttpHealthCheck("/health");varmyService=builder.AddProject<Projects.MyService>("my-service").WithReference(externalApi).WithReference(externalDb);
Features
External services appear in the Aspire dashboard with health status
Can be referenced like any other resource
Support same configuration patterns as internal resources
Health checks via WithHttpHealthCheck()
Suggested Content
When to use external services - third-party APIs, legacy systems, shared infrastructure
API reference - AddExternalService overloads
Health checks - WithHttpHealthCheck configuration
Dashboard integration - how external services appear
Examples - external database, payment API, auth service
Why It Matters
Most real-world apps integrate with external services. Users need to model these dependencies for accurate architecture visualization.
[Docs] Document enhanced endpoint URL support (0.0.0.0 binding)
Summary
Aspire 9.4 added support for non-localhost URLs including 0.0.0.0 binding for LAN access. Not documented in inner-loop-networking-overview.
What's Missing
Core Feature
varbuilder=DistributedApplication.CreateBuilder(args);// Endpoints targeting all addresses get multiple URL variantsvarapi=builder.AddProject<Projects.Api>("api").WithEndpoint("https", e =>e.TargetHost="0.0.0.0");// Machine name URLs for external accessvarpublicService=builder.AddProject<Projects.PublicService>("public").WithEndpoint("https", e =>e.TargetHost="0.0.0.0");
Aspire 9.4 introduced WithContainerFiles for copying files into containers with permission control. Not documented outside what's-new.
What's Missing
Core API
varmyContainer=builder.AddContainer("myapp","myapp:latest")// Simple file copying.WithContainerFiles("/app/config","./config-files")// With ownership.WithContainerFiles("/app/data","./data",defaultOwner:1000,defaultGroup:1000)// With permissions.WithContainerFiles("/app/scripts","./scripts",umask:UnixFileMode.UserRead|UnixFileMode.UserWrite);
Aspire 13.0 and 13.1 have significant breaking changes that are only documented in what's-new. Need a dedicated migration guide.
Breaking Changes to Document
Package Renames
<!-- Before (9.x) -->
<PackageReferenceInclude="Aspire.Hosting.NodeJs"Version="9.x.x" />
<!-- After (13.0) -->
<PackageReferenceInclude="Aspire.Hosting.JavaScript"Version="13.0.0" />
API Signature Changes
AddNodeApp refactored:
// Before (9.x) - absolute scriptPath with optional workingDirectorybuilder.AddNodeApp("frontend","/absolute/path/to/app.js",workingDirectory:"/absolute/path/to");// After (13.0) - appDirectory with relative scriptPathbuilder.AddNodeApp("frontend","../frontend","app.js");
AddNpmApp removed:
// Before (9.x)builder.AddNpmApp("frontend","../frontend",scriptName:"dev");// After (13.0)builder.AddJavaScriptApp("frontend","../frontend").WithRunScript("dev");
Lifecycle Hooks → Events
// Before (9.x)publicclassMyHook:IDistributedApplicationLifecycleHook{ ...}builder.Services.TryAddLifecycleHook<MyHook>();// After (13.0)publicclassMySubscriber:IDistributedApplicationEventingSubscriber{ ...}builder.Services.TryAddEventingSubscriber<MySubscriber>();
Publishing Callbacks → Pipeline Steps
// Before (9.x).WithPublishingCallback(async(context,ct)=>{ ...});// After (13.0).WithPipelineStepFactory(context =>newPipelineStep(){ ...});
[Docs] Add RabbitMQ auto activation to rabbitmq-integration
Summary
RabbitMQ client connections now support auto activation (introduced in 9.5) to prevent startup deadlocks. This is not documented in rabbitmq-integration.
What's Missing
From what's-new-in-aspire-95:
varbuilder=WebApplication.CreateBuilder(args);// Auto activation is disabled by default for RabbitMQ// Enable using DisableAutoActivation=falsebuilder.AddRabbitMQClient("messaging", o =>o.DisableAutoActivation=false);
Key Points
Auto activation is disabled by default in 9.5
Planned to be enabled by default in a future release
Prevents startup deadlocks in certain scenarios
Suggested Content
Add to rabbitmq-integration doc, Client integration section:
[Docs] Add Redis client builder pattern to redis-integration
Summary
Aspire 9.5 introduced a new Redis client builder pattern with fluent configuration for distributed caching and Azure authentication. Not documented in redis-integration.
Aspire 13.0 introduced automatic Dockerfile generation and WithDockerfileBuilder APIs for Python, JavaScript, and custom scenarios. These are experimental but not documented.
What's Missing
From what's-new-in-aspire-13:
Automatic Dockerfile Generation
Python and JavaScript apps automatically generate production-ready Dockerfiles when publishing:
Multi-stage builds
Package manager detection (pip/uv, npm/yarn/pnpm)
Python version detection from .python-version, pyproject.toml
Node.js version detection from .nvmrc, .node-version, package.json