SurrealClientConfig configures a SurrealClient. The only required field is url; everything else has a sensible default.
Source: surrealdb.kotlin
import com.surrealdb.kotlin.SurrealClientConfigFields
Field | Type | Default | Description |
|---|---|---|---|
url | String | — | The connection URL. The scheme ( ws/ wss/ http/ https) selects the transport. |
json | Json | lenient | The kotlinx.serializationinstance used for encoding and decoding. |
autoConnect | Boolean | true | Connect lazily on the first request. |
autoAuthenticate | Boolean | false | Authenticate automatically using credentialProvideron connect and reconnect. |
credentialProvider | (suspend () -> SurrealAuthInput?)? | null | Supplies credentials for automatic authentication and token renewal. |
requestTimeoutMillis | Long | 30_000 | Per-request timeout in milliseconds. |
reconnect | ReconnectConfig | ReconnectConfig() | WebSocket reconnection behaviour. |
tokenRenewalLeadMillis | Long | 60_000 | How long before token expiry to renew, in milliseconds. |
httpClientFactory | ((SurrealClientConfig) -> HttpClient)? | null | Supplies a custom Ktor HttpClient. |
import com.surrealdb.kotlin.SurrealAuthInput
import com.surrealdb.kotlin.SurrealClientConfig
import com.surrealdb.kotlin.engine.ReconnectConfig
import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.put
val config = SurrealClientConfig(
url = "wss://example.com",
requestTimeoutMillis = 30_000,
autoAuthenticate = true,
tokenRenewalLeadMillis = 60_000,
reconnect = ReconnectConfig(enabled = true, multiplier = 1.5),
credentialProvider = {
SurrealAuthInput.SignIn(buildJsonObject {
put("user", "root")
put("pass", "root")
})
},
) ReconnectConfig
Controls exponential-backoff reconnection on the WebSocket transport.
import com.surrealdb.kotlin.engine.ReconnectConfigField | Type | Default | Description |
|---|---|---|---|
enabled | Boolean | true | Whether reconnection is attempted. |
initialDelayMillis | Long | 250 | Delay before the first retry. |
maxDelayMillis | Long | 30_000 | Maximum delay between retries. |
multiplier | Double | 1.5 | Backoff multiplier applied each attempt. |
maxAttempts | Int? | null | Maximum attempts; nullretries indefinitely. |
SurrealAuthInput
A sealed interface describing how credentialProvider should authenticate.
import com.surrealdb.kotlin.SurrealAuthInputVariant | Payload | Description |
|---|---|---|
SurrealAuthInput.SignIn | params: JsonObject | Sign in with credentials. |
SurrealAuthInput.Token | token: String | Authenticate with an existing token. |