OpenBao Rust Crate 0.8.0 #10
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.8.0 Release Notes
Version
v0.8.0plannedv0.8.0Scope
0.7.0: client configuration, direct token auth,AppRole login and administration, token lifecycle helpers, KV v1/v2, Transit,
sys health/seal status, loopback-only dev bootstrap, mount/auth mount
management, response wrapping, ACL policies, capabilities, audit devices,
exact lease helpers, plugin catalog helpers, environment-based client
construction, Kubernetes auth, TLS certificate auth, PKI helpers, Userpass
auth, JWT/OIDC helpers, database secrets helpers, SSH helpers, TOTP helpers,
Cubbyhole, Kubernetes secrets, RabbitMQ secrets, Identity, LDAP secrets,
admin bootstrap, production operator APIs behind explicit gates, and optional
Transit byte helpers.
0.8.0work currently implemented: LDAP auth login, methodconfiguration, group policy mapping, user policy/group mapping, list, read,
and delete helpers; RADIUS auth login, method configuration, user policy
mapping, user read/list/delete, paginated user-list helpers; Kerberos auth
SPNEGO login, service-account/keytab config, Kerberos LDAP config, and group
policy mapping helpers; JWT/OIDC authorization URL, callback, and
direct/device poll helpers; token role CRUD, token tidy, and revoke-orphan
helpers; Transit key config update, rotation, export, backup, restore, trim,
and batch encrypt/decrypt/rewrap/sign/verify helpers; PKI role merge-patch,
tidy status, and tidy cancel helpers; Identity entity/group lookup and entity
merge helpers; system leader status, OpenAPI discovery, internal UI
namespace/mount discovery, JSON telemetry metrics helpers, HA status, key
status, host diagnostics, sanitized config state JSON, audited request-header
config helpers, CORS config helpers, operator-gated active-node step-down,
and typed capability views for common access checks; system random byte and
hash tool helpers; runtime logger level helpers and installed version-history listing;
namespace management helpers; rate-limit quota config and named quota helpers;
locked-user list/filter/unlock helpers; lease prefix revoke, force prefix
revoke, and lease count helpers;
Integrated Storage Raft join/configuration/peer/bootstrap, capped
snapshot download/restore helpers, and Autopilot JSON helpers; Prometheus
text metrics output; operator-gated raw storage read/write/list/delete
helpers; operator-gated pprof diagnostic byte helpers;
remount/mount-migration start and status helpers; read-only admin bootstrap
preview with would-create, would-update, and would-issue statuses; advisory
FipsPosturereporting for crate-visible Transit and seal-assumptionchoices; shared
ListEntriesergonomics for common string list responses;optional RFC3339 timestamp parsing helpers behind the
timefeature;runtime-neutral
Sys::wait_ready_with_delayhelper; and additional errorpredicates for rate limiting, temporary failures, and permission denial.
0.8.0planned work: none. GitHub CI and the final local pentestpass are complete; the release is ready for the
v0.8.0tag aftermaintainer approval.
Security Notes
secrets, tokens, accessors, and service credentials in
SecretStringwherethey can cross the public API.
object strings locally where the crate can do so without weakening upstream
validation.
are secret-aware and redacted from debug output.
deserialization, and token CIDR/duration fields are validated before request
dispatch.
risk so high-assurance deployments can prefer stronger auth methods.
SecretString; query-bearing callback requests are treated as sensitive bythe HTTP transport path to avoid retaining detailed request URLs in transport
errors.
secret-aware, and token tidy is documented as an administrative maintenance
operation.
tokens, and token accessors are secret-aware where applicable and redacted
from debug output.
during deserialization. TLS version, token CIDR/duration, path-name, and
insecure LDAP TLS settings are validated before request dispatch.
and token accessors are secret-aware and redacted from debug output.
deserialization. LDAP TLS version, token CIDR/duration, group-name, and
insecure LDAP TLS settings are validated before request dispatch.
values.
fields, and restored backup payloads are secret-aware and redacted from debug
output. Transit batch inputs and server-returned batch result lists are
bounded.
JSON Merge Patch content type.
lists.
text uses the private raw-body transport path while preserving HTTPS/token
enforcement and response-size limits.
deserialization, and logger level writes use a typed allowlist.
before request dispatch. Namespace metadata maps are bounded.
validated, quota names are single path segments, and exempt paths are bounded.
during deserialization. Unlock path parameters must be single path segments.
revocation is documented as emergency-only, and lease count maps are bounded.
secret-aware and redacted from debug output. Raft server lists are bounded,
peer IDs are validated, Raft join leader addresses and auto-join schemes must
use HTTPS, and Autopilot duration/integer fields are checked before request
dispatch.
OpenBaoConfig::max_response_bytes. Restore helpers reject empty payloadsbefore dispatch and should be used only during an operator-controlled
recovery ceremony.
operator-opsplusoperator-ops-acknowledged. Raw values useSecretString, raw key lists are bounded, and raw storage paths arevalidated before dispatch.
operator-opsplus
operator-ops-acknowledged. Profile payloads are returned in zeroizingbyte buffers, the configured response-size limit applies, and profiling
duration/debug query values are validated locally.
destination, and migration ID values are validated before request dispatch.
require at least one non-empty origin, reject wildcard origins and control
characters, and validate configured HTTP header names before request dispatch.
header names are validated with HTTP header parsing before request dispatch.
debug output. Random byte counts are rejected when zero or above the local
1 MiB helper limit.
deserialization. UI mount detail paths are validated before request dispatch.
preserve unknown future capability names instead of dropping or rejecting
them.
state or issues credentials. Credential operations are reported as
WouldIssue.FipsPostureis a best-effort helper over SDK-visible choices only. It doesnot certify OpenBao, cryptographic providers, HSM/KMS use, TLS, operating
systems, or deployment processes.
ListEntriesis limited to regular string lists. Secret accessor lists areintentionally excluded because their entries are sensitive.
so loggable errors stay value-free near secret-bearing response handling.
Sys::wait_ready_with_delayretries temporary transport failures until theconfigured timeout instead of failing on the first connection error.
Error::is_permission_deniedis documented as a superset ofError::is_forbiddenbecause OpenBao can reportpermission deniedoutsideHTTP 403 in some policy-check paths.
dev-statefiles remain ignored and historical development keys are nottrusted production material.
Security And Stability Gate
scripts/release_0_8_gate.shPENTEST.mdreviewed on 2026-06-02; actionable localfindings were addressed and the report was deleted before commit. A follow-up
PENTEST.mdwas reviewed on 2026-06-02 after gap-analysis work; actionablelocal findings were addressed and the report was deleted before commit.
cargo auditresult: passed in local release gate.cargo deny checkresult: passed in local release gate.Known Limitations
tooling; the crate accepts the base64-encoded token required by the OpenBao
HTTP API.
abstraction, Identity OIDC provider/MFA management, PKI root rotate/replace,
named issuer issue/sign flows, OpenTelemetry tracing, seal-status watching,
HTTP/2 transport configuration, and application-side secret-struct wrappers
are planned or require design decisions before stabilization.
This discussion was created from the release OpenBao Rust Crate 0.8.0.
Beta Was this translation helpful? Give feedback.
All reactions