
I built a TypeScript client for Ceph Object Storage because the only npm package was 7 years old. Here's What I Learned
Last month I went looking for a Node.js client to manage users and buckets on our Ceph RADOS Gateway. Found one package on npm — rgw-admin-client . Last published in 2019. No TypeScript. No ESM. No maintenance. So I built my own. What even is Ceph RGW? If you've worked with Kubernetes storage, you've probably bumped into Ceph. It's the storage backend behind Rook-Ceph and Red Hat OpenShift Data Foundation. The RADOS Gateway (RGW) is its S3-compatible object storage layer. RGW has an Admin API to manage users, buckets, quotas, rate limits, and usage stats. But to use it from Node.js, you either: Shell out to the radosgw-admin CLI inside a Ceph toolbox pod Write raw HTTP requests with AWS SigV4 signing by hand Use that 7-year-old unmaintained package and hope for the best None of those felt great. What I built npm install radosgw-admin import { RadosGWAdminClient } from 'radosgw-admin' ; const rgw = new RadosGWAdminClient ({ host: 'http://ceph-rgw.example.com' , port: 8080, accessKey: 'A
Continue reading on Dev.to
Opens in a new tab



