Platform Configuration
This guide provides details about the configuration setup for the platform, including the logger, services , and server configurations.
The platform leverages viper to help load configuration.
- Platform Configuration
Deployment Mode
The platform is designed as a modular monolith, meaning that all services are built into and run from the same binary. However, these services can be grouped and run together based on specific needs. The available service groups are:
- all: Runs every service that is registered within the platform.
- core: Runs essential services, including policy, authorization, and wellknown services.
- kas: Runs the Key Access Server (KAS) service.
Service Negation
You can exclude specific services from any mode using the negation syntax -servicename:
- Syntax:
mode: <base-mode>,-<service1>,-<service2> - Constraint: At least one positive mode must be specified (negation-only modes like
-kaswill result in an error) - Available services:
policy,authorization,kas,entityresolution,wellknown
Examples:
# Run all services except Entity Resolution Service
mode: all,-entityresolution
# Run core services except Policy Service
mode: core,-policy
# Run all services except both KAS and Entity Resolution
mode: all,-kas,-entityresolution
| Field | Description | Default | Environment Variable |
|---|---|---|---|
mode | Drives which services to run. Supported modes: all, core, kas. Use -servicename to exclude specific services (e.g., all,-entityresolution) | all | OPENTDF_MODE |
SDK Configuration
The sdk configuration is used when operating the service in mode kas. When running in mode core or all an in-process communication is leveraged over an in-memory grpc server.
Root level key sdk_config
| Field | Description | Default | Environment Variable |
|---|---|---|---|
core.endpoint | The core platform endpoint to connect to | OPENTDF_SDK_CONFIG_ENDPOINT | |
core.plaintext | Use a plaintext grpc connection | false | OPENTDF_SDK_CONFIG_PLAINTEXT |
core.insecure | Use an insecure tls connection | false | |
entityresolution.endpoint | The entityresolution endpoint to connect to | ||
entityresolution.plaintext | Use a plaintext ERS grpc connection | false | |
entityresolution.insecure | Use an insecure tls connection | false | |
client_id | OAuth client id | OPENTDF_SDK_CONFIG_CLIENT_ID | |
client_secret | The clients credentials | OPENTDF_SDK_CONFIG_CLIENT_SECRET |