Nextended.Aspire.Hosting.AspireUI — API reference
The complete public surface of Nextended.Aspire.Hosting.AspireUI, generated from the compiled assembly.
Generated
This page is generated by tools/ApiRef from the compiled assembly — it includes members with no XML comment and therefore cannot drift from the code. Do not edit by hand.
Nextended.Aspire.Hosting.AspireUI
AspireUIAssistantExtensions
static class
Gives AspireUI's assistant a backend: an OpenAI-compatible endpoint, a model server running in this stack, or an agent CLI installed on the AspireUI host. Same shape as the studio's WithAssistant in Nextended.Aspire.Hosting.WebDataStudio, so the two packages are learned once. Once a backend is configured the assistant is more than a text box: it appears on every page of AspireUI and can operate the instance through the same tools the MCP server exposes, with the permissions of whoever is typing. That needs an HTTP endpoint — an agent CLI takes a prompt and returns text, and there is nowhere in that to put a tool call.
Fields
CliTools : string[]
The agent CLIs AspireUI knows how to drive.DefaultApiPath : string
The path an OpenAI-compatible server serves the chat API under. AspireUI adds/chat/completionsitself, so this is the version segment and not the whole path.DefaultOllamaModel : string
The model Ollama pulls by default in most examples.
AspireUIBuilderExtensions
static class
Fluent API for running AspireUI inside your Aspire stack. Start with AddAspireUI, then optionally WithAdminUser and WithSeedStack to have it come up pre-configured.
AspireUIPermissions
static class
The permission ids AspireUI knows, plus the presets the users page offers. Pass one of these (or a comma-separated list of ids) wherever a permissions argument is asked for. An admin has all of them regardless.
Fields
All : string
Everything.AppUser : string
Install, configure and browse files. No builder.Builder : string
Create, change and delete stacks; import code; run them locally.Configure : string
Change a hosted app's environment, ports and domain.Default : string
What a new account gets when nothing is said: builder, install, configure.Deploy : string
Install, start, stop, update, undeploy, move and back up hosted apps.Docker : string
See and prune the docker host's images, containers and volumes.Files : string
Browse, view and download files in an app's volumes.FilesWrite : string
Delete files in an app's volumes.None : string
Look only.Operator : string
Builder, install, configure, files (incl. delete) and terminal — no global settings.Settings : string
Global settings: proxy, notifications, backups, dashboard, import.Store : string
Manage store sources and which apps are hidden.Targets : string
Add, change and remove deploy targets.Terminal : string
Run commands inside an app's containers.Users : string
Create users and grant permissions (never the admin flag).Viewer : string
Look at the apps and their files. Change nothing.
AspireUIResource
class
AspireUI — the visual .NET Aspire AppHost builder — running as a container resource. Exposes an HTTP endpoint for the web UI, and can be pre-seeded (admin user + a starter stack) so it comes up ready without the manual first-run wizard.
Constructors
AspireUIResource(string name)
AspireUI — the visual .NET Aspire AppHost builder — running as a container resource. Exposes an HTTP endpoint for the web UI, and can be pre-seeded (admin user + a starter stack) so it comes up ready without the manual first-run wizard.
Properties
AdminUsername : string { get; }
Admin username seeded on first run, if configured viaWithAdminUser.AssistantModel : string { get; }
The model the assistant was pointed at, if one of theWithAssistantmethods did.Seed : AspireUISeed { get; }
Accounts, deploy targets, api tokens, store sources, apps and stacks this instance should come up with. Filled in by theWith…methods; handed over as one environment variable when the application starts.SeedProjects : IList<string> { get; }
Project paths seeded into the starter stack (oneAddProjectnode each).SeedStackName : string { get; }
Name of the starter stack seeded on first run, if configured viaWithSeedStack.
Fields
DefaultImage : string
Container image (without registry-less shorthand): the published AspireUI image.DefaultTag : string
Default image tag.DefaultTargetPort : int
Internal port the AspireUI server listens on inside the container.HttpEndpointName : string
Name of the primary HTTP endpoint (the web UI).
AspireUISeed
class
Everything the AspireUI container should find in its database on first start. Filled in by the With… methods and handed over as one JSON environment variable when the app starts.
Constructors
AspireUISeed()
Properties
AppIds : IEnumerable<string> { get; }
Catalog ids of the store apps this seed installs.Deploy : bool { get; }
True when the seeded stacks and apps should also be deployed once hosting is up.TargetNames : IEnumerable<string> { get; }
Names of the deploy targets this seed creates.Usernames : IEnumerable<string> { get; }
Names of the accounts this seed creates, in the order they were added.
AspireUISeedExtensions
static class
Everything an AspireUI instance can be handed on first start: accounts with permissions, deploy targets, api tokens for automation, store sources, apps from the catalog and stacks from a folder or a repository — plus the settings that used to need a trip through the UI. All of it is idempotent by name on the AspireUI side: restarting with the same AppHost changes nothing, adding one entry adds exactly that one, and anything changed in the UI stays changed.
AspireUISettings
class
Everything under AspireUI's own settings, as properties instead of key strings. Anything left null is not sent, and a value that is sent only fills in what the instance has not got yet — unless ForceOnEveryStart says otherwise, which also overwrites what somebody changed in the UI. This is the wide, typed way; WithSetting(key, value) stays for anything not listed here, and single-subject methods (WithSingleSignOn, WithS3Backups, …) stay for the settings that come as a set.
Constructors
AspireUISettings()
Properties
AiApiKey : string { get; set; }AiBaseUrl : string { get; set; }AiCliTool : string { get; set; }
The installed CLI to use whenAiKindiscli: claude, gemini, ollama, llm, codex.AiKind : string { get; set; }httpfor an OpenAI-compatible endpoint,clifor a local agent CLI.AiModel : string { get; set; }AiProviderLabel : string { get; set; }
What the UI calls the provider, e.g. "Ollama".AuditRetainDays : int? { get; set; }
How long an entry is kept. Zero keeps everything.BackupIntervalHours : int? { get; set; }
Back up every running app's volumes this often. Zero turns the schedule off.BackupRetain : int? { get; set; }
How many snapshots to keep per app.DashboardToken : string { get; set; }
A fixed browser token, so AspireUI can hand out a one-click login link to it.ForceOnEveryStart : bool { get; set; }
Apply these on every start instead of only filling in what is empty. Off by default, because it also overwrites what somebody changed in the UI.HostDashboards : bool? { get; set; }
Host an Aspire dashboard next to every deployed app.MaxImportFileMb : int? { get; set; }
Files larger than this are skipped when a folder or archive is imported.NotifyTelegramChat : string { get; set; }NotifyTelegramToken : string { get; set; }NotifyWebhookUrl : string { get; set; }
Slack, Discord, Teams, ntfy — anything that takes a json post.ProxyBaseUrl : string { get; set; }ProxyEmail : string { get; set; }ProxyEnabled : bool? { get; set; }ProxyForwardHost : string { get; set; }
Where the proxy forwards to. Blank usesPublicHost.ProxyPassword : string { get; set; }PublicHost : string { get; set; }
The host name every app url is built from. Blank uses the host the browser asked for.RespectGitignore : bool? { get; set; }
Skip what an imported folder's own .gitignore ignores.
AspireUIUser
class
An account to create on first start. See AspireUIPermissions for the third argument.
Constructors
AspireUIUser(string Username, string Password, string Permissions = null, bool Admin = false, string[] ViewModes = null, bool MustChangePassword = false)
An account to create on first start. SeeAspireUIPermissionsfor the third argument.
Properties
Admin : bool { get; set; }
True makes an admin, and the permission list stops mattering.MustChangePassword : bool { get; set; }
True asks for a new password at the first login.Password : string { get; set; }
Password (stored hashed; at least 8 characters).Permissions : string { get; set; }
A preset name or a comma-separated list of permission ids. Null = the default set.Username : string { get; set; }
Login name.ViewModes : string[] { get; set; }
Which UIs this account may use:full,simple, or both.
Projects
Nextended_Aspire_Hosting_AspireUI
class
Metadata for the Aspire AppHost project.
Properties
ProjectPath : string { get; }
The path to the Aspire Host project.