Configuration
The .NET client reads its connection string from configuration. A typical setup binds the Cratis:Chronicle section of appsettings.json and registers Chronicle on the host with AddCratisChronicle.
appsettings.json:
{ "Cratis": { "Chronicle": { "ConnectionString": "chronicle://localhost:35000" } }}Program.cs:
using Microsoft.Extensions.Hosting;
public static class ConnectionStringsConfigurationRegistration{ public static void Configure(string[] args) { var builder = Host.CreateApplicationBuilder(args);
builder.AddCratisChronicle(options => options.EventStore = "my-store"); }}import io.cratis.chronicle.ChronicleClientimport io.cratis.chronicle.ChronicleOptions
// Kotlin has no appsettings.json-style configuration binding — read the connection string from// wherever the application keeps its configuration (here, an environment variable) and pass it// straight to the client.fun createClientFromEnvironment(): ChronicleClient { val connectionString = System.getenv("CHRONICLE_CONNECTION_STRING") ?: "chronicle://localhost:35000" return ChronicleClient(ChronicleOptions.fromConnectionString(connectionString))}import io.cratis.chronicle.ChronicleOptions;import io.cratis.chronicle.java.BlockingChronicleClient;
// Java has no appsettings.json-style configuration binding — read the connection string from// wherever the application keeps its configuration (here, an environment variable) and pass it// straight to the client.class ConnectionStringsConfigurationRegister { BlockingChronicleClient create() { String connectionString = System.getenv("CHRONICLE_CONNECTION_STRING"); if (connectionString == null) { connectionString = "chronicle://localhost:35000"; } return BlockingChronicleClient.connect(ChronicleOptions.fromConnectionString(connectionString)); }}defmodule MyApp.ConnectionStringsConfigurationRegistration do @moduledoc false
def start_link do children = [ {Chronicle.Client, event_store: "my-store"} ]
Supervisor.start_link(children, strategy: :one_for_one) endendTypeScript does not support this workflow yet.AddCratisChronicle is an extension on the host builder — IHostApplicationBuilder for worker and console hosts, WebApplicationBuilder for ASP.NET Core. It binds the Cratis:Chronicle section automatically, so the connection string comes from configuration rather than code. See Add Chronicle to a worker service and Add Chronicle to an ASP.NET Core app for the full host setup.
Environment-specific configuration
Section titled “Environment-specific configuration”Use per-environment configuration files to separate development and production settings:
appsettings.Development.json:
{ "Cratis": { "Chronicle": { "ConnectionString": "chronicle://localhost:35000/?skipTlsValidation=true" } }}appsettings.Production.json:
{ "Cratis": { "Chronicle": { "ConnectionString": "chronicle://clientId:clientSecret@chronicle.production.example.com:35000" } }}Environment variables
Section titled “Environment variables”You can also supply the connection string via environment variables. .NET maps the __ separator onto nested configuration keys, so Cratis:Chronicle:ConnectionString becomes:
export Cratis__Chronicle__ConnectionString="chronicle://clientId:clientSecret@server.example.com:35000"