Generate the canonical polyglot AppHost API reference - #1637
Generate the canonical polyglot AppHost API reference#1637David Pine (IEvangelist) wants to merge 6 commits into
Conversation
2b10e77 to
4e285f4
Compare
4e285f4 to
089cd61
Compare
089cd61 to
be9a304
Compare
be9a304 to
ff0e82a
Compare
Frontend HTML artifact readyThe latest frontend build uploaded the This comment updates automatically when a new frontend build artifact is uploaded. |
ff0e82a to
4170bc2
Compare
4170bc2 to
fa2dd4a
Compare
fa2dd4a to
5772bfc
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The AppHost API language auto-correction dispatch can be missed on first load, leaving URL/localStorage unsynchronized.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Generates and wires up the canonical polyglot AppHost API reference for aspire.dev, including new semantic module data, a language-support matrix, canonical /reference/api/apphost/** routes, and legacy TypeScript route compatibility via redirects/aliases.
Changes:
- Adds AtsJsonGenerator test coverage for upstream drift locking, generation script contract, and projection adapter golden outputs.
- Introduces support-matrix aggregation in AtsJsonGenerator and integrates it into the CLI tool surface.
- Migrates frontend API reference UX/routes to the canonical AppHost tree, adds legacy TypeScript redirect/alias plumbing, and updates unit/e2e tests accordingly.
File summaries
| File | Description |
|---|---|
| tests/AtsJsonGenerator.Tests/UpstreamDriftTests.cs | Verifies pinned upstream lock + aggregate hash stability. |
| tests/AtsJsonGenerator.Tests/Golden/typescript.golden | Golden output for TS projection adapter. |
| tests/AtsJsonGenerator.Tests/Golden/rust.golden | Golden output for Rust projection adapter. |
| tests/AtsJsonGenerator.Tests/Golden/python.golden | Golden output for Python projection adapter. |
| tests/AtsJsonGenerator.Tests/Golden/java.golden | Golden output for Java projection adapter. |
| tests/AtsJsonGenerator.Tests/Golden/go.golden | Golden output for Go projection adapter. |
| tests/AtsJsonGenerator.Tests/GenerationScriptContractTests.cs | Locks contract for PowerShell generator args/env handling. |
| tests/AtsJsonGenerator.Tests/AtsJsonGenerator.Tests.csproj | Copies fixtures/golden + tool artifacts to test output. |
| tests/AtsJsonGenerator.Tests/AdapterGoldenTests.cs | Ensures adapter projections match golden baselines. |
| src/tools/AtsJsonGenerator/upstream-sources.lock.json | Adds pinned upstream blob lock manifest. |
| src/tools/AtsJsonGenerator/SupportMatrixCommand.cs | Adds CLI command to generate language support matrix JSON. |
| src/tools/AtsJsonGenerator/Program.cs | Registers support subcommand. |
| src/tools/AtsJsonGenerator/Helpers/SupportMatrixAggregator.cs | Aggregates per-module data into support matrix model. |
| src/tools/AtsJsonGenerator/BatchGenerateCommand.cs | Adds dump provenance args + renames --version to --package-version. |
| src/frontend/tests/unit/validate-generated-api-data.vitest.test.ts | Extends validation tests for semantic modules + support matrix. |
| src/frontend/tests/unit/twoslash-types-generator.vitest.test.ts | Updates fixture shape/env vars for apphost-modules. |
| src/frontend/tests/unit/page-metadata.vitest.test.ts | Updates generated-route OG metadata assertions for apphost routes. |
| src/frontend/tests/unit/normalize-generated-api-data.vitest.test.ts | Updates normalization expectations for semantic projections. |
| src/frontend/tests/unit/integration-card-language-support.vitest.test.ts | Adds tests for support-aware integration language pills. |
| src/frontend/tests/unit/diagnostics-language.vitest.test.ts | Switches diagnostics scan to apphost-modules semantic shape. |
| src/frontend/tests/unit/custom-components.vitest.test.ts | Adjusts expected integration card language markup. |
| src/frontend/tests/unit/container-images-language-support.vitest.test.ts | Adds tests for projected container API labels per language. |
| src/frontend/tests/unit/api-reference-routes.vitest.test.ts | Adds apphost markdown-route recognition coverage. |
| src/frontend/tests/e2e/ts-api-search.spec.ts | Migrates TS API search e2e to apphost landing + lang param. |
| src/frontend/tests/e2e/site-search.spec.ts | Updates search dialog API buttons behavior for generated languages. |
| src/frontend/tests/e2e/og-metadata.spec.ts | Migrates generated API OG fallback coverage to apphost routes. |
| src/frontend/tests/e2e/api-markdown-routes.spec.ts | Adds canonical apphost markdown routes + legacy TS redirect test. |
| src/frontend/src/utils/apphost-typescript-route-aliases.ts | Adds helpers for legacy TS route alias manifest + targets. |
| src/frontend/src/utils/apphost-api-sidebar.ts | Adds sidebar builder for apphost API tree. |
| src/frontend/src/utils/apphost-api-search.ts | Builds apphost search index across languages + member routes. |
| src/frontend/src/utils/apphost-api-search-stats.ts | Adds stats helpers for apphost search landing UI. |
| src/frontend/src/utils/apphost-api-routes.ts | Adds slugging + top-level/member routing helpers for apphost. |
| src/frontend/src/utils/apphost-api-markdown.ts | Adds Markdown renderers for apphost module/item/member pages. |
| src/frontend/src/pages/reference/api/typescript/[module]/[item]/[member].md.ts | Converts legacy TS markdown member route into redirect. |
| src/frontend/src/pages/reference/api/typescript/[module]/[item].md.ts | Converts legacy TS markdown item route into redirect. |
| src/frontend/src/pages/reference/api/typescript/[module].md.ts | Converts legacy TS markdown module route into redirect. |
| src/frontend/src/pages/reference/api/typescript.md.ts | Converts legacy TS markdown index into redirect. |
| src/frontend/src/pages/reference/api/apphost/index.astro | Adds canonical apphost API landing/search page. |
| src/frontend/src/pages/reference/api/apphost/[module]/index.astro | Adds canonical module overview page. |
| src/frontend/src/pages/reference/api/apphost/[module]/[item]/index.astro | Adds canonical item page with per-language projections + members list. |
| src/frontend/src/pages/reference/api/apphost/[module]/[item]/[member]/index.astro | Adds canonical member page with per-language projections. |
| src/frontend/src/pages/reference/api/apphost/[module]/[item]/[member].md.ts | Adds canonical member Markdown route. |
| src/frontend/src/pages/reference/api/apphost/[module]/[item].md.ts | Adds canonical item Markdown route. |
| src/frontend/src/pages/reference/api/apphost/[module].md.ts | Adds canonical module Markdown route. |
| src/frontend/src/pages/reference/api/apphost.md.ts | Adds canonical apphost index Markdown route. |
| src/frontend/src/middleware.ts | Expands nested markdown redirect matcher to include apphost. |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Umami.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Squad.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Rust.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Redis.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Python.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.PowerShell.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.MySql.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.13.5.1-beta.748.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Flyway.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.DuckDB.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Deno.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Dbx.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Bun.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/CommunityToolkit.Aspire.Hosting.Adminer.13.5.0.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Dotnet.13.5.3-preview.1.26425.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Browsers.13.5.3-preview.1.26425.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Blazor.13.5.3-preview.1.26425.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.Search.13.5.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.OperationalInsights.13.5.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.FrontDoor.13.5.3-preview.1.26425.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/data/ts-modules/Aspire.Hosting.Azure.ApplicationInsights.13.5.3.json | Removes legacy TS module JSON (migration to semantic modules). |
| src/frontend/src/content.config.ts | Defines semantic apphostModules collection + schema validation. |
| src/frontend/src/components/starlight/Sidebar.astro | Treats typescript/apphost as the same API grouping for sidebar logic. |
| src/frontend/src/components/starlight/Search.astro | Replaces TS API button with generated-language AppHost API buttons. |
| src/frontend/src/components/IntegrationCard.astro | Filters language pills based on per-package semantic support. |
| src/frontend/src/components/api-reference/MemberCardBase.astro | Expands lang union to generated languages for highlighting. |
| src/frontend/src/components/api-reference/inpage-search-sync.ts | Exports class for direct imports while keeping window binding. |
| src/frontend/src/components/api-reference/AppHostProjection.astro | Renders a single item projection for a selected language. |
| src/frontend/src/components/api-reference/AppHostApiLanguageSelector.astro | Adds generated-language pivot selector for apphost API pages. |
| src/frontend/scripts/update-ts-api.ts | Regenerates semantic apphost-modules data and support matrix. |
| src/frontend/scripts/normalize-generated-api-data.ts | Normalizes terminology in apphost-modules + support matrix. |
| src/frontend/package.json | Adds update:apphost-api and aliases update:ts-api. |
| src/frontend/config/sidebar/reference.topics.ts | Renames sidebar link to “Search AppHost APIs” and points to new route. |
| .github/workflows/update-release-branch.yml | Includes apphost-modules + support matrix in generated outputs. |
| .github/workflows/update-integration-data.yml | Includes apphost-modules + support matrix in integration update outputs. |
| .gitattributes | Enforces LF + stable whitespace handling for golden files. |
Review details
- Files reviewed: 32/327 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
c0ce5dc to
0ab55b2
Compare
Stack 4/5. Depends on #1636.
This change generates the canonical polyglot AppHost API reference:
/reference/api/apphost/**HTML and Markdown routesPython, Go, Java, and Rust remain disabled until stack 5.
Validation:
git diff --checkpassed