Configuration File
The server configuration can be loaded in multiple ways:- Config directory (legacy): Multiple YAML files in a directory structure
- Single config file: Using
--config-fileflag orTEMPORAL_SERVER_CONFIG_FILE_PATHenvironment variable - Embedded config: Default configuration embedded in the binary
Configuration Structure
Top-Level Configuration
| Field | Type | Description |
|---|---|---|
global | Global | Process-wide service configuration |
persistence | Persistence | Datastore configuration |
log | Log | Logging configuration |
clusterMetadata | ClusterMetadata | Cluster metadata and multi-cluster setup |
dcRedirectionPolicy | DCRedirectionPolicy | Datacenter redirection policy |
services | map[string]Service | Per-service configuration (frontend, history, matching, worker) |
archival | Archival | Archival configuration |
publicClient | PublicClient | Internal service to frontend client configuration |
dynamicConfigClient | FileBasedClientConfig | Dynamic configuration client setup |
namespaceDefaults | NamespaceDefaults | Default settings for new namespaces |
otel | ExportConfig | OpenTelemetry exporter configuration |
visibility | Visibility | Visibility store configuration |
Global Configuration
Membership
Cluster membership and gossip protocol configuration.| Field | Type | Default | Description |
|---|---|---|---|
maxJoinDuration | duration | 10s | Maximum time to wait to join the gossip ring |
broadcastAddress | string | "" | Address communicated to other nodes (for NAT traversal) |
PProf
Go profiling endpoint configuration.| Field | Type | Default | Description |
|---|---|---|---|
port | int | 0 | Port for pprof HTTP endpoint (0 = disabled) |
host | string | localhost | Host to bind pprof endpoint |
TLS Configuration
TLS settings for inter-service and client communication.Server TLS
| Field | Type | Description |
|---|---|---|
certFile | string | Path to PEM-encoded certificate |
keyFile | string | Path to PEM-encoded private key |
certData | string | Base64-encoded certificate (alternative to certFile) |
keyData | string | Base64-encoded private key (alternative to keyFile) |
clientCaFiles | []string | CA certificates for client authentication |
clientCaData | []string | Base64-encoded CA certificates |
requireClientAuth | bool | Whether to require mutual TLS |
Client TLS
| Field | Type | Description |
|---|---|---|
serverName | string | Expected server name for verification |
rootCaFiles | []string | Trusted CA certificates |
rootCaData | []string | Base64-encoded CA certificates |
disableHostVerification | bool | Skip hostname verification (insecure) |
forceTLS | bool | Use TLS even without certificates |
Metrics
Metrics configuration for Prometheus, StatsD, or M3.| Field | Type | Description |
|---|---|---|
prometheus | PrometheusConfig | Prometheus metrics configuration |
statsd | StatsdConfig | StatsD metrics configuration |
m3 | M3Config | M3 metrics configuration |
tags | map[string]string | Global tags for all metrics |
Authorization
Authentication and authorization configuration.| Field | Type | Description |
|---|---|---|
jwtKeyProvider | JWTKeyProvider | JWT signing key configuration |
permissionsClaimName | string | JWT claim containing permissions |
permissionsRegex | string | Regex to parse permissions claim |
authorizer | string | Authorizer implementation ("" or “default”) |
claimMapper | string | Claim mapper implementation |
authHeaderName | string | HTTP header for auth token (default: “authorization”) |
authExtraHeaderName | string | Additional auth header |
audience | string | Expected JWT audience |
Persistence Configuration
Database and datastore configuration.Persistence Fields
| Field | Type | Description |
|---|---|---|
defaultStore | string | Name of default datastore for temporal data |
visibilityStore | string | Name of datastore for visibility records |
secondaryVisibilityStore | string | Secondary visibility store for dual writes |
numHistoryShards | int32 | Number of history shards (must be power of 2) |
datastores | map[string]DataStore | Named datastore configurations |
SQL Datastore
| Field | Type | Description |
|---|---|---|
pluginName | string | SQL plugin: “postgres”, “mysql”, “sqlite” |
databaseName | string | Database name |
connectAddr | string | Database host:port |
connectProtocol | string | Connection protocol: “tcp”, “unix” |
user | string | Database user |
password | string | Database password |
connectAttributes | map[string]string | Additional connection parameters |
maxConns | int | Maximum connections |
maxIdleConns | int | Maximum idle connections |
maxConnLifetime | duration | Maximum connection lifetime |
taskScanPartitions | int | Partitions for task scanning (Vitess) |
Cassandra Datastore
| Field | Type | Description |
|---|---|---|
hosts | string | Comma-separated Cassandra hosts |
port | int | Cassandra port |
keyspace | string | Keyspace name |
user | string | Username |
password | string | Password |
datacenter | string | Local datacenter |
maxConns | int | Maximum connections per host |
connectTimeout | duration | Connection timeout |
timeout | duration | Query timeout |
writeTimeout | duration | Write timeout |
consistency | CassandraConsistency | Consistency settings |
Elasticsearch Datastore
Service Configuration
Per-service settings for frontend, history, matching, and worker services.RPC Configuration
| Field | Type | Description |
|---|---|---|
grpcPort | int | Port for gRPC service |
httpPort | int | Port for HTTP/gRPC-Web (frontend only) |
membershipPort | int | Port for cluster membership |
bindOnLocalHost | bool | Bind to localhost only |
bindOnIP | string | Specific IP to bind (overrides bindOnLocalHost) |
httpAdditionalForwardedHeaders | []string | Additional headers to forward from HTTP to gRPC |
keepAliveServerConfig | KeepAliveConfig | gRPC keepalive configuration |
clientConnectionConfig | ClientConnectionConfig | Client connection settings |
Dynamic Configuration
Dynamic configuration allows runtime configuration changes without server restart.| Field | Type | Description |
|---|---|---|
filepath | string | Path to dynamic config YAML file |
pollInterval | duration | How often to check for config changes |
Archival Configuration
History and visibility archival to long-term storage.Archival States
enabled: Archival is enableddisabled: Archival is disabledpaused: Archival is paused temporarily
Archival Providers
- filestore: Local or network filesystem
- s3store: Amazon S3 or S3-compatible storage
- gstorage: Google Cloud Storage
Cluster Metadata
Multi-cluster configuration.| Field | Type | Description |
|---|---|---|
enableGlobalNamespace | bool | Enable global namespaces |
failoverVersionIncrement | int | Version increment for failover |
masterClusterName | string | Name of the master cluster |
currentClusterName | string | Name of this cluster |
clusterInformation | map[string]ClusterInfo | Cluster details |