FEATURES
- External Keys: The PKI and Transit secret engines can now use KMS plugins to perform cryptographic operations without storing key material in OpenBao. [GH-3956]
- Configure mappings to HSM or KMS-backed keys via the
/sys/external-keysAPIs and grant access to select mounts. - Use the PKI engine to sign certificates &co with external private keys.
- Use the Transit engine to sign, verify, encrypt, and decrypt payloads with external key material.
- Several KMS plugins provide support:
- Support for PKCS#11-backed keys is included via the
kms-pkcs11plugin available in openbao-plugins. - Support for Transit-backed keys is built-in. This is similar in concept to the built-in Transit seal.
- Like Auto Seal support via KMS plugins, the interface is provider-agnostic: Develop plugins and enable support for additional providers at any time.
- Support for PKCS#11-backed keys is included via the
- Configure mappings to HSM or KMS-backed keys via the
- ML-DSA Support in PKI: Introduces support for the ML-DSA (NIST's FIPS 204) signature algorithm for all CA, CSR, and leaf actions. [GH-3903]
- ML-DSA is a widely standardized post-quantum cryptography (PQC) algorithm resistant to attacks from quantum computers.
- Note that Go's OCSP implementation does not support ML-DSA so will be unusable with ML-DSA typed issuers.
- ML-DSA Support in Transit: Introduces support for the ML-DSA (NIST's FIPS 204) signature algorithm. [GH-3909]
- Generate, import, and export keys of type
mldsa-44,mldsa-65andmldsa-87. - Create and verify pure ML-DSA signatures.
- Generate, import, and export keys of type
- Enable Pure-PQC TLS: TLS connections can now use pure post-quantum key exchanges and certificates. [GH-3769]
- Operators can specify
tls_key_exchange_preferencesin server, agent, and proxy listeners to enforce PQC key exchange algorithms (SecP256r1MLKEM768,SecP384r1MLKEM1024,X25519MLKEM768, andMLKEM1024). - Operators can use ML-DSA certificates via these listeners as well.
- Outbound TLS connections from OpenBao can now connect to servers with the above key exchange algorithms or presenting a ML-DSA server or CA certificate.
- Operators can specify
- PostgreSQL Horizontal Scalability: Enable read scalability on the PostgreSQL storage backend similar to existing Raft support. [GH-3904]
- Requires
ha_enabled = trueto be set andcluster_addrto be reachable (establishing a forwarding RPC connection) from standby nodes to the primary. - In the event of extended leadership loss, standby nodes will come up as read-enabled.
- Only works with PostgreSQL physical replication; will not work with logical replication.
- Requires
- Strong Consistency Control: Support
X-Vault-IndexandX-Vault-Inconsistentheaders to ensure client/server consistency. [GH-3839]X-Vault-Indexis now sent when a write is performed.- The
X-Vault-Inconsistentrequest header can take the following values to control the fallback behavior when the node is out of date:fail, to respond with 429 Too Many Requests and aRetry-Aftervalue,forward-active-nodeto forward the request to the active node, orawait-stateto hold the request locally to attempt to catch up, optionally falling back to one of the above behaviors (if also specified) or the server default.
- On listeners, three new configuration parameters are now respected:
consistency_fallback_behaviorto set the default fallback forawait-state,consistency_missing_header_forwardto automatically forward requests which do not have any consistency control headers, andconsistency_max_index_waitto indicate the maximum amount of timeawait-stateshould pause before forwarding the request.
- PebbleDB Storage Backend: This storage backend is a non-HA, durable backend using PebbleDB for transactions and improved performance. [GH-3879]
- Control Groups: Add support for a new ACL policy stanza,
control_group, which specifies when a second party must approve a request for a path. [GH-3436]
IMPROVEMENTS
- command/server: Add
tls_auto_reloadconfiguration option to automatically reload TLS certificate and key files when their contents change, without requiringSIGHUP. [GH-3530] - command/server: Include
disable_standby_reads,allow_unauthenticated_workflows, andunsafe_relative_pathsin sanitized config output. [GH-3433] - command/status: Add support for
-fieldargument tobao status. [GH-3750] - command/token: Add support for
-fieldargument tobao token lookup. [GH-3618] - command/namespace/seal-status: Add support for
-fieldand-formatargument tobao namespace seal-status. [GH-3750] - core: Add support for
revoke-selfwith wrapping tokens. [GH-3688] - core: Switch to
cipher.NewGCMWithRandomNoncefor fewer nonce generation calls. [GH-3290] - core/seal: Add configuration options to disable Auto Seal health checks and customize health check intervals and timeout. [GH-3653]
- core/metrics: Report
vault.core.unsealed=0when OpenBao is sealed via dedicated metrics loop. [GH-3430] - core/server: Support storage-indicated index values in Server Side Consistent Tokens (SSCTs), improving their utility. Previously these tokens always had an index value of
0. [GH-3839] - core/plugins: Allow auth & secret mounts to automatically request the latest installed version of the underlying external plugin via
plugin_version=latest. [GH-3914] - core/plugins: Allow pinning OCI-based plugins by manifest digest (e.g.,
ghcr.io/openbao/openbao-plugin-secrets-aws@sha256:<digest>) instead of providing thesha256sumof the inner plugin binary. [GH-3915] - core/plugins: Automatically determine
binary_namefor OCI plugins based on the image'sENTRYPOINTorCMDif unset in configuration. [GH-3760] - core/plugins: Reload KMS plugin configuration stanzas on
SIGHUPand respawn plugin clients as needed, enabling plugin upgrades at runtime. [GH-3738] - storage/raft: Automatically create the storage directory if it does not exist. [GH-3649]
- sys/raw: Allow reading backed up unseal or recovery shares. [GH-3863]
- auth/cert: Add an Envoy decoder to
x_forwarded_for_client_cert_decoders, enabling the processing of leaf certificates in the Envoy XFCC header. [GH-2863] - auth/oidc: Return
oidc_discovery_urlvalidation errors (like bad issuer) from the underlying library. [GH-3574] - secrets/pki: Support
use_pssinissuers/generate/intermediate/:typecalls, allowing for CSRs with PSS signatures from RSA-typed intermediates. [GH-3861] - secrets/pki: Add optional ACME client port and host configuration to support non-privileged operation when a load balancer forwards challenges from ports 80 and 443. [GH-3034]
- packaging/container: Remove all
VOLUMEinstructions. [GH-3711] - ui/secrets: Add "Show internal engines" button to, by default, hide the
cubbyholesecret engine. [GH-3794] - ui: Update ember-data to 4.12.8. [GH-3816]
CHANGES
- command/server: Remove
filestorage backend support. [GH-3879] - core/seal: The
pkcs11,alicloudkms,awskms,azurekeyvault,gcpckmsandocikmsseals are no longer built-in and must be installed as external plugins, as announced with the v2.6.0 release. [GH-3337] - core/plugins: Declarative plugin registration (
pluginstanza) no longer requires setting asha256sumfor manually installed plugin binaries. [GH-3759] - core/plugins: Default the
plugin_auto_registerserver configuration option totrue. [GH-3910] - auth/kerberos: The built-in Kerberos auth engine has been removed from the main OpenBao binary distribution. It will be included in openbao-plugins going forward. [GH-3882]
- auth/ldap: The built-in LDAP auth engine has been removed from the main OpenBao binary distribution. It will be included in openbao-plugins going forward. [GH-3882]
- auth/radius: The built-in RADIUS auth engine has been removed from the main OpenBao binary distribution. It will be included in openbao-plugins going forward. [GH-3882]
- secrets/ldap: The built-in LDAP secret engine has been removed from the main OpenBao binary distribution. It will be included in openbao-plugins going forward. [GH-3882]
- secrets/pki: Due to a breaking change in Go 1.27, OpenBao will no longer accept FQDNs ending with a
., e.g.,example.com.. [GH-3752] - sdk: Drop the
helper/pointerutilpackage. Its functionality is natively available in Go as of 1.26 via new syntax around thenewbuiltin. [GH-3532] - releases: Discontinue the HSM distribution of OpenBao, as announced with the v2.6.0 release. PKCS#11 functionality remains available via the PKCS#11 KMS plugin. [GH-3337]
- packaging: The Go module was moved to
github.com/openbao/openbao/v2and large portions of the codebase were moved behind aninternal/package. As a result, packagers must update their-ldflagsto embed version information atgithub.com/openbao/openbao/v2/internal/versioninstead ofgithub.com/openbao/openbao/version. [GH-3210]
BUG FIXES
- command: Fix
-field=flag discarding API warnings (e.g., unrecognized parameters) instead of printing them to stderr. [GH-3672] - command/operator: Fix double file close in snapshot restoration. [GH-3939]
- command/server: Fix config merge condition for
plugin_download_max_size. [GH-3437] - command/server: Fix boolean config fields being dropped when multiple
-configpaths are used. [GH-3433] - core: The response of
sys/leaderdid not containis_selfwhen it was supposed to befalse. [GH-3932] - core/ha: Fix broken cross-version request forwarding during rolling upgrades to v2.6.x from an earlier minor version. [GH-3900]
- core/plugins: Ensure that a mount's storage view is no longer marked read-only following a successful plugin reload. [GH-3936]
- core/identity: Fix periodic key rotation and expiration attempts on standby nodes resulting in read-only errors. [GH-3949]
- core/namespaces: Gracefully skip partially-created namespaces during unseal instead of panicking. [GH-3353]
- core/listeners: Fix broken TCP listener on OpenBSD. [GH-3951]
- core/listeners: Set ACME cache path according to
tls_acme_cache_path. [GH-3872] - core/server: Add missing
disable_ssct_tokenparameter to support enabling SSCTs. [GH-3839] - core/recovery: Avoid panic during listing of namespace contents due to uninitialized namespace store. [GH-3925]
- core/recovery: Fix generation of recovery token via
bao operator generate-rootby allowing status checks. [GH-3924] - storage/raft: Add existence verification of the Raft node before attempting to promote or demote. [GH-3350]
- storage/raft: Fix performance regression caused by a second transaction during batch application to write the last applied log index. [GH-3844]
- storage/raft: Prevent the Raft log from growing indefinitely if fewer than
snapshot_thresholdentries are written before next restart. [GH-3381] - storage/postgresql: Set transaction limit to one less than max_parallel, ensuring HA lock renewal and non-transaction operations can always proceed. [GH-3913]
- secrets/pki: Don't pick a default value for
signature_bitsbased on the key type of the certificate being issued as it applies to the issuer's key, not the certificate's key. [GH-3858] - secrets/pki: Fix
use_pss=true+signature_bits=0on a role incorrectly resulting in certificates signed via PKCS#1 v1.5 instead of correctly using PSS. [GH-3858] - sys/raw: Allow creating new entries via sys/raw; when doing so without compression,
compression_type="none"must be specified. [GH-3933] - sys/rotate: Fix existing unseal/recovery share backups going unreadable after upgrading to v2.6.x from an earlier version. [GH-3863]
- sys/workflows: Fix Check-And-Set in workflow API. [GH-3870]
- api: Don't read
BAO_WRAP_TTLto determine a request's wrap TTL ifDisableEnvironmentis set. [GH-3527] - ui: Fix invalid CSS class causing uncentered text on MFA method create page. [GH-3885]
DEPRECATIONS
- command: The
filestorage backend is deprecated forbao operator migrateand will be removed in v2.8.0. [GH-3879]
New Contributors
- @mrclki made their first contribution in #3376
- @riton made their first contribution in #3292
- @sivapalan made their first contribution in #3437
- @nicbaz made their first contribution in #3462
- @Flamefire made their first contribution in #3440
- @Sakutaroo made their first contribution in #3503
- @RealFakeAccount made their first contribution in #3518
- @pascallibenzi made their first contribution in #3574
- @clement-software made their first contribution in #3530
- @redabenmakdad made their first contribution in #3604
- @timb-controlplane made their first contribution in #3622
- @Cloonson made their first contribution in #3672
- @olegdayo made their first contribution in #3684
- @smcaine made their first contribution in #3685
- @ackammawork made their first contribution in #3690
- @chaehni made their first contribution in #3733
- @Shoowa made their first contribution in #3765
- @datosh made their first contribution in #3787
- @trutzonline made their first contribution in #3710
- @fean5959a made their first contribution in #3844
- @hannanavi made their first contribution in #3841
- @tron1point0 made their first contribution in #3902
What's Changed
- Pin container images (in Dockerfiles) by @satoqz in #3348
- Upgrade reported vulnerable dependencies by @wslabosz-reply in #3349
- Add patch support to OpenAPI schema by @cipherboy in #3289
- Remove Google links from OSS NA talk by @cipherboy in #3355
- Bump ubi10-minimal from
3948fdfto5bc43c1by @dependabot[bot] in #3360 - Bump the golang-x group across 1 directory with 5 updates by @dependabot[bot] in #3362
- Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #3361
- Bump github.com/google/go-containerregistry from 0.21.6 to 0.21.7 by @dependabot[bot] in #3369
- Bump pnpm/action-setup from 6.0.8 to 6.0.9 by @dependabot[bot] in #3367
- Bump go.etcd.io/bbolt from 1.4.3 to 1.5.0 by @dependabot[bot] in #3366
- Bump github.com/caddyserver/certmagic from 0.25.3 to 0.25.4 by @dependabot[bot] in #3365
- Fix source tarball release by @satoqz in #3356
- Bump github.com/tink-crypto/tink-go/v2 from 2.6.0 to 2.7.0 by @dependabot[bot] in #3368
- Bump google.golang.org/api from 0.283.0 to 0.284.0 in the google-golang group across 1 directory by @dependabot[bot] in #3363
- Add node existence check before attempting promotion or demotion in raft cluster by @wslabosz-reply in #3350
- Bump github.com/hashicorp/go-discover from 1.2.0 to 1.3.0 by @dependabot[bot] in #3364
- fix(command): revoke self-init root token by @dc-tec in #3346
- Add ecosystem news page by @cipherboy in #3359
- Remove builtin seals available as plugins by @satoqz in #3337
- Add LDAP, Kerberos, RADIUS plugin deprecation notice by @cipherboy in #3372
- Add initial ControlPlane ecosystem news by @cipherboy in #3373
- Add T Cloud Public KMS seal doc by @mrclki in #3376
- identity: gracefully skip partially-created namespaces during unseal by @EnricoFusi in #3353
- Add Valentin as moderator by @cipherboy in #3377
- feat(doc): Mention unsafe_cross_namespace_identity in documentation by @riton in #3292
- Attempt addressing ui tech-debt by @wslabosz-reply in #3374
- fix(doc): community/rfcs: add missing entry for Control Groups to sidebar by @svvac in #3390
- Add Huy, Wojciech, Pascal, and Philipp as new Dev WG members by @karras in #3402
- Expand AGENTS.md based on recent security filings by @cipherboy in #3258
- Control Groups by @suprjinx in #2241
- Add blog post on paginated lists by @cipherboy in #3405
- Add parameter names to sdk/logical interfaces by @cipherboy in #3406
- Bump markdownlint from 0.40.0 to 0.41.0 in /website by @dependabot[bot] in #3413
- Bump github.com/shirou/gopsutil/v4 from 4.26.5 to 4.26.6 by @dependabot[bot] in #3417
- Bump github.com/prometheus/common from 0.68.1 to 0.69.0 by @dependabot[bot] in #3418
- Bump google.golang.org/api from 0.284.0 to 0.285.0 in the google-golang group across 1 directory by @dependabot[bot] in #3415
- Bump ubi10-minimal from
5bc43c1tob217fa6by @dependabot[bot] in #3412 - Bump actions/cache from 5.0.5 to 6.1.0 by @dependabot[bot] in #3419
- Bump actions/setup-go from 6.4.0 to 6.5.0 in /.github/actions/set-up-go by @dependabot[bot] in #3420
- Bump goreleaser/goreleaser-action from 7.2.2 to 7.2.3 by @dependabot[bot] in #3416
- Added RFC for lightweight OCSP Support by @boumba100 in #2911
- Bump actions/cache from 5.0.5 to 6.1.0 in /.github/actions/set-up-go by @dependabot[bot] in #3421
- Update mount, auth, and namespace limits by @cipherboy in #3424
- fix(command/server): correct merge condition for plugin_download_max_size in Config.Merge() by @sivapalan in #3437
- fix(command/server): preserve missing config fields in Config.Merge() and Config.Sanitized() by @sivapalan in #3433
- helper/docker: reduce pulls by @phil9909 in #3434
- Update rebase command to use 'main' branch by @sivapalan in #3441
- Add blog post motivating Shamir improvements by @cipherboy in #3410
- docs(command/operator): fix wrong command name and typos by @sivapalan in #3442
- Add Adfinis- and Crypto4A-related ecosystem news by @karras in #3429
- Publish betas into testing RPM/DEB repos by @satoqz in #3385
- Switch to automatic nonce generation by @cipherboy in #3290
- Bump google.golang.org/api from 0.285.0 to 0.286.0 in the google-golang group across 1 directory by @dependabot[bot] in #3453
- Bump github.com/moby/moby/client from 0.4.1 to 0.5.0 by @dependabot[bot] in #3457
- Bump github.com/hashicorp/go-metrics from 0.5.4 to 0.6.0 by @dependabot[bot] in #3458
- Bump github.com/klauspost/compress from 1.18.6 to 1.18.7 by @dependabot[bot] in #3456
- Blog on transactional storage by @cipherboy in #3449
- Bump github/codeql-action/upload-sarif from 4.36.2 to 4.36.3 by @dependabot[bot] in #3460
- Bump docker/setup-qemu-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #3455
- Bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 by @dependabot[bot] in #3454
- Bump distroless/static from
963fa6ctod29e660by @dependabot[bot] in #3450 - Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #3451
- Adjust
sys/rawendpoint interaction with implicitly sealed namespaces by @wslabosz-reply in #3426 - Fix ACL templates allow wildcard chars in substitution by @phil9909 in #3401
- fix(sink): in-memory token retrieval panics if unset by @nicbaz in #3462
- Bump github/codeql-action from 4.36.2/4.36.3 to 4.37.0 by @dependabot[bot] in #3452
- audit: Fix missing request ID in audit log for help operations by @Flamefire in #3440
- Add RFC on PQC migration roadmap by @cipherboy in #3463
- Fix LIST ACL deny bypass caused by wildcards by @cipherboy in #3389
- Add RFC on parallel unseal by @cipherboy in #3464
- Add script to backport dependencies by @satoqz in #3404
- Support Login MFA in profile engine by @cipherboy in #3465
- Switch to constant-time comparison recovery token by @cipherboy in #3388
- Add documentation on CEL for JWT by @cipherboy in #3423
- Add v2.6.0 to docs website by @cipherboy in #3475
- fix "Edit this page" URL for versioned docs by @phil9909 in #3482
- Bump Go to 1.26.5 by @satoqz in #3479
- Fix removal of config-based audit device by @satoqz in #3488
- Propagate keyring updates of all namespaces to standby nodes by @wslabosz-reply in #3409
- Rename substitutions -> identity templates by @cipherboy in #3470
- Ensure templates do not render secrets to stdout by @cipherboy in #3494
- Add changelog for v2.6.0 GA (#3496) by @cipherboy in #3497
- docs: align supported kubernetes versions doc by @Nerkho in #3490
- Set user=root when invoking OpenBao for Alpine by @cipherboy in #3499
- Move module to v2, move packages to internal/ by @satoqz in #3210
- Remove Nathan Phelps from Maintainers, Dev WG by @cipherboy in #3500
- Add plugin client handling for go-kms-wrapping/kms by @satoqz in #3386
- Bump distroless/static from
d29e660tof7f8f72by @dependabot[bot] in #3509 - Bump docker/build-push-action from 7.2.0 to 7.3.0 by @dependabot[bot] in #3512
- Bump docker/login-action from 4.2.0 to 4.4.0 by @dependabot[bot] in #3511
- Bump markdownlint-cli2 from 0.22.1 to 0.23.0 in /website by @dependabot[bot] in #3510
- Bump the golang-x group across 1 directory with 3 updates by @dependabot[bot] in #3513
- Bump github.com/klauspost/compress from 1.18.7 to 1.19.0 by @dependabot[bot] in #3515
- fix(image/ubi): overwrite base image labels by @pree in #3504
- Bump the google-golang group across 1 directory with 2 updates by @dependabot[bot] in #3514
- Bump github.com/pires/go-proxyproto from 0.12.0 to 0.14.0 by @dependabot[bot] in #3516
- docs: add OVHcloud KMS seal documentation by @Sakutaroo in #3503
- Bump main module's minimum Go to 1.26 by @satoqz in #3529
- Don't read BAO_WRAP_TTL if DisableEnvironment is set by @satoqz in #3527
- Fix Test_RandomOpsTransactionalBackends by @satoqz in #3521
- Fix web UI cache path for releases by @satoqz in #3520
- Make KMS plugin catalog available to core by @satoqz in #3523
- Fix typo in warning message by @avandecreme in #3528
- Import hclog in plugin example by @DrDaveD in #3535
- Drop sdk/helper/pointerutil entirely by @satoqz in #3532
- Fix policy persistence issue, introduce PATCH support for policies by @cipherboy in #3506
- Allow all log messages in multiplexed plugins by @cipherboy in #3536
- Fix protobuf ignore in gofmtcheck by @cipherboy in #3539
- Fix limit=0 and negative limits bypassing pagination_limit ACL cap by @RealFakeAccount in #3518
- interface{} -> any by @satoqz in #3544
- auth/jwt: fix patch operation of CEL roles lost data by @phil9909 in #3551
- Fix profile source headings, response field by @cipherboy in #3550
- Replace Maw with Fabien as the primary TSC member of GitLab by @karras in #3559
- Add ecosystem news about bespinian, Kubermatic, Liquid Reply, and more by @karras in #3560
- Add blog on declarative configurations by @cipherboy in #3549
- Fix lease renewal cache invalidation by @cipherboy in #3555
- Ensure AppRole salt is created without transaction by @cipherboy in #3556
- Copy binary to additional path in test container by @cipherboy in #3554
- Add changelog for v2.6.1 (#3571) by @satoqz in #3572
- Add even more ecosystem news by @cipherboy in #3575
- Bump actions/setup-node from 6.4.0 to 7.0.0 by @dependabot[bot] in #3577
- Bump github/codeql-action/upload-sarif from 4.37.0 to 4.37.1 by @dependabot[bot] in #3578
- Bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #3579
- Bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in #3581
- Bump the golang-x group across 1 directory with 4 updates by @dependabot[bot] in #3580
- Bump github.com/google/cel-go from 0.28.1 to 0.29.2 by @dependabot[bot] in #3583
- Bump markdownlint from 0.41.0 to 0.41.1 in /website by @dependabot[bot] in #3586
- Bump the docusaurus group across 1 directory with 11 updates by @dependabot[bot] in #3585
- Bump the google-golang group across 1 directory with 2 updates by @dependabot[bot] in #3582
- Bump github/codeql-action/* to 4.37.3 by @dependabot[bot] in #3584
- Bump actions/setup-go from 6.5.0 to 7.0.0 in /.github/actions/set-up-go by @dependabot[bot] in #3594
- Bump github.com/mattn/go-isatty from 0.0.22 to 0.0.23 by @dependabot[bot] in #3593
- Bump k8s.io/api from 0.36.1 to 0.36.2 in the k8s group across 1 directory by @dependabot[bot] in #3591
- Bump github.com/go-ldap/ldap/v3 from 3.4.13 to 3.4.14 by @dependabot[bot] in #3592
- Use ecosystem supporters on the homepage by @cipherboy in #3567
- auth/jwt: surface OIDC discovery errors during configuration by @pascallibenzi in #3574
- Fix(docs): Built-in plugins don't need to be manually upgraded by @thgoebel in #3589
- Add external keys registry, SystemView API by @satoqz in #3534
- Clarify difference between the two plugin development/author guides by @thgoebel in #3596
- Automatic reload of TLS certificate files without SIGHUP signal by @clement-software in #3530
- Introduce GRPC-based invalidation mechanism by @cipherboy in #3448
- Fix semgrep on main by @satoqz in #3606
- Align CODEOWNERS to new layout by @cipherboy in #3607
- ui: fix broken documentation link on database connection page by @redabenmakdad in #3604
- Add blog about recent Open Source @ Siemens talk by @karras in #3610
- Misc minor docs edits by @thgoebel in #3600
- hide commit "interface{} -> any (#3544)" from git blame by @phil9909 in #3611
- Add fingerprinting resistance as a non-goal by @cipherboy in #3613
- Guard against kms.Key API misuse by plugin authors by @satoqz in #3614
- support field flag for token lookup by @Luiggi33 in #3618
- Redact sensitive values when reading external key configuration by @satoqz in #3605
- Bump security-insights.yml to 2.2.0 and update content by @karras in #3621
- Add tests for GRPC invalidation with PostgreSQL by @cipherboy in #3542
- Return request data in sys/control-group/request by @cipherboy in #3601
- Bump go-kms-wrapping for key_version update by @cipherboy in #3626
- specify correct variable in test case skips by @Luiggi33 in #3627
- redo the client side validation for userpass by @Luiggi33 in #3625
- Improve stdout audit device description by @thgoebel in #3620
- Add context cancellation to initialization by @cipherboy in #3623
- Docs: change terms (SHA-256 checksum -> digest, OCI image -> artifact) by @thgoebel in #3630
- fix small mistakes in the mfa/totp docs by @Luiggi33 in #3634
- Add step-by-step explanation for plugin install flow by @thgoebel in #3599
- Update “Developer quick start” guide by @timb-controlplane in #3622
- Bump github.com/klauspost/compress from 1.19.0 to 1.19.1 by @dependabot[bot] in #3644
- Bump cloud.google.com/go/monitoring from 1.29.0 to 1.30.0 by @dependabot[bot] in #3645
- Bump ossf/scorecard-action from 2.4.3 to 2.4.4 by @dependabot[bot] in #3648
- Bump github.com/prometheus/common from 0.69.0 to 0.70.0 by @dependabot[bot] in #3643
- Bump markdownlint-cli2 from 0.23.0 to 0.23.1 in /website by @dependabot[bot] in #3641
- Bump the react group in /website with 2 updates by @dependabot[bot] in #3640
- Bump google.golang.org/api from 0.287.1 to 0.288.0 in the google-golang group across 1 directory by @dependabot[bot] in #3642
- Bump docker/login-action from 4.4.0 to 4.5.1 by @dependabot[bot] in #3647
- Don't fail if raft path does not exist by @satoqz in #3649
- Control group fixes by @suprjinx in #3609
- Add options to tweak Auto Seal health check by @satoqz in #3653
- rename warning in log message by @Luiggi33 in #3654
- Drop goreleaser by @satoqz in #3639
- remove unused const for enabling rate limit audit logging by @Luiggi33 in #3656
- Bump openbao-ecosystem-logos dependency by @phil9909 in #3658
- Add blog post on declarative plugins by @cipherboy in #3636
- Use external keys in Transit by @cipherboy in #3602
- Rework plugin download section by @thgoebel in #3651
- Take initial hash over cert+key before starting polling worker by @tsaarni in #3675
- Bump go-kms-wrapping by @satoqz in #3671
- Fix PrintRawField function by adding warnings check by @Cloonson in #3672
- Improve
TestNamespaceManyLeasesstability by @phil9909 in #3686 - docs: fix imported_key typo by @olegdayo in #3684
- auth/jwt: simplify CEL role update logic by @phil9909 in #3588
- Docs: minor updates to fix grammar/punctuation to developer-qs page +… by @smcaine in #3685
- Update what-is-openbao doc by @smcaine in #3681
- Fix HMAC verification for non default algorithms by @wslabosz-reply in #3668
- bump semgrep and make sure
makeuses same version by @phil9909 in #3631 - Update CVE policy for NDA-bound testing by @cipherboy in #3557
- Add API docs for external keys by @satoqz in #3597
- Add missing baoNamespace CSI provider parameter documentation by @ackammawork in #3690
- Bump github.com/moby/moby/client from 0.5.0 to 0.5.1 by @dependabot[bot] in #3704
- Bump docker/login-action from 4.5.1 to 4.6.0 by @dependabot[bot] in #3706
- Bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in #3697
- Bump @easyops-cn/docusaurus-search-local from 0.55.2 to 0.55.3 in /website by @dependabot[bot] in #3695
- Bump github.com/sethvargo/go-limiter from 1.1.0 to 1.2.0 by @dependabot[bot] in #3700
- Bump the codeql group across 1 directory with 3 updates by @dependabot[bot] in #3705
- Bump github.com/prometheus/common from 0.70.0 to 0.70.1 by @dependabot[bot] in #3701
- Bump google.golang.org/api from 0.288.0 to 0.290.0 in the google-golang group across 1 directory by @dependabot[bot] in #3698
- Bump markdownlint-cli2 from 0.23.1 to 0.23.2 in /website by @dependabot[bot] in #3696
- Bump github.com/prometheus/client_golang from 1.23.2 to 1.24.0 by @dependabot[bot] in #3703
- Bump github.com/mattn/go-isatty from 0.0.23 to 0.0.24 by @dependabot[bot] in #3699
- Bump github.com/hashicorp/go-metrics from 0.6.0 to 0.6.1 by @dependabot[bot] in #3702
- Add canonical references to cross-posted blogs by @cipherboy in #3694
- UI fix firefox integration tests by @phil9909 in #3717
- Update changelog section in CONTRIBUTING.md by @satoqz in #3691
- Fix
enable_rate_limit_audit_loggingnot working by @phil9909 in #3673 - Add external key usage docs for Transit by @cipherboy in #3716
- Add operator quickstart guide by @thgoebel in #3595
- Fix missing OIDC default keys for namespaces by @wslabosz-reply in #3662
- Drop VOLUME instructions from Dockerfile by @satoqz in #3711
- Blog scan + filtered responses support by @cipherboy in #3693
- Only attempt to change file sink ownership in agent when explicitly requested by @chaehni in #3733
- Refactor api-docs into docs for better versions by @cipherboy in #3725
- Fix links to API docs in recursive list blog post by @cipherboy in #3742
- Remove canonical import comment by @satoqz in #3739
- Move upgrade to guides section by @cipherboy in #3726
- docs: Remove rsa_oaep_hash from samples by @thgoebel in #3735
- Fix error wrapping in HTTP audit device header parsing by @sivapalan in #3746
- Remove build info lookup from helper/versions by @satoqz in #3744
- Include versioned docs in redirects by @cipherboy in #3745
- Make OCI plugin binary_name fall back to ENTRYPOINT/CMD by @satoqz in #3760
- docs: Add kms plugin upgrade guide by @thgoebel in #3743
- core/metrics: expose sys/metrics unauthenticated when sealed by @EnricoFusi in #3430
- Allow for lease and
sys/rawrequests propagation to leader node by @wslabosz-reply in #3766 - Add post from FluxCD blog by @cipherboy in #3770
- Fix when to issue sleep by @cipherboy in #3773
- Bump github.com/google/cel-go from 0.29.2 to 0.30.0 by @dependabot[bot] in #3780
- Bump typescript from 6.0.3 to 7.0.2 in /website by @dependabot[bot] in #3775
- Bump pnpm/action-setup from 6.0.9 to 6.0.10 by @dependabot[bot] in #3783
- Bump the codeql group across 1 directory with 3 updates by @dependabot[bot] in #3782
- Bump github.com/klauspost/compress from 1.19.1 to 1.19.2 by @dependabot[bot] in #3781
- Bump github.com/hashicorp/go-discover from 1.3.0 to 1.4.0 by @dependabot[bot] in #3779
- Bump github.com/shirou/gopsutil/v4 from 4.26.6 to 4.26.7 by @dependabot[bot] in #3777
- Bump github.com/google/go-containerregistry from 0.21.7 to 0.21.9 by @dependabot[bot] in #3778
- Bump google.golang.org/api from 0.290.0 to 0.291.0 in the google-golang group across 1 directory by @dependabot[bot] in #3776
- Provide independent resources to three sub-tests by @Shoowa in #3765
- Fix flaky final second test to land predictably in last second by @datosh in #3787
- Decrease delay in acquiring HA lock by @cipherboy in #3774
- Address workflows tokens' permissions by @wslabosz-reply in #3768
- Downgrade to go-header 0.5.0 for golangci-lint compatibility by @tsaarni in #3789
- RFC - Storage Index in Headers for Consistency Control by @cipherboy in #3052
- fix allow unauthenticated workflows by @Luiggi33 in #3785
- Add documentation on PostgreSQL read scalability by @cipherboy in #3722
- Add reloading KMS plugins at runtime by @satoqz in #3738
- Better changelog checker, adjustments by @cipherboy in #3721
- Broadly link to social media accounts by @cipherboy in #3715
- Fix TestPostgreSQL_FatalInit by @cipherboy in #3791
- Fix reference to API docs by @cipherboy in #3795
- Add documentation on external keys to PKI by @cipherboy in #3764
- PQC KEM Configuration & Policies by @datosh in #3769
- Add missing job-level permissions to the workflows by @wslabosz-reply in #3800
- Fix unauthed workflow path specification by @cipherboy in #3808
- allow bao status to set output field by @Luiggi33 in #3750
- Bump Go to 1.26.6, bump UBI container image by @satoqz in #3810
- add tooltip strings by @space-aditya in #2914
- Propagate all 'wrapped-requested' requests by @wslabosz-reply in #3790
- Remove docs/api, add community to search by @cipherboy in #3820
- Cross-post OpenSSF v2.6.0 release blog post by @cipherboy in #3822
- Add August 2026 ecosystem news by @cipherboy in #3819
- Fix malformed Packages.gz, fix GOARM in nFPM by @satoqz in #3826
- UI: update ember-data to 4.12.x by @JanMa in #3816
- Fix internal operation dispatch creating tokens by @cipherboy in #3831
- Apply IP SANs filtering on CSRs by @cipherboy in #3833
- Add changelog for v2.6.2 (#3830) by @satoqz in #3835
- docs: Clean up remaining Vault references by @kangetsu121 in #3842
- Add more info about missing plugins to migration guide by @trutzonline in #3710
- Add initial support to PKI for external keys by @cipherboy in #3763
- Fsm perf optimization by @fean5959a in #3844
- Bump go-kms-wrapping & refactor, again by @satoqz in #3845
- add 'show internal engines' toggle by @Luiggi33 in #3794
- Bump github.com/yeqown/go-qrcode/v2 from 2.2.5 to 2.3.0 by @dependabot[bot] in #3853
- Bump github.com/stretchr/testify from 1.11.1 to 1.12.0 by @dependabot[bot] in #3849
- Bump the codeql group across 1 directory with 3 updates by @dependabot[bot] in #3854
- Bump italia/publiccode-parser-action from 1.5.1 to 1.6.0 by @dependabot[bot] in #3855
- Bump go.opentelemetry.io/otel from 1.44.0 to 1.45.0 by @dependabot[bot] in #3850
- Bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 by @dependabot[bot] in #3851
- Bump the google-golang group across 1 directory with 3 updates by @dependabot[bot] in #3848
- Fix compatibility with Go 1.27rc2 by @cipherboy in #3752
- Group go.opentelemetry.io dependency upgrades by @wslabosz-reply in #3856
- Tests for external keys by @cipherboy in #3797
- Remove unnecessary schema assignment in PKI by @cipherboy in #3861
- Add script for revising What's Changed sections by @cipherboy in #3837
- Bump to Go 1.27 by @cipherboy in #3864
- Add more pointers to static auto-unseal by @cipherboy in #3821
- Increase timeout for mysql container startup by @datosh in #3868
- fix cas for workflow update by @Luiggi33 in #3870
- Website: Documents current state of OSPS baseline fulfilment by @weberval in #3435
- Control groups docs by @suprjinx in #3436
- Enable ML-DSA support in PKI by @datosh in #3859
- Fix signature_bits confusion in PKI by @satoqz in #3858
- Validate that + wildcards behave like * by @cipherboy in #3869
- Control group authorization by @hannanavi in #3841
- Optimize Transit's transaction use when encrypting by @satoqz in #3847
- UI: Fix invalid CSS class in MFA method create template by @sivapalan in #3885
- Bump distroless/static from
f7f8f72to1c2c046by @dependabot[bot] in #3886 - Bump github.com/tink-crypto/tink-go/v2 from 2.7.0 to 2.8.0 by @dependabot[bot] in #3890
- Bump the google-golang group across 1 directory with 2 updates by @dependabot[bot] in #3888
- Bump github.com/google/cel-go from 0.30.0 to 0.31.0 by @dependabot[bot] in #3891
- Bump docker/setup-buildx-action from 4.2.0 to 4.3.0 by @dependabot[bot] in #3893
- Bump browser-actions/setup-chrome from 2.1.2 to 2.2.0 by @dependabot[bot] in #3894
- Bump the codeql group across 1 directory with 3 updates by @dependabot[bot] in #3892
- Bump the golang-x group across 1 directory with 3 updates by @dependabot[bot] in #3887
- Fix unreadable backed up keys regression by @wslabosz-reply in #3863
- Bump github.com/stretchr/testify from 1.12.0 to 1.12.1 by @dependabot[bot] in #3889
- pki: allow user to define acme challenge ports and host by @tsaarni in #3034
- raft: truncate raft log based on number of entries in log by @tsaarni in #3381
- Remove ldap, kerb, and radius plugins to openbao-plugins by @cipherboy in #3882
- More internal/ move path adjustments by @cipherboy in #3895
- Add RFC on Plugin Management Improvements by @satoqz in #3881
- Adds auth/token/revoke-self to wrapping token policy, plus tests by @suprjinx in #3688
- Refactor paginated listing into common module by @cipherboy in #3876
- Allow parallel read-standby, active lock startup by @cipherboy in #3792
- Flaky test fixes: policy creation, KVv2 wait by @cipherboy in #3896
- Upgrade
github.com/moby/go-archiveandgithub.com/go-git/go-git/v5by @wslabosz-reply in #3901 - Fix signing in Transit with External Keys by @satoqz in #3884
- Fix backwards-incompatible request forwarding by @satoqz in #3900
- Grammar by @tron1point0 in #3902
- PKI ML-DSA: 44 as default, UI, Documentation, and Changelog by @cipherboy in #3903
- test(namespace): Await deletion operation by @Shoowa in #3905
- Add more recent and past ecosystem news by @karras in #3898
- Default plugin_auto_register to true by @satoqz in #3910
- Fix plugin build script by @cipherboy in #3911
- Make providing a plugin sha256sum optional by @satoqz in #3759
- Add support for Envoy X-Forwarded-For-Client-Cert by @tsaarni in #2863
- Add PebbleDB storage backend to replace file by @cipherboy in #3879
- Limit parallel transactions in PostgreSQL by @cipherboy in #3913
- Add ML-DSA support to Transit by @satoqz in #3909
- Update RFC statuses to reflect current status by @cipherboy in #3916
- fix acme using defaults for renew config by @Luiggi33 in #3872
- docs: remove oidc_discovery_url from kubernetes jwt/oidc provider by @tsaarni in #3923
- Bump google.golang.org/grpc from 1.83.1 to 1.83.2 in the google-golang group across 1 directory by @dependabot[bot] in #3928
- Bump the k8s group across 1 directory with 3 updates by @dependabot[bot] in #3927
- Bump anchore/sbom-action/download-syft from 0.24.0 to 0.24.2 by @dependabot[bot] in #3930
- Bump the codeql group across 1 directory with 3 updates by @dependabot[bot] in #3929
- Bump ubi10-minimal from
1e429eatod801168by @dependabot[bot] in #3926 - Fix listing of namespaces in recovery mode by @cipherboy in #3925
- Fix recovery token generation via CLI by @cipherboy in #3924
- Formalize org-level administrators by @cipherboy in #3860
- Allow none compression type in sys/raw by @cipherboy in #3933
- Ensure control_groups stanza is well-formed by @cipherboy in #3919
- Clear read-only error on plugin reload by @satoqz in #3936
- fix:
sys/leaderdoes not containis_selfon standbys by @phil9909 in #3932 - Only provision file backend for migration by @cipherboy in #3934
- Allow read-enabled standby on leaderless cluster by @cipherboy in #3904
- Allow mounts to request the "latest" plugin version by @satoqz in #3914
- Allow pinning OCI-based plugins by manifest digest by @satoqz in #3915
- test: Await token revocation by @Shoowa in #3918
- switch
services/store.jsto native class by @phil9909 in #3719 - fix error messages in raft snapshot restore cmd by @Luiggi33 in #3939
- Fix TCP listener on OpenBSD by @satoqz in #3951
- Drop github.com/coreos/go-systemd by @satoqz in #3950
- Fix OIDC key rotation/expiration on standby nodes by @satoqz in #3949
- Bump to Go 1.27.1, x/crypto to 0.56.0, go-kms-wrapping by @satoqz in #3955
- Support index headers for consistency in server, api by @cipherboy in #3839
- Retroactively add changelog for #2383 by @wslabosz-reply in #3959
- Add changelog entry for External Keys by @satoqz in #3956
- Make semgrep timer rule happy by @satoqz in #3952
- Add MLKEM1024 to TLS documentation by @cipherboy in #3960
- Bump api to v2.7.0 by @satoqz in #3962
- Add release notes for v2.7.0-beta20260909 by @satoqz in #3961
Full Changelog: v2.6.2...v2.7.0-beta20260909