Skip to content

Configuration

Christian KASSE edited this page Apr 2, 2026 · 1 revision

Configuration

Standalone Configuration

When using the SDK without Spring Boot, configure via the builder:

Essabu essabu = Essabu.builder()
    .apiKey("ess_live_xxxxxxxxxxxx")       // Required: your API key
    .tenantId("your-tenant-uuid")          // Required: your tenant ID
    .baseUrl("https://api.essabu.com")     // Optional: API base URL (default)
    .connectTimeout(Duration.ofSeconds(10)) // Optional: connection timeout
    .readTimeout(Duration.ofSeconds(30))    // Optional: read timeout
    .maxRetries(3)                          // Optional: max retry attempts (default: 3)
    .retryDelay(Duration.ofMillis(500))     // Optional: initial retry delay (default: 500ms)
    .build();

Spring Boot Auto-Configuration

The SDK provides a Spring Boot starter with auto-configuration. All properties are prefixed with essabu.:

application.yml

essabu:
  api-key: ess_live_xxxxxxxxxxxx
  tenant-id: your-tenant-uuid
  base-url: https://api.essabu.com      # default
  connect-timeout: 10s                   # default: 10s
  read-timeout: 30s                      # default: 30s
  max-retries: 3                         # default: 3
  retry-delay: 500ms                     # default: 500ms

application.properties

essabu.api-key=ess_live_xxxxxxxxxxxx
essabu.tenant-id=your-tenant-uuid
essabu.base-url=https://api.essabu.com
essabu.connect-timeout=10s
essabu.read-timeout=30s
essabu.max-retries=3
essabu.retry-delay=500ms

Configuration Properties Reference

Property Type Default Description
essabu.api-key String required Your Essabu API key
essabu.tenant-id String required Your tenant UUID
essabu.base-url String https://api.essabu.com API base URL
essabu.connect-timeout Duration 10s HTTP connection timeout
essabu.read-timeout Duration 30s HTTP read timeout
essabu.max-retries int 3 Max retry attempts for 429/5xx
essabu.retry-delay Duration 500ms Initial retry delay (doubles each retry)

Environment-Specific Configuration

Development / Staging

spring:
  profiles:
    active: dev

---
spring.config.activate.on-profile: dev
essabu:
  api-key: ess_test_xxxxxxxxxxxx
  tenant-id: dev-tenant-uuid
  base-url: http://localhost:8080

Production

spring.config.activate.on-profile: prod
essabu:
  api-key: ${ESSABU_API_KEY}
  tenant-id: ${ESSABU_TENANT_ID}

How Auto-Configuration Works

The SDK auto-configuration:

  1. Reads essabu.* properties from your application configuration
  2. Creates a configured Essabu bean in the Spring context
  3. Makes the bean available for injection in any Spring component

You can override the auto-configured bean by defining your own:

@Bean
public Essabu essabu() {
    return Essabu.builder()
        .apiKey("custom-key")
        .tenantId("custom-tenant")
        .build();
}

Clone this wiki locally