Skip to content

Nextended.Aspire.Hosting.Supabase — API reference ​

🇩🇪 Diese Seite auf Deutsch

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.

↩ Back to the package page

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.
  • PublishTarget : SupabasePublishTarget { get; set; }
  • 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 (see PersistentStorageVolumeName / local bind mount).

SupabasePublishTarget ​

enum

No description.

Values

  • AzureContainerApps
  • ContainerEnvironment
  • value__

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: true
  • AutoRefreshToken : bool { get; set; }
    Whether to automatically refresh the token. Default: true
  • Headers : 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: true
  • Url : 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() : string
  • GetPostgresConnectionString() : string
  • GetStudioUrl() : string
  • InfraRootDirForTests() : 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 and Database is 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__

↩ Back to the package page