Skip to content
DocsTry Aspire
DocsTry

SurrealDbBuilderExtensions Methods

ClassMethods11 members
Provides extension methods for adding SurrealDB resources to the application model.
AddDatabase(IResourceBuilder<SurrealDbNamespaceResource>, string, string?)Section titled AddDatabase(IResourceBuilder<SurrealDbNamespaceResource>, string, string?)extensionIResourceBuilder<SurrealDbDatabaseResource>
Adds a SurrealDB database to the application model. This is a child resource of a SurrealDbNamespaceResource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbDatabaseResource> AddDatabase(
this IResourceBuilder<SurrealDbNamespaceResource> builder,
string name,
string? databaseName = null)
{
// ...
}
}
builderIResourceBuilder<SurrealDbNamespaceResource>The SurrealDB resource builders.
namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.
databaseNamestring?optionalThe name of the database. If not provided, this defaults to the same value as name.
IResourceBuilder<SurrealDbDatabaseResource>A reference to the ApplicationModel.IResourceBuilder`1.
Add a SurrealDB container to the application model and reference it in a .NET project.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSurrealServer("surreal")
.AddNamespace("ns")
.AddDatabase("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db);
builder.Build().Run();
AddNamespace(IResourceBuilder<SurrealDbServerResource>, string, string?)Section titled AddNamespace(IResourceBuilder<SurrealDbServerResource>, string, string?)extensionIResourceBuilder<SurrealDbNamespaceResource>
Adds a SurrealDB namespace to the application model. This is a child resource of a SurrealDbServerResource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbNamespaceResource> AddNamespace(
this IResourceBuilder<SurrealDbServerResource> builder,
string name,
string? namespaceName = null)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The SurrealDB resource builders.
namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.
namespaceNamestring?optionalThe name of the namespace. If not provided, this defaults to the same value as name.
IResourceBuilder<SurrealDbNamespaceResource>A reference to the ApplicationModel.IResourceBuilder`1.
Add a SurrealDB container to the application model and reference it in a .NET project.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSurrealServer("surreal")
.AddNamespace("ns")
.AddDatabase("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db);
builder.Build().Run();
AddSurrealServer(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>, int?, string, bool)Section titled AddSurrealServer(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>, int?, string, bool)extensionIResourceBuilder<SurrealDbServerResource>
Adds a SurrealDB resource to the application model. A container is used for local development. The default image is and the tag is .
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> AddSurrealServer(
this IDistributedApplicationBuilder builder,
string name,
IResourceBuilder<ParameterResource>? userName = null,
IResourceBuilder<ParameterResource>? password = null,
int? port = null,
string path = "memory",
bool strictMode = false)
{
// ...
}
}
builderIDistributedApplicationBuilderThe Hosting.IDistributedApplicationBuilder.
namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.
userNameIResourceBuilder<ParameterResource>optionalThe parameter used to provide the administrator username for the SurrealDB resource.
passwordIResourceBuilder<ParameterResource>optionalThe parameter used to provide the administrator password for the SurrealDB resource. If null a random password will be generated.
portint?optionalThe host port for the SurrealDB instance.
pathstringoptionalSets the path for storing data. If no argument is given, the default of memory for non-persistent storage in memory is assumed.
strictModebooloptionalWhether strict mode is enabled on the server.
IResourceBuilder<SurrealDbServerResource>A reference to the ApplicationModel.IResourceBuilder`1.
Add a SurrealDB container to the application model and reference it in a .NET project.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSurrealServer("surreal")
.AddNamespace("ns")
.AddDatabase("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db);
builder.Build().Run();
WithCreationScript(IResourceBuilder<SurrealDbNamespaceResource>, string)Section titled WithCreationScript(IResourceBuilder<SurrealDbNamespaceResource>, string)extensionIResourceBuilder<SurrealDbNamespaceResource>
Defines the SQL script used to create the namespace.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbNamespaceResource> WithCreationScript(
this IResourceBuilder<SurrealDbNamespaceResource> builder,
string script)
{
// ...
}
}
builderIResourceBuilder<SurrealDbNamespaceResource>The builder for the SurrealDbNamespaceResource.
scriptstringThe SQL script used to create the namespace.
IResourceBuilder<SurrealDbNamespaceResource>A reference to the ApplicationModel.IResourceBuilder`1.
Default script is
DEFINE NAMESPACE IF NOT EXISTS `QUOTED_NAMESPACE_NAME`;
WithCreationScript(IResourceBuilder<SurrealDbDatabaseResource>, string)Section titled WithCreationScript(IResourceBuilder<SurrealDbDatabaseResource>, string)extensionIResourceBuilder<SurrealDbDatabaseResource>
Defines the SQL script used to create the database.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbDatabaseResource> WithCreationScript(
this IResourceBuilder<SurrealDbDatabaseResource> builder,
string script)
{
// ...
}
}
builderIResourceBuilder<SurrealDbDatabaseResource>The builder for the SurrealDbDatabaseResource.
scriptstringThe SQL script used to create the database.
IResourceBuilder<SurrealDbDatabaseResource>A reference to the ApplicationModel.IResourceBuilder`1.
Default script is
DEFINE DATABASE IF NOT EXISTS `QUOTED_DATABASE_NAME`;
WithDataBindMount(IResourceBuilder<SurrealDbServerResource>, string)Section titled WithDataBindMount(IResourceBuilder<SurrealDbServerResource>, string)extensionIResourceBuilder<SurrealDbServerResource>
Adds a bind mount for the data folder to a SurrealDB resource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> WithDataBindMount(
this IResourceBuilder<SurrealDbServerResource> builder,
string source)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The resource builder.
sourcestringThe source directory on the host to mount into the container.
IResourceBuilder<SurrealDbServerResource>The ApplicationModel.IResourceBuilder`1.
Add a SurrealDB container to the application model and reference it in a .NET project. Additionally, in this example a bind mount is added to the container to allow data to be persisted across container restarts.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSurrealServer("surreal")
.WithDataBindMount("./data/surreal/data")
.AddNamespace("ns")
.AddDatabase("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db);
builder.Build().Run();
WithDataVolume(IResourceBuilder<SurrealDbServerResource>, string?)Section titled WithDataVolume(IResourceBuilder<SurrealDbServerResource>, string?)extensionIResourceBuilder<SurrealDbServerResource>
Adds a named volume for the data folder to a SurrealDB resource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> WithDataVolume(
this IResourceBuilder<SurrealDbServerResource> builder,
string? name = null)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The resource builder.
namestring?optionalThe name of the volume. Defaults to an auto-generated name based on the application and resource names.
IResourceBuilder<SurrealDbServerResource>The ApplicationModel.IResourceBuilder`1.
Add a SurrealDB container to the application model and reference it in a .NET project. Additionally, in this example a data volume is added to the container to allow data to be persisted across container restarts.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSurrealServer("surreal")
.WithDataVolume()
.AddNamespace("ns")
.AddDatabase("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db);
builder.Build().Run();
WithInitFiles(IResourceBuilder<SurrealDbServerResource>, string)Section titled WithInitFiles(IResourceBuilder<SurrealDbServerResource>, string)extensionIResourceBuilder<SurrealDbServerResource>
Copies init files into a SurrealDB container resource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> WithInitFiles(
this IResourceBuilder<SurrealDbServerResource> builder,
string source)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The resource builder.
sourcestringThe source file on the host to copy into the container.
IResourceBuilder<SurrealDbServerResource>The ApplicationModel.IResourceBuilder`1.
DistributedApplicationExceptionSurrealDB only support importing a single script file.
WithLogLevel(IResourceBuilder<SurrealDbServerResource>, LogLevel)Section titled WithLogLevel(IResourceBuilder<SurrealDbServerResource>, LogLevel)extensionIResourceBuilder<SurrealDbServerResource>
Configures logging level for the SurrealDB container resource.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> WithLogLevel(
this IResourceBuilder<SurrealDbServerResource> builder,
LogLevel logLevel)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The resource builder.
logLevelLogLevelThe log level to set.
IResourceBuilder<SurrealDbServerResource>The ApplicationModel.IResourceBuilder`1.
This overload is not available in polyglot app hosts. Use the exported string-based overload instead.
WithOtlpExporter(IResourceBuilder<SurrealDbServerResource>)Section titled WithOtlpExporter(IResourceBuilder<SurrealDbServerResource>)extensionIResourceBuilder<SurrealDbServerResource>
Injects the appropriate environment variables to allow the resource to enable sending telemetry to the dashboard. 1. It sets the OTLP endpoint to the value of the DOTNET_DASHBOARD_OTLP_ENDPOINT_URL environment variable. 2. It sets the service name and instance id to the resource name and UID. Values are injected by the orchestrator. 3. It sets a small batch schedule delay in development. This reduces the delay that OTLP exporter waits to sends telemetry and makes the dashboard telemetry pages responsive.
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<SurrealDbServerResource> WithOtlpExporter(
this IResourceBuilder<SurrealDbServerResource> builder)
{
// ...
}
}
builderIResourceBuilder<SurrealDbServerResource>The resource builder.
IResourceBuilder<SurrealDbServerResource>The ApplicationModel.IResourceBuilder`1.
WithSurrealist(IResourceBuilder<T>, Action<IResourceBuilder<SurrealistContainerResource>>, string?)Section titled WithSurrealist(IResourceBuilder<T>, Action<IResourceBuilder<SurrealistContainerResource>>, string?)extensionIResourceBuilder<T>
Adds a Surrealist UI instance for SurrealDB to the application model. The default image is and the tag is .
public static class SurrealDbBuilderExtensions
{
public static IResourceBuilder<T> WithSurrealist<T>(
this IResourceBuilder<T> builder,
Action<IResourceBuilder<SurrealistContainerResource>>? configureContainer = null,
string? containerName = null)
{
// ...
}
}
builderIResourceBuilder<T>The SurrealDB server resource builder.
configureContainerAction<IResourceBuilder<SurrealistContainerResource>>optionalCallback to configure Surrealist container resource.
containerNamestring?optionalThe name of the container (optional).
IResourceBuilder<T>A reference to the ApplicationModel.IResourceBuilder`1.
This overload is not available in polyglot app hosts. Use the exported overload instead.