Skip to main content

Pinned to release v0.19.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_policystringDefaultPolicy is the name of the policy to use when action.name is not specified
policies.policiesmap[string]*PolicyConfig (object)Policies is a map of policy name to policy configuration

registries.etsi

YAML KeyEnv VariableTypeDescription
etsi.enabledboolean
etsi.namestring
etsi.descriptionstring
etsi.cert_bundlestring
etsi.tsl_filesstring list
etsi.tsl_urlsstring list
etsi.follow_refsboolean
etsi.max_ref_depthinteger
etsi.allow_network_accessboolean
etsi.fetch_timeoutstring
etsi.user_agentstring
etsi.lotl_signer_bundlestringLOTLSignerBundle 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_signaturebooleanRequireSignature controls whether TSLs must have valid signatures. When true, LOTLSignerBundle must also be configured.
etsi.follow_pivotsbooleanFollowPivots 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.enabledboolean
whitelist.namestring
whitelist.descriptionstring
whitelist.config_filestring
whitelist.watch_fileboolean
whitelist.listsmap[string][]string (object)Named lists (new format)
whitelist.actionsmap[string]string (object)
whitelist.issuersstring listLegacy fields (backward compatible)
whitelist.verifiersstring list
whitelist.trusted_subjectsstring list
whitelist.allow_httpbooleanAllowHTTP permits JWKS auto-discovery over plain HTTP instead of requiring HTTPS. Testing only - see pkg/registry/static.WhitelistConfig.
whitelist.trust_x509_via_system_cabooleanTrustX509ViaSystemCA 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_rootsstring 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.enabledboolean
oidfed.namestring
oidfed.descriptionstring
oidfed.trust_anchorsOIDFedTrustAnchorConfig list
oidfed.required_trust_marksstring list
oidfed.entity_typesstring list
oidfed.cache_ttlstring
oidfed.max_cache_sizeinteger
oidfed.max_chain_depthinteger

registries.didweb

DID method registries

YAML KeyEnv VariableTypeDescription
didweb.enabledboolean
didweb.namestring
didweb.descriptionstring
didweb.timeoutstring
didweb.insecure_skip_verifyboolean
didweb.allow_httpboolean

registries.didwebvh

YAML KeyEnv VariableTypeDescription
didwebvh.enabledboolean
didwebvh.namestring
didwebvh.descriptionstring
didwebvh.timeoutstring
didwebvh.insecure_skip_verifyboolean
didwebvh.allow_httpboolean

registries.didjwks

YAML KeyEnv VariableTypeDescription
didjwks.enabledboolean
didjwks.namestring
didjwks.descriptionstring
didjwks.timeoutstring
didjwks.insecure_skip_verifyboolean
didjwks.allow_httpboolean
didjwks.disable_oidc_discoveryboolean

registries.lote

ETSI TS 119 602 LoTE registry

YAML KeyEnv VariableTypeDescription
lote.enabledboolean
lote.namestring
lote.descriptionstring
lote.sourcesstring list
lote.lotl_sourcesstring list
lote.max_dereference_depthinteger
lote.verify_jwsboolean
lote.fetch_timeoutstring
lote.refresh_intervalstring

registries.mdociaca

mDOC IACA registry

YAML KeyEnv VariableTypeDescription
mdociaca.enabledboolean
mdociaca.namestring
mdociaca.descriptionstring
mdociaca.issuer_allowliststring list
mdociaca.cache_ttlstring
mdociaca.http_timeoutstring

registries.mdocrical

mDOC RICAL registry (reader authentication trust)

YAML KeyEnv VariableTypeDescription
mdocrical.enabledboolean
mdocrical.namestring
mdocrical.descriptionstring
mdocrical.rical_provider_urlstring
mdocrical.rical_root_certificate_pemstring
mdocrical.cache_ttlstring
mdocrical.http_timeoutstring

registries.vical

VICAL registry (issuer authentication trust)

YAML KeyEnv VariableTypeDescription
vical.enabledboolean
vical.namestring
vical.descriptionstring
vical.vical_provider_urlstring
vical.vical_root_certificate_pemstring
vical.cache_ttlstring
vical.http_timeoutstring

registries.fidomds3

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

YAML KeyEnv VariableTypeDescription
fidomds3.enabledboolean
fidomds3.namestring
fidomds3.descriptionstring
fidomds3.urlstring
fidomds3.fetch_timeoutstring
fidomds3.refresh_intervalstring
fidomds3.root_certificate_pemstring
fidomds3.cache_pathstringCachePath 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.enabledboolean
always_trusted.namestring
always_trusted.descriptionstring

registries.never_trusted

YAML KeyEnv VariableTypeDescription
never_trusted.enabledboolean
never_trusted.namestring
never_trusted.descriptionstring