Nextended.Aspire.Hosting.Supabase — API reference
The complete public surface of Nextended.Aspire.Hosting.Supabase, 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.Observability
ObservabilityStack
static class
Supabase-aware entry point for the observability stack. The stack itself (Grafana, Prometheus, Loki, Promtail, cAdvisor, Tempo, OTel-Collector, postgres_exporter) lives in the Nextended.Aspire.Hosting.Grafana package — see ObservabilityStackExtensions for the generic options-based overload and GrafanaBuilderExtensions for the fluent piecemeal API.
Nextended.Aspire.Hosting.Supabase.Builders
AuthBuilderExtensions
static class
Provides extension methods for configuring the Supabase Auth (GoTrue).
DatabaseBuilderExtensions
static class
Provides extension methods for configuring the Supabase Database (PostgreSQL).
EdgeRuntimeBuilderExtensions
static class
Provides extension methods for configuring the Supabase Edge Runtime.
EnvironmentReferenceExtensions
static class
No description.
KongBuilderExtensions
static class
Provides extension methods for configuring the Supabase Kong API Gateway.
MetaBuilderExtensions
static class
Provides extension methods for configuring the Supabase Postgres-Meta service.
MinioOnNfsStorageExtensions
static class
Durable object storage for supabase-storage on Azure Container Apps, via a bundled MinIO (S3) server backed by the persistent Azure Files NFS share. supabase-storage's FILE backend cannot run durably on ACA: the only persistent volume ACA can mount is Azure Files, and SMB rejects the backend's open flags (EINVAL) while NFS 4.1 has no extended attributes (xattr -> ENOTSUP), which the FILE backend requires for object metadata. So instead we run MinIO on the NFS share (MinIO keeps its metadata in its own xl.meta files — no xattr) and switch supabase-storage to the S3 backend pointing at it. This wires (publish only): 1. a MinIO container, mounting the NFS env-storage named nfsEnvStorageName (created by PersistentNfsStorageExtensions.AddSupabaseNfsStorage — pass the SAME name) at /data, internal-only S3 ingress on :9000, pinned to a single writer, 2. a one-shot mc init container that waits for MinIO and creates the bucket (idempotent), 3. StorageS3Backend pointing the storage container at MinIO. MinIO/mc are public images, so ACA pulls them directly (no local build/push, unaffected by the docker registry push path). NOTE: MinIO discourages network filesystems for large clusters, but a single-node single-drive instance on NFS is fine for this low-traffic app.
PersistentNfsStorageExtensions
static class
Persistent file storage for the Supabase storage container on Azure Container Apps. supabase-storage uses the local FILE backend. Azure Files SMB is incompatible with it (EINVAL on the backend's open flags) and ephemeral disk loses uploads on every restart. The only Azure-native, in-region, POSIX option that works is an Azure Files NFS share — which is only reachable from a VNet. This wires, entirely in code (all in the ACA environment's own bicep module so the resources cross-reference directly): 1. a VNet + a subnet delegated to the ACA managed environment (+ a Microsoft.Storage service endpoint), and the env's VnetConfiguration pointing at that subnet, 2. a Premium FileStorage account with an NFS file share, locked to the subnet (NFS is unencrypted, so Azure only allows it network-isolated), 3. a managedEnvironmentStorage (NfsAzureFile) on the ACA environment, named nfsEnvStorageName. Consumers mount that env-storage by name — either the storage container itself (via PersistentStorageVolumeName; note Azure Files NFS has no xattr, which the FILE backend needs) or a MinIO fronting it (see MinioOnNfsStorageExtensions). Files survive restarts and redeploys. NOTE: VNet/subnet are built with Azure.Provisioning.Network directly rather than Aspire's experimental AddSubnet — the latter emits an invalid fully-qualified child name (BCP170).
RestBuilderExtensions
static class
Provides extension methods for configuring the Supabase REST API (PostgREST).
StorageBuilderExtensions
static class
Provides extension methods for configuring the Supabase Storage API.
StudioBuilderExtensions
static class
Provides extension methods for configuring the Supabase Studio Dashboard. Note: The SupabaseStackResource IS the Studio container, so these methods configure the stack directly.
SupabaseBuilderExtensions
static class
Provides the main extension method for adding Supabase to an Aspire application.
Properties
PersistentStorageVolumeName : string { get; set; }
Optional name of a managedEnvironmentStorage (e.g. an NFS Azure Files share) to mount at the storage container's backend path (/var/lib/storage) in publish mode, so uploaded files persist across restarts/redeploys. This is a generic Supabase-storage concern — the HOST app owns creating the actual storage resource and just sets this name here. When null/empty, publish mode falls back to ephemeral container-local storage.PostgresDataVolumeName : string { get; set; }
Optional name of a managedEnvironmentStorage (e.g. an NFS Azure Files share) to mount at the PostgreSQL data directory (/var/lib/postgresql/data) in publish mode, so the whole database survives container restarts/redeploys. Without it the ACA database is ephemeral (a restart wipes ALL data). This is a generic Supabase concern — the HOST app owns creating the actual storage resource and just sets this name here. When null/empty, publish mode stays ephemeral. NOTE: PostgreSQL requires POSIX semantics (fsync/locking), so the backing share must be Azure Files NFS (Premium), never SMB; the DB container is pinned to a single replica.StorageS3Backend : SupabaseStorageS3Options { get; set; }
Optional S3-compatible backend for the storage container (publish mode). When set, the storage container runs with STORAGE_BACKEND=s3 against this endpoint instead of the local FILE backend. This is a generic Supabase-storage concern: supabase-storage's FILE backend needs a local POSIX disk WITH extended attributes, which Azure Files can't provide (SMB rejects its open flags; NFS 4.1 has no xattr) — so a durable container-apps deploy needs an S3-compatible store. The HOST app owns the S3 server (e.g. a bundled MinIO), its bucket and credentials, and just points this at it. When null, the FILE backend is used (seePersistentStorageVolumeName/ local bind mount).
SupabaseReferenceExtensions
static class
Extension methods for referencing Supabase from client projects.
SupabaseStackExtensions
static class
Provides extension methods for the SupabaseStackResource.
SupabaseStorageS3Options
class
No description.
Constructors
SupabaseStorageS3Options()
Properties
AccessKey : string { get; set; }Bucket : string { get; set; }ForcePathStyle : bool { get; set; }Region : string { get; set; }SecretKey : string { get; set; }
Nextended.Aspire.Hosting.Supabase.Client
SupabaseClientExtensions
static class
Extension methods for adding Supabase client to service projects.
SupabaseClientSettings
class
Settings for configuring a Supabase client connection.
Constructors
SupabaseClientSettings()
Properties
AutoConnectRealtime : bool { get; set; }
Whether to automatically connect to Realtime on initialization. Default: trueAutoRefreshToken : bool { get; set; }
Whether to automatically refresh the token. Default: trueHeaders : Dictionary<string, string> { get; set; }
Custom headers to include in requests.Key : string { get; set; }
The Supabase API key (anon/public key for client-side, service role key for server-side).PersistSession : bool { get; set; }
Whether to persist the session. Default: trueUrl : string { get; set; }
The Supabase URL (e.g., https://xxx.supabase.co or http://localhost:8000 for local).
Nextended.Aspire.Hosting.Supabase.Config
ISupabaseFullSyncInfo
interface
No description.
Properties
DbPassword : string { get; }ManagementToken : string { get; }
ISupabaseReferenceInfo
interface
No description.
Methods
GetApiUrl() : string
Properties
ProjectRefId : string { get; }ServiceKey : string { get; }
Nextended.Aspire.Hosting.Supabase.Resources
RegisteredUser
class
Represents a registered development user.
Constructors
RegisteredUser(string Email, string Password, string DisplayName)
Represents a registered development user.
Properties
DisplayName : string { get; set; }Email : string { get; set; }Password : string { get; set; }
SupabaseAuthResource
class
Represents a Supabase GoTrue authentication container resource.
Constructors
SupabaseAuthResource(string name)
Creates a new instance of the SupabaseAuthResource.
Properties
AnonymousUsersEnabled : bool { get; }
Gets or sets whether anonymous users are enabled.AutoConfirm : bool { get; }
Gets or sets whether email auto-confirmation is enabled.DisableSignup : bool { get; }
Gets or sets whether signup is disabled.JwtExpiration : int { get; }
Gets or sets the JWT expiration time in seconds.SiteUrl : string { get; }
Gets or sets the site URL for authentication redirects.
SupabaseDatabaseResource
class
Represents a Supabase PostgreSQL database container resource.
Constructors
SupabaseDatabaseResource(string name)
Creates a new instance of the SupabaseDatabaseResource.
Properties
ExternalPort : int { get; }
Gets or sets the external port for PostgreSQL connections.Password : string { get; }
Gets or sets the database password.
SupabaseEdgeRuntimeResource
class
Represents a Supabase Edge Runtime container resource for Edge Functions.
Constructors
SupabaseEdgeRuntimeResource(string name)
Creates a new instance of the SupabaseEdgeRuntimeResource.
Properties
FunctionNames : List<string> { get; }
Gets the list of function names available in this runtime.FunctionsPath : string { get; }
Gets or sets the path to the edge functions directory.Port : int { get; }
Gets or sets the internal port for the edge runtime.
SupabaseKongResource
class
Represents a Supabase Kong API Gateway container resource.
Constructors
SupabaseKongResource(string name)
Creates a new instance of the SupabaseKongResource.
Properties
ExternalPort : int { get; }
Gets or sets the external port for the API gateway.Plugins : string[] { get; }
Gets or sets the Kong plugins to enable.
SupabaseMetaResource
class
Represents a Supabase Postgres-Meta container resource.
Constructors
SupabaseMetaResource(string name)
Creates a new instance of the SupabaseMetaResource.
Properties
Port : int { get; }
Gets or sets the internal port for the meta service.
SupabaseRealtimeResource
class
Represents a Supabase Realtime container resource.
Constructors
SupabaseRealtimeResource(string name)
Creates a new instance of the SupabaseRealtimeResource.
Properties
Port : int { get; }
Gets or sets the port the Realtime service listens on.
SupabaseRestResource
class
Represents a Supabase PostgREST container resource.
Constructors
SupabaseRestResource(string name)
Creates a new instance of the SupabaseRestResource.
Properties
AnonRole : string { get; }
Gets or sets the anonymous role name.Schemas : string[] { get; }
Gets or sets the database schemas to expose.
SupabaseStackResource
class
Represents a complete Supabase stack resource containing all sub-services. This resource IS the Studio Dashboard container and serves as the visual parent for all other Supabase containers in the Aspire dashboard.
Constructors
SupabaseStackResource(string name)
Creates a new instance of the SupabaseStackResource.
Methods
GetApiUrl() : stringGetPostgresConnectionString() : stringGetStudioUrl() : string
Properties
AnonKey : string { get; }
Gets the Anon Key for client-side authentication.JwtSecret : string { get; }
Gets or sets the JWT secret used for token signing.ProjectRefId : string { get; }ServiceKey : string { get; }ServiceRoleKey : string { get; }
Gets the Service Role Key for server-side authentication.UsesExternalDatabase : bool { get; }
True when the caller passed their own Postgres resource to AddSupabase (external mode); the stack then owns no database container andDatabaseis null.
SupabaseStorageResource
class
Represents a Supabase Storage API container resource.
Constructors
SupabaseStorageResource(string name)
Creates a new instance of the SupabaseStorageResource.
Properties
Backend : string { get; }
Gets or sets the storage backend type.EnableImageTransformation : bool { get; }
Gets or sets whether image transformation is enabled.FileSizeLimit : long { get; }
Gets or sets the maximum file size limit in bytes.
Nextended.Aspire.Hosting.Supabase.Sync
ProjectSyncExtensions
static class
Provides extension methods for project synchronization.
SyncOptions
enum
Specifies what to synchronize from an online Supabase project.
Values
All
Everything - complete sync of all database objects, data, storage, and Edge Functions. Requires database password and Management API token for Edge Functions.AllSchema
All schema-related options (Schema, Policies, Functions, Triggers, Types, Views, Indexes). Requires database password.AllStorage
All storage-related options (StorageBuckets, StorageFiles).Data
Sync table data.EdgeFunctions
Sync Edge Functions from the remote project. Requires Supabase Management API token (personal access token from Dashboard → Account → Access Tokens).Functions
Sync stored procedures and functions.Indexes
Sync indexes.None
No synchronization.Policies
Sync Row Level Security policies.Schema
Sync table structures (columns, types, constraints).StorageBuckets
Sync storage buckets.StorageFiles
Sync storage files (downloads files from remote storage).Triggers
Sync database triggers.Types
Sync custom types and enums.Views
Sync views.value__