Skip to content

subhrajit-mohanty/Rudra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Quick Start

docker compose up --build
Service URL Credentials
Dashboard http://localhost:3000 Register new acct
API Docs http://localhost:8000/docs Bearer token
Keycloak http://localhost:8080 admin / admin

Features

  • Email/Password, Social Login, Magic Links, MFA — Full auth stack per project
  • Enterprise SSO — OIDC + SAML identity providers
  • B2B Organizations — Multi-tenant orgs with roles, invitations, domain auto-join
  • RBAC — Custom roles assigned to users, reflected in JWT tokens
  • Webhooks — Real-time events (user.created, org.created, etc.) with delivery logs
  • Coupons — Discount codes with plan restrictions, usage limits, expiry tracking
  • Analytics — User signup trends, login tracking, activity audit log
  • Session Management — View, revoke sessions, user impersonation
  • Bot Protection, Breach Detection, Disposable Email Blocking — Security features
  • Multi-tier Plans — Free / Pro / Business / Enterprise with feature gating

Architecture

React (3000) → FastAPI (8000) → Keycloak (8080)
                    ↓
          MongoDB (27017) + Postgres (5432) + Redis (6379)

SDK

Rudra ships with official SDKs for Python and JavaScript.

Python

cd sdk/python && pip install -e .
from rudra_sdk import RudraClient

client = RudraClient("http://localhost:8000",
    email="admin@example.com", password="secret")

# Create project with coupon
client.projects.create("My App", "my-app", plan="pro", coupon_code="WELCOME50")

# Manage users
client.users.create("my-app", username="jane", email="jane@co.com", password="pass123")
users = client.users.list("my-app", search="jane")

# Organizations, roles, webhooks, SSO...
client.organizations.create("my-app", name="Acme", slug="acme")
client.roles.create("my-app", name="editor")
client.webhooks.create("my-app", url="https://app.com/hook", events=["user.created"])
client.sso.add_oidc("my-app", alias="google", client_id="...", client_secret="...")

JavaScript

npm install @rudra/sdk  # or import from sdk/javascript/
import { RudraClient } from '@rudra/sdk';

const client = new RudraClient('http://localhost:8000');
await client.login('admin@example.com', 'secret');

await client.projects.create('My App', 'my-app', 'pro');
await client.users.create('my-app', { username: 'jane', email: 'jane@co.com', password: 'pass123' });
await client.organizations.create('my-app', { name: 'Acme', slug: 'acme' });

See full SDK docs: Python | JavaScript

Plans

Free Pro $25 Business $99 Enterprise $499
Users 10K 100K 500K Unlimited
Projects 1 5 Unlimited Unlimited
Organizations 50 Unlimited Unlimited
SAML SSO 3 Unlimited
Webhooks 3 10 Unlimited
Analytics
Impersonation
Bot Protection
Coupons

Project Structure

rudra/
├── backend/              # FastAPI (50+ endpoints)
├── frontend/             # React + Vite dashboard
├── sdk/
│   ├── python/           # rudra Python package
│   └── javascript/       # @rudra/sdk npm package
├── docker-compose.yml    # 6-service stack
├── docs.html             # Full documentation (open in browser)
├── LICENSE               # MIT
├── CONTRIBUTING.md       # Contribution guide
└── README.md

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

MIT — free for personal and commercial use.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors