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.* is for service endpoint/transport selection (HTTP/NATS/noop) and non-secret routing metadata.
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", = { = "tenant-1" } }
= { = "nats", = "nats://nats.greentic.local:4222", = "greentic" }
= { = "noop" }
[]
= "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"