AspireForm 0.3.1
See the version list below for details.
dotnet tool install --global AspireForm --version 0.3.1
dotnet new tool-manifest
dotnet tool install --local AspireForm --version 0.3.1
#tool dotnet:?package=AspireForm&version=0.3.1
nuke :add-package AspireForm --version 0.3.1
AspireForm
Declarative construction and configuration of .NET Aspire applications — Infrastructure-as-Code ideas (Terraform) and declarative orchestration (Docker Compose) applied to scaffolding and evolving an Aspire solution.
You describe the desired shape of your app in aspireform.yaml (or aspireform.jsonc); AspireForm
reconciles that against what is on disk and applies the difference.
Status
v0.3.0 — Plugin loader. AspireForm now supports external NuGet plugins; the first one
(AspireForm.Plugin.Redis) is available. More verticals (Mailpit, Hangfire, DAB, auth × 3,
reporting, ETL) arrive in Plans 2.1–2.9.
Install / run
AspireForm is a zero-install .NET tool. With the .NET 10 SDK present:
dnx AspireForm config
dnx AspireForm doctor
dnx resolves the latest published version on each run, so the tool is always current.
Commands
| Command | Description |
|---|---|
aspireform new <name> |
Scaffold a new Aspire solution + a starter aspireform.yaml. |
aspireform add <type> [name] |
Append a Resource (or Module via --module) block to the config (comments and formatting are not preserved). |
aspireform config |
Print the fully merged, interpolated desired-state configuration. |
aspireform plan |
Show the reconciliation diff between desired and current state. |
aspireform apply |
Execute the plan after an approval gate (skip with --yes). |
aspireform destroy [block] |
Remove one block (or all blocks) from state. |
aspireform import <block> |
Adopt an existing block into state without executing. |
aspireform state list |
List every tracked block. |
aspireform state show <block> |
Dump one block's state as JSON. |
aspireform doctor |
Check prerequisites (.NET 10 SDK + aspire CLI). |
aspireform plugin list |
List installed plugins. |
aspireform plugin install <name>[@version] |
Install a plugin (auto-restore handles unknown types on next plan/apply). |
aspireform plugin update <name> |
Update a plugin to the latest version. |
aspireform plugin remove <name> |
Remove a plugin from the lockfile. |
Configuration
A minimal aspireform.yaml:
aspireform:
version: 1
project: MyApp
apphost: ./MyApp.AppHost
resources:
sql:
type: sqlserver
aspireName: sql
databases: [appdb]
Per-environment overrides go in aspireform.<env>.yaml and are layered with --env <name>.
Plugins
AspireForm supports external plugins that contribute new block types (Resources or Modules) via NuGet packages. The first available plugin is Redis:
| Plugin | Block type | NuGet |
|---|---|---|
| AspireForm.Plugin.Redis | redis |
0.1.0 |
When you reference an unknown block type in aspireform.yaml (e.g. type: redis), AspireForm
auto-restores the matching plugin from NuGet on the next plan or apply. The resolved
(name, version) pair is recorded in .aspireform/plugins.lock.yaml (committed to git).
Documentation
- Design spec:
docs/superpowers/specs/ - Research notes:
docs/research/ - Implementation plans:
docs/superpowers/plans/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.