Skip to main content

Pinned to release v0.21.0. For the current default branch, see Go-Trust Configuration Reference.

Configuration Reference

This document describes all configuration options for go-trust (gt). Configuration is loaded from a YAML file, then a handful of settings can be overridden by GT_* environment variables — most fields (all registries and policies) are YAML-only.

A few server settings can also be set via CLI flag (gt -host, -port, -external-url, -log-level, -log-format) — see gt -h.

Table of Contents​


server​

YAML KeyEnv VariableTypeDescription
server.hostGT_HOSTstring
server.portGT_PORTstring
server.frequencyGT_FREQUENCYduration
server.external_urlGT_EXTERNAL_URLstringExternal URL for PDP discovery (e.g., https://pdp.example.com)
server.tls.enabledGT_TLS_ENABLEDbooleanEnable TLS/HTTPS
server.tls.cert_fileGT_TLS_CERT_FILEstringPath to TLS certificate file
server.tls.key_fileGT_TLS_KEY_FILEstringPath to TLS private key file

logging​

YAML KeyEnv VariableTypeDescription
logging.levelGT_LOG_LEVELstring
logging.formatGT_LOG_FORMATstring
logging.outputGT_LOG_OUTPUTstring

security​

YAML KeyEnv VariableTypeDescription
security.rate_limit_rpsGT_RATE_LIMIT_RPSinteger
security.enable_corsGT_ENABLE_CORSboolean
security.allowed_originsGT_ALLOWED_ORIGINSstring list
security.max_response_body_bytesGT_MAX_RESPONSE_BODY_BYTESintegerMax HTTP response body size in bytes (default: 10MB)

policies​

YAML KeyEnv VariableTypeDescription
policies.default_policy—stringDefaultPolicy is the name of the policy to use when action.name is not specified
policies.policies—map[string]*PolicyConfig (object)Policies is a map of policy name to policy configuration

registries.etsi​

YAML KeyEnv VariableTypeDescription
etsi.enabled—boolean
etsi.name—string
etsi.description—string
etsi.cert_bundle—string
etsi.tsl_files—string list
etsi.tsl_urls—string list
etsi.follow_refs—boolean
etsi.max_ref_depth—integer
etsi.allow_network_access—boolean
etsi.fetch_timeout—string
etsi.user_agent—string
etsi.lotl_signer_bundle—stringLOTLSignerBundle is the path to a PEM file containing trusted LOTL signer certificates. These certificates are used to validate signatures on the List of Trusted Lists (LOTL).
etsi.require_signature—booleanRequireSignature controls whether TSLs must have valid signatures. When true, LOTLSignerBundle must also be configured.
etsi.follow_pivots—booleanFollowPivots enables ETSI TS 119 615 pivot LOTL processing for signer certificate rollover. When true, the registry will fetch pivot LOTLs to discover new signer certificates.

registries.whitelist​

YAML KeyEnv VariableTypeDescription
whitelist.enabled—boolean
whitelist.name—string
whitelist.description—string
whitelist.config_file—string
whitelist.watch_file—boolean
whitelist.lists—map[string][]string (object)Named lists (new format)
whitelist.actions—map[string]string (object)
whitelist.issuers—string listLegacy fields (backward compatible)
whitelist.verifiers—string list
whitelist.trusted_subjects—string list
whitelist.allow_http—booleanAllowHTTP permits JWKS auto-discovery over plain HTTP instead of requiring HTTPS. Testing only - see pkg/registry/static.WhitelistConfig.
whitelist.trust_x509_via_system_ca—booleanTrustX509ViaSystemCA enables the system-CA-pool fallback for whitelisted entities with no JWKS endpoint (e.g. OpenID4VP x509_san_dns or x509_hash client_id_scheme verifiers) - see pkg/registry/static.WhitelistConfig.TrustX509ViaSystemCA.
whitelist.additional_trusted_roots—string listAdditionalTrustedRoots is a list of PEM-encoded CA certificates merged into TrustX509ViaSystemCA's chain-validation pool - see pkg/registry/static.WhitelistConfig.AdditionalTrustedRoots.

registries.oidfed​

OpenID Federation registry

YAML KeyEnv VariableTypeDescription
oidfed.enabled—boolean
oidfed.name—string
oidfed.description—string
oidfed.trust_anchors—OIDFedTrustAnchorConfig list
oidfed.required_trust_marks—string list
oidfed.entity_types—string list
oidfed.cache_ttl—string
oidfed.max_cache_size—integer
oidfed.max_chain_depth—integer

registries.did_local​

Self-contained DID methods (did:key, did:jwk), resolved locally

YAML KeyEnv VariableTypeDescription
did_local.enabled—boolean
did_local.description—string
did_local.methods—string listMethods lists the DID methods to resolve, e.g. ["key", "jwk"]. Empty enables every self-contained method. An unrecognised method is a startup error rather than a warning.

registries.didweb​

DID method registries

YAML KeyEnv VariableTypeDescription
didweb.enabled—boolean
didweb.name—string
didweb.description—string
didweb.timeout—string
didweb.insecure_skip_verify—boolean
didweb.allow_http—boolean

registries.didwebvh​

YAML KeyEnv VariableTypeDescription
didwebvh.enabled—boolean
didwebvh.name—string
didwebvh.description—string
didwebvh.timeout—string
didwebvh.insecure_skip_verify—boolean
didwebvh.allow_http—boolean

registries.didjwks​

YAML KeyEnv VariableTypeDescription
didjwks.enabled—boolean
didjwks.name—string
didjwks.description—string
didjwks.timeout—string
didjwks.insecure_skip_verify—boolean
didjwks.allow_http—boolean
didjwks.disable_oidc_discovery—boolean

registries.lote​

ETSI TS 119 602 LoTE registry

YAML KeyEnv VariableTypeDescription
lote.enabled—boolean
lote.name—string
lote.description—string
lote.sources—string list
lote.lotl_sources—string list
lote.max_dereference_depth—integer
lote.verify_jws—boolean
lote.fetch_timeout—string
lote.refresh_interval—string

registries.mdociaca​

mDOC IACA registry

YAML KeyEnv VariableTypeDescription
mdociaca.enabled—boolean
mdociaca.name—string
mdociaca.description—string
mdociaca.issuer_allowlist—string list
mdociaca.cache_ttl—string
mdociaca.http_timeout—string

registries.mdocrical​

mDOC RICAL registry (reader authentication trust)

YAML KeyEnv VariableTypeDescription
mdocrical.enabled—boolean
mdocrical.name—string
mdocrical.description—string
mdocrical.rical_provider_url—string
mdocrical.rical_root_certificate_pem—string
mdocrical.cache_ttl—string
mdocrical.http_timeout—string

registries.vical​

VICAL registry (issuer authentication trust)

YAML KeyEnv VariableTypeDescription
vical.enabled—boolean
vical.name—string
vical.description—string
vical.vical_provider_url—string
vical.vical_root_certificate_pem—string
vical.cache_ttl—string
vical.http_timeout—string

registries.fidomds3​

FIDO Alliance MDS3 registry (FIDO2/CTAP2 hardware-key attestation trust)

YAML KeyEnv VariableTypeDescription
fidomds3.enabled—boolean
fidomds3.name—string
fidomds3.description—string
fidomds3.url—string
fidomds3.fetch_timeout—string
fidomds3.refresh_interval—string
fidomds3.root_certificate_pem—string
fidomds3.cache_path—stringCachePath persists the raw MDS3 blob to disk so a restart doesn't have to block on (or fail because of) a live fetch - see fidomds3.Config.CachePath's doc for the load/refresh semantics.

registries.always_trusted​

Static test registries

YAML KeyEnv VariableTypeDescription
always_trusted.enabled—boolean
always_trusted.name—string
always_trusted.description—string

registries.never_trusted​

YAML KeyEnv VariableTypeDescription
never_trusted.enabled—boolean
never_trusted.name—string
never_trusted.description—string