Skip to main content
Ditto Edge Server is configured entirely by a static YAML configuration file. This file defines all aspects of the server’s behavior, including resource definitions, authentication settings, and network configurations. The configuration file takes the following general structure:
# Required: Single Ditto database configuration
database:
  db_id: "00000000-0000-4000-0000-000000000000"
  device_name: "edge-device-1"
  auth:
    # Authentication configuration (server or small_peer_only)
  subscriptions:
    - "SELECT * FROM collection"

# Optional: HTTP server configuration
http_server:
  listen_addr: "127.0.0.1:8080"
  tls_config: dev_mode  # or provide cert/key for TLS
  http_api: true

# Required: Authentication configuration
auth:
  identities:
    my_identity:
      credential:
        api_key: "BASE64_HASH"
      permissions: [permission_set_name]
  permission_sets:
    permission_set_name:
      permissions: full

# Optional: Logging configuration
logging:
  ditto_sdk: warning
  edge_server:
    level: warning
    console_logs: std_out

Configuration Schema

Edge Server provides a comprehensive JSON Schema that documents all available configuration options, validation rules, and examples. This schema enables IDE autocomplete and validation for your config files.

Viewing the Schema

# View schema in JSON format (best for tools)
ditto-edge-server config schema

# Save to file for IDE integration
ditto-edge-server config schema > edge-server-config-schema.json

IDE Integration

Most modern editors support YAML schema validation. Enable it by adding a schema directive at the top of your config file:
# yaml-language-server: $schema=./edge-server-config-schema.json

database:
  db_id: "00000000-0000-4000-0000-000000000000"
  device_name: "edge-device-1"
  # IDE will now provide autocomplete and validation here
Schema-based validation catches configuration errors before runtime, making it easier to discover available options and ensuring your config file is correct.

Validating Configuration

Validate your configuration file without starting the server:
# Validate config syntax and schema compliance
ditto-edge-server config validate my-config.yaml

# View config with all defaults filled in
ditto-edge-server config defaults my-config.yaml

# Get a minimal example config
ditto-edge-server config minimum