Add aspire docs api * sub-commands to expose aspire.dev reference material - #15814
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 15814Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 15814" |
15ed66f to
5fa4582
Compare
- Added Turkish, Simplified Chinese, and Traditional Chinese translations for API command strings. - Implemented TerminalMarkdownFormatter for formatting markdown content in terminal output. - Created comprehensive tests for API commands, including help display, listing entries, and searching with filters. - Developed ApiDocsIndexService tests to validate API documentation indexing and retrieval. - Introduced ApiSitemapParser tests to ensure correct parsing of API sitemap structures. - Added TestApiDocsFetcher for testing purposes, providing a mock implementation of IApiDocsFetcher.
9aad93b to
b3a9869
Compare
06a9cee to
6d218ba
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new aspire api command group (list/search/get) backed by an indexed aspire.dev API sitemap, refactors docs caching/indexing into a shared documentation infrastructure, and introduces new resource strings plus localization artifacts.
Changes:
- Implement
aspire apicommands and an API docs indexing pipeline (sitemap parsing, caching, search/list/get). - Refactor docs fetching/caching to a shared
Documentationlayer (fingerprinting, file-backed cache, lexical scoring, terminal markdown formatting). - Add/adjust CLI tests and agent skill docs to cover and document the new API commands.
Reviewed changes
Copilot reviewed 69 out of 70 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Aspire.Cli.Tests/Utils/CliTestHelper.cs | Registers API docs services/commands in test DI container. |
| tests/Aspire.Cli.Tests/TestServices/TestDocsFetcher.cs | Updates test fetcher namespace after docs refactor. |
| tests/Aspire.Cli.Tests/TestServices/TestApiDocsFetcher.cs | Adds a minimal test double for IApiDocsFetcher. |
| tests/Aspire.Cli.Tests/Mcp/TestDocsIndexService.cs | Updates test index service namespace after docs refactor. |
| tests/Aspire.Cli.Tests/Mcp/Docs/LlmsTxtParserTests.cs | Moves tests to the new Documentation.Docs namespace. |
| tests/Aspire.Cli.Tests/Mcp/Docs/DocsSearchServiceTests.cs | Updates namespace and adapts to new cache fingerprint API. |
| tests/Aspire.Cli.Tests/Mcp/Docs/DocsIndexServiceTests.cs | Adds tests for cached-index rebuild and offline-cache fallback behavior. |
| tests/Aspire.Cli.Tests/Mcp/Docs/DocsFetcherTests.cs | Updates fetcher construction to include configuration; adapts cache interface. |
| tests/Aspire.Cli.Tests/Mcp/ApiDocs/ApiSitemapParserTests.cs | Adds coverage for sitemap filtering and segment parsing rules. |
| tests/Aspire.Cli.Tests/Mcp/ApiDocs/ApiDocsSourceConfigurationTests.cs | Adds coverage for cache keys and host rebasing behavior. |
| tests/Aspire.Cli.Tests/Mcp/ApiDocs/ApiDocsIndexServiceTests.cs | Adds coverage for API index hierarchy, search, get, rebasing, and cache rebuild. |
| tests/Aspire.Cli.Tests/Commands/DocsCommandTests.cs | Updates tests to new docs namespace. |
| tests/Aspire.Cli.Tests/Commands/ApiCommandTests.cs | Adds end-to-end CLI tests for aspire api behaviors. |
| src/Aspire.Cli/Utils/TerminalMarkdownFormatter.cs | Centralizes terminal-friendly markdown formatting. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.zh-Hant.xlf | Adds Traditional Chinese XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.zh-Hans.xlf | Adds Simplified Chinese XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.tr.xlf | Adds Turkish XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.ru.xlf | Adds Russian XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.pt-BR.xlf | Adds Portuguese (Brazil) XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.pl.xlf | Adds Polish XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.ko.xlf | Adds Korean XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.ja.xlf | Adds Japanese XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.it.xlf | Adds Italian XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.fr.xlf | Adds French XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.es.xlf | Adds Spanish XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.de.xlf | Adds German XLF file for API command strings. |
| src/Aspire.Cli/Resources/xlf/ApiCommandStrings.cs.xlf | Adds Czech XLF file for API command strings. |
| src/Aspire.Cli/Resources/ApiCommandStrings.resx | Adds API command string resources. |
| src/Aspire.Cli/Resources/ApiCommandStrings.Designer.cs | Adds generated strongly-typed accessor for API command strings. |
| src/Aspire.Cli/README.md | Documents the new api command and provides example usage. |
| src/Aspire.Cli/Program.cs | Wires API docs services + commands into the CLI host. |
| src/Aspire.Cli/Mcp/Tools/SearchDocsTool.cs | Updates docs tool to new docs namespace. |
| src/Aspire.Cli/Mcp/Tools/ListDocsTool.cs | Updates docs tool to new docs namespace. |
| src/Aspire.Cli/Mcp/Tools/GetDocTool.cs | Updates docs tool to new docs namespace. |
| src/Aspire.Cli/Mcp/Tools/DocsToolHelper.cs | Updates docs tool helper to new docs namespace. |
| src/Aspire.Cli/Mcp/Docs/DocsFetcher.cs | Removes old MCP docs fetcher (moved/refactored). |
| src/Aspire.Cli/Mcp/Docs/DocsCache.cs | Removes old MCP docs cache (moved/refactored). |
| src/Aspire.Cli/JsonSourceGenerationContext.cs | Adds JSON source-gen metadata for API docs models and new namespaces. |
| src/Aspire.Cli/Documentation/SourceContentFingerprint.cs | Adds stable fingerprinting for cached source content changes. |
| src/Aspire.Cli/Documentation/LexicalScoring.cs | Extracts shared tokenization and scoring helpers. |
| src/Aspire.Cli/Documentation/IDocumentContentCache.cs | Refactors base cache interface into shared documentation namespace. |
| src/Aspire.Cli/Documentation/FileBackedDocumentContentCache.cs | Introduces shared file-backed cache for text/ETag/JSON payloads. |
| src/Aspire.Cli/Documentation/Docs/LlmsTxtParser.cs | Moves parser into new docs namespace. |
| src/Aspire.Cli/Documentation/Docs/IDocsCache.cs | Adds docs cache interface including index fingerprint support. |
| src/Aspire.Cli/Documentation/Docs/DocsSourceConfiguration.cs | Adds config for overriding llms.txt source and cache key derivation. |
| src/Aspire.Cli/Documentation/Docs/DocsSearchService.cs | Moves docs search service into new docs namespace. |
| src/Aspire.Cli/Documentation/Docs/DocsIndexService.cs | Adds fingerprint-based cache rebuild and shared lexical scoring usage. |
| src/Aspire.Cli/Documentation/Docs/DocsFetcher.cs | Adds configurable docs fetcher using shared cached HTTP fetch helper. |
| src/Aspire.Cli/Documentation/Docs/DocsCache.cs | Implements docs cache using the shared file-backed cache. |
| src/Aspire.Cli/Documentation/CachedHttpDocumentFetcher.cs | Adds shared ETag-aware HTTP fetch + cache fallback behavior. |
| src/Aspire.Cli/Documentation/ApiDocs/IApiDocsCache.cs | Defines cache interface for API docs including index fingerprint support. |
| src/Aspire.Cli/Documentation/ApiDocs/ApiSitemapParser.cs | Implements sitemap parsing and route extraction for modeled languages. |
| src/Aspire.Cli/Documentation/ApiDocs/ApiDocsSourceConfiguration.cs | Adds config for sitemap URL override and host rebasing/markdown URL rules. |
| src/Aspire.Cli/Documentation/ApiDocs/ApiDocsIndexService.cs | Implements API index build/list/search/get models and scoring. |
| src/Aspire.Cli/Documentation/ApiDocs/ApiDocsFetcher.cs | Implements API sitemap/page fetcher using shared cached HTTP helper. |
| src/Aspire.Cli/Documentation/ApiDocs/ApiDocsCache.cs | Implements API docs cache using shared file-backed cache. |
| src/Aspire.Cli/Commands/RootCommand.cs | Adds api to the root command subcommands. |
| src/Aspire.Cli/Commands/DocsSearchCommand.cs | Updates docs command to new docs namespace. |
| src/Aspire.Cli/Commands/DocsListCommand.cs | Updates docs command to new docs namespace. |
| src/Aspire.Cli/Commands/DocsGetCommand.cs | Uses shared TerminalMarkdownFormatter and new docs namespace. |
| src/Aspire.Cli/Commands/ApiSearchCommand.cs | Adds aspire api search command implementation. |
| src/Aspire.Cli/Commands/ApiListCommand.cs | Adds aspire api list command implementation. |
| src/Aspire.Cli/Commands/ApiGetCommand.cs | Adds aspire api get command implementation. |
| src/Aspire.Cli/Commands/ApiCommand.cs | Adds aspire api parent command wiring list/search/get. |
| src/Aspire.Cli/Commands/AgentMcpCommand.cs | Updates docs dependency to new docs namespace. |
| docs/specs/api-docs-commands.md | Adds a spec describing the new API docs command surface and behavior. |
| .agents/skills/aspire/SKILL.md | Updates agent guidance to use aspire api for reference lookups. |
| .agents/skills/aspire/references/tools-and-configuration.md | Documents aspire api alongside aspire docs for workflows. |
| .agents/skills/aspire/references/csharp-apphosts.md | Adds API-reference lookup guidance for C# AppHost work. |
| .agents/skills/aspire/references/agent-workflows.md | Updates workflows to include API reference commands. |
Files not reviewed (1)
- src/Aspire.Cli/Resources/ApiCommandStrings.Designer.cs: Language not supported
James Newton-King (JamesNK)
left a comment
There was a problem hiding this comment.
2 issues flagged: 1 bug (cancellation swallowed in shared HTTP fetcher), 1 behavioral change (docs index now requires network on every cold start).
aspire api * commands to expose aspire.dev reference material
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
aspire api * commands to expose aspire.dev reference materialaspire docs api * sub-commands to expose aspire.dev reference material
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Parse C# type markdown overview links into a lazily-built cached member index so api search and anchored get can resolve member-level results like WithCommand without crawling every member-group page. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Load the grouped-member index when base route hits still need member results, and build member items from member-group parents discovered from routes instead of C#-specific member-index assumptions. Add WithEnv and generic parser regressions for grouped member links. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Stop building the grouped-member cache for the entire API corpus on the first search. Member containers are now loaded and persisted only as search, list, and get touch them, with batched search expansion instead of a full eager crawl. Also rewrite site-relative API markdown links to configured-host absolute URLs so returned markdown is clickable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- shorten synthetic member ids for readability while keeping overloads distinct - improve broad prefix ranking so coarse queries prefer closer type hits - fix markdown link rewriting for bracketed signatures in returned API markdown Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🎬 CLI E2E Test Recordings — 69 recordings uploaded (commit View recordings
📹 Recordings uploaded automatically from CI run #24360229543 |
This comment has been minimized.
This comment has been minimized.
… material (#15814) * Add localization support and API command enhancements - Added Turkish, Simplified Chinese, and Traditional Chinese translations for API command strings. - Implemented TerminalMarkdownFormatter for formatting markdown content in terminal output. - Created comprehensive tests for API commands, including help display, listing entries, and searching with filters. - Developed ApiDocsIndexService tests to validate API documentation indexing and retrieval. - Introduced ApiSitemapParser tests to ensure correct parsing of API sitemap structures. - Added TestApiDocsFetcher for testing purposes, providing a mock implementation of IApiDocsFetcher. * Fix formatting of C# header in API docs commands * Enhance API documentation caching and fetching with sitemap URL rebasing and index cache key generation * Add test for TypeScript direct route item retrieval in API docs service * Refresh docs indexes when source content changes * Move API docs under docs command Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Finish API docs feedback fixes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore API command XLF generation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix docs cache naming and list parsing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Simplify docs and API cache filenames Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add cached C# API member search Parse C# type markdown overview links into a lazily-built cached member index so api search and anchored get can resolve member-level results like WithCommand without crawling every member-group page. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Generalize API member index search Load the grouped-member index when base route hits still need member results, and build member items from member-group parents discovered from routes instead of C#-specific member-index assumptions. Add WithEnv and generic parser regressions for grouped member links. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Make API member loading incremental Stop building the grouped-member cache for the entire API corpus on the first search. Member containers are now loaded and persisted only as search, list, and get touch them, with batched search expansion instead of a full eager crawl. Also rewrite site-relative API markdown links to configured-host absolute URLs so returned markdown is clickable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Refine API docs search results - shorten synthetic member ids for readability while keeping overloads distinct - improve broad prefix ranking so coarse queries prefer closer type hits - fix markdown link rewriting for bracketed signatures in returned API markdown Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix API markdown link rendering - handle bracketed link text in the Spectre markdown converter used by docs api get - add exact distributedapplication regressions for link rewriting and displayed output Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move docs source URLs into config - read llms.txt and API sitemap overrides from aspire config paths - model and migrate the docs settings in local/global config files - add config command, schema, and source configuration regressions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Refine docs and api docs sources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore markdown docs output Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Render docs get through markdown display Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Format minified docs code blocks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Expand minified docs formatter languages Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix Linux docs cache and API link handling Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Remove docs code block reformatting Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Remove unshipped API language scaffolding Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents the new aspire docs api list|search|get sub-commands introduced in microsoft/aspire#15814. - Add aspire-docs-api.mdx (group command overview) - Add aspire-docs-api-list.mdx - Add aspire-docs-api-search.mdx - Add aspire-docs-api-get.mdx - Update aspire-docs.mdx to include the api sub-command in the table - Update sidebar reference.topics.ts with the new entries Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Documentation updates have been drafted for the new A draft PR has been created on microsoft/aspire.dev (branch New pages:
Updated pages:
The draft PR needs human review before merging. Asciinema cast files for the new commands will need to be recorded separately once the feature is available in a released build.
|
Documents the new aspire docs api list|search|get sub-commands introduced in microsoft/aspire#15814. - Add aspire-docs-api.mdx (group command overview) - Add aspire-docs-api-list.mdx - Add aspire-docs-api-search.mdx - Add aspire-docs-api-get.mdx - Update aspire-docs.mdx to include the api sub-command in the table - Update sidebar reference.topics.ts with the new entries Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents the new aspire docs api list|search|get sub-commands introduced in microsoft/aspire#15814. - Add aspire-docs-api.mdx (group command overview) - Add aspire-docs-api-list.mdx - Add aspire-docs-api-search.mdx - Add aspire-docs-api-get.mdx - Update aspire-docs.mdx to include the api sub-command in the table - Update sidebar reference.topics.ts with the new entries Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- InitCommand: pin '#:sdk Aspire.AppHost.Sdk' directive to current Aspire version so ProjectUpdater/FallbackProjectParser version parsing keeps working on the dropped single-file AppHost. - InitCommand: handle JsonException in DropAspireConfig and surface a friendly error + non-success exit code when an existing aspire.config.json is malformed (instead of crashing). - aspireify SKILL.md: trim frontmatter description to focus on what the skill is for rather than how it achieves it. - aspireify apphost-wiring.md: add 'aspire docs api search/get' guidance now that #15814 has merged, so agents resolve API reference entries via the dedicated subcommands. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add aspire-init-typescript and aspire-init-csharp skills These are one-time skills that complete the Aspire initialization after `aspire init` drops the skeleton apphost and aspire.config.json. The agent runs the appropriate skill to scan the repo, wire up projects, configure dependencies, and validate that `aspire start` works. The skills self-remove on success. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Register aspire-init skills in CLI infrastructure Add AspireInitTypeScript and AspireInitCSharp skill definitions to SkillDefinition.cs with embedded resource roots. Add resource strings, embed skill files in the csproj, and update the evergreen aspire skill to reference the new init skills. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Gut InitCommand into skill-driven skeleton launcher Strip InitCommand from ~980 lines to ~260 lines. Remove all solution manipulation, template installation, project reference wiring, and RPC scaffolding. New flow: prompt for language, detect .sln, drop bare apphost skeleton + aspire.config.json, install the appropriate init skill, then chain to agent init. Also add Sparkles (dizzy 💫) to KnownEmojis. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Merge init skills into single unified aspire-init skill Collapse aspire-init-typescript and aspire-init-csharp into one aspire-init skill. The unified skill handles both languages with conditional sections — the agent reads appHost.language from aspire.config.json to determine which path to follow. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Enhance init skill: docker-compose parsing, certs as troubleshooting Add detailed docker-compose/compose.yml scanning guidance — extract services, images, ports, env vars, volumes, depends_on, and build contexts. Map known images to typed Aspire integrations. Move cert trust from a required step to a troubleshooting bullet under validation (aspire start handles it automatically). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add comprehensive AppHost wiring reference to init skill Cover WithReference vs WithEnvironment, endpoint/port patterns (env: for non-.NET), service discovery env var naming, WithExternalHttpEndpoints, dev.localhost domains, URL labels, WaitFor/WaitForCompletion, container lifetimes (persistent), explicit start, parent relationships, volumes, and aspire docs search/get workflow for looking up APIs and integrations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add guiding principles: minimize user code changes, surface tradeoffs Establish the default stance: adapt the AppHost to the app, not vice versa. When a small code change unlocks better integration (WithReference vs WithEnvironment, dynamic ports, OTel endpoint), present the tradeoff with both options and let the user decide. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Focus init skill on local dev, surface external service dependencies Clarify this skill optimizes for local dev experience, not deployment. Recommend persistent container lifetimes, data volumes, dev.localhost URLs. Add guidance for extracting hardcoded external service URLs into AppHost parameters so they're visible and swappable from the dashboard. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add .env file migration guidance to init skill Scan for .env files during repo discovery. Classify each variable as secret (AddParameter with secret:true), plain config (WithEnvironment), or Aspire resource (replace with AddPostgres/AddRedis + WithReference). Goal: eliminate .env files so all config flows through the AppHost. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add aspirify-eval playground apps for init skill benchmarking Two pre-aspirified apps that serve as eval targets for the aspire-init skill: dotnet-traditional/ — .NET solution with slnx, Vue/Vite frontend, ASP.NET API + Blazor admin + EF Core migration runner, Postgres + Redis, .env with secrets and config. Exercises: full project mode, ServiceDefaults, env var migration, secret parameterization. polyglot/ — Python FastAPI + Go HTTP + C# minimal API + React frontend, Redis cache, external API keys in .env. Exercises: TS apphost single-file, multi-language scanning, OTel wiring, port injection, .env migration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Flesh out eval app READMEs with full before-state docs Both READMEs now cover: architecture diagram, dependencies, config table (.env vars with secret classification), step-by-step multi-terminal setup, verification endpoints, pain points that Aspire should fix, and expected Aspire outcome after aspirification. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move eval rubric out of app dirs so agents can't cheat Strip 'Pain points' and 'Expected Aspire outcome' from the app READMEs (agents would use them as answer keys). App READMEs now only describe the before-state. Eval rubric lives in EVAL-RUBRIC.md in the parent directory with detailed pass/fail checklists for both apps. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update aspire-init skill based on eval findings - Add 'Always use latest Aspire APIs' principle: enforce aspire docs search before writing any builder call, never invent APIs - Massively expand OTel section: per-language setup for Node.js, Python, Go, and Java with concrete code samples; surface as user option - Add Step 8 'Dev experience enhancements': surface dev.localhost friendly URLs, dashboard URL labels, and OTel as opt-in suggestions - Renumber steps 9-11 to accommodate new step Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add tiered integration preference to aspire-init skill Introduce a 3-tier hierarchy for choosing how to model resources: 1. First-party Aspire.Hosting.* packages (always prefer) 2. CommunityToolkit.Aspire.Hosting.* packages (Go, Rust, etc.) 3. Raw AddExecutable/AddDockerfile/AddContainer (last resort) Update the 'verify before you write' principle with concrete package tables, discovery workflow (aspire list integrations, aspire docs search, aspire add), and examples for both first-party and toolkit. Update Step 4 non-.NET examples to show all 3 tiers with Go as the community toolkit example. Update 'Looking up APIs' reference section with aspire list integrations and toolkit add commands. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Replace AddProject with AddCsharpApp, preserve .env files, strengthen sln detection - Replace all AddProject<T>/addProject references with AddCsharpApp/ addCsharpApp throughout skill examples (AddProject may be deprecated) - Remove fsproj scanning (not needed) - Make .env file deletion an explicit decision point: never auto-delete, always ask the user since teams may need them for non-Aspire workflows - Strengthen sln/slnx detection: explicitly note it forces full project mode for Visual Studio compatibility Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use aspire run for TS scripts, be package-manager agnostic - Replace npx tsc && node pattern with 'aspire run' in package.json scripts, matching the canonical Aspire template pattern - Add package manager detection step: scan for pnpm-lock.yaml, yarn.lock, or package-lock.json and use the matching tool throughout - Replace hardcoded 'npm install' references with generic guidance that respects the repo's package manager Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix dev.localhost value prop, replace AddNpmApp, add CLI validation, clean up language - Rewrite dev.localhost to focus on cookie/session isolation (not friendly URLs) - Replace all AddNpmApp with AddViteApp/AddJavaScriptApp (API removed) - Update Aspire.Hosting.NodeJs → Aspire.Hosting.JavaScript - Add aspire describe/otel/logs to validation step for verifying wiring - Remove 'non-.NET services' phrasing throughout - Simplify OTel prompt language Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Prefer HTTPS over HTTP, add WithHttpsDeveloperCertificate guidance - Add 'Prefer HTTPS over HTTP' principle with full guidance - Update all code samples to use WithHttpsEndpoint by default - Add WithHttpsDeveloperCertificate for JS/Python apps throughout - Keep WithHttpEndpoint as documented fallback when HTTPS causes issues - Update dev.localhost examples to use 'https' endpoint names - Note experimental status (ASPIRECERTIFICATES001) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update src/Aspire.Cli/Agents/SkillDefinition.cs Co-authored-by: David Pine <david.pine@microsoft.com> * Fix AddCSharpApp casing (capital S, capital H) GPT-5.4 review caught that the actual C# API is AddCSharpApp (not AddCsharpApp) and the TS equivalent is addCSharpApp. Fixed all 22 occurrences. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Note aspire list integrations requires MCP server Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Emphasize iterate until aspire start works without errors Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix aspire init writing 'already exists' on fresh repos The language selection step (GetOrPromptForProjectAsync with saveSelection: true) writes aspire.config.json to disk before DropAspireConfig runs. This causes DropAspireConfig to find the file already present and skip writing the appHost.path field. Fix: merge into existing file instead of skipping, so the path field is always written regardless of prior file state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve skill based on excalidraw real-world test Key additions based on analyzing agent vs Damian's working excalidraw apphost: - JS resource type decision matrix (addNodeApp vs addJavaScriptApp vs addViteApp) with clear signals for when to use each - withRunScript/withBuildScript documentation with examples — critical for aspire publish to work with TypeScript servers - Monorepo/workspace detection guidance in Step 1 (path resolution, root scripts that delegate, workspace-aware installs) - Framework-specific port binding table (Express, Vite, Next.js, CRA) - BROWSER=none pattern to suppress auto-browser-open - Cross-service env var wiring examples (withEnvironment + endpoint ref) - Never call it '.NET Aspire' — just 'Aspire' - Dashboard URL must include auth token - Updated main TS AppHost example with all new patterns Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix init flow, profiles, ASPNETCORE_URLS, and CI issues - Fix init skill flow: remove early skill install, let agent init prompt handle it naturally; print closing message to invoke agent - Write profiles section to aspire.config.json with random ports matching aspire new templates (both https and http profiles) - Add fallback defaults for ASPNETCORE_URLS, OTLP, and resource service in GuestAppHostProject when no profile provides them - Add all polyglot skeleton templates (Python, Go, Java, Rust) - Fix markdown linter errors (MD040, MD012) in eval READMEs - Isolate eval playground from repo CPM with Directory.Build.props/targets and Directory.Packages.props Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add Step 2 smoke test: verify skeleton boots before wiring Run 'aspire start' right after scanning to catch config/profile issues early before investing time in project wiring. Renumber all subsequent steps accordingly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix dev.localhost guidance: use aspire.config.json profiles, not withUrlForEndpoint The correct way to enable dev.localhost subdomains is to update the applicationUrl in aspire.config.json profiles, not by calling withUrlForEndpoint in AppHost code. This matches how 'aspire new' handles it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix aspire.config.json message: always say 'Created' during init The language selection step writes aspire.config.json first, so DropAspireConfig was saying 'Updated' even on fresh repos. From the user's perspective this is all one init flow — say 'Created'. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve init closing message with one-shot agent commands Say 'AppHost created' instead of 'skeleton created', and print copy-pasteable commands for GitHub Copilot, Claude Code, and OpenCode to invoke the aspire-init skill. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add summary output to skill validation step After validation passes, the agent prints a summary with the full dashboard URL (including auth token) and resource health status from aspire describe. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Leave AppHost running after init completes The agent should hand the user a fully running app with the dashboard open, not stop it during cleanup. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Strengthen withUrlForEndpoint and hardcoded URL prohibitions in skill - Add 'Never hardcode URLs' and 'Never use withUrlForEndpoint for dev.localhost' to Key Rules section - Add new 'Never hardcode URLs — use endpoint references' guiding principle with ✅/❌ code examples - Update Step 9 dev.localhost guidance with⚠️ callout and real-world aspire.config.json example (separate otlp/resources subdomains) - Clarify withUrlForEndpoint is ONLY for DisplayText, never for url.Url - Add 'NEVER DO THIS' anti-pattern to cross-service env var wiring - Remove http-only profile from dev.localhost example (match a3 pattern) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix init skill follow-up commands Only print the aspire-init handoff when the user actually selects that one-time skill during agent init. Also switch the follow-up from the generic placeholder command to tool-specific commands based on the selected skill locations: - copilot -i for Copilot skill locations - claude with an initial prompt for Claude Code - opencode --prompt for OpenCode Thread the selected skill/location information back from AgentInitCommand so init can make the follow-up conditional. Adjust NewCommand for the updated return type and add tests for the new init messaging behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Strengthen init skill port guidance Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify mixed SDK AppHost guidance Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix solution-aware init scaffold Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Modularize init solution guidance Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify init validation states Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve aspire-init skill for large/complex repos - Add User Secrets migration guidance to SKILL.md - Add docker-compose profiles awareness to Step 1 scanning - Create references/docker-compose.md for rich compose migration - Rewrite references/full-solution-apphosts.md with large solution triage, incremental core-loop wiring, migration runner modeling, batch legacy pattern decisions, custom MSBuild SDK detection, conditional compilation awareness, and multi-source-root repos Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add critical rules: no workloads, no SDK changes, no TFM changes - Add 'Critical rules' section to SKILL.md with hard DO NOT rules for workload installation, SDK version changes, TFM changes - Add guidance to use aspire CLI commands over raw dotnet for Aspire ops - Strengthen nested global.json guidance in full-solution reference with explicit steps and check-before-create Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify config files per AppHost mode, fix ServiceDefaults placement - Add config file table: aspire.config.json vs launchSettings.json vs appsettings.json — which mode uses which, do not confuse them - Full project mode uses Properties/launchSettings.json (standard .NET), not aspire.config.json - Tell agents: do not create/modify config files for service projects - Fix Step 2 smoke-test to reference correct config per mode - Update Step 4 ServiceDefaults: placement is agent's decision based on SDK boundary and repo structure, not hardcoded Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix issues from bitwarden eval run - Docker-compose ref: Make auto-generated passwords a loud callout with ❌/✅ examples. Agent must NOT create AddParameter for passwords that typed integrations manage (Postgres, SQL Server, Redis, etc.) - Full-solution ref: Rewrite ServiceDefaults decision tree — exactly two options: skip or modernize individually. Never create IHostBuilder adapter shims. Batch decision for N identical services. - SKILL.md: Add 'Check what integrations auto-manage' section with table of common auto-managed values and docs lookup commands Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use aspire-apphost template for full-solution init InitCommand now invokes 'dotnet new aspire-apphost' via IDotNetCliRunner for full project mode instead of hand-crafting csproj/apphost.cs. The template generates correct launchSettings.json, proper SDK version pins, and a complete Program.cs — eliminating the config file confusion that caused ASPNETCORE_URLS crashes. - Replace DropCSharpProjectSkeletonAsync with template invocation - Inject IDotNetCliRunner into InitCommand - Update SKILL.md to reflect template-generated AppHost is correct - Update tests to verify template invocation instead of file contents Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Make core loop expansion explicit — don't stop early Add step-by-step loop: validate core → add next batch → validate → repeat until all selected services are wired. Explicitly state the skill is not complete until everything the user selected is running. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add Redis auto-TLS, stable SDK, and ServiceDefaults dedup guidance - Document WithoutHttpsCertificate() for plain Redis instead of AddContainer() fallback - Add rule to check/fix preview SDK versions in template-generated AppHost .csproj - Add guidance to search for existing OTel/Polly/health checks before creating ServiceDefaults Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Optimize aspire-init skill: deduplicate, split references, trim - Reduce SKILL.md from 1,297 to 664 lines (-49%) - Fix docker-compose password contradiction (example now matches guidance) - Deduplicate rules repeated 3-5x: WithUrlForEndpoint, hardcoded URLs, API lookup, HTTPS guidance, dashboard token - Extract 3 new reference files for progressive disclosure: - apphost-wiring.md: API lookup tiers + wiring patterns (365 lines) - opentelemetry.md: per-language OTel setup recipes (112 lines) - javascript-apps.md: JS resource types + TS config (121 lines) - Trim over-explanations (motivational .env text, OTel intro, etc.) - All references remain one level deep from SKILL.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix bad merge: remove stale code and restore fallback defaults - Remove SemVersion code incorrectly spliced into InitCommand JSON block - Remove unused usings from main merge (Semver package was removed) - Restore GuestAppHostProject fallback defaults for dashboard URLs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Warn about stale persistent volumes causing auth failures Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * aspire-init skill: add doctor prereq, WithArgs secret warning, OTel verification Three improvements based on a real-world Bitwarden server session: 1. Step 2 now runs `aspire doctor` before the skeleton smoke-test. Catches missing Docker, untrusted certs, and deprecated workloads before the user invests time wiring services. 2. apphost-wiring.md adds a new section warning against passing connection strings or secrets via WithArgs(). Process arguments are visible in task managers and logs — use WithEnvironment instead. 3. Step 10 validation adds a telemetry verification step (item 6). Checks that traces actually reach the dashboard, with a troubleshooting checklist for common OTel-silent-failure causes (conditional export flags, missing traffic, exporter errors). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * aspire-init skill: add monorepo guidance for .withYarn() file locking In yarn/pnpm workspace monorepos with shared node_modules, using .withYarn() on individual resources causes concurrent yarn install calls that hit EPERM file locking errors on Windows. This adds guidance to skip .withYarn() in workspace monorepos and install deps once at the root instead. Explicitly scoped to workspace monorepos only — standalone apps should continue using .withYarn()/.withPnpm() as normal. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix InitCommand build: use AgentInitExecutionResult.ExitCode PromptAndChainAsync now returns AgentInitExecutionResult instead of int after merge from main. Extract .ExitCode to match the Task<int> return type, consistent with NewCommand pattern. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Rename aspire-init skill to aspireify Rename the one-time setup skill from 'aspire-init' to 'aspireify' across the skill directory, CLI resource constants, SkillDefinition, resource strings (resx + xlf), test expectations, and playground eval READMEs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Rename playground/aspirify-eval to aspireify-eval to match skill name Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR feedback on aspire init / aspireify skill - InitCommand: pin '#:sdk Aspire.AppHost.Sdk' directive to current Aspire version so ProjectUpdater/FallbackProjectParser version parsing keeps working on the dropped single-file AppHost. - InitCommand: handle JsonException in DropAspireConfig and surface a friendly error + non-success exit code when an existing aspire.config.json is malformed (instead of crashing). - aspireify SKILL.md: trim frontmatter description to focus on what the skill is for rather than how it achieves it. - aspireify apphost-wiring.md: add 'aspire docs api search/get' guidance now that #15814 has merged, so agents resolve API reference entries via the dedicated subcommands. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix and extend CLI tests for skill-driven init refactor - CommonAgentApplicatorsTests.SkillDefinition_All_ContainsExpectedSkills: bump expected count from 3 to 4 and assert Aspireify is present. - CommonAgentApplicatorsTests.SkillDefinition_OnlyAspireIsDefault: assert Aspireify is not the default skill. - CommonAgentApplicatorsTests.SkillDefinition_DotnetInspect_IsRestrictedToCSharp: assert Aspireify has no language restrictions. New InitCommand tests: - SingleFileSkeletonPinsSdkVersion: verifies the dropped apphost.cs has a versioned '#:sdk Aspire.AppHost.Sdk@<version>' directive (covers the ProjectUpdater/FallbackProjectParser compatibility fix). - WhenAspireConfigAlreadyExists_MergesAppHostSection: verifies DropAspireConfig merges into a pre-existing aspire.config.json without clobbering user properties. - WhenAspireConfigIsMalformed_FailsCleanly: verifies a malformed config surfaces a friendly InvalidOperationException identifying the offending file rather than a raw JsonReaderException stack trace. - WhenAppHostAlreadyExists_DoesNotOverwriteIt: verifies init does not overwrite a user-authored apphost.cs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Default-select aspireify skill in init prompt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR feedback: install templates, trust certs, fix skill correctness - InitCommand: install Aspire.ProjectTemplates before invoking `dotnet new aspire-apphost` so a fresh machine doesn't fail with 'No template named aspire-apphost could be found'. - InitCommand: re-add EnsureCertificatesTrustedAsync for the C# init paths so the first `aspire start` doesn't hit cert errors on HTTPS endpoints (best-effort, non-fatal). - aspireify SKILL.md: full project mode example now uses AddProject<T>() instead of AddCSharpApp(), matching full-solution-apphosts.md and the eval rubric. - aspireify SKILL.md: dev.localhost step (Step 9) now correctly routes full project mode AppHosts to Properties/launchSettings.json instead of aspire.config.json. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Exclude aspireify-eval projects from CI build glob The aspireify-eval playground projects are intentionally un-aspirified sample apps used as eval inputs for the aspireify skill. They opt out of the repo's Directory.Build.props/targets (so Arcade is not imported) and therefore do not have the `Test` MSBuild target, which causes the test enumeration step in CI to fail with MSB4057. Exclude them from the playground build glob in eng/Build.props. Fixes the 'Setup for tests' job failure on PR 15918. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix init CI regressions Restore polyglot init scaffolding so generated AppHosts include the language-specific project files needed by validation and E2E tests. Remove the Copilot-specific aspireify follow-up command from init output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address remaining init feedback Accept deprecated init compatibility options with warnings and document that they will be removed later. Update aspireify guidance to avoid deleting the skill and to check version control before mutating project files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Hide deprecated init compatibility options Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: David Pine <david.pine@microsoft.com> Co-authored-by: James Newton-King <james@newtonking.com> Co-authored-by: David Fowler <davidfowl@gmail.com>
* Add docs for Azure Network Security Perimeter (NSP) support (#698)
Add documentation for the new NSP APIs introduced in microsoft/aspire#15711.
The new section on the Azure Virtual Network page covers:
- What NSPs are and why they're useful for PaaS service isolation
- AddNetworkSecurityPerimeter() API
- WithAccessRule() for inbound/outbound access rules
- WithNetworkSecurityPerimeter() for associating PaaS resources
- Enforced vs. Learning access modes
- List of supported Azure resources
Also adds a shell What's new in Aspire 13.3 page with an NSP highlight
and a sidebar entry.
Fixes #689
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Add --include-hidden option docs to describe, logs, and export commands (#723)
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: James Newton-King <james@newtonking.com>
* Add aspire docs api command reference pages (#715)
Documents the new aspire docs api list|search|get sub-commands
introduced in microsoft/aspire#15814.
- Add aspire-docs-api.mdx (group command overview)
- Add aspire-docs-api-list.mdx
- Add aspire-docs-api-search.mdx
- Add aspire-docs-api-get.mdx
- Update aspire-docs.mdx to include the api sub-command in the table
- Update sidebar reference.topics.ts with the new entries
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document Azure:CredentialProcessTimeoutSeconds option (#731)
* Document Azure:CredentialProcessTimeoutSeconds option
Adds documentation for the new Azure:CredentialProcessTimeoutSeconds configuration option introduced in microsoft/aspire#16175. The option lets users override the credential subprocess timeout (range 5-600) when az login validation is slow due to antivirus, network latency, etc.
- Adds the option to the Local Azure provisioning configuration table and a new 'Credential process timeout' section.
- Adds a 'Configurable Azure credential timeout' section to the What's new in Aspire 13.3 doc.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Mention CredentialProcessTimeoutSeconds in deployment env var asides
Adds a follow-up note to each `Azure__SubscriptionId` env var list pointing at the new credential process timeout option for users hitting slow credential validation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update dashboard API defaults and otel command docs (#732)
- Dashboard:Api:Enabled now defaults to true (API enabled by default)
- Dashboard:Api:AuthMode now defaults to ApiKey
- Add Dashboard:Api:Disabled as the new preferred config to disable the API
- Mark Dashboard:Api:Enabled as deprecated in docs
- Update PrimaryApiKey default to note auto-generation
- Add --dashboard-url and --api-key options to aspire otel logs/spans/traces
- Document login URL support: passing http://host/login?t=<token> auto-exchanges the token for an API key
- Update aspire otel main page description to mention standalone dashboard usage
Documents changes from microsoft/aspire#16326
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add docs for Azure Front Door integration (#730)
* Add docs for Azure Front Door integration
Adds a new integration page for Azure Front Door, adds it to the sidebar, and adds a section to the What's new in Aspire 13.3 doc.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Rewrite Kubernetes docs for Aspire 13.3 (#734)
- Add deployment/kubernetes/ folder with overview, vanilla K8s, and AKS pages
- Add aspire deploy support for vanilla Kubernetes (helm install via kubectl context)
- Add Aspire.Hosting.Azure.Kubernetes (AKS) deployment docs with full provisioning
- Add container registry configuration (AddContainerRegistry + WithContainerRegistry)
- Add AKS integration page (integrations/cloud/azure/aks/)
- Update K8s integration page with TypeScript tabs and deploy support
- Update sidebar, deployment overview table, deployment index cards
- Add integration-docs.json mapping for Aspire.Hosting.Azure.Kubernetes
- All code examples include both C# and TypeScript tabs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Support alternative TypeScript AppHost toolchains (Bun, Yarn, pnpm) (#746)
* docs: document alternative TypeScript AppHost toolchains (Bun, Yarn, pnpm)
- Add toolchain detection and declaration section to typescript-apphost.mdx
- Update prerequisites.mdx to list all supported package managers
- Update aspire-doctor.mdx to mention JavaScript toolchain environment check
Documents changes from microsoft/aspire#16162.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/frontend/src/content/docs/get-started/prerequisites.mdx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix CLI overview links in standalone dashboard docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Mark aspire dashboard commands as preview (#773)
* chore: update release notes to Aspire 13.3 across multiple language documentation
Co-authored-by: Copilot <copilot@github.com>
* [docs] Add private endpoint support for Azure Container Registry (#770)
* docs: add private endpoint support for Azure Container Registry
Document the new private endpoint support for AzureContainerRegistryResource
added in microsoft/aspire#16132. Covers:
- Automatic SKU upgrade to Premium when a private endpoint is added
- Deployment warning about public network access being disabled
- New 'Use private endpoints' section on the ACR hosting integration page
- Service-specific note for ACR in the Virtual Network integration docs
- What's-new entry in aspire-13-3.mdx
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
* docs: add [AspireValue] exported value catalogs to multi-language integration guide (#757)
Documents the new [AspireValue] attribute introduced in microsoft/aspire#16287
(milestone 13.3). Covers:
- How to annotate static fields/properties with [AspireValue] to export
predefined value catalogs into guest SDKs (TypeScript, Python, Java, etc.)
- Nested static class hierarchy mapping to nested catalog namespaces
- Using catalog values in TypeScript and Python AppHosts
- Overriding exported names with the Name property
- Value catalog constraints (static, JSON-serializable, no handles)
- Updated ASPIREATS001 diagnostics page to list [AspireValue] as protected
- Updated supported types table to include exported values row
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add Kubernetes Ingress and Gateway API documentation (#781)
* Add Kubernetes Ingress and Gateway API documentation
New pages:
- kubernetes-ingress.mdx: Overview with Ingress vs Gateway API decision
matrix, TLS overview, and parameter usage
- kubernetes-ingress-aks.mdx: Walkthrough for Ingress on AKS with AGC,
cert-manager DNS-01, parameterized config
- kubernetes-gateway-aks.mdx: Walkthrough for Gateway API on AKS with
AGC, cert-manager HTTP-01 (gatewayHTTPRoute) and DNS-01 options
Cross-links added to existing kubernetes.mdx and kubernetes integration
pages.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Register new pages in deployment sidebar topics
Pages must be listed in deployment.topics.ts for the
starlight-sidebar-topics plugin to render them.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove AKS HTTP-01 tip from overview page
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix deploy commands: use env vars instead of hallucinated --parameter flag
Replace non-existent aspire deploy --parameter with environment
variables using the Parameters__<name> convention. Added note about
alternative config sources (appsettings.json, user secrets, interactive).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add full az CLI setup commands to Ingress walkthrough
Replace terse prerequisites with step-by-step az commands:
- Create resource group and AKS cluster with ALB/OIDC/workload identity
- Create and attach ACR
- Create ALB subnet and ApplicationLoadBalancer CRD
- Create Azure DNS zone and list name servers for delegation
- Install cert-manager with workload identity and Azure DNS
- Create managed identity, federated credential, ClusterIssuer
Gateway walkthrough cross-references the Ingress setup steps.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add BYO cluster callout and link to AddAzureKubernetesEnvironment
Both walkthroughs now clearly state they use a bring-your-own-cluster
model and link to the AKS integration page for Aspire-provisioned
clusters.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add bash/PowerShell tabs to az CLI setup commands
All multi-line az/kubectl commands now have both bash and PowerShell
tabs with correct line continuation characters and variable syntax.
Also added resource provider registration steps, updated reference
links to official Azure docs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Rewrite Gateway API walkthrough as standalone HTTP-01 focused guide
- Make Gateway API doc fully standalone with its own AKS setup steps
(resource providers, cluster, ACR, ALB, cert-manager)
- Focus on HTTP-01 as the recommended TLS strategy (no DNS zone needed)
- Add complete ClusterIssuer setup for gatewayHTTPRoute solver
- Add DNS pointing section with az CLI commands (bash + PowerShell tabs)
- Add deploy section with both bash and PowerShell env var examples
- Add detailed 'How it works' explaining the full TLS bootstrap flow
- Add 'Why HTTP-01 works with Gateway but not Ingress' explanation
- Move DNS-01 to alternative section with cross-link to Ingress doc
- Reorder sidebar: Gateway API before Ingress (recommended first)
- Update overview page next steps to highlight Gateway as recommended
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add ASPIREDURABLETASK001 diagnostic page and document Durable Task experimental APIs (#779)
Documents changes from microsoft/aspire#16533, which marks the Durable Task scheduler
and task hub APIs in Aspire.Hosting.Azure.Functions as [Experimental] with diagnostic
ID ASPIREDURABLETASK001.
- Add new diagnostics/aspiredurabletask001.mdx page describing the warning, affected
APIs, and suppression options.
- Update azure-functions-host.mdx to include a new 'Durable Task scheduler integration'
section explaining the experimental APIs with code examples.
- Add ASPIREDURABLETASK001 entry to the sidebar warnings list.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Document AddEFMigrations and PublishAsMigrationBundle with publishContainer option (#774)
* docs: document AddEFMigrations and PublishAsMigrationBundle with publishContainer
Document the AddEFMigrations AppHost API and the new publishContainer: true
option for PublishAsMigrationBundle introduced in microsoft/aspire#16289.
- Add 'Automated EF migrations with AddEFMigrations' section covering:
- Package installation
- AppHost configuration via AddEFMigrations
- RunDatabaseUpdateOnStart for local run mode
- PublishAsMigrationScript and PublishAsMigrationBundle for publish pipeline
- New publishContainer: true option to wrap bundle in a container image
- Per-environment configuration (ACA Job, Docker Compose, Kubernetes)
- Artifact-only (no container) usage pattern
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR review feedback on migrations.mdx
Agent-Logs-Url: https://github.com/microsoft/aspire.dev/sessions/e98f02d1-22c1-45c0-bac2-d26789008422
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
* docs: add AddNextJsApp and publish methods for JS apps (13.3) (#765)
Document the new JavaScript publish APIs added in Aspire 13.3:
- AddNextJsApp: Next.js hosting with next dev, standalone output, and build validation
- PublishAsStaticWebsite: YARP-based static site serving with optional API proxy
- PublishAsNodeServer: Node.js SSR container (SvelteKit, TanStack Start)
- PublishAsNpmScript: Multi-stage npm script container (Nuxt, Remix, Astro SSR)
Adds framework reference table mapping each framework to its recommended publish method.
Documents changes from microsoft/aspire#15736
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Replace dashboard Copilot and MCP server docs with AI coding agents and APIs pages (#784)
* Replace dashboard Copilot and MCP server docs with AI coding agents and APIs pages
- Delete dashboard/copilot.mdx (feature removed) and redirect to new page
- Delete dashboard/mcp-server.mdx and redirect to get-started/aspire-mcp-server
- Add dashboard/ai-coding-agents.mdx covering CLI and MCP server usage
- Add dashboard/apis.mdx with write/read API reference
- Add note to aspire-mcp-server.mdx about dashboard MCP removal
- Rename sidebar group from 'AI features' to 'Data features'
- Update all cross-references across docs and localized files
* Update Dashboard:AI:Disabled default to true, clarify it only disables Copilot UI
* Fix invalid hash link to OTLP section in apis.mdx
* Remove Copilot UI references from dashboard/explore.mdx
* Document framework-specific gotchas for JS publish methods (#787)
* Document framework-specific gotchas for JS publish methods
Expands the JavaScript apps deployment doc with framework-specific guidance
covering the three new publish methods (PublishAsStaticWebsite,
PublishAsNodeServer, PublishAsNpmScript) added in Aspire 13.3.
- Add a Dev-mode API proxying subsection covering the API_HTTP injection and
per-framework dev-server proxy patterns (Vite, Astro, Angular).
- Expand the framework reference table with build entry points and the
framework-side configuration each publish method requires.
- Add a Framework-specific gotchas section with verified links to the
canonical framework docs for Nuxt, Astro SSR, SvelteKit, Next.js,
TanStack Start, Remix / React Router, Qwik City, Angular, and Vite.
- Cross-link from AddNextJsApp and AddViteApp on the JavaScript integration
page to the relevant deployment-page sections.
- Fix a pre-existing broken link to /fundamentals/service-discovery/overview/
introduced in #765.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarify API_HTTP and API_URL env var conventions
Address PR #787 review feedback:
- Explain that API_HTTP follows the service-discovery <RESOURCENAME>_<SCHEME>
convention and is added by WithReference (or by passing apiTarget to
PublishAsStaticWebsite).
- Clarify that API_URL is not auto-injected — it is a custom env var that
SSR-framework examples set explicitly via WithEnvironment.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Use API_HTTP consistently; drop fictional API_URL references
API_URL is not an Aspire convention — it was a custom variable used in the
sample repo. Use the actual auto-injected service-discovery variable
API_HTTP (<RESOURCENAME>_<SCHEME>) throughout the SSR gotchas so readers
can reproduce the examples without an extra WithEnvironment call.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Add Podman support for Docker Compose deployment (#764)
* docs: add Podman support for Docker Compose deployment (aspire#16074)
- Document Podman as a supported container runtime for Docker Compose deploys
- Describe auto-detection logic (parallel probe, prefer running, Docker tiebreaker)
- Add Podman-specific behavior note (podman-compose / service discovery)
- Document breaking change: IContainerRuntime → IContainerRuntimeResolver
- Update aspire doctor docs to reflect multi-runtime reporting
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address review feedback: remove IContainerRuntime breaking change section
Per @davidfowl's review on PR #764, remove the 'Breaking change:
IContainerRuntime → IContainerRuntimeResolver' section from the Docker
Compose deployment doc. That guidance belongs elsewhere (if anywhere)
rather than in the Docker Compose deployment guide.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove DCP detection-parity sentence per review
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply doc-tester findings from end-to-end Podman validation
- aspire-doctor.mdx: replace synthetic example output with the real CLI
format observed on Aspire CLI 13.3.0 (✅/⚠️/❌ glyphs, 'v<version>:
running' prefix, '(<reason>) ← active' suffix, real header names).
Add a third example showing the explicit-configuration override.
- docker-compose.mdx: document the ASPIRE_CONTAINER_RUNTIME=docker|podman
override and call out the Podman ≥ 5.0.0 minimum (Ubuntu 24.04 ships
4.9.x and is rejected by aspire doctor; use Fedora 42+ or another
distro that packages Podman 5).
Verified against a clean Fedora 43 droplet with Podman 5.6.2:
aspire publish + aspire deploy completed end-to-end (25/25 steps),
podman-compose 1.5.0 was used automatically, and aspire doctor
reported each runtime/reason combination above verbatim.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* [docs] Add browser logs documentation (#775)
* docs: add browser logs documentation
Documents the BrowserLogs feature (WithBrowserLogs) and the new
Configure Tracked Browser dashboard command added in
microsoft/aspire#16531.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Move browser logs to integrations/devtools and address review feedback
- Move page from /dashboard/browser-logs to /integrations/devtools/browser-logs
(it documents an AppHost integration, not a dashboard telemetry feature)
- Use 'Aspire' branding instead of '.NET Aspire'
- Remove unused MDX imports (Aside, Steps, LearnMore)
- Drop unnecessary WithExternalHttpEndpoints from examples; clarify that
WithBrowserLogs works on any resource with an HTTP/HTTPS endpoint
- State the child resource naming pattern explicitly (<parent>-browser-logs)
- Add command IDs (open-tracked-browser, configure-tracked-browser,
capture-screenshot) alongside dashboard display names
- Document accepted UserDataMode config values (Shared/Isolated, case-insensitive)
- Note that per-resource keys take precedence over global keys
- Reference 'aspire secret set' for user-secrets initialization
- Add new section explaining browser process sharing and tab semantics:
one process per (executable, user-data-directory), one tab per session,
cross-AppHost adoption via CDP
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* Document the Aspire.Hosting.Browsers package on the browser logs page (#792)
* Document the `Aspire.Hosting.Browsers` package on the browser logs page
The browser logs feature now ships as a standalone hosting package
`Aspire.Hosting.Browsers`. The integration page didn't tell readers
which package to install — it jumped straight from the introduction
into a `WithBrowserLogs()` example, which left users guessing.
- Add an 'Install the package' section with the standard
`InstallPackage` component pointing at `Aspire.Hosting.Browsers`.
- Update the code example titles from `AppHost/Program.cs` to
`AppHost.cs` to match the Aspire 13.x convention.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add TypeScript AppHost samples to the browser logs page
The Aspire TypeScript codegen now exposes `withBrowserLogs(options?)`
on resources, mirroring the C# `WithBrowserLogs(...)` extension. Add
TypeScript variants alongside the C# samples following the same
`Tabs syncKey='aspire-lang'` pattern used on the PostgreSQL hosting
page, and fix the `InstallPackage` prop name to match the component
contract (`packageName`).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add TypeScript install path for the browser logs package
Mirror the PostgreSQL installation pattern: wrap install in an
`aspire-lang` Tabs block with a C# tab (CLI, file-based AppHost
directive, PackageReference) and a TypeScript tab (CLI plus the
`aspire.config.json` packages entry). The `InstallPackage` component
only covers C# install methods, so it can't represent the TypeScript
config workflow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Use AddViteApp in browser logs samples
Browser logs apply to any HTTP/HTTPS resource, but a Vite frontend
makes the example more concrete (and matches a common scenario where
console output is what readers want to see). Use `AddViteApp` /
`addViteApp` in both code blocks.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Refine browser logs page after doc-tester pass
- Lead with 'any browseable resource' framing and call out that Vite
is just an example. Add a pointer to Aspire.Hosting.JavaScript so
readers know AddViteApp lives in a different package.
- Annotate the '../web' path so copy-pasters know what directory the
example expects.
- Chain the TypeScript fluent API directly off addViteApp(...) instead
of splitting through an intermediate const, matching the rest of the
TS code samples in the page.
- Link 'aspire secret set' to its CLI reference and clarify what
follow-up clicks of 'Save to user secrets' do.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove accidental Playwright MCP snapshot dump
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Link to JavaScript integration page instead of NuGet
Per docs convention, link to the in-site integration page for
Aspire.Hosting.JavaScript (where the Vite resource is documented)
rather than the NuGet listing. Drop the NuGet emoji link from the
Aspire.Hosting.Browsers package mention as well.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR feedback: add ASPIREBROWSERLOGS001 article, use InstallPackage
- Create /diagnostics/aspirebrowserlogs001/ article and link the
diagnostic ID mention in the browser-logs page to it.
- Add the new diagnostic to the diagnostics overview table.
- Replace the hand-rolled C# install tab with the shared
<InstallPackage packageName="Aspire.Hosting.Browsers" /> component
for consistency with other integration pages. The TypeScript tab
keeps its hand-rolled aspire.config.json snippet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Use `aspire destroy` in deployment cleanup tutorials (#790)
* Use `aspire destroy` in deployment cleanup tutorials
Replace the legacy clean-up steps in the getting-started deploy
tutorial and the Docker Compose / Azure Container Apps deployment
guides with `aspire destroy`, which now provides a unified,
interactive teardown flow:
- get-started/deploy-first-app.mdx: drop the per-target Tabs
(`aspire do docker-compose-down-env` / `az group delete`) in both
the C# and TypeScript pivots and call `aspire destroy` instead.
The command auto-detects the deployment target and shows what will
be removed before proceeding.
- deployment/docker-compose.mdx: replace the `aspire do
docker-compose-down-{env}` example in 'Clean up deployment' with
`aspire destroy`.
- deployment/azure/container-apps.mdx: replace the manual
`az group delete --name <rg>` example with `aspire destroy`.
Each cleanup step now includes a caution/danger admonition warning
that the destroy is irreversible. The default invocation prompts for
confirmation; `--yes` is mentioned only as the CI/automation override.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Use `aspire deploy --list-steps` in deploy tutorial protip
The `aspire do diagnostics` subcommand was removed from the CLI in
favour of the `--list-steps` flag exposed by every pipeline command
(`aspire deploy`, `aspire publish`, `aspire destroy`, `aspire do`).
Update both pivots of the get-started deploy tutorial to point
readers at `aspire deploy --list-steps` and link to the
`aspire deploy` reference instead of `aspire do`.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Replace stale `aspire do diagnostics` references with `--list-steps`
The `aspire do diagnostics` subcommand has been removed from the CLI.
The replacement is the `--list-steps` flag, which is exposed by every
pipeline command (`aspire deploy`, `aspire publish`, `aspire destroy`,
and `aspire do`) and lists the steps that would run for that command,
in execution order, without running them.
Update the explanation pages and CLI reference accordingly:
- deployment/pipelines.mdx: replace the dedicated `Discovering available
steps` example, the migration steps under 'Pipeline steps and
dependencies', and the post-migration tip Aside. Trim the descriptive
bullet list to what `--list-steps` actually outputs (no orphaned-step
detection or 'what-if' simulation language).
- whats-new/aspire-13.mdx: rewrite the 'Pipeline diagnostics' bullet to
describe `--list-steps` instead of a now-removed subcommand.
- reference/cli/commands/aspire-do.mdx: rewrite the 'Discovering
available steps' section and the corresponding example to use
`aspire do --list-steps`.
Verified against `aspire do --help` / `aspire deploy --help` on Aspire
CLI 13.3.0+be8c19e: `--list-steps` is documented as 'List the pipeline
steps that would be executed, without running them.'
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Document container tunnel enabled by default in Aspire 13.3 (#772)
* docs: document container tunnel enabled by default in Aspire 13.3
Add a new section to the What's new in Aspire 13.3 page describing
the container tunnel being enabled by default (aspire/aspire#14557).
- Explains what the tunnel is and why it matters
- Notes the ~3-4s startup delay for containers using host endpoints
- Shows how to opt out via ASPIRE_ENABLE_CONTAINER_TUNNEL=false
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: David Pine <david.pine@microsoft.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
* [docs] Add ASPIREJAVASCRIPT001 diagnostic documentation (#809)
* Add ASPIREJAVASCRIPT001 diagnostic documentation
Documents the new ASPIREJAVASCRIPT001 experimental diagnostic introduced
in Aspire 13.3 for JavaScript hosting APIs (PublishAsStaticWebsite,
NextJsAppResource, PublishAsStaticWebsiteOptions).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add ASPIREJAVASCRIPT001 sidebar entry to reference.topics.ts
Agent-Logs-Url: https://github.com/microsoft/aspire.dev/sessions/6e9451d0-ae0b-4f1b-a00b-7ee333cbd3fc
Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
* docs: document ASPIRE_DCP_USE_DEVELOPER_CERTIFICATE env var
Add documentation for the new ASPIRE_DCP_USE_DEVELOPER_CERTIFICATE
environment variable introduced in microsoft/aspire#15718.
- Added the env var to the Common configuration table in app-host/configuration.mdx
- Added a dedicated section in app-host/certificate-configuration.mdx
explaining when and how to use the setting
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document --list-steps and --no-build pipeline command options (#801)
Add shared option includes for --list-steps and --no-build, and
reference them from the aspire deploy, aspire publish, and aspire do
command pages. These options are exposed by every pipeline command
but were undocumented.
Also replace stale 'aspire do diagnostics' references in aspire-do.mdx
with 'aspire do --list-steps' (the diagnostics subcommand was removed
from the CLI; --list-steps is the replacement).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update pipeline --log-level to --pipeline-log-level in CLI docs (#789)
The pipeline commands (aspire do, aspire publish, aspire deploy) had a
--log-level option renamed to --pipeline-log-level to avoid overlap with
the global CLI --log-level / -l option.
Documents changes from microsoft/aspire#16596.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document ExcludeReferenceEndpoint for endpoint filtering
Documents the new EndpointAnnotation.ExcludeReferenceEndpoint property
introduced in microsoft/aspire#15558. Adds a subsection under
'Endpoint extension methods → Additional considerations' covering:
- How to opt an endpoint out of WithReference(resource) discovery
- Code examples for excluding and explicitly opting in by name
- Table of built-in integrations using this pattern (Keycloak,
CosmosDB/EventHubs/ServiceBus emulators)
- Backward-compatibility note (defaults to false)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove dashboard MCP configuration docs (#825)
The dashboard MCP server and its associated configuration have been
removed from Aspire in microsoft/aspire#15528. The MCP server is now
exclusively provided by the Aspire CLI (aspire agent mcp).
- Remove ASPIRE_DASHBOARD_MCP_ENDPOINT_URL from common configuration table
- Update ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS description (remove MCP auth mode reference)
- Remove the entire Dashboard MCP configuration section
- Remove stale mention of HTTP-based dashboard MCP auth in aspire-mcp-server.mdx
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
* [docs] Add ASPIREJAVASCRIPT001 diagnostic documentation (#805)
* Add ASPIREJAVASCRIPT001 diagnostic documentation
Documents the new ASPIREJAVASCRIPT001 compiler warning introduced in
Aspire 13.4 for experimental JavaScript hosting and publishing APIs
(PublishAsStaticWebsite, PublishAsNodeServer, PublishAsNpmScript,
AddNextJsApp, DisableBuildValidation). Previously these APIs used
ASPIREEXTENSION001; this rename requires users to update any
suppressions they have in their projects.
Adds aspirejavascript001.mdx and updates diagnostics/overview.mdx.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestion from @eerhardt
* Small reverts
* Revert duplication
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
* Fix release build diagnostics sidebar (#831)
Add the missing ASPIREBROWSERLOGS001 diagnostics page to the sidebar topics config so starlight-sidebar-topics no longer rejects the page during prerender.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add --dashboard-url and --api-key options to aspire agent mcp and aspire otel command docs (#817)
Documents the new standalone dashboard connection options added in
microsoft/aspire#15595. Users can now query telemetry from a standalone
Aspire Dashboard (not managed by an AppHost) using --dashboard-url and
optionally --api-key for secured dashboards.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Document Python starter template migration to TypeScript AppHost (aspire-py-starter) (#823)
* docs: document Python starter template migration to TypeScript AppHost
The aspire-py-starter template was migrated from dotnet new (C# AppHost)
to the Aspire CLI template system (TypeScript AppHost) in aspire#15574.
- Add 13.3 what's-new entry for the Python starter template change
- Update aspire-sdk-templates.mdx to reflect TypeScript AppHost and new
--use-redis-cache option
- Update aspire-new.mdx commands table and add py-starter-specific options
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update src/frontend/src/content/docs/reference/cli/commands/aspire-new.mdx
Co-authored-by: David Fowler <davidfowl@gmail.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* docs: add polyglot custom domain support for Azure Container Apps (#811)
The ConfigureCustomDomain API is now available in polyglot AppHosts
(TypeScript, Python, Java) following microsoft/aspire#15811.
Update the TypeScript tab in the custom domains section with working
code examples, replacing the previous note that said the API was
not yet available.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Document TypeScript validation before AppHost startup (#812)
* docs: document TypeScript validation before AppHost startup
TypeScript AppHosts now run tsc --noEmit before starting, which
stops aspire run/publish when type errors are present. Document
this behavior including watch mode recovery and startup overhead.
Documents changes from microsoft/aspire#16689.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update TypeScript validation section in documentation
Clarified TypeScript validation process and its impact on startup time.
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Sébastien Ros <sebastienros@gmail.com>
* docs: document VS Code editor indicators (gutter icons, code lens, health checks) (#816)
Documents the gutter icon shapes, code lens health check details, sidebar
health check tree nodes, and expand-all button introduced in
microsoft/aspire#15688.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document integratedBrowser as new default for aspire.dashboardBrowser (#810)
Documents the new 'integratedBrowser' setting value added in
microsoft/aspire#15896. Updates the default shown in the settings table
and adds a dedicated 'Dashboard browser options' section listing all
available values with descriptions.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add Restore command and enableAutoRestore setting for VS Code extension (#813)
Documents the auto-restore feature added in microsoft/aspire#15546:
- Add 'Restore' command to the Commands table
- Add 'aspire.enableAutoRestore' setting to the Extension settings table
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update src/frontend/src/content/docs/app-host/certificate-configuration.mdx
* Update src/frontend/src/content/docs/app-host/certificate-configuration.mdx
* Update src/frontend/src/content/docs/app-host/configuration.mdx
* [docs] Document command result output for resource commands (#822)
* docs: document command result output for resource commands
Document the new CommandResults.Success(result, format) overload and
CommandResultFormat enum introduced in microsoft/aspire#15622.
Covers:
- Returning plain-text and JSON structured output from resource commands
- How results flow through Dashboard (TextVisualizerDialog), CLI (stdout),
and MCP tools (TextContentBlock)
- The CommandResultFormat enum values (None, Text, Json)
- Replica aggregation behavior for result data
- CLI piping tip using stderr/stdout separation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix command result output docs against actual public API
The original draft from PR #15622 codegen had several inaccuracies that
would have prevented the examples from compiling:
- ExecuteCommandResult exposes Data (CommandResultData?), not Result and
ResultFormat. ErrorMessage is now [Obsolete]; Message replaces it for
both success and failure messages.
- CommandResults.Success(message, result, format) takes a status message
as the first argument; the previous samples omitted it.
- CommandResultFormat is { Text, Json, Markdown } — None was removed
from the public API and Markdown was never documented.
- The Failure overload accepts the same payload shape, and the
CommandResultData.DisplayImmediately flag auto-opens the dashboard
visualizer.
Also adds parallel TypeScript examples (using the object-literal
ExecuteCommandResult / CommandResultData shape) under aspire-lang Tabs,
mirrors the existing example using Message in the property bullet list,
and documents both the toast/CLI/MCP routing and the visualizer locking
behavior for Json and Markdown.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Use realistic access-token scenario and add CLI invocation section
- Replaces the placeholder `getConnectionString` / `GetConnectionStringAsync`
helpers with a self-contained `issue-access-token` example. The text
variant returns the raw token; the JSON variant returns token + expiresAt
+ scopes. C# uses `RandomNumberGenerator.GetBytes(32)`; TypeScript uses
`crypto.randomUUID()`. Both variants compile/type-check verbatim.
- Adds an "Invoke commands from the CLI" subsection documenting:
- The `aspire resource <resource> <command>` syntax.
- The stdout/stderr split (status to stderr, payload to stdout).
- That `Markdown` payloads are rendered in the terminal, not raw.
- The 0/non-zero exit-code contract for scripting.
- A realistic `jq` pipe and a script branch on the exit code.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add TypeScript code samples throughout custom-resource-commands
Wraps the C#-only walkthrough sections (Add custom commands, Execute
command logic, Update command state logic, Test the custom command,
Handle command execution results) in <Tabs syncKey="aspire-lang">
with parallel TypeScript examples. The TypeScript samples follow the
RpsArena playground pattern: inline withCommand registration, HTTP-based
command logic via getEndpoint + fetch, and plain object-literal results.
Adds <Aside> callouts where the TypeScript SDK genuinely lacks a feature
the C# AppHost has:
- UpdateCommandStateContext.resourceSnapshot (no equivalent)
- Programmatic command execution via ResourceCommandService (C# only)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* Fix build error (#843)
* [docs] Add aspire destroy command documentation (#769)
* Add aspire destroy command documentation
Documents the new aspire destroy CLI command introduced in
microsoft/aspire#16097. Adds a full command reference page with
synopsis, description, options, and examples; updates the CLI
overview to include an aspire destroy section; and registers the
new page in the sidebar.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Match aspire destroy options to release/13.3 CLI
- Rename --log-level to --pipeline-log-level (microsoft/aspire#16596)
- Add --list-steps, --no-build, and global --log-level (-l) entries
via shared includes, matching aspire-deploy/aspire-publish docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* [docs] Add --list-steps sample output to aspire do and pipelines pages (#847)
The reference docs for aspire do and the deployment/pipelines conceptual
page already document the --list-steps flag, but neither shows what the
output actually looks like. Add a short, canonical numbered-tree sample
(matches the formatter in microsoft/aspire#16085 and its snapshot tests)
so readers can see at a glance what to expect — including the connectors
used for steps with deps only, deps and tags, and steps with no
dependencies.
Context: microsoft/aspire.dev#837 (item #2), follow-up polish to #801.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Add Logger property to ExecuteCommandContext docs (#818)
* docs: document Logger property on ExecuteCommandContext
Add the new Logger property to the ExecuteCommandContext properties list
and update code examples to use context.Logger directly instead of
resolving ILogger from the service provider.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update Logger description to mention dashboard and aspire logs command
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: James Newton-King <james@newtonking.com>
* docs: update Kubernetes deployment docs to use WithHelm chart options (#840)
Update the Helm chart metadata section to use the new WithHelm(...)
API that consolidates chart name, version, and description configuration.
The previous WithProperties API for HelmChartName/HelmChartVersion/
HelmChartDescription is now internal.
Relates to microsoft/aspire#16759
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document dashboard notification center (#850)
Add a Notification center section to the explore dashboard page describing the bell icon, notifications dialog, View response action, and Dismiss all. Update references from toast notifications to the notification center. Add Markdown to the text visualizer format list. Update custom-resource-commands.mdx to link to the notification center instead of referencing toasts. Add notification center screenshots.
* Update Microsoft Foundry docs (#845)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document publish summary output (#844)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add package manager requirements for TypeScript AppHosts (#841)
Document that Yarn Classic (v1) is not supported for TypeScript AppHosts.
Users must use Yarn 4+, npm, pnpm, or Bun. Adds a Package managers section
to the TypeScript AppHost project structure page with a supported-toolchains
table and a caution callout explaining the Yarn Classic restriction and how
to upgrade.
Documents changes from microsoft/aspire#16792.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Update agent init docs for new interactive flow, skill locations, and dotnet-inspect skill (#827)
* docs: update agent init docs for new interactive flow and locations
- Update ai-coding-agents.mdx to document the new two-phase interactive
flow: first select skill locations, then select skills to install
- Document the new Standard (.agents/skills/) location supported by
VS Code, GitHub Copilot, and OpenCode
- Document all four skill locations with their directories
- Document the new dotnet-inspect skill and its file layout
- Update aspire-agent-init.mdx command reference to describe the new
interactive multi-step setup flow
Documents changes from microsoft/aspire#15022
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: David Pine <david.pine@microsoft.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
* [docs] AppHost eventing: document OnBeforeStart, OnBeforePublish, OnAfterPublish builder extension methods (#821)
* docs: add OnBeforeStart, OnBeforePublish, OnAfterPublish builder extension methods
Documents the new convenience extension methods added in microsoft/aspire#14119
that allow subscribing to AppHost-level events directly on IDistributedApplicationBuilder.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Alex Crome <afscrome@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: Alex Crome <afscrome@users.noreply.github.com>
* docs: update Microsoft Foundry hosting integration to include deployment resource details
* docs: update TypeScript endpoint property samples (#854)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document duplicate polyglot capability analyzer (#856)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Prep aspire.dev for Aspire 13.3 release (May 7, 2026) (#860)
* Prep aspire.dev for Aspire 13.3 release (May 7, 2026)
Cuts the docs site over to 13.3.0 stable. Lands one tooling fix
(partial-class nested types) and the matching renderer change so the
new FoundryModel provider classes surface on the API reference page,
then refreshes every generated data file from the release/13.3 darc
feed (darc-pub-microsoft-aspire-5bd693ae).
Tooling
- PackageJsonGenerator: emit `nestedTypes` (full names of public
nested types) on every CanonicalType. Roslyn merges partials, so
GetTypeMembers() picks up nested types contributed by every source
file (e.g. FoundryModel + FoundryModel.Generated.cs). Filters out
compiler-generated and non-public types.
- PackageJsonGenerator.Tests: regression test for partial-class
nested-type collection (13/13 pass).
- update-schemas.ts: new --ref <sha|ref> flag so the aspire-config
schema can be fetched by SHA when the release tag isn't yet
published. Defaults to v<version> as before.
Renderer
- csharp-api-markdown.ts and pages/.../[type]/index.astro: render a
new "Nested Types" section with kind pills and summaries when
type.nestedTypes is populated. FoundryModel now surfaces all 14
provider classes (AI21Labs, Anthropic, BlackForestLabs, Cohere,
Core42, DeepSeek, Local, Meta, Microsoft, MistralAI, OpenAI,
StabilityAI, XAI, plus the namespace root).
AppHost
- Bump Aspire.AppHost.Sdk and the two PackageReferences from 13.2.0
to 13.3.0 in src/apphost/Aspire.Dev.AppHost.
Doc sweep (13.2.0 -> 13.3.0)
- support.mdx: 13.3 supported row + 13.2 demoted to out-of-support;
Last updated badge -> May 7, 2026.
- aspireconf/index.mdx: branding 13.2 -> 13.3.
- Code samples in app-host/typescript-apphost, get-started/aspire-sdk,
install-cli, add-aspire-existing-app,
extensibility/multi-language-integration-authoring,
reference/cli/commands/aspire-{add,init,new},
integrations/databases/postgres/postgres-host.
Regenerated data
- aspire-integrations.json: 156 packages.
- pkgs/*.json: 94 Aspire packages at 13.3.x (deleted matching
13.2.0 siblings); CommunityToolkit packages from nuget.org as before.
- ts-modules/*.json: 54 modules.
- twoslash/aspire.d.ts: regenerated bundle (31 DTOs, 29 enums,
235 handle types).
- samples.json (15), github-stats.json (5),
schemas/aspire-config.13.3.0.schema.json + index.json.
Tests
- Unit (vitest): 132/132 (one fixture-path bump for the regenerated
Aspire.Hosting.13.3.0.json fixture).
- .NET: PackageJsonGenerator 13/13, AtsJsonGenerator 5/5.
- Lint: clean.
- Playwright: 112 passed, 6 unrelated cookie-consent failures
(pre-existing, not touched by this change), 1 flaky WCAG case.
* Fix support page: 13.2.x latest patch is 13.2.4 (April 24, 2026)
The support table incorrectly listed 13.2.3 (April 22, 2026) as the latest 13.2.x patch. Aspire.Hosting 13.2.4 was published to nuget.org on 2026-04-24.
* docs: update CLI command docs for non-interactive options (aspire#16235) (#744)
- aspire update: add --yes/-y and --nuget-config-dir options, remove
outdated note that non-interactive mode is unsupported
- aspire agent init: add --workspace-root, --skill-locations, and
--skills options
- aspire new: update description for non-interactive error behavior,
add --suppress-agent-init option, remove outdated limitation note
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
* [release/13.3] Restructure VS Code extension page (polyglot + screenshots) (#849)
* Backport: Restructure VS Code extension page for 13.3
Ports the polyglot/13.3 restructure of the VS Code extension docs from docs/vscode-extension-polyglot:
- Restructured aspire-vscode-extension.mdx (intro, Install, Getting started, Scaffold + integrations, Live editor integration with CodeLens/gutter/title-bar buttons, Aspire view, Run/debug/deploy with launch.json examples, Language coverage, Feedback).
- Added code-extension-{codelens,sidebar,debug}{,-light}.png screenshot assets.
- Updated configuration.mdx 'Associate the schema in Visual Studio Code' note to point to the extension.
* Address Copilot review: grammar fixes and remove misleading deploy command from launch example
* Remove redundant intro sentence about live state surfaces
* Wrap Getting started in Steps; mention manual schema fallback for users without the extension
* Correct gutter icon table and editor title button labels to match shipped extension
* Update New Aspire project screenshot to show new template list
* Use distinct dark and light New Aspire project screenshots
* Use distinct light theme image for Aspire panel sidebar
* Use new image for Aspire panel dark theme
* Use new image for Aspire panel light theme
* Remove width=400 on Aspire view image so full window screenshot renders responsively
* Trim transparent padding from screenshots; ignore generated twoslash types
* Use actual dark theme screenshot for Aspire sidebar
* Add debug screenshots (dark+light) and re-trim all extension screenshots
* Remove install + live-editor screenshots
* Move Aspire view screenshot up under Live editor integration
* Replace new project screenshots and trim transparent borders
* Move debug sessions screenshot below launch.json examples
* Caption new project screenshot
* Tighten new project caption
* Remove center alignment from new project caption
* Reword intro lede
* docs: update multi-language integration guide for ATS-first API design (#756)
Documents the getter-only-to-async-method behavior introduced in
microsoft/aspire#16403 and adds a new 'Callback context types and the
ATS-first editor pattern' section explaining:
- How getter-only C# properties map to async methods in generated
TypeScript SDKs, while mutable-collection properties remain as
readonly getters
- The ATS-first editor/facade pattern for callback context types
(EnvironmentEditor, etc.) that should be used instead of
ExposeProperties = true on callback context classes
- How to define, export, and consume callback extension methods like
withEnvironmentCallback, withArgsCallback, and withUrls
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add Durable Task Scheduler section to Azure Functions hosting docs (#820)
Documents the new DTS support added in microsoft/aspire#13711.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update TypeScript Dockerfile builder docs (#846)
* Update TypeScript Dockerfile builder docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarify API examples for TypeScript AppHosts
Removed unnecessary note about C# method names in API examples.
* Update documentation for DockerfileBuilderCallbackContext
Clarify the usage of DockerfileBuilderCallbackContext in TypeScript.
* Document TypeScript Docker Compose APIs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add TypeScript Docker integration examples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update src/frontend/src/content/docs/integrations/compute/docker.mdx
Co-authored-by: David Pine <david.pine@microsoft.com>
* Update src/frontend/src/content/docs/app-host/withdockerfile.mdx
Co-authored-by: David Pine <david.pine@microsoft.com>
* Update src/frontend/src/content/docs/deployment/docker-compose.mdx
Co-authored-by: David Pine <david.pine@microsoft.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
* [docs] Add aspire destroy command reference documentation
* Add aspire destroy command reference documentation
Documents the aspire destroy command including the new requirement
that --yes must be passed when using --non-interactive.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address aspire destroy docs review feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document aspire destroy Docker Compose output
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
* docs: update aspire init and add-to-existing-app for skill-driven aspirification (#776)
Document the new two-phase aspire init behavior introduced in microsoft/aspire#15918:
- aspire init now drops a skeleton AppHost + aspire.config.json and installs
the aspireify agent skill instead of performing full project wiring itself
- The --source and --version options are deprecated
- Update aspire-init.mdx: new description, aspireify skill section, updated examples
- Update add-aspire-existing-app.mdx: explain the two-phase init flow for both
C# and TypeScript AppHosts
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Pin AppHost to Aspire 13.2.4
* Document Azure HTTPS endpoint upgrades (#867)
Covers WithHttpsUpgrade behavior for Azure App Service and Azure Container Apps deployment docs. References microsoft/aspire.dev#833 item 19 and microsoft/aspire#16060.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document HTTP command result mode (#866)
* docs: document HTTP command result mode
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: use Node app in HTTP command TS sample
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: chain TypeScript HTTP command sample
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add Express HTTP command endpoint sample
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document ASPIRE_ENVIRONMENT for AppHost (#868)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update MCP docs for Aspire 13.3 (#865)
Align the AI agent and MCP CLI reference docs with the Aspire 13.3 command surface, including current skill options and standalone dashboard MCP options.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Document unified withEnvironment API and IExpressionValue for multi-language AppHosts (Aspire 13.3) (#814)
* Document unified withEnvironment API and IExpressionValue for multi-language AppHosts
- Update multi-language-integration-authoring.mdx:
- Expand the union types example to show the full withEnvironment union
including IExpressionValue
- Add new IExpressionValue section explaining the interface, its role, and
how to implement it in custom types
- Add migration table from old withEnvironment* aliases to unified API
- Update supported types table to list IExpressionValue
- Update aspire-13-3.mdx whats-new with a new section covering the unified
withEnvironment API, the IExpressionValue interface, and the deprecation
of the per-kind alias methods
Documents changes from microsoft/aspire#15649
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address withEnvironment docs review
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Sebastien Ros <sebastienros@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: maddymontaquila <12660687+maddymontaquila@users.noreply.github.com>
* Document MaxResourceCount telemetry limit option for dashboard (#797)
Add MaxResourceCount to the TelemetryLimits configuration table in the
dashboard configuration docs. This new option (default 10,000) limits the
number of resources tracked by the dashboard to prevent unbounded memory
growth in long-running sessions with dynamic services or high-cardinality
peer addresses.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Azure AI Foundry Prompt Agents Support (#853)
* expand hosted agents, adds prompt agents
* feat: Add light mode images for agent send message and responses in Azure AI Foundry integration
Co-authored-by: Copilot <copilot@github.com>
* changes images
* adds typescript samples
Co-authored-by: Copilot <copilot@github.com>
---------
Co-authored-by: Copilot <copilot@github.com>
* Port AppHost path config docs to release/13.3 (#870)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [docs] Add AddNextJsApp and publish methods for JavaScript apps (Aspire 13.3) (#767)
* docs: add TypeScript AppHost samples for JavaScript apps
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: use JavaScript backends in JS app samples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: reorganize JavaScript deployment guidance
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: align JavaScript integration apphost samples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add JavaScript AppHost language selector
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: use synced tabs for JavaScript AppHost samples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: update AppHost language tab guidance
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: surface JavaScript deployment guidance earlier
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: clarify build-only JavaScript resources
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: document build-only validation escape hatch
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: David Fowler <davidfowl@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Maddy Montaquila <maleger@microsoft.com>
* Update Kubernetes docs to use WithHelm for Helm chart options (#858)
Replace deprecated WithProperties(k8s => k8s.HelmChartName = ...) examples
with the consolidated WithHelm(helm => helm.WithChartName(...)) API introduced
in microsoft/aspire#16759 / microsoft/aspire#16802.
Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [whats-new] Expand 13.3 release notes (#838)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Mitch Denny <mitch@mitchdenny.com>
Co-authored-by: James Newton-King <james@newtonking.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
Co-authored-by: David Pine <david.pine@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>
* docs: update dashboard docs to reflect removal of in-dashboard GitHub Copilot (#808)
Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Maddy Montaquila <maleger@microsoft.com>
* Remove installation images for Aspire extension (#875)
Removed images related to installing the Aspire extension and updated the documentation accordingly.
This is breaking the release/13.3 build.
* Simplify MaxResourceCount description in documentation
Removed the explanation for MaxResourceCount limit in the dashboard configuration documentation…
Summary
aspire docs api list|search|getto browse Aspire API reference material fromaspire.devhttps://aspire.dev/sitemap-0.xmland fetch API page markdown directly from the matching reference pagesaspire docs listrows from extra landing-page H1 contentDetails
aspire docs api ...rather than a top-levelaspire api ...java,go,python, andrustgetreturns markdown and renders it through the shared interaction-service markdown rendererAspire.Cli.Documentation, with prose docs inDocumentation.Docsand API docs inDocumentation.ApiDocsCachedHttpDocumentFetcherDocsIndexServicellms-small.txtandllms-small.etag.txtLlmsTxtParserfrom splitting landing-page hero H1 content into bogus extra documentsTesting
docs api list|search|getFixes #14911
Fixes #14346
Fixes #15840
Dependencies
None
Checklist
<remarks />and<code />elements on your triple slash comments?aspire.devissue: