Skip to content

Commit cbb659d

Browse files
authored
Migration of integration articles (#49)
* feat: Add service discovery section to documentation and sidebar * feat: Add service defaults section to sidebar and documentation * feat: Add launch profiles documentation and related image * Add health checks documentation for Aspire - Introduced a comprehensive guide on health checks in Aspire, covering both AppHost resource health checks and application health check endpoints. - Detailed the usage of `/health` and `/alive` endpoints, including their configurations and best practices for non-development environments. - Provided code examples for implementing health checks, request timeouts, and output caching. - Explained integration health checks and custom resource health checks with practical examples. - Included information on dashboard integration for monitoring health check statuses. * migrate: Integrations check point * feat: Update titles to include 'integration' for consistency across documentation * more: migration and updates * azure: Migration of azure stubs * plus: more migrations.... * Refactor NuGet package installation commands in documentation to remove short names for consistency - Updated multiple documentation files to remove the `shortName` attribute from `<InstallPackage>` commands for various Azure, database, and integration packages. - Added a new helper function `generateFriendlyName` in `helpers.js` to create a friendly searchable name from Aspire NuGet package IDs, enhancing usability and maintainability. * fix: Clean up .NET * chore: Remove unused Placeholder component from SQLite integration documentation * port: Diagnostics content * Refactor Azure integration documentation and update image sizes - Adjusted image dimensions for Azure Functions, Key Vault, OpenAI, PostgreSQL, Service Bus, SignalR, SQL Database, Storage Blobs, Queues, Tables, and Web PubSub to 80x80 pixels for consistency. - Enhanced Azure overview documentation with new sections on local emulators, existing resources, and Azure Container Apps. - Added descriptions and navigation properties to various integration documentation files, including Docker, Kubernetes, Elasticsearch, SQLite, Data API Builder, SQL Database Projects, Bun, Rust, Apache Kafka, RabbitMQ, Seq, YARP, and Keycloak. * Refactor code snippets in documentation to include title annotations for clarity - Updated various integration documentation files to add title annotations to C# code snippets, improving readability and context for users. - Ensured consistency across all integration guides by standardizing the format of code examples. * feat: Enhance Azure integration documentation with structured topics and improved clarity * feat: Add initial devcontainer configuration for Aspire.Dev * feat: Update Redis, Azure, and PostgreSQL integration documentation with trademark notices and improved clarity * Update GitHub stats and integration documentation - Increased star counts for dotnet/aspire, dotnet/aspire-samples, CommunityToolkit/Aspire, and microsoft/aspire.dev in github-stats.json. - Added new Azure-related integrations and updated existing ones in integration-docs.json, enhancing the documentation for various Azure services. - Created aspire-integration-names.json to list all integration names for easier reference and management.
1 parent d259675 commit cbb659d

File tree

162 files changed

+19254
-2378
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+19254
-2378
lines changed

.devcontainer/devcontainer.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "Aspire.Dev",
3+
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-22-bookworm",
4+
"customizations": {
5+
"vscode": {
6+
"extensions": [
7+
"astro-build.astro-vscode"
8+
],
9+
"settings": {
10+
"terminal.integrated.defaultProfile.linux": "bash"
11+
}
12+
}
13+
},
14+
"forwardPorts": [4321],
15+
"portsAttributes": {
16+
"4321": {
17+
"label": "Astro dev server",
18+
"onAutoForward": "openBrowser"
19+
}
20+
},
21+
"postCreateCommand": "npm install && echo '\n✨ Ready to go! Run \"npm run dev\" to start the dev server.\n'",
22+
"remoteUser": "node"
23+
}

.github/prompts/migrate-from-learn.prompt.md

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,66 @@ Migrate documentation content from the legacy `E:\GitHub\docs-aspire` repository
4343
- **Links**: `xref:` links → Regular markdown links or remove if no equivalent exists, and do inline code formatting for API references
4444
- Custom components available: `Aside`, `CardGrid`, `LinkCard`, `Steps`, `TabItem`, `Icon`, `FileTree`, `Kbd`, `LearnMore`, `PivotSelector`, `Pivot`, `ThemeImage`
4545

46+
Learn's zone pivots:
47+
48+
```md
49+
---
50+
title: Zone pivot example on Learn
51+
zone_pivot_groups: unit-testing-framework
52+
---
53+
54+
:::pivot="xunit"
55+
Example xUnit content
56+
:::
57+
:::pivot="nunit"
58+
Example NUnit content
59+
:::
60+
```
61+
62+
Then you'd have to look up the `docs/zones/zone-pivot-groups.yml` file to see which pivots belong to the `unit-testing-framework` group. For example:
63+
64+
```yml
65+
- id: unit-testing-framework
66+
title: Unit testing framework
67+
prompt: Choose a unit testing framework
68+
pivots:
69+
- id: xunit
70+
title: xUnit
71+
- id: mstest
72+
title: MSTest
73+
- id: nunit
74+
title: NUnit
75+
```
76+
77+
For `aspire.dev` our pivots are based on two custom components:
78+
79+
```mdx
80+
---
81+
title: Example pivot example on aspire.dev
82+
---
83+
84+
import Pivot from '@components/Pivot.astro';
85+
import PivotSelector from '@components/PivotSelector.astro';
86+
87+
<PivotSelector
88+
title="Select your testing framework"
89+
key="testing-framework"
90+
options={[
91+
{ id: "xunit", title: "xUnit.net" },
92+
{ id: "mstest", title: "MSTest" },
93+
{ id: "nunit", title: "NUnit" },
94+
]}
95+
/>
96+
97+
98+
<Pivot id="xunit">
99+
Example xUnit content
100+
</Pivot>
101+
<Pivot id="nunit">
102+
Example NUnit content
103+
</Pivot>
104+
```
105+
46106
### Image Handling
47107
1. **Import statement**: Add `import { Image } from 'astro:assets';` to imports
48108
2. **Asset import**: `import imageName from '@assets/{section}/{filename}';`
@@ -52,7 +112,7 @@ Migrate documentation content from the legacy `E:\GitHub\docs-aspire` repository
52112

53113
### Link Transformations
54114
- **Remove**: "See also" sections entirely
55-
- **Internal links**: Convert to site-relative with trailing slash (e.g., `/dashboard/overview/`)
115+
- **Internal links**: Convert to site-relative with trailing slash (e.g., `/dashboard/overview/`), assume absolute links should be used when site relative links don't exist in aspire.dev, and use a base of `https://learn.microsoft.com/`, i.e.; for links that start with `/azure`, `/dotnet`, and `/aspnet`.
56116
- **Only link if certain**: Only create internal links to content you're 100% sure exists
57117
- **External links**: Keep as-is, prefer official documentation sources
58118

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Update Integration Documentation Links
2+
3+
## Task Overview
4+
5+
Update the integration documentation links by synchronizing package names from the NuGet catalog with their corresponding documentation URLs.
6+
7+
## Steps
8+
9+
1. **Run the update script**
10+
11+
```bash
12+
node src/frontend/scripts/update-integrations.js
13+
```
14+
15+
2. **Read the updated package data**
16+
- Load `src/frontend/src/data/aspire-integration-names.json`
17+
- Extract all package names from the JSON array
18+
19+
3. **Update integration documentation mappings**
20+
- Load `src/frontend/src/data/integration-docs.json`
21+
- For each package name in `src/frontend/src/data/aspire-integration-names.json`:
22+
- Check if a matching entry exists in `integration-docs.json` (where `match` equals the package name)
23+
- If an entry exists, verify the `href` is correct
24+
- If no entry exists, determine the appropriate documentation URL based on:
25+
- Package name patterns (e.g., `Aspire.Hosting.X``/integrations/*/x/`)
26+
- Existing similar package mappings
27+
- Technology category (databases, messaging, caching, ai, etc.)
28+
- Add or update the entry with the package name as `match` and site-relative path as `href`
29+
30+
4. **Ensure consistency**
31+
- Remove any entries from `integration-docs.json` that reference packages no longer in `aspire-integrations.json`
32+
- Maintain alphabetical or logical ordering
33+
- Preserve existing correct mappings
34+
35+
## Output
36+
37+
Save the updated `integration-docs.json` with all current packages properly mapped to their documentation pages.
38+
39+
## Example Entry Format
40+
41+
```json
42+
{
43+
"match": "Aspire.Hosting.Redis",
44+
"href": "/integrations/caching/redis/"
45+
},
46+
{
47+
"match": "Aspire.Hosting.Azure.Storage",
48+
"href": "/integrations/cloud/azure/azure-storage-blobs/"
49+
},
50+
{
51+
"match": "Aspire.Hosting.Testing",
52+
"href": "/testing/overview/"
53+
}
54+
```
55+
56+
## Verification
57+
58+
Ensure that all site relative links end with a trailing slash and point to valid documentation pages, do not assume a page exists without verification. When there's a package name that has no clear mapping, take note of it and list it for manual review—in these situations, we'll likely need to write a new documentation page.

src/frontend/lunaria.config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"repository": {
44
"name": "microsoft/aspire.dev",
55
"branch": "main",
6-
"rootDir": "src/frontend",
6+
"rootDir": ".",
77
"hosting": "github"
88
},
99
"defaultLocale": {

src/frontend/scripts/update-integrations.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const EXCLUDED_PACKAGES = [
1717
'Aspire.RabbitMQ.Client.v7'
1818
];
1919
const OUTPUT_PATH = './src/data/aspire-integrations.json';
20+
const OUTPUT_NAME_PATH = './src/data/aspire-integration-names.json';
2021

2122
// According to documentation, nuget.org limits:
2223
// - 'take' parameter to 1,000
@@ -260,6 +261,7 @@ async function getPreferredNonDeprecatedVersion(regBase, id) {
260261
const nonDeprecated = await filterOutDeprecatedWithRegistration(unique);
261262
const output = filterAndTransform(nonDeprecated);
262263
fs.writeFileSync(OUTPUT_PATH, JSON.stringify(output, null, 2));
264+
fs.writeFileSync(OUTPUT_NAME_PATH, JSON.stringify(output.map(p => p.title), null, 2));
263265
console.log(`✅ Saved ${output.length} packages to ${OUTPUT_PATH}`);
264266
} catch (err) {
265267
console.error('❌ Error:', err);

0 commit comments

Comments
 (0)