Skip to main content

Changelog

All notable changes to radosgw-admin are documented here and on the GitHub Releases page.


v0.2.1

Released: March 2026

Bug Fixes

  • TLS race condition fixinsecure: true mode previously set NODE_TLS_REJECT_UNAUTHORIZED=0 as a process-wide environment variable, causing concurrent requests from other client instances (with insecure: false) to inadvertently skip TLS verification. Fixed by replacing the global env var mutation with a scoped undici Agent dispatcher, which confines the TLS setting to a single fetch() call. This is a safe, backwards-compatible change — the insecure: true API is unchanged.

Dependencies

  • Added undici as a runtime dependency (1 package, 0 transitive dependencies). undici is the HTTP client library maintained by the Node.js core team and used internally by Node.js itself for its built-in fetch. It was selected specifically to avoid adding any third-party supply chain risk.

v0.2.0

Released: March 2026

New Features

  • Request hooksonBeforeRequest and onAfterResponse callbacks on ClientConfig. Hooks run on every request across all modules. Errors in hooks are swallowed (never break requests).
  • Health checkrgw.healthCheck() returns Promise<boolean> by calling info.get() internally.
  • Custom User-AgentuserAgent option on ClientConfig. Default: radosgw-admin/<version> node/<nodeVersion>.
  • AbortSignal supportsignal field on RequestOptions for external request cancellation. Combined with internal timeout signal (Node 18 compatible).
  • Retry with jitter — Full jitter on exponential backoff (base + random * base). Prevents thundering herd.

Improvements

  • Improved error handling across all modules
  • Better TypeScript type exports
  • Enhanced input validation

v0.1.0

Released: February 2026

Initial Release

  • 8 modules: Users, Keys, Subusers, Buckets, Quota, Rate Limits, Usage, Info
  • 40+ methods covering every RGW Admin Ops endpoint
  • No third-party dependencies — AWS SigV4 signing uses only node:crypto
  • Full TypeScript support with strict types
  • ESM + CommonJS dual output
  • Works with Rook-Ceph, OpenShift Data Foundation, and bare-metal Ceph clusters
  • Typed error hierarchy: RGWNotFoundError, RGWValidationError, RGWAuthError, RGWConflictError, RGWRateLimitError, RGWServiceError
  • snake_casecamelCase automatic transformation for API compatibility