greentic-config-types
Schema-only types for Greentic host configuration. This crate defines the canonical configuration structures reused by runners, deployers, CLIs, and services.
Scope
- Pure data structures with serde support.
- No filesystem, environment variable, or network IO.
- No secret material: only backend selection references are captured.
- Reuses
greentic-typesfor shared identifiers (e.g.,EnvId,DeploymentCtx,ConnectionKind). - Shared services/events configuration: service endpoints/transports live in
services, reconnect/backoff knobs inevents. - Deployer defaults (e.g.,
deployer.base_domain) live here so deploy tooling stays out of code defaults.
Notes
- Durations use millisecond suffixes (
*_ms) withu64values. - Enums are case-insensitive when deserializing.
ConfigVersionis a string schema version (default"1").- Do not put tokens/passwords/API keys in config; route auth via your secrets backend.
Services and events configuration
services.*.transport(HTTP/NATS/noop) is outbound connectivity to other Greentic services.services.*.serviceis inbound binding for the host itself (bind address/port/public URL/metrics).network.*is cross-cutting client/network behavior (proxy/TLS/timeouts) and should not be duplicated per-service.
Admin endpoints are disabled by default and must be explicitly enabled via runtime.admin_endpoints.
[]
= "http"
= "https://runner.greentic.local"
[]
= "0.0.0.0"
= 8080
= "https://runner.greentic.local"
[]
= true
= "127.0.0.1"
= 9090
= "/metrics"
[]
= "http"
= "https://store.greentic.local"
[]
= "0.0.0.0"
= 7070
[]
= true
= 9191
[]
= "nats"
= "nats://nats.greentic.local:4222"
= "greentic"
[]
= "https://events.greentic.local"
# headers are non-secret metadata only and MUST NOT include secrets
# (e.g. Authorization, Cookie, Set-Cookie).
= { = "tenant-1" }
[]
= true
= 25
[]
= 250
= 30000
= 2.0
= true
[]
# disabled by default
= true
Deployer defaults
[]
# Default domain used when generating deployment URLs / routing domains.
= "deploy.greentic.ai"
[]
# Optional strategy hints; non-secret.
= "aws"
= "us-west-2"