Ruby SDK 17.2.0
Released on July 21, 2026
Updates
KSM-883: Added throttle retry with exponential backoff. HTTP 403
{"error":"throttled"}responses are retried up to 5 times (11s, 22s, 44s, 88s, 176s ±25% jitter), honoringretry_afterwhen present. RaisesThrottledErroronce retries are exhausted. No caller changes required.KSM-906: Added IL5 custom server public key support.
SecretsManageraccepts the 4-partIL5:clientKey:serverPublicKeyId:serverPublicKeyOTT, registers the supplied EC P-256 key for transmission-key wrapping, and persists it across restarts.IL5:-prefixed tokens route toil5.keepersecurity.us. Addsserver_public_key/server_public_key_idconstructor options (precedence: programmatic > token > config).KSM-1013: Added
KeeperRecordLinktyped accessor class andKeeperRecord#get_links. Each link exposes permission booleans withallowedSettingsfallback (top-level wins), AES-256-GCM decryption viaget_decrypted_data/get_link_data, andmeta/ai_settings/jit_settingssettings accessors — all non-raising. Addsrequest_links:keyword toget_secrets. Purely additive; the rawrecord.linkslist is unchanged.KSM-687: Added DTO fields and PAM transaction support:
complete_transaction(record_uid, rollback: false),UpdateOptions,update_secret_with_options,download_thumbnail,is_editable/inner_folder_uid/linksonKeeperRecord,thumbnail_url/last_modifiedonKeeperFile, andexpires_ononSecretsManagerResponse. Reaches full parity with other SDKs.KSM-692: Added HTTP proxy support. Pass
proxy_url:at initialization, or setHTTPS_PROXY/https_proxyin the environment; authenticated proxies are supported. Applies to all HTTP operations.KSM-686: Added
CachingPostFunctionandCachefor encrypted, file-based API response caching (disaster recovery pattern). Cache location is configurable viaKSM_CACHE_DIR.KSM-694: Added
upload_file_from_path(owner_record_uid, file_path, file_title: nil)for direct disk-to-record file upload, andtry_get_notation(notation_uri)for error-safe notation access (returns empty array instead of raising).KSM-743: Added transmission key #18 for Gov Cloud Dev environment support.
KSM-1099: Added
create_secret_with_options(create_options, record_data, folders: nil)— accepts pre-fetched folders to skip the extraget_foldersnetwork call.create_secretis an unchanged backward-compatible wrapper.KSM-1100: Added
get_notation_results/try_get_notation_results— list-returning notation lookup that always returnsArray[String]with all field values (no first-element shortcut) and JSON-serializes complex types.try_get_notation_resultsnever raises; returns[]on error.KSM-1101: Added
inflate_field_value(uids, replace_fields)/get_inflate_ref_types(field_type)for field-reference resolution.addressRefresolves to address fields;cardRefresolves to paymentCard, text, pinCode, and address fields with recursive inflate.KSM-1102: Added
save(record, transaction_type: nil, links_to_remove: nil)/save_with_options(record, update_options)— non-finalizing update aliases that use the stored record key without re-fetching and do not callcomplete_transaction. Usesave(record, transaction_type: 'rotation')to stage a PAM rotation and finalize separately.KSM-1070: Removed the silent AES-CBC fallback in
decrypt_aes_gcm. An authentication-tag failure now raisesDecryptionErrorimmediately; tampered or wrong-key ciphertext previously could produce output without any error.KSM-1088:
delete_secretanddelete_foldernow log an error for each item whoseresponseCodeis not"ok", surfacing partial-failure details that were previously silent.KSM-987:
url_safe_str_to_bytesandbase64_to_bytesnow raiseErrornaming the affected field when passednil, instead of propagating a cryptic standard-library error. All Base64 decoding incore.rbroutes throughUtils.KSM-824:
KeeperRecord#to_hnow always includes"custom": []in V3 API payloads when no custom fields are set, matching Commander and Vault behavior.KSM-685: Fixed
CreateOptions.subfolder_uidnot being sent in the create payload.KSM-734: Fixed notation lookup raising an ambiguity error when the same record UID appears as both an original record and a shortcut.
KSM-696: Config files created by the SDK now use
0600permissions on Unix (owner read/write only).KSM-1090: Declared
base64andloggeras explicit runtime gemspec dependencies; both were removed from Ruby's default standard library in Ruby 4.0.
Resources
Last updated

