Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
a55fa46
Explore lean native hosting feasibility
davidfowl Oct 10, 2026
41ec4cb
Explore native hosting compatibility edges
davidfowl Oct 10, 2026
999d9d9
Explore native DCP primitives with Redis and PostgreSQL ports
davidfowl Oct 10, 2026
357d7ac
Explore custom resource lifecycle with a Dev Tunnels port
davidfowl Oct 10, 2026
bb6f2ae
Explore ATS-native AppHost server and integration ports
davidfowl Oct 10, 2026
c44bd60
Wire the native ATS hosting experiment into aspire run
davidfowl Oct 10, 2026
8145040
Explore ATS-native AppHost contracts and v2 integration authoring
davidfowl Oct 10, 2026
d8bd7f6
Add validated ATS-native model annotations to hosting experiment
davidfowl Oct 10, 2026
f95c659
Build ATS-native AppHost server with resource-preserving revisions
davidfowl Oct 11, 2026
586ee2e
Preserve CLI contracts and generalize native server policies
davidfowl Oct 11, 2026
1d10f9e
Document current native composition comparison boundaries
davidfowl Oct 11, 2026
6ec0462
Record native server swap measurements and neutralize fixture process…
davidfowl Oct 11, 2026
8167609
Implement native auxiliary backchannel contracts and verify server swaps
davidfowl Oct 11, 2026
d5f3fa4
Extract minimal native hosting kernel and generalize workload contracts
davidfowl Oct 11, 2026
d1f8583
Record final native baseline and diagnose stalled fixture shutdown
davidfowl Oct 11, 2026
3e73af9
Preserve auxiliary removals and isolate unexpected request failures
davidfowl Oct 11, 2026
acd0823
Document verified auxiliary semantics and refreshed native footprint
davidfowl Oct 11, 2026
5d493ca
Complete dismissed native Dashboard confirmations as rejected
davidfowl Oct 11, 2026
0c53af0
Use typed native boundaries, diagnostic channels, and injectable clocks
davidfowl Oct 11, 2026
55a766a
Fix native compiler references and PR feedback regressions
davidfowl Oct 11, 2026
5b41044
Release backchannel stream capacity on natural completion
davidfowl Oct 11, 2026
d60a260
Pass explicit server launch mode from the native CLI override
davidfowl Oct 11, 2026
b16ea9f
Target native hosting at .NET 11 with replaceable RPC and logging
davidfowl Oct 11, 2026
b602d1e
Exclude non-integration native bindings from managed ATS compatibilit…
davidfowl Oct 11, 2026
92e34d7
Clarify native integration authoring and existing-integration accepta…
davidfowl Oct 11, 2026
e39f682
Add native declarative hosting and real C# and TypeScript Redis integ…
davidfowl Oct 12, 2026
89d4f08
Preserve fluent builder authoring over native ATS hosting
davidfowl Oct 12, 2026
d14684c
Fix native provider shutdown and lifecycle cleanup
davidfowl Oct 12, 2026
6817d94
Refine native hosting lifetime and authoring contracts
davidfowl Oct 12, 2026
6c392b7
Separate provider protocol parsing from invocation ownership
davidfowl Oct 12, 2026
6e18215
Bound native provider shutdown and tolerate normal exit races
davidfowl Oct 12, 2026
8664899
Drain C# provider resource invocations before local disposal
davidfowl Oct 12, 2026
440f6f1
Preserve cleanup-only workspace authority for retirement retries
davidfowl Oct 12, 2026
43a46a1
Serialize native workload mutations with symbolic configuration
davidfowl Oct 12, 2026
4f7a4db
Drain native integration fixture requests before disconnecting
davidfowl Oct 12, 2026
3421174
Reduce native RPC parsing and observation allocations
davidfowl Oct 12, 2026
c91a59d
Remove obsolete native hosting prototypes and simplify model guide
davidfowl Oct 12, 2026
4592de5
Refine native hosting boundaries and provider activation cleanup
davidfowl Oct 13, 2026
c114106
Refactor native provider projections and RPC protocol boundaries
davidfowl Oct 13, 2026
4f1f3c9
Release disconnected provider routes and bound activation cleanup
davidfowl Oct 13, 2026
9b61bb9
Ship AppHost Server v2 behind a project-scoped CLI feature flag
davidfowl Oct 13, 2026
6384d47
Merge latest main into AppHost Server v2
davidfowl Oct 13, 2026
69dea46
Retain independent workload cleanup leases and monitor the launching CLI
davidfowl Oct 13, 2026
2fe389d
Fix CI bundle publish logging and update native payload fixtures
davidfowl Oct 13, 2026
e399feb
Use the repository dotnet host for ATS build-time generators
davidfowl Oct 13, 2026
5ead876
Retain bundle tooling for AppHost Server v2 developer overrides
davidfowl Oct 13, 2026
0b74e0b
Address v2 feedback and support Windows guest RPC
davidfowl Oct 13, 2026
6b6c18a
Keep named-pipe regression paths within Unix socket limits
davidfowl Oct 13, 2026
b940090
Expand v2 integration authoring with worked code examples
davidfowl Oct 14, 2026
ef1c879
Add native RPC authoring and cycle-safe workload allocation
davidfowl Oct 14, 2026
6ed4096
Document integration-host codegen discovery and process lifetimes
davidfowl Oct 14, 2026
f756cd0
Separate native provider parsing, policy and code generation
davidfowl Oct 15, 2026
441c568
Merge latest main into native runtime feasibility branch
davidfowl Oct 15, 2026
729a089
Address native host review feedback and repair CI smoke expectations
davidfowl Oct 15, 2026
d5d2604
Fix readiness-cycle expectation in native revision smoke
davidfowl Oct 15, 2026
8f236b5
Align v2 Compose authoring and deployment pipelines
davidfowl Oct 17, 2026
5521946
Add native CSharp Docker Compose comparison integration
davidfowl Oct 17, 2026
1e2cec0
Address native backchannel, layout and feature configuration reviews
davidfowl Oct 17, 2026
c277c18
Use portable executable paths in native Compose test fixture
davidfowl Oct 17, 2026
705c640
Align native IPC ownership and DCP environment policy with Hosting
davidfowl Oct 18, 2026
b8b4a24
Address native host project and integration lifecycle feedback
davidfowl Oct 18, 2026
246ff36
Await ordered native retirement without replaying startup failures
davidfowl Oct 18, 2026
105693e
Drain native guest lifetimes before host shutdown
davidfowl Oct 18, 2026
64e5860
Cover managed dashboard assembly launch and scoped CLI stops
davidfowl Oct 18, 2026
d54aa38
Make native hosting tests deterministic and snapshot generated artifacts
davidfowl Oct 19, 2026
564f480
Validate native contract fingerprints without platform-specific snaps…
davidfowl Oct 19, 2026
3277f33
Merge main and preserve native hosting trigger coverage
davidfowl Oct 21, 2026
469b9ad
Disable XML documentation publishing for native hosting executables
davidfowl Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/specs/appmodel.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Aspire Resource Model: Concepts, Design, and Authoring Guidance
> **Audience** – Aspire integrators, advanced users, and contributors who are defining custom resource types, implementing publishers, or working across both runtime and publish workflows.
> This documentation's focus is on hosting integrations *NOT* client integrations.
> For the ATS-native model being explored in the native hosting proof of concept, see [App Model v2](appmodelv2.md). That document describes proposed contracts, not supported APIs.
> *Just getting started? Jump straight to [Quick Start](#quick-start) and come back later for the deep‑dive.*

---
Expand Down
503 changes: 503 additions & 0 deletions docs/specs/appmodelv2.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions playground/NativeHosting/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
generated/
compatible-generated/
compatible-projection.mts
compatible-projection.mjs
43 changes: 43 additions & 0 deletions playground/NativeHosting/Ats/IntegrationContracts.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using Aspire.Hosting;

namespace NativeHosting;

// Only scanned offline. These capabilities are implemented by a registered
// TypeScript integration host, never by these CLR declarations.
public static class IntegrationContracts
{
/// <summary>Adds an authenticated Redis service with a session data volume.</summary>
[AspireExport]
public static NativeResource AddRedis(this NativeBuilder builder, string name) => throw new NotSupportedException();

/// <summary>Adds an authenticated PostgreSQL server with a session data volume.</summary>
[AspireExport]
public static NativeResource AddPostgres(this NativeBuilder builder, string name) => throw new NotSupportedException();

/// <summary>Adds and initializes a logical database under a PostgreSQL server.</summary>
[AspireExport]
public static NativeResource AddDatabase(this NativeResource server, string name, string databaseName) => throw new NotSupportedException();

/// <summary>Adds a Nuxt workload referencing a Redis connection property.</summary>
[AspireExport]
public static NativeResource AddNuxt(this NativeBuilder builder, string name, string directory, NativeResource cache) => throw new NotSupportedException();

/// <summary>Adds a run-only tunnel port with an external CLI executable owner.</summary>
[AspireExport]
public static NativeResource AddDevTunnel(this NativeBuilder builder, string name, NativeResource target, string directory, bool allowAnonymous) => throw new NotSupportedException();

/// <summary>Executes a bounded authenticated Redis operation.</summary>
[AspireExport]
public static Task<string> RedisCommand(this NativeResource resource, string operation, string key, string value, bool wrongPassword, CancellationToken cancellationToken) => throw new NotSupportedException();

/// <summary>Executes a bounded authenticated query against a database child.</summary>
[AspireExport]
public static Task<string> Query(this NativeResource resource, string sql, bool wrongPassword, CancellationToken cancellationToken) => throw new NotSupportedException();

/// <summary>Stops integration controllers and releases session-owned external state.</summary>
[AspireExport]
public static Task<bool> ReleaseGraph(this NativeBuilder builder, string[] callbackIds, CancellationToken cancellationToken) => throw new NotSupportedException();
}
Loading
Loading