Skip to main content
Open Source · Apache-2.0

A Node.js SDK for
Ceph RGW Admin Ops

The Node.js SDK for the Ceph RADOS Gateway Admin Ops API. Manage users, buckets, quotas, rate limits and more — from Rook-Ceph to bare metal. Modern TypeScript support included.

radosgw-admin mascotradosgw-admin mascot
0
Modules
0
Methods
0
Dependencies
0
Tests

Built for production

Everything you need to manage Ceph RGW at scale, nothing you don't.

Zero Dependencies

No runtime deps. AWS SigV4 signing uses only node:crypto. Minimal attack surface, minimal bundle.

👥

User & Bucket Admin

Create users, transfer bucket ownership, revoke access keys — every Admin Ops endpoint covered across 8 modules.

🔒

Quotas & Rate Limits

Set per-user and per-bucket quotas, rate limits, and global policies — all programmatically.

🛡️

Typed Errors

Catch RGWNotFoundError, RGWAuthError, RGWConflictError — not generic HTTP status codes.

⚙️

Rook · ODF · Bare Metal

Works with Rook-Ceph, OpenShift Data Foundation, and bare-metal Ceph clusters (Pacific through Squid).

Full TypeScript

Strict types everywhere — no any. Autocomplete every method, param, and response field.

Simple, intuitive API

Every module follows the same pattern. Autocomplete guides you through every method and parameter.

Typed inputs and outputs
Human-readable sizes ("10G", "500M")
Validation before network calls
example.ts
import { RadosGWAdminClient } from 'radosgw-admin';

const rgw = new RadosGWAdminClient({
host: 'https://ceph-rgw.example.com',
accessKey: process.env.RGW_ACCESS_KEY,
secretKey: process.env.RGW_SECRET_KEY,
});

// Create a user
const user = await rgw.users.create({
uid: 'alice',
displayName: 'Alice',
});

// Set a 10 GB quota
await rgw.quota.setUserQuota({
uid: 'alice',
maxSize: '10G',
maxObjects: 50000,
enabled: true,
});

// List all buckets
const buckets = await rgw.buckets.list();

Works everywhere

Runtime
Node.js 18+ · Bun
Format
ESM · CommonJS
Ceph
Pacific+ · Squid · Reef
Platform
Rook · ODF · Bare metal

Frequently Asked Questions

What is the Ceph RADOS Gateway Admin Ops API?

The Ceph RADOS Gateway (RGW) Admin Ops API is a REST interface built into Ceph that lets administrators manage users, access keys, buckets, quotas, and rate limits programmatically. It is separate from the S3-compatible data API — it is specifically for cluster administration.

How do I manage Ceph RGW users from Node.js?

Install radosgw-admin (npm install radosgw-admin), create a RadosGWAdminClient with your RGW host and admin credentials, then call rgw.users.create(), rgw.users.get(), rgw.users.suspend(), and other methods. The SDK covers the full user lifecycle.

Does radosgw-admin work with Rook-Ceph?

Yes. radosgw-admin works with any Ceph RGW instance including Rook-Ceph on Kubernetes. Point the host to your RGW service endpoint (e.g. http://rook-ceph-rgw-my-store.rook-ceph.svc) and provide admin credentials from the Kubernetes secret.

Does it work with OpenShift Data Foundation (ODF)?

Yes. OpenShift Data Foundation uses Ceph RGW internally. radosgw-admin connects to the ODF RGW endpoint the same way as any other Ceph cluster.

Does it have any runtime dependencies?

No. radosgw-admin has zero runtime dependencies. AWS SigV4 request signing is implemented using only the built-in node:crypto module.

What Node.js version is required?

Node.js 18 or later. The SDK uses native fetch and node:crypto which are stable from Node.js 18 onwards. It also works with Bun.

Ready to get started?

Install in seconds. Ship your first RGW integration in minutes.