For the complete documentation index, see llms.txt. This page is also available as Markdown.

Rust SDK 17.3.0

  • KSM-904: Added custom server public key support for isolated deployments. Supply the key in any of three ways: an extended one-time token in the 4-segment format <region>:clientKey:keyId:serverPublicKeyBase64, the serverPublicKey config field, or programmatically via ClientOptions::set_server_public_key() / set_server_public_key_id() (programmatic values take precedence). While a custom key is active, server-pushed key-rotation hints are suppressed so the custom key is preserved across calls.

  • KSM-882: Added automatic throttle retry with exponential backoff. HTTP 403 throttle responses are retried up to 5 times (11s, 22s, 44s, 88s, 176s ±25% jitter); retry_after in the response is honored. Raises KSMRError::Throttled once retries are exhausted. No caller changes required.

  • KSM-997 / KSM-1009: Added typed linked-credential accessors via Record::get_links(), returning KeeperRecordLink values with permission and credential flag booleans, structured settings accessors, and AES-256-GCM decryption of AI/JIT settings payloads. The raw links field is unchanged.

  • KSM-999: Added KeeperFile::save_to_file(path) . Downloads (if needed) and writes a decrypted file to disk in one call. Accepts &str, String, &Path, or PathBuf.

  • KSM-999: Read-only string parameters now accept impl AsRef<str> (get_notation, get_notation_result, create_secret, update_folder) and KeeperFile::save_file accepts impl AsRef<Path>; constructors accept impl Into<String> (ClientOptions::new, RecordCreate::new, KeeperField::new, complete_transaction). Existing String callers compile unchanged.

  • KSM-891 / KSM-892 / KSM-893: Log initialization is now the tracing-init feature and blocking HTTP is the blocking feature; both remain in default. Building with default-features = false no longer pulls in either dependency.

  • KSM-1000: The totp feature can now be disabled. A core dependency on it has been removed, making default-features = false fully functional without TOTP.

  • KSM-998: Fixed: connecting to an environment whose active server key is not the SDK default could hang in an infinite 401 retry loop. The rotated key is now applied on the first retry, so the connection succeeds.

  • KSM-973: SecretsManager::new() now correctly documents the deferred bind contract. The one-time token is redeemed on the first network call, not in the constructor. Callers persisting config to external storage should call get_secrets(vec![]) immediately after new() to force the bind before exporting.

  • Security: Bumped quinn-proto to 0.11.15 (RUSTSEC-2026-0185).

Links:

Last updated

Was this helpful?