OpenBao Rust Crate 0.9.0 #11
Closed
eldryoth
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
OpenBao Rust SDK 0.9.0 Release Notes
Version
v0.9.0plannedv0.9.0Scope
0.8.0: client configuration, direct token auth,AppRole login and administration, LDAP/RADIUS/Kerberos auth, Kubernetes auth,
TLS certificate auth, Userpass auth, JWT/OIDC helpers, token lifecycle and
token-role helpers, KV v1/v2, Transit, PKI, database, SSH, TOTP, Cubbyhole,
Kubernetes secrets, RabbitMQ secrets, Identity, LDAP secrets, sys backend
helpers, loopback-only dev bootstrap, admin bootstrap, policy builders,
audit devices, lease helpers, plugin catalog helpers, production operator
APIs behind explicit gates, optional Transit byte helpers, optional timestamp
parsing, and advisory FIPS posture helpers.
0.9.0work currently implemented: release-line version bump,stabilization audit documentation, migration guidance, release-note skeleton,
the known-limitations decision register,
RenewalHint, lease tidy, safecustom plugin wrapper building blocks, optional
tracinginstrumentation,optional HTTP/2 transport support, token
create-orphanandrenew-accessorhelpers, AppRole delegated role-property helpers, and theoperator-gated PKI default root deletion helper, plus explicit
RetryPolicy/request_json_with_retryexponential-backoff ergonomics andshared
ListPageOptionspagination for non-secret string-list endpoints,AdminBootstrap convergence for PKI roles and Identity entities/groups,
representative serde response fixtures, fuzz target scaffolding, and the
advisory quantum-readiness design note; the
0.9.0release gate script isalso present.
0.9.0planned work: final local and GitHub release gates,package inspection, pentest review, and tag preparation.
2.5.xendpoint matrix expanded thepre-
1.0plan through0.15.0.0.9.0handles stabilization foundations;0.10.0through0.14.0handle Identity/auth, Transit, PKI, and Systemcompletion;
0.15.0is the endpoint-closure release where no matrix row mayremain classified as
plannedordecision.Security Notes
0.9.0line is the API stabilization candidate. New public API should beadded only when it is expected to survive into
1.0or when the releasenotes clearly document why it remains experimental.
single-shot, and callers must not use retry policies for non-idempotent writes
unless the application owns the duplicate-operation risk.
secret material alive longer than caller-owned handles require.
ListPageOptionsbounds list page size and validates cursors. Tokenaccessors, lease IDs, and other secret-bearing lists stay out of generic
pagination ergonomics.
must never emit full URLs, headers, request bodies, response bodies, tokens,
namespaces, or raw transport-error strings.
root tokens in application services, logging token accessors, or using
loopback-only dev bootstrap outside fresh local development instances.
upstream primitives. It must not claim post-quantum safety for current
OpenBao deployments. See
docs/QUANTUM_READINESS.md.Security And Stability Gate
scripts/release_0_9_gate.shcargo auditrerun separatelyoutside the sandbox because the RustSec advisory database lock path is under
~/.cargo.remediated, and the temporary
PENTEST.mdfile was deleted before commit.cargo auditresult: passed locally on 2026-06-03.cargo deny checkresult: passed locally on 2026-06-03.Pentest remediations in this candidate:
auto_rotate_periodfield assignment.BoundedStringListno longer exposes its inner vector for uncheckedmutation and has a checked constructor for caller-provided values.
retryable.
Error::Http(reqwest::Error)variant was removed so futurecode cannot expose reqwest URL-bearing error chains through
source().Debugredacts certificate PEM fields as operationally sensitivetopology material.
Duration::ZERObefore formatting it as0s.raw-byte workflows; small-response clients should lower
OpenBaoConfig::max_response_bytes.Known Limitations And Decisions
0.9.0work, no owner decision required unless implementation orpentest risk changes: explicit opt-in retry policy, shared pagination for
non-secret string lists, PKI role and Identity entity/group bootstrap
convergence, public response fixtures, fuzz targets for path validation/API
error decoding/response envelopes, public API audit, migration guide
completion, and an advisory quantum-readiness design note.
tracking, and
LeaseHandlewrappers. Applications own the renewal loop,renewal-failure policy, and shutdown ordering; use
RenewalHintfor timingand increment guidance.
Plugin/SecretEnginetraits, codegen,and macro approaches. Deployment-specific plugin wrappers should use
PluginMount, public path validators, and bounded list helpers instead.0.10.0: Identity OIDC admin/discovery/token/introspectionrows, MFA method and login-enforcement rows, and
sys/mfa/validate; classifynamed-provider OIDC
/authorize,/token, and/userinfoas externalbrowser protocol flows.
0.11.0: Transit wrapping-key, import/import-version, BYOKexport, soft-delete/restore, cache/global config, CSR generation, and
certificate install rows.
wrapping_keyreturns a public PEM string; importwrappers accept only pre-wrapped
SecretStringciphertext, reject emptyciphertext constructors, redact ciphertext/context in
Debug, and documentthat raw key bytes must not be passed to endpoint wrappers. BYOK export
returns wrapped ciphertext as
SecretString. A pre-1.0.0optionalclient-side wrapping helper is planned behind
transit-importwithfeature-gated
rsaandaes-gcmdependencies, secret-aware inputs, redactedoutput handling, and no security-certification claims.
0.12.0: PKI default issuer/key config, named-issuerissue/sign, root rotate/replace, standalone key generation, sign-verbatim
behind operator gates, revoke-with-key, cluster/auto-tidy config, and
current-doc field expansion for role/generation/CRL/tidy structs. Destructive
DELETE /pki/rootis resolved in0.9.0asPki::delete_rootbehindoperator-opsplusoperator-ops-acknowledged, requiringPkiRootDeletion::confirm()at the call site.0.13.0: PKI revocation/CRL management, CEL roles andissue/sign, named-issuer sign-intermediate/sign-self-issued, delta CRL
rotation, and cross-sign rows. Unauthenticated public CA/certificate/CRL
reads and OCSP responder endpoints are external protocol/public-distribution
boundaries.
0.14.0: system generate-root/recovery-token, decode-token,legacy recovery-key rekey behind operator gates; password policy CRUD/list/
generate and resultant ACL without gates; and typed operator-gated in-flight
request inspection with
SecretStringtoken accessors and bounded responsemaps. Rejected for stable scope: sys/config/ui, sys/monitor streaming,
internal router inspection, internal counters, and internal request
inspection.
0.15.0: a boundedwait_until_unsealedhelper behind anexplicit Tokio helper feature, typed response-wrapping ergonomics with
redacted wrapping tokens and typed unwrap, selective AdminBootstrap
convergence for PKI mounts/roles, database mounts/dynamic and static roles,
and SSH mounts/roles, plus ACL policy-builder wrapping-TTL constraints.
Rejected for stable scope: request-level seal back-pressure, per-engine
wrapped method duplication, PKI CA setup in bootstrap, database connection
configuration in bootstrap, SSH CA setup in bootstrap, KV v1 bootstrap
convergence, and ACL parameter-constraint HCL generation.
http2feature for TLS ALPN HTTP/2 negotiation, and keep default builds HTTP/1.1-only.
HTTP/3 is rejected for stable scope. Certificate and public-key pinning are
rejected for stable scope; use root-only trust with an internal CA or
self-signed OpenBao certificate instead. Tracing is resolved with a
non-default
tracingfeature; OpenTelemetry SDK dependencies and customrequest hooks are rejected for stable scope, and W3C
traceparentpropagation is deferred past
1.0.0.proves otherwise before
1.0.0: full JOSE/JWKS construction and rawunauthenticated SSH public-key reads. The crate keeps safe lower-level
helpers or documented alternatives for those workflows.
and certificate download flows stay with dedicated ACME clients. This crate
provides typed OpenBao ACME config, EAB provisioning, and directory URL
helpers for that handoff, with EAB HMAC keys kept in
SecretString.handoff, but buffers owned by
reqwest, TLS providers, the operating system,allocator, or network devices remain outside this crate's control.
This discussion was created from the release OpenBao Rust Crate 0.9.0.
Beta Was this translation helpful? Give feedback.
All reactions