Configuration Overview
Harmony Proxy uses a layered configuration approach with three main components.
Configuration Structure
my-gateway/
├── config.toml # System configuration
├── pipelines/ # Pipeline definitions
│ └── my-pipeline.toml
├── transforms/ # JOLT transform specs (optional)
│ └── my-transform.json
System Configuration
File: config.toml
System-level settings that define how Harmony runs:
- Network interfaces and ports
- Logging and storage
- Runbeam Cloud integration
- Service and middleware type registrations
Learn more about System Configuration →
Pipeline Configuration
Directory: pipelines/
Pipeline files define how requests flow through your gateway:
- Endpoints (public-facing routes)
- Middleware chains (authentication, transforms)
- Backends (where requests are sent)
- Routing rules
Learn more about Pipeline Configuration →
Transform Specifications
Directory: transforms/
JOLT specifications for data transformation:
- JSON to JSON transformations
- Field mapping and restructuring
- Data enrichment
- Format conversion
Configuration Flow
- System - Harmony loads
config.tomlfor runtime settings - Pipelines - Loads all files from
pipelines/directory - Transforms - Loads transform specs from
transforms/as referenced
All three layers support hot-reload - changes are detected and applied automatically.
Quick Example
config.toml
[proxy]
id = "my-gateway"
pipelines_path = "pipelines"
transforms_path = "transforms"
[network.http_net]
[network.http_net.http]
bind_address = "0.0.0.0"
bind_port = 8080
[storage]
backend = "filesystem"
[storage.options]
path = "./tmp"
pipelines/api.toml
[pipelines.api]
networks = ["http_net"]
endpoints = ["api_endpoint"]
middleware = ["auth", "transform"]
backends = ["api_backend"]
[endpoints.api_endpoint]
service = "http"
[endpoints.api_endpoint.options]
path_prefix = "/api"
[middleware.auth]
type = "jwt_auth"
[middleware.transform]
type = "transform"
[middleware.transform.options]
spec_path = "normalize.json"
[backends.api_backend]
service = "http"
[backends.api_backend.options]
url = "http://backend.example.com"
transforms/normalize.json
[
{
"operation": "shift",
"spec": {
"id": "identifier",
"name": "displayName"
}
}
]
Next Steps
- System Configuration → - Configure runtime settings
- Pipeline Configuration → - Define request processing
- Services → - Connect to backends
- Middleware → - Set up authentication and transformations
- Authentication → - Secure your gateway
- Transforms → - Transform data