Changelog¶
The changelog format is based on Keep a Changelog.
This project uses Semantic Versioning - MAJOR.MINOR.PATCH
1.8.1.dev17+g9c98b9d4e (2026-08-25)¶
Changed¶
Made
vault_pki.certificate_managedcheck all certificate subject attributes/extensions, including those derived from role and issuer URL configuration. The state now requires read access to the role, issuer and mount default URL configuration to be idempotent.Made
vault_pki.certificate_manageduse the generic<mount>/sign*endpoints instead of the issuer-specific<mount>/issuer/<issuer_ref>/sign*ones where<issuer_ref>was looked up in the role, which means you can more easily restrict signing requests to the default issuer of the roleSomewhat breaking change: Renamed
type=>key_typeandkey_type=>key_algoparameters invault_pki.generate_root. If you used to pass both by keyword, you need to migrate to the new names (the previous names still work). If you passed one positionally and the other by keyword, this upgrade will break that call.
Fixed¶
Corrected missing otherName support workaround in
vault_pki.sign_certificate: No user action is required to make the operation workFixed
vault_pki.(issue|sign)_certificateandvault_pki.certificate_managednot working without specifyingcommon_name, even if the role setrequire_cnto false orsign_verbatimwas enabledFixed
vault_pki.read_issuerreading missing default issuer raising an exception instead of returningNoneFixed
vault_pki.sign_certificate/vault_pki.certificate_managedrequiring arole_name, even ifsign_verbatimwas enabledFixed idempotency of
vault_pki.certificate_managedwhen passing email values forcommon_nameandexclude_cn_from_sansis not trueFixed loading CSR from file path in
vault_pki.sign_certificateFixed running
vault_pki.certificate_managedwhen another state run is queued
Added¶
Added
csrparameter tovault_pki.certificate_managed, allowing stateful certificate issuance based on a pre-generated CSRAdded
leaf_not_after_behaviorandrevocation_signature_algorithmparameters tovault_pki.update_issuerAdded
list_keys,generate_key,get_key_id,generate_intermediate_csr,import_issuer_intermediate,import_issuerandwrite_urlsfunctions tovault_pkifor the respective API methods. Also addedgenerate_intermediate, which relies on thex509_v2modules to automatically sign an intermediate CA certificate for use by Vault.Added
name,aia_url_templatinganddelta_crl_endpointsparameters tovault_pki.update_issuerAdded
vault_pki.intermediate_issuer_managedstate that manages an intermediate issuer as the default issuer on a mount. It signs the public key using thex509_v2modules.Added
vault_pki.root_issuer_managedstate that manages a root issuer as the default issuer on a mountAdded certificate revocation with private key. Access to this endpoint requires a lot less trust.
1.8.0 (2026-08-09)¶
Changed¶
Made
destroyandwipeoperations proxy todeleteon KV v1 secrets instead of refusing with an exception
Fixed¶
Fixed
vault_pki.certificate_managednot detecting changes to requestedalt_names#127Fixed KV lookup failures in very specific situations when a KV v1 mount has the full name of a KV v2 mount as a prefix
Fixed KVv2 paths whose root key started with KVv2 prefixes such as
data(example:secret_mount/database) from being mishandled and leading to permission denied/not found errorsFixed LeaseStore.get not flushing already expired leases from cache when called without
revokeargumentFixed
sdb.get/sdb.setraising an unhandledValueErrorinstead of a usage error when the SDB URI did not contain a path/key separatorFixed
sdb.setwith SDB module and single-use tokens issued by the master when thepatchoption was enabled in the profileFixed
sdb.setwith thepatchoption enabled unexpectedly overwriting the complete secret when its data could not be read (e.g. write-only policies or exhausted token uses)Fixed
vault.auth_inforunner crashing when AppRole is configured withbind_secret_id: falseFixed
vault.clear_cacherunner not clearing cached AppRole metadata/rendered policies whencache:backendissessionand not revoking impersonated minion tokensFixed
vault_db.connection_presentfailing and rewriting the connection on every run for plugins with secret parameters other thanpassword, e.g.private_keyformongodb_atlasFixed
vault_db.connection_presentmishandlingroot_rotation_statementspassed as a stringFixed
vault_db.connection_presentraising an uncaught exception instead of failing cleanly when required plugin parameters were missingFixed
vault_db.creds_cachedcrashing or misdetecting the need for renewal when the cached lease’smin_ttland the requestedvalid_forwere specified as a mix of time strings and integersFixed
vault_db.creds_cachedresetting cached lease attributes (renew_increment,revoke_delay,meta) that were not specified in the state call when applying other changesFixed
vault_db.creds_cached/creds_uncachedraising uncaught exceptions instead of reporting failures via the state resultFixed
vault_leasebeacon configuration validation raising an exception instead of reporting a validation failure when lease cache keys were not stringsFixed
vault_pki.certificate_managedcrashing instead of failing cleanly when the issuer reference did not existFixed
vault_pki.certificate_managedcrashing on subsequent runs whenencodingwas set toderFixed
vault_pki.certificate_managedwithappend_ca_chainnever converging for binary encodings. The chain is now included forpkcs7_der, while the impossible combination withderfails earlyFixed
vault_pki.issue_certificate/sign_certificatecorrupting SANs whenalt_namesis passed as a mappingFixed
vault_pki.list_certificates/list_revoked_certificatesraising an exception instead of returning an empty list when no (revoked) certificates are presentFixed
vault_pki.role_managedrewriting the role on every run when list-type (e.g.allowed_domains) or duration (not_before_duration, notttl/max_ttl) parameters were specified as stringsFixed
vault_secret.presentcrashing when replacing an existing scalar value with a mapping in the default patch modeFixed
vault_secret.presentfailing or silently dropping secret keys named like function parameters (e.g.path) or prefixed with double underscoresFixed
vault_ssh.ca_present/absentfailing to work as expected when the authenticated read CA config path was deniedFixed
vault_ssh.get_signing_policyreporting a phantom empty principal/extension whenallowed_users,allowed_domainsorallowed_extensionsare unset on the roleFixed
vault_ssh.list_roles_ipreturning None instead of an empty list when no role matches IP on recent Vault releasesFixed
vault_ssh.role_present_canever converging whenallowed_user_key_lengthsvalues were specified as comma-separated stringsFixed authenticated unwrap requests not deducting a token use
Fixed cache handling of static DB role credentials
Fixed cached accessor information being lost when token/SecretID information was refreshed
Fixed clearing session cache not invalidating active client in context, which could reintroduce stale data into permanent cache or cause unexpected permission issues during long-running contexts
Fixed crash during loading of
vault_pkimodules whencryptographywas not available. This should not happen in most cases since it’s a requirement of this extension and a Salt core requirement, but might happen when this extension is forwarded to the target host via Salt-SSH.Fixed handling of
all_principalsinvault_sshssh_pkibackendFixed handling of multiple values in
default_userinvault_sshssh_pkibackendFixed raw KeyError when
cert_typewas not passed and not inferrable from a role definition in thevault_sshssh_pkibackendFixed remaining token ttl being corrupted by the templated policy rendering logic released in 1.7.0 (only used in
vault_sshbackend forssh_pki.certificate_managed)Fixed several execution module functions (
vault.clear_cache/clear_token_cache/update_config,vault_pki.read_issuer,vault_ssh.list_roles_ip) leaking Vault exceptions instead of raisingCommandExecutionErrorFixed the
vault_leasebeacon crashing whenmin_ttlwas explicitly set tonullin the beacon configurationFixed the
vault_leasebeacon firing duplicate lease expiry events on the Salt event bus whencache:expire_eventswas enabledFixed the
vault_leasebeacon reporting stale lease information in expiry events when a renewal attempt did not manage to extend the lease tomin_ttlFixed the client unexpectedly raising ValueErrors when an error return was not valid JSON
Improved error and implemented a workaround when trying to set otherNames while simultaneously passing a private key to
vault_pki.sign_certificate
Added¶
Added the ability to override
server:urlin the minion config. The new value must be in a list of allowed values specified in the master configuration inserver:url_altsto take effect. #156Added
vault.patch_rawto patch secret data that cannot be passed as keyword argumentsAdded
vault_approleexecution, state and wrapper modules to manage and utilize the AppRole auth backendAdded
vault_gpgexecution, state and wrapper modules to interface with the custom plugin LeSuisse/vault-gpg-plugin. It’s now possible to generate, manage, import and export GPG keys and sign, decrypt and verify data.Added
vault_pluginexecution, state and wrapper modules to manage plugins and pinned versionsAdded expected creation path verification for wrapped secrets embedded in the
vault.get_configresponse (token and role_id), derived from the fresh config itselfAdded support for
allow_commas_in_identity_templatesfor SSH secret backend roles in OpenBaoAdded support for rendering of identity templates in
allowed_users,allowed_domainsanddefault_userinvault_sshssh_pkibackend
1.7.0 (2026-07-08)¶
Fixed¶
Fixed SDB patch fallback when PATCH requests are not allowed
Fixed
vault_db.creds_uncachedclearing cached credentials with custom cache key when cache key was not specifiedFixed
vault_db.static_role_presentmanagement ofrotation_statements, which was not passed to Vault, but the failure was alerted aboutFixed
vault_pki.certificate_manageddeleting symlinks in test mode whenfollow_symlinksis explicitly set tofalseFixed an existing DB connection’s explicit
plugin_versionbeing reset when it was not specified in a call tovault_db.write_connectionFixed autodetermination of unspecified
cert_typeinssh_pkibackend functionalityFixed clearing cache when
vault:cache:backendoverrides Salt’scacheFixed exception in
read_issuer_crlwhen issuer is missing - now returnsNone, as intendedFixed merging of
default_critical_optionsanddefault_extensionswith overrides inssh_pkibackendFixed passing multiple entries of the same SAN type in
vault_pki.(issue|sign)_certificateFixed reported failure in
vault_ssh.role_present_otpwhenportwas not set. The state application still worked.Fixed reporting of multiple subject element changes in
vault_pki.certificate_managedFixed revocation delay of leases with
renew_incrementsetFixed the pillar module’s
merge_listsbeing ignored when it was set tofalseand Salt’spillar_merge_listswas enabledSynchronized event format for
vault/lease/*/expirebetween sources tottl-ttlandttl_leftwere both used before, depending on the source of the event
Added¶
Added
read_certificate_fullexecution function to thevault_pkimodule, returning the certificate, its CA chain and miscellaneous information as a dictionary. #145Added support for rendering identity templates in the
ssh_pkibackend, which fixes idempotency whendefault_extensions_templateis enabled. This functionality requires an adjusted policy
1.6.0 (2026-05-20)¶
Fixed¶
Added¶
Added compatibility for
vault_sshto be used as thebackendfor the newssh_pki.certificate_managedstate introduced in Salt 3008, making stateful SSH certificate management using Vault-issued certificates possible on Salt 3008+ #138
1.5.0 (2026-03-09)¶
Fixed¶
Fixed
vault_ssh.ca_(present|absent)in OpenBao
Added¶
Added official OpenBao support #139
1.4.0 (2026-02-15)¶
Changed¶
Marked some API methods using
POST/PATCHrequests as safe to retry by default since they are effectively idempotent #97
Fixed¶
Fixed handling of
retry_after_maxwith urllib3 2.6.3, which introduced the same parameter and set its default to 6h. Whenretry_after_maxis explicitly set toNone, we default to 6h from now on too, otherwise the previous default of 60s applies. #130Fixed SDB URI resolution in
auth:tokento make documented token-from-env behavior work #133Fixed Vault client token lookups using an accessor. These lookups used the wrong API method (
GETinstead ofPOST)
Added¶
1.3.2 (2025-05-04)¶
Fixed¶
Fixed vault_pki.certificate_managed always recreating certificate with
append_ca_chain=True#123
1.3.1 (2025-03-24)¶
Fixed¶
Fixed running
vault.sync_approleson a fresh, empty mount #111
1.3.0 (2024-12-09)¶
Fixed¶
Fixed a crash when a templated field accesses an out-of-bounds list index
Added¶
When metadata that is written to Vault is templated using a list or dict, in addition to concatenating the values into a sorted comma-separated list, the master now additionally creates a separate suffixed key for each individual item #106
1.2.2 (2024-11-10)¶
Fixed¶
Fixed compatibility with master cluster mode #99
1.2.1 (2024-11-07)¶
Fixed¶
Fixed the client used for unwrapping authentication credentials not respecting
clientconfiguration when no cached configuration is available #95
v1.2.0 (2024-10-02)¶
Changed¶
Readded direct package dependency on cryptography
Fixed¶
Change unseal query to be always unauthenticated. #85
Added¶
Added support for credential orchestration in Salt-SSH wrappers, added wrappers for vault, vault_db, vault_pki modules #54
Added
vault_sshexecution, state and wrapper modules for managing and using the SSH secret backend #58Improved handling of KV v2 secret versions #61
Added
vault_secretstate module for statefully managing secrets #62
v1.1.1 (2024-07-24)¶
Changed¶
Required x509_v2 modules to be available for specific parameters to
vault_pki, dropped direct dependency on cryptography #78
Fixed¶
Fixed vault.update_config crash #77
v1.1.0 (2024-07-23)¶
Removed¶
Fixed¶
Fixed a crash when renewing/revoking leases that have been revoked on the Vault server early #45
Added¶
Added an optional switch for validating cached leases with the Vault server before returning them from the LeaseStore #46
Implemented setting per-lease defaults of lifecycle parameters #47
Implemented caching arbitrary metadata together with a lease and included it in expiry events #48
Added a LeaseStore method for listing cached lease information #49
Added
vault_dbmodules for management and usage of the Vault database secret backend #52Added
vault_leasebeacon module to monitor and renew cached leases #53Added vault_pki modules for interfacing with the PKI backend and managing X.509 certificates #58
Added support for retry logic and specific connection settings in
vault:client#65
v1.0.0 (2024-04-23)¶
Deprecated¶
Deprecated Vault pillar configuration with
confparameter andpath=prefix #30
Changed¶
Changed Vault pillar module configuration #30
Fixed¶
Fixed Salt master does not renew token #10
Fixed vault module fetching more than one secret in one run with single-use tokens #11
Fixed Vault verify option to work on minions when only specified in master config #12
Fixed vault command errors configured locally #13
Fixed sdb.get_or_set_hash with Vault single-use tokens #14
Fixed Vault session storage to allow unlimited use tokens #15
Fixed salt-minion 3006.0 KeyError without ‘vault’ config key #22
Fixed verify parameter for unwrap requests #34
Added¶
Added Vault AppRole and identity issuance to minions #16
Added Vault AppRole auth mount path configuration option #17
Added distribution of Vault authentication details via response wrapping #18
Added Vault token lifecycle management #19
Added Vault lease management utility #20
Added patch option to Vault SDB driver #21
Added inline specification of trusted CA root certificate for Vault #23
Added support for dictionary keys in pattern #26