Repository navigation
[docs] Document REPL dashboard command for database and cache integrations - #1740
aspire-repo-bot[bot] wants to merge 1 commit into
Conversation
…egrations Adds documentation for the opt-in WithRepl() extension method that adds a REPL dashboard command for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and Valkey hosting integrations (microsoft/aspire#20231). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Frontend HTML artifact readyThe latest frontend build uploaded the This comment updates automatically when a new frontend build artifact is uploaded. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
One or more issues must be addressed before approval.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 6
Open (6)
WithRepl docs target a release branch without the API · New WithRepl docs target a release branch without the API · New WithRepl docs target a release branch without the API · New WithRepl docs target a release branch without the API · New WithRepl docs target a release branch without the API · New WithRepl docs target a release branch without the API · New
What changed in this PR
Adds documentation for opt-in dashboard REPL commands for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and Valkey.
Changes:
- Adds C# and TypeScript
WithRepl()examples. - Documents client behavior, credentials, exit commands, TLS, and security considerations.
- Phase A found the APIs absent from
microsoft/aspirerelease/13.6(a11eca9611073f7cf66fa87faac63c2119e87713); they exist only in PR #20231 head (7369267f68e08f3bb9abfde6d434057cc2c2f05c). - Phase B browser testing could not run because the available browser session remained at
about:blankwithout navigation support.
| File | Description |
|---|---|
| src/frontend/src/content/docs/integrations/databases/sql-server/sql-server-host.mdx | Updated as part of this pull request. |
| src/frontend/src/content/docs/integrations/databases/postgres/postgres-host.mdx | Updated as part of this pull request. |
| src/frontend/src/content/docs/integrations/databases/mysql/mysql-host.mdx | Updated as part of this pull request. |
| src/frontend/src/content/docs/integrations/databases/mongodb/mongodb-host.mdx | Updated as part of this pull request. |
| src/frontend/src/content/docs/integrations/caching/valkey/valkey-host.mdx | Updated as part of this pull request. |
| src/frontend/src/content/docs/integrations/caching/redis/redis-host.mdx | Updated as part of this pull request. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| var cache = builder.AddRedis("cache") | ||
| .WithRepl(); |
| var cache = builder.AddValkey("cache") | ||
| .WithRepl(); |
| var mongo = builder.AddMongoDB("mongo") | ||
| .WithRepl(); |
| var mysql = builder.AddMySql("mysql") | ||
| .WithRepl(); |
| var postgres = builder.AddPostgres("postgres") | ||
| .WithRepl(); |
| var sql = builder.AddSqlServer("sqlserver") | ||
| .WithRepl(); |
|
CI failed on this PR (
I retriggered the run and it failed again with the identical error (run https://github.com/microsoft/aspire.dev/actions/runs/35953674341), confirming it's caused by the content changes in this PR rather than transient CI flakiness. Flagging so the sample can be fixed (or the type data regenerated) before merge. |
David Pine (IEvangelist)
left a comment
There was a problem hiding this comment.
Automated docs-accuracy review
Source of truth (Phase A): microsoft/aspire @ release/13.6, SHA 8536cc330bfb6b335c2666f72ba5856a33a169c8 (matches this PR's base branch).
Claims extracted: 11 · verified 0 · verified-with-nuance 0 · unverifiable 11 · contradicted 0.
Phase B (doc-tester): 6 integration routes exercised · 0 critical · 2 warnings.
Headline: This PR documents the
WithRepl()/withRepl()REPL dashboard command, which is a 14.0-only API (microsoft/aspire#20231, milestone 14.0, merged tomain). It does not exist inrelease/13.6, the branch this PR targets — so against the required source of truth everyWithReplclaim is unverifiable. The technical content itself is accurate for 14.0/main. Please confirm the intended release/branch (or version-gate these sections) so users on 13.6 aren't shown an API their SDK doesn't have. This mirrors the branch-targeting pattern seen in other auto-generated docs-from-code PRs.
Verdict: COMMENT — no contradicted claims and no Phase B critical issues, but the whole feature is unverifiable on the target branch and there are two blind-user warnings worth addressing.
Phase A — Claim verification
WithRepl is entirely absent from release/13.6: the branch has no WithRepl, WithReplCommand, or CreateReplOptionsAsync, and #20231's merge commit e9944f9 is not an ancestor of release/13.6. On main all six extension methods plus 25 helper references exist and the described behavior checks out. See the per-file inline comments for each page's specifics.
Per-integration evidence verified against main (14.0 context — NOT authoritative for this PR's release/13.6 target)
| Integration | main source |
Verified behavior |
|---|---|---|
| Redis | src/Aspire.Hosting.Redis/RedisBuilderExtensions.cs |
redis-cli; REDISCLI_AUTH env; when TLS enabled, non-TLS port over loopback (secondary endpoint) |
| Valkey | src/Aspire.Hosting.Valkey/ValkeyBuilderExtensions.cs |
valkey-cli; password via env |
| MongoDB | src/Aspire.Hosting.MongoDB/MongoDBBuilderExtensions.cs |
mongosh; authSource=admin; directConnection=true (incl. replica members); tlsCAFile + localhost SAN |
| MySQL | src/Aspire.Hosting.MySql/MySqlBuilderExtensions.cs |
--user=root; MYSQL_PWD env (kept out of argv/SQL history) |
| PostgreSQL | src/Aspire.Hosting.PostgreSQL/PostgresBuilderExtensions.cs |
psql --dbname postgres; PGPASSWORD env |
| SQL Server | src/Aspire.Hosting.SqlServer/SqlServerBuilderExtensions.cs |
sqlcmd -U sa -d master -C; SQLCMDPASSWORD env; dual mssql-tools18/mssql-tools path fallback; runs as sa |
All six: opt-in, registered only in run mode, not in published apps — consistent with the PR's prose.
Phase B — Doc-tester report (blind to microsoft/aspire source)
Focus area: REPL command sections added to 6 integration host pages.
Routes exercised: /integrations/caching/redis/redis-host/, /integrations/caching/valkey/valkey-host/, /integrations/databases/mongodb/mongodb-host/, /integrations/databases/mysql/mysql-host/, /integrations/databases/postgres/postgres-host/, /integrations/databases/sql-server/sql-server-host/.
| Category | Passed | Failed | Warnings |
|---|---|---|---|
| Content accuracy | 6 | 0 | 1 |
| Components / structure | 6 | 0 | 0 |
| Cross-language naming | 5 | 0 | 1 |
| Links / anchors | 6 | 0 | 0 |
Critical issues: none.
Warnings:
- No "available since" / minimum-version note. The deployed pages render the package pin
Aspire.Hosting.*: 13.5.3, so the published docs represent the 13.5.x SDK. A new user on the current SDK who copies.WithRepl()/await x.withRepl()and runsaspire runhas no way to know which Aspire version introduces the API — the sections state no version requirement. (Reached purely from the docs + deployed site, without reading product source; it independently corroborates the Phase A branch mismatch.) - SQL Server intra-page naming inconsistency. The new section uses
AddSqlServer("sqlserver")/addSqlServer("sqlserver"), but every other example on that page (12 occurrences) names the resource"sql". See the inline comment onsql-server-host.mdx.
Passed checks:
- All 6 routes render live (HTTP 200) with the expected reference structure.
Tabs/TabItemimported;<Tabs syncKey="aspire-lang">used correctly; C#-first tab order matches each file's existing convention.- Resource names consistent within each new C#/TS example (and matching existing page usage for redis/valkey/mongodb/mysql/postgres).
:::cautionsecurity callouts present and consistent across all six; the SQL Server callout accurately notessa+ server-side OS-command exposure.- No internal links/anchors introduced → no broken-link risk.
- Per-client exit guidance present (redis/valkey
quit, mongodbexit, mysqlquit, postgres\connect/\q, sql-serverUSE/QUITwith aGObatch example).
Knowledge gaps / method disclosure:
- Frontend
node_modulesis not installed and localpnpm buildis disallowed by repo rule, so a full local Astro render and a live REPL run were not performed. Validation combined live deployed-route rendering (blind-user grounding) with static structural review of the added sections. The example could not be executed end-to-end in this environment; the version concern above is the main thing a runnable test would have surfaced.
| The TypeScript AppHost doesn't currently expose a `withClearCommand()` API for Redis. This feature is only available in the C# AppHost. | ||
| </Aside> | ||
|
|
||
| ## Add Redis resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). WithRepl() / withRepl() for Redis does not exist in microsoft/aspire release/13.6 (SHA 8536cc330b). It ships in microsoft/aspire#20231, which merged to main (milestone 14.0); the merge commit isn't an ancestor of release/13.6, and the branch has no WithRepl/WithReplCommand/CreateReplOptionsAsync.
Accurate for 14.0: src/Aspire.Hosting.Redis/RedisBuilderExtensions.cs defines WithRepl (redis-cli, REDISCLI_AUTH env, non-TLS loopback via the secondary endpoint when TLS is enabled). Because this PR targets release/13.6, the claim is unverifiable there — please confirm the intended branch or version-gate the section.
|
|
||
| When no `password` parameter is provided, Aspire generates a strong password automatically using the `CreateDefaultPasswordParameter` method. | ||
|
|
||
| ## Add Valkey resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). Valkey WithRepl() / withRepl() isn't present in microsoft/aspire release/13.6 (SHA 8536cc330b); it ships in microsoft/aspire#20231 (merged to main, milestone 14.0).
Accurate for 14.0: src/Aspire.Hosting.Valkey/ValkeyBuilderExtensions.cs defines WithRepl (valkey-cli, password via env). Unverifiable on the 13.6 branch this PR targets — please confirm the intended branch or version-gate the section.
| </TabItem> | ||
| </Tabs> | ||
|
|
||
| ## Add MongoDB resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). MongoDB WithRepl() / withRepl() isn't present in microsoft/aspire release/13.6 (SHA 8536cc330b); it ships in microsoft/aspire#20231 (merged to main, milestone 14.0).
Accurate for 14.0: src/Aspire.Hosting.MongoDB/MongoDBBuilderExtensions.cs defines WithRepl (mongosh; authSource=admin; directConnection=true incl. replica members; tlsCAFile + localhost SAN). Unverifiable on the 13.6 branch this PR targets — please confirm the intended branch or version-gate the section.
|
|
||
| When no `password` parameter is provided, Aspire generates a strong password automatically using the `CreateDefaultPasswordParameter` method. For more information, see [External parameters](/get-started/resources/). | ||
|
|
||
| ## Add MySQL resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). MySQL WithRepl() / withRepl() isn't present in microsoft/aspire release/13.6 (SHA 8536cc330b); it ships in microsoft/aspire#20231 (merged to main, milestone 14.0).
Accurate for 14.0: src/Aspire.Hosting.MySql/MySqlBuilderExtensions.cs defines WithRepl (--user=root; MYSQL_PWD env, keeping the password out of argv and SQL history). Unverifiable on the 13.6 branch this PR targets — please confirm the intended branch or version-gate the section.
| </TabItem> | ||
| </Tabs> | ||
|
|
||
| ## Add PostgreSQL resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). PostgreSQL WithRepl() / withRepl() isn't present in microsoft/aspire release/13.6 (SHA 8536cc330b); it ships in microsoft/aspire#20231 (merged to main, milestone 14.0).
Accurate for 14.0: src/Aspire.Hosting.PostgreSQL/PostgresBuilderExtensions.cs defines WithRepl (psql --dbname postgres; PGPASSWORD env). Unverifiable on the 13.6 branch this PR targets — please confirm the intended branch or version-gate the section.
|
|
||
| For a list of available tags, see [SQL Server container image tags](https://mcr.microsoft.com/en-us/artifact/mar/mssql/server/tags). | ||
|
|
||
| ## Add SQL Server resource with a REPL command |
There was a problem hiding this comment.
Phase A — unverifiable against the target branch (release/13.6). SQL Server WithRepl() / withRepl() isn't present in microsoft/aspire release/13.6 (SHA 8536cc330b); it ships in microsoft/aspire#20231 (merged to main, milestone 14.0).
Accurate for 14.0: src/Aspire.Hosting.SqlServer/SqlServerBuilderExtensions.cs defines WithRepl (sqlcmd -U sa -d master -C; SQLCMDPASSWORD env; dual mssql-tools18/mssql-tools fallback; runs as sa).
Phase B — naming inconsistency. This section names the resource "sqlserver" (AddSqlServer("sqlserver") / addSqlServer("sqlserver")), but every other example on this page uses "sql" (12 occurrences). Consider "sql" here for intra-page consistency.
…ps (#1780) ## Summary <!-- Describe what this pull request changes and why. --> Reconcile the 13.6 wiki audit and **all 25 open `docs-from-code` proposals targeting `release/13.6`** against the actual release source. Add missing canonical guidance rather than putting all coverage in What's new. This is a new, isolated feature PR into `release/13.6`; it does not update the release rollup #1599, merge or close another proposal, or push directly to a release branch. **Draft with explicit remaining packaging/validation gates:** the six REPL walkthroughs are source-verified, but current publicly available 13.6 packages do not contain the late `WithRepl` exports. Generated API catalogs have deliberately not been fabricated or refreshed from 14.x. See the open checklist below. ### Evidence baseline - Documentation base: `717442f6666948bcf77f3d704dc2dadf7c080ec2`. - Product source of truth: [`microsoft/aspire@e8fd6fbb954f50ccd2e66479538392f65e13e71d`](https://github.com/microsoft/aspire/tree/e8fd6fbb954f50ccd2e66479538392f65e13e71d), current `release/13.6` at audit time. Source was read from that Git object, not the stale source working directory. - [13.6 wiki](https://github.com/microsoft/aspire/wiki/13.6-Change-log) snapshot `8e01a371d4f16a1306e48174d4cf1fdeca714348`, whose cutoff is product PR 20511. Later backports 20541/20546/20548 are included here. - Proposal base branches alone were **not** used as proof of release membership. Direct ancestry and known release backports were checked. Four fallback-targeted proposals are excluded below. - Wiki link corrections: its REPL link #1752 actually covers Sandboxes; the REPL proposal is #1740. Its AOT link #1714 covers PFX certificates, not AOT. ### Complete audit-gap checklist Checked items mean documentation coverage is implemented, not that cloud deployment or every product runtime scenario was executed. - [x] **1. Dotnet API graduation:** correct removal to **13.6**, not 14.0, in What's new, both Dotnet guides, and the diagnostic page; preserve the prerelease package caveat. This applies to core `AddDotnetProject`, `DotnetProjectResource`, and related `WithBuildEnvironment` overloads, not all uses of the diagnostic. Source: microsoft/aspire#20496. - [x] **2. Sandboxes:** remove obsolete API suppressions in the article and deployment guide while preserving Azure service preview/access and prerelease package limitations. Source: microsoft/aspire#20483. - [x] **3. Docked REPL documentation:** all six PostgreSQL/MySQL/MongoDB/SQL Server/Redis/Valkey guides plus the article now cover opt-in `WithRepl`/`withRepl`, run-only availability, actual client privileges, credential handling, and explicit exit versus closing a viewer. Source: microsoft/aspire#20419, backport of microsoft/aspire#20231. Package-backed checks remain open below. - [x] **4. Terminal CLI flag:** update current 13.6 article, `with-terminal`, and all three terminal command references. Preserve `terminals.v1` and experimental hosting API distinctions. Current configuration/schema data had no flag entry to remove; historical 13.5 notes remain historical. Source: microsoft/aspire#20548. - [x] **5. First-party Rust:** rewrite both canonical Rust guides around `Aspire.Hosting.Rust`; document Cargo versus application arguments, typed targets, debugging, generated Dockerfiles, workspace context, ABI constraints, and Toolkit migration. Bacon remains explicitly Toolkit-only. Add exact first-party package mapping. Source: microsoft/aspire#18906 and current Rust README. - [x] **6. Agent setup:** align command reference, skills guide, AI-agent guide, and article on MCP opt-in, `--mcp`, chained/non-interactive behavior, seven-skill catalog, Project v2 migration, and Copilot app detection. Also fix stale default-selection text: all applicable bundle skills are preselected; companion tools remain opt-in. Sources: microsoft/aspire#19893, microsoft/aspire#20405, microsoft/aspire#19820. - [x] **7. Deno AppHost runtime:** document Deno 2+ detection, commands, permissions, native watch/type checking, doctor, and `DENO_CERT`, separately from Deno guest hosting. Source: microsoft/aspire#18627, distinct from microsoft/aspire#18628. - [x] **8. Native AOT / Fluent UI v5:** concise article, dashboard exploration, and standalone guidance; automatic packaged-dashboard selection, no invented performance figures. Source: microsoft/aspire#19565 and release packaging sources. - [x] **9. NuGet:** document bundled in-process operations, credential providers, non-interactive authentication, and realistic troubleshooting. Correct the proposal's `dotnet nuget locals` authentication advice: cache commands do not authenticate a feed. Source: microsoft/aspire#20391. - [x] **10. Multithreaded builds:** article and coordinated-build guide explain `-mt`, SDK detection, distinct project/file-based SDK floors, and fallback. Source: microsoft/aspire#20441. - [x] **11. Radius:** add a real deployment guide with C#/TypeScript setup, recipe-backed connections versus local endpoints, per-resource credential behavior, unauthenticated Redis limitation, secret exposure boundaries, and actionable runtime diagnostics 070–091. Wire navigation and exact package mapping. Source: microsoft/aspire#19555 and release README. - [x] **12. Connection aliases:** replace contradictory no-encoding guidance, retain composed logical-key-first lookup and portable-target behavior, explain collision detection and custom-publisher metadata. Source: microsoft/aspire#19729. - [x] **13. Connector Namespace / Toolbox / provisioning:** add Connector Namespace walkthrough, security/consent/revocation limits and mapping/sidebar; add Foundry Toolbox walkthrough, connection properties, roles, index prerequisites, approval enforcement boundaries, immutable versions, and existing-resource behavior. Extend existing Azure provisioning guide without a duplicate page. Sources: microsoft/aspire#19024, microsoft/aspire#17742, microsoft/aspire#20131. - [x] **14. Remaining high-impact items:** article covers opt-in manifest-aware DNX and new-template CLI bundling (existing SDK guides retained), migration skill and Copilot app detection; canonical inline `CsiVolumeSourceV1`/`VolumeV1.Csi` example, management links, Cosmos vNext telemetry, and AI Inference `GetModelInfoAsync`/`/info` health checks with `DisableHealthChecks`. No Azure OpenAI health-check claim. Sources: microsoft/aspire#19310, microsoft/aspire#19076, microsoft/aspire#19826, microsoft/aspire#20070, microsoft/aspire#15671, microsoft/aspire#15969. - [x] **15. All 25 proposal dispositions:** listed below, including newer dashboard backports and four exclusions. Existing Sandbox inference coverage is retained rather than copied from a stale draft. - [ ] **16. Refresh generated API/catalog/Twoslash data from an official post-backport 13.6 build.** Existing `26473.12`/`a11eca96` data remains untouched. The newest public `dotnet9` feed package checked, `13.6.0-preview.1.26474.10` at `43496a2a306c81c862c947b11b4f4e5494b6fe08`, still has no Redis `WithRepl` in its actual package XML. Do not use 14.x, hand-edit declarations, or attribute source changes to older binaries. - [ ] **Validate the six REPL examples against that actual post-backport SDK and running clients.** Their new TypeScript fences are plain TypeScript, not annotated with unsupported Twoslash data. No existing diagnostics are allowlisted or suppressed; no generated API exports are fabricated. Enable Twoslash when the genuine catalog catches up. ### All 25 open proposal dispositions and provenance Text is selectively adapted from these proposals, not merged wholesale. #1778 and #1748 are authored by @sebastienros; the other proposals are authored by the Aspire repo bot. The table credits the associated product-change authors where supplied by the proposals. Existing PRs remain open and unchanged. | Docs PR | Release source / credited product author | Disposition | | --- | --- | --- | | #1778 | microsoft/aspire#19729 — @sebastienros | **Adopted:** canonical connection-string alias correction, including logical-first resolution and migration. | | #1771 | microsoft/aspire#20481 — @sebastienros | **Excluded:** flat polyglot feature keys are not in the audited release tip; no verified backport. Preserve release key names. | | #1770 | microsoft/aspire#20525 → microsoft/aspire#20548 — @mitchdenny | **Corrected/adopted:** command guides plus the still-current 13.6 article, which the proposal incorrectly treats as historical. | | #1769 | microsoft/aspire#20416 — @JamesNK | **Excluded:** brand hover change has no verified 13.6 membership/backport. | | #1768 | microsoft/aspire#20523 → microsoft/aspire#20546 — @JamesNK | **Adopted:** run pin/unpin preserves selector and current selection. | | #1766 | microsoft/aspire#20537 → microsoft/aspire#20541 — @mitchdenny | **Adopted:** terminal dock empty state. | | #1761 | microsoft/aspire#20490 → microsoft/aspire#20496 — @eerhardt | **Corrected:** graduation is 13.6, package remains prerelease, Blazor-specific exception retained. | | #1760 | microsoft/aspire#20436 — @eerhardt | **Excluded:** CLI net11/tools-any retarget is not in the audited release; no fallback-base inference. | | #1748 | microsoft/aspire#20131 — @sebastienros | **Adopted:** extend existing provisioning guide with service-specific models/lookups and projection limits. | | #1744 | microsoft/aspire#20337 → microsoft/aspire#20441 — @karolz-ms | **Adopted:** precise SDK-conditional multithreaded build coverage. | | #1740 | microsoft/aspire#20231 → microsoft/aspire#20419 — @mitchdenny | **Adapted:** all six guides; TypeScript-first tabs, source-verified lifecycle/security. Actual post-backport SDK/runtime gate is open above. | | #1738 | microsoft/aspire#20158 → microsoft/aspire#20405 — @karolz-ms | **Partly already covered / completed:** existing seven-skill catalog retained; add project migration guidance and correct command catalog/defaults. Do not misclassify the bundled skill as a companion tool. | | #1735 | microsoft/aspire#20334 — @karolz-ms | **Excluded:** enhanced startup errors are not in the audited release; no verified backport. | | #1731 | microsoft/aspire#19847 → microsoft/aspire#20391 — @eerhardt | **Corrected/adopted:** in-process NuGet and real authenticated-restore troubleshooting, not cache-command authentication. | | #1719 | microsoft/aspire#20299 → microsoft/aspire#20407 — @JamesNK | **Corrected/adopted:** cookie naming/scoping; identical names can collide but do not guarantee cross-dashboard cookie decryptability or shared sign-in. | | #1664 | microsoft/aspire#20011 — @maddymontaquila | **Adopted:** concise Azure environment icon release note. | | #1628 | microsoft/aspire#17742 — @davidfowl | **Adapted/expanded:** canonical Toolbox examples, consumer contract, role/index prerequisites, approval/security and concurrency limits. | | #1623 | microsoft/aspire#19810 — @mitchdenny | **Already covered:** current Sandbox guide/article already describe compute inference, explicit selection and external endpoints. Preserve that guidance while removing obsolete suppressions. | | #1620 | microsoft/aspire#19243 — @sebastienros | **Adapted:** AKS credential-before-Helm cleanup and destructive-operation warning; omit misleading ambient-context workaround. | | #1614 | microsoft/aspire#19870 — @sebastienros | **Adopted:** typed callback handle behavior in extension authoring and article. | | #1574 | microsoft/aspire#19430 — @mitchdenny | **Adapted:** canonical hostname inheritance, explicit-host precedence, catch-all default backend. | | #1570 | microsoft/aspire#19590 — @karolz-ms | **Adopted:** Dev Tunnel URL regression troubleshooting. | | #1565 | microsoft/aspire#19429 — @mitchdenny | **Corrected/adopted:** Helm embedded parameters with real `refExpr` and `addParameter(name, { value })`, not stringifying a handle or using an invalid actual-SDK overload. | | #1564 | microsoft/aspire#19026 — @karolz-ms | **Corrected/adopted:** C#/TypeScript Dotnet gateway walkthrough. Retain both experimental diagnostics; remove obsolete run-only restriction after microsoft/aspire#19997 publishing support. Avoid imported ambiguous API reference. | | #1499 | microsoft/aspire#19248 — @IEvangelist | **Adopted:** describe exact secret-value redaction and embedded-secret limit; release article already covered the fix. | ### Important source-verified corrections to proposals / earlier audit assumptions - [`BlazorGatewayExtensions.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Blazor/BlazorGatewayExtensions.cs): `AddDotnetProjectBlazorGateway` and the Dotnet `WithBlazorClientApp` overload still carry `ASPIREDOTNETPROJECT001`; the class carries `ASPIREBLAZOR001`. They share `WithBlazorClientAppCore`/`WithBlazorApp` and the publish-companion path. Thus neither blanket diagnostic retirement nor the proposal's old run-only claim is correct. - [`SkillDefinition.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Agents/SkillDefinition.cs) sets bundled skills' `IsDefault=true`; [`AgentInitCommand.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Commands/AgentInitCommand.cs) selects the applicable catalog defaults for both flows. MCP has its own standalone-only binding. - [`TypeScriptAppHostToolchainResolver.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Projects/TypeScriptAppHostToolchainResolver.cs) is the source for Deno flags and certificate variable; guest Deno hosting is separate. - [`Radius README`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Radius/README.md) supplies the resource-specific credential rules and publish diagnostics, not assumptions about local endpoints. ## Third-party links and affiliations <!-- List third-party links and disclose material affiliations. --> Links point to official Microsoft Learn, VS Code Marketplace debugger extensions, Rust/Cargo/Bacon documentation, Radius documentation, and source repositories. No sponsorship, commercial endorsement, or affiliation claim is introduced. Maintainers should supply any personal affiliation disclosure required by policy; automation has not inferred one. ## Validation <!-- List the checks you ran or explain why validation isn't needed. --> - **97 passing focused unit checks** across API-reference authoring/rendering, Twoslash blocks, file-tree formatting, CLI configuration schema, SEO lengths, and resource catalog. - **82 passing structured-data checks**, including exact integration mapping uniqueness and page resolution. - **11 C# samples compile**, zero warnings/errors, using genuine `13.6.0-preview.1.26473.12` packages. Scope: Rust, Connector Namespace, Radius, Toolbox, inline CSI, Helm, Blazor gateway, and provisioning. `Projects.Api/Worker/Client` use compile-only `IProjectMetadata` stand-ins; no claim of running those apps or provisioning cloud resources. - **10 TypeScript samples pass `tsc`** under `strict`, `NodeNext`, and `ES2022` against three **unmodified actual SDK files**, not just the site's declaration bundle. The fixture uses the exact `e8fd6fbb` release `AtsCapabilityScanner` and genuine `26473.12` TypeSystem/code-generator/integration binaries, whose informational source is `a11eca96`. This is an isolated local generation fixture, **not** a claim that official CLI generation or a new packaged release was tested. An attempted restore with the older handed-off local CLI could not discover an AppHost server; the bounded direct generator fixture was used instead. - The SDK scan is **not globally warning-free**: it reports a Radius `withContainerImage` collision on `CSharpAppResource` and an App Configuration `createRoleAssignment` overload collision. None of the compiled examples calls those colliding methods; the warnings are retained in evidence, not suppressed, and no generated declarations were edited. - Browser: Connector Namespace, Radius, both Rust pages, Foundry hosting, and What's new return **HTTP 200**, correct headings, and no rendered Twoslash errors. New guide/article page-local anchors and the cross-page Blazor anchor resolve. Connector/Radius mobile layouts have no horizontal overflow; Connector language-tab interaction works. Standalone Astro preview emits expected `/api/live` 404s because StaticHost is not running. - `git diff --check` passes. No production `pnpm build`, cloud deployment, REPL runtime session, full product suite, or blanket validation of every pre-existing example was performed. - Generated C#/TypeScript API data, declaration bundles, integration catalogs, image catalogs, and contributor data are unchanged. Only the authored package-to-guide mapping is updated. **Before merging:** complete the two packaging/REPL checkboxes above, inspect CI, and obtain human review. This PR intentionally does not close or merge the source documentation proposals. --------- Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Closed in favor of a bigger terminal update |
[-512BD4?style=flat&logoColor=white&logo=...)](https://aka.ms/aspire/vnext) ## Summary Prepare the Aspire 13.6 documentation release. The release article is reconciled against [`microsoft/aspire` release/13.6 at `a11eca9611073f7cf66fa87faac63c2119e87713`](https://github.com/microsoft/aspire/tree/a11eca9611073f7cf66fa87faac63c2119e87713), compared with `v13.5.0`. The inventory contains 402 first-parent history entries, including maintenance, merges, and reversions—not 402 distinct shipped features. Highlights cover dashboard persistence/run history and terminals; Java, Rust, Connector Namespace and Sandboxes; coordinated .NET builds; CLI and VS Code workflows; deployment and integration improvements; emulator images; and migration guidance for Cosmos DB, Front Door, connection-string aliases, and terminal namespaces. ### Published documentation and ingestion work - `94b5f0c19`: migrate Java guides from Toolkit to first-party hosting, document typed Azure provisioning customization and VS Code agent lifecycle tools, and refresh 34 container-image records from the pinned release source. Default tag changes: App Configuration `1.0.2 → 1.2.0`, Cosmos DB `stable → vnext-latest`. - `27e2db77a`: exact release-version selection, ATS-only package metadata, union and canonical SDK enum handling, empty C# navigation filtering, and fail-closed handling of SDK dump errors. - `0b64558c1`: reconcile all 29 contributors against the pinned release snapshot. - `2696e2207`: recognize const-object enum declarations, retain colliding enum-name literals in the shared Twoslash bundle while preserving exact package-specific JSON, and increase the full example-audit time budget for the larger dataset. - `7ab5f74bd`: include the exact Dotnet package as supporting scan context for Radius's generic .NET program export; subtract core/supporting modules without dropping Radius's real IDs or receiver targets. - **`44b9819bb`: publish the complete, validated 13.6 catalog, mappings, C#/TypeScript API data, and Twoslash bundle together.** - Concurrent release updates are preserved, including the environment badge and #1745's agent lifecycle options. Isolation/launch-profile inputs were confirmed in the pinned 13.6 source. - Related product changes: microsoft/aspire#18033, microsoft/aspire#19675, and microsoft/aspire#19134. The maintainer-set planned release date remains September 29, 2026 (#1690). Published package constants remain separate from prerelease ingestion. Release membership comes from product source, not merely a docs PR's target; #1740 documents microsoft/aspire#20231 (14.0), not a 13.6 feature. ### Generated data and provenance The published snapshot contains **217 catalog entries**, **161 documentation mappings** (including the 26 new mappings), **210 C# records**, **146 TypeScript modules**, and the rebuilt Twoslash bundle. There are 132 official packages at exact version `13.6.0-preview.1.26473.12`, with **no 14.x imports**. Independently versioned packages retain their selected catalog versions. Generation used genuine pinned packages from the public dotnet9 feed and an isolated, locally built **13.6** CLI/RemoteHost. Package provenance remains `a11eca9611073f7cf66fa87faac63c2119e87713`; the scanner fixes are separate development-build provenance, not a claim that an official corrected CLI has shipped. - Full TypeScript ingestion with the inherited-method fix (`320eed42f85a7d4b090a9429b98c7a6a8547a4b8`) produced 146 modules, 0 failures, and 7 explicit skips. - Core/Radius regeneration with the additional target-specificity fix (`435fd4eb7d06ef99702ae5106cf01c10f5c6a780`) succeeded. The real compound Radius + exact Dotnet SDK dump has no diagnostics and retains both `withContainerImage` and `withDotnetProgramContainerImage` capability IDs. - ProjectResource/CSharpAppResource use the concrete Radius export; DotnetProjectResource uses the generic export. Dotnet's APIs are not attributed to Radius. No source-package attributes, capability identities, or missing-export checks were altered to force validation through. ## Third-party links and affiliations - Radius documentation — no material affiliation. - Source/specification links remain within `microsoft/aspire`; Java debugger links point to the corresponding Visual Studio Marketplace extensions. No new material affiliation claims. ## Validation - All **25 authored TypeScript guide/release examples** pass against the final declaration bundle; guide samples were also compiled with the genuine generated SDK. - The **complete annotated-site Twoslash audit passes**, with no diagnostic suppression. - Final semantic validation passes: 217 package identities, 146 module-provenance matches, 74 DTO shapes, and 2,873 handle inheritance chains. - **82 structured-data tests**, **75 API-reference/declaration-generator/API-route tests**, and **17 ATS transformer tests** pass. The final API-reference gate resolves the Radius exports without exceptions or aliases. - Earlier compile-only C# validation covered 24 guide methods and one type declaration without warnings or errors. Browser checks covered Java, Azure customization, VS Code and AI-agent routes and language tabs. - Source scanner/dispatcher/context-filter/API-export regressions: **215 pass on each product branch**, including exact-package dispatch and generated-SDK compilation checks. - No local production site build, cloud deployment, destructive cleanup scenario, CLI self-update, or release workflow was run. Current-head CI must still complete after the latest pushes. ## Remaining release gates - **Main scanner fix: microsoft/aspire#20438**, ready for review, latest commit `5482164dc1225f3c2a1a93bf5055e11b720117e9`. **13.6 backport: microsoft/aspire#20443**, draft, latest commit `435fd4eb7d06ef99702ae5106cf01c10f5c6a780`. Both require human review/merge; neither has been merged or released by this session. Latest-commit CI is still being monitored. - Official shipping requires the corrected RemoteHost-containing CLI/bundle. Rebuilding Network or Radius alone is insufficient. Local documentation generation does not replace that packaging gate. - The Express diagnostic short link requires owner action: #1599 (comment). - Complete current-head docs CI and final release/runtime acceptance. Keep this PR draft until the release gates are satisfied. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: James Newton-King <james@newtonking.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddy@pi.hole> Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> Co-authored-by: Ella Hathaway <ellahathaway@microsoft.com> Co-authored-by: aspire-repo-bot[bot] <aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: David Aniebo <aniebovictor001@gmail.com> Co-authored-by: Alistair Matthews <alistairwebdojo@live.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddy@MadBook-Pro-20.local> Co-authored-by: Ella Hathaway <67609881+ellahathaway@users.noreply.github.com> Co-authored-by: David Pine <dapine@microsoft.com> Co-authored-by: Nell Shamrell-Harrington <nellshamrell@gmail.com> Co-authored-by: David Negstad <50252651+danegsta@users.noreply.github.com> Co-authored-by: Sébastien Ros <sebastienros@gmail.com> Co-authored-by: David Negstad <David.Negstad@microsoft.com> Co-authored-by: Sébastien Ros <1165805+sebastienros@users.noreply.github.com> Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com> Co-authored-by: Karol Zadora-Przylecki <karolz@microsoft.com> Co-authored-by: Mitch Denny <midenn@microsoft.com> Co-authored-by: Mitch Denny <midenn@orangecake.local> Co-authored-by: Mitch Denny <midenn@Mac.localdomain> Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com> Co-authored-by: Maddy Montaquila <maddyleger1@gmail.com> Co-authored-by: Maddy Montaquila <maleger@microsoft.com> Copilot-Session: b0007635-1ab8-4ffc-9c7b-8c09439c79f6 Copilot-Session: 9ecc352e-ddd2-4c3e-9c4a-eafcc2a74157 Copilot-Session: b8ebe88c-337e-4d4a-aa80-e14c2c76289b Copilot-Session: 5b0c81a3-d822-462e-8cf5-8eb6debfe968 Copilot-Session: b156fe61-0b1c-460c-9735-1eaeaa356b0a Copilot-Session: 41298945-9592-4284-be9e-be0c58f31fad Copilot-Session: 5eeee6c8-e0b2-4836-96ff-a9726e92b2ee Copilot-Session: 829e510d-2b06-4301-9759-3bd760c45e5c

Documents changes from microsoft/aspire#20231
@mitchdennyTarget branch
Targeting
release/13.6— the latest release branch onmicrosoft/aspire.dev— becauserelease/14.0(from the source PR milestone14.0) does not exist there.Why this PR is needed
microsoft/aspire#20231 adds an opt-in
WithRepl()extension method to six hosting integrations (PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and Valkey). It adds a dashboard REPL resource command that opens the resource's bundled client (psql,mysql,mongosh,sqlcmd,redis-cli,valkey-cli) in the dashboard terminal dock, already authenticated to the running container. This is new user-facing dashboard/AppHost surface with no prior documentation coverage:integration_readme_changed— all six integration READMEs added a REPL section describingWithRepl().pr_body_has_user_facing_section— the PR body's "User-facing usage" section demonstrates the C# and TypeScriptWithRepl()/withRepl()calls.What was documented
Added a new "Add [Resource] with a REPL command" section to each affected hosting-integration reference page, placed alongside the existing "Add resource with X command" sections (matching the pattern used for Redis's existing clear command):
src/frontend/src/content/docs/integrations/databases/postgres/postgres-host.mdxsrc/frontend/src/content/docs/integrations/databases/mysql/mysql-host.mdxsrc/frontend/src/content/docs/integrations/databases/mongodb/mongodb-host.mdxsrc/frontend/src/content/docs/integrations/databases/sql-server/sql-server-host.mdxsrc/frontend/src/content/docs/integrations/caching/redis/redis-host.mdxsrc/frontend/src/content/docs/integrations/caching/valkey/valkey-host.mdxEach new section:
WithRepl()/withRepl()AppHost examples (syncKey='aspire-lang').\q,quit,exit,QUIT) and that stopping the container ends any remaining REPL processes.GObatch syntax and dualsqlcmdpath support, MongoDB's TLS/certificate trust behavior, and Redis's non-TLS loopback routing.:::cautioncallout warning that the shell uses the resource's real credentials and isn't read-only, and that dashboard sharing (tunnels, Codespaces, VS Code remote) extends this exposure — mirroring the PR's "Security considerations" section.All six pages already existed; no new pages were created.