Skip to content

Configuration

Every property the Spring Boot starter reads, under occlude.*. Keys and roots belong in the environment or a secret store, never in a committed file.

Property Default What it does
occlude.keys.current — The id of the key-encryption key new values are wrapped under. Setting it builds a JceDataKeyProvider from occlude.keys.keks; a DataKeyProvider bean of your own replaces both.
occlude.keys.keks.<id> — Every key-encryption key by id, base64-encoded AES-256. Keep the old ones while anything is still wrapped under them.
occlude.roots.current — The id of the root new values and lines are signed under. Required: the JDBC store is not built without one.
occlude.roots.secrets.<id> — Every root secret by id, base64-encoded, at least 32 bytes each. Supply every root anything was signed under.
occlude.roots.mac HMAC_SHA256 What new values and lines are signed with: HMAC_SHA256, HMAC_SHA384 or HMAC_SHA512.
occlude.migrate true Create the tables at startup if they are not there. false where you manage the schema.
occlude.log-manifest true Write the manifest to the log as the charter is bound.
occlude.integrity.interval unset How often to check the store. Unset, nothing is scheduled. A check reads and decrypts every row, so size this to the store and set it on one instance — see Operating a Store.

Startup fails, saying which, when keys or a root are missing, the current root names no secret, a root is shorter than 32 bytes, a key or secret is not valid base64, or the MAC is not one of the three.

What properties do not cover — keys per tenant, most often — is reached with a JdbcStorageConfigCustomizer bean; see Spring Boot.