ol.clave.automation.impl.config

resolve-config

(resolve-config system domain)

Merge global config with per-domain overrides.

Returns the resolved configuration for a specific domain by merging the global config with any per-domain overrides from config-fn.

If config-fn is nil or returns nil, returns the global config unchanged.

key description

system

System map containing :config and optional :config-fn

domain

Domain name to resolve configuration for


select-issuer

(select-issuer config)

Select issuers based on the issuer-selection policy.

Returns the issuers in the appropriate order based on :issuer-selection: - :in-order (default) - return issuers in original order - :shuffle - return issuers in random order

key description

config

Configuration with :issuers and optional :issuer-selection


lets-encrypt-production-url

Let’s Encrypt production directory URL.


default-config

(default-config)

Returns the default configuration for the automation layer.

Default values: - Issuer: Let’s Encrypt production - Key type: P256 (ECDSA) - OCSP: enabled, must-staple disabled - ARI: enabled - Key reuse: disabled - Cache capacity: unlimited


issuer-key-from-url

(issuer-key-from-url url)

Extract issuer key from directory URL.

Returns a unique identifier for the issuer based on the URL’s host and path.

key description

url

ACME directory URL


cert-storage-key

(cert-storage-key issuer-key domain)

Generate storage key for a certificate PEM file.

Format: certificates/{issuer-key}/{domain}/{domain}.crt

key description

issuer-key

Issuer identifier (hostname from directory URL)

domain

Primary domain name


key-storage-key

(key-storage-key issuer-key domain)

Generate storage key for a private key PEM file.

Format: certificates/{issuer-key}/{domain}/{domain}.key

key description

issuer-key

Issuer identifier (hostname from directory URL)

domain

Primary domain name


meta-storage-key

(meta-storage-key issuer-key domain)

Generate storage key for certificate metadata EDN file.

Format: certificates/{issuer-key}/{domain}/{domain}.edn

key description

issuer-key

Issuer identifier (hostname from directory URL)

domain

Primary domain name


certs-prefix

(certs-prefix issuer-key)

Generate storage prefix for listing certificates under an issuer.

Format: certificates/{issuer-key}

key description

issuer-key

Issuer identifier (hostname from directory URL)


account-private-key-storage-key

(account-private-key-storage-key issuer-key)

Generate storage key for an account private key PEM file.

Format: accounts/{issuer-key}/account.key

key description

issuer-key

Issuer identifier (hostname from directory URL)


account-public-key-storage-key

(account-public-key-storage-key issuer-key)

Generate storage key for an account public key PEM file.

key description

issuer-key

Issuer identifier (hostname from directory URL)


account-registration-storage-key

(account-registration-storage-key issuer-key)

Generate storage key for account registration EDN.

Format: accounts/{issuer-key}/registration.edn

Contains the account KID (URL) returned by the CA after registration, allowing subsequent operations to skip the newAccount call.


ocsp-storage-key

(ocsp-storage-key issuer-key domain)

Generate storage key for an OCSP staple file.

Format: certificates/{issuer-key}/{domain}/{domain}.ocsp

The OCSP staple is stored as raw DER-encoded bytes.

key description

issuer-key

Issuer identifier (hostname from directory URL)

domain

Primary domain name


compromised-key-storage-key

(compromised-key-storage-key domain timestamp)

Generate storage key for archiving a compromised private key.

Format: keys/{domain}.compromised.{timestamp}

Compromised keys are archived for audit purposes and never reused.

key description

domain

Primary domain name

timestamp

ISO-8601 timestamp when key was marked compromised


ari-storage-key

(ari-storage-key issuer-key domain)

Generate storage key for ARI (ACME Renewal Information) data.

Format: certificates/{issuer-key}/{domain}/{domain}.ari.edn

The ARI data is stored as EDN containing suggested-window, selected-time, and retry-after.

key description

issuer-key

Issuer identifier (hostname from directory URL)

domain

Primary domain name


challenge-token-storage-key

(challenge-token-storage-key issuer-key identifier)

Generate storage key for a challenge token (distributed solving).

Format: challenge_tokens/{issuer-key}/{identifier}.edn

Used to store challenge data so any instance in a cluster can serve the challenge response for HTTP-01 or TLS-ALPN-01 validation.

key description

issuer-key

Issuer identifier (hostname from directory URL)

identifier

Domain or IP address being validated


select-chain

(select-chain preference chains)

Select a certificate chain based on preference.

Preferences: - :any (default) - return first chain offered - :shortest - return chain with fewest certificates - {:root "Root CA Name"} - return chain with matching root name

Returns nil if chains is empty. Falls back to first chain if root name not found.

key description

preference

Chain preference (:any, :shortest, or {:root name})

chains

Sequence of chain maps with :chain (certs) and :root-name