How thrigunchandra/c2_rbac works
This is a learning-oriented FastAPI authentication and RBAC API. A user registers or logs in; registration stores an Argon2 password hash, while login returns a signed, expiring JWT. Protected requests pass through token validation, and admin-only endpoints list, update, or delete users. The main internal layers are route handlers, authentication/security helpers, SQLAlchemy models and sessions, and configuration. PostgreSQL is the documented backing store. Edges reflect shown calls or README statements; unsampled runtime behavior is not inferred.
Main entry points: auth.py Auth endpoints · main.py FastAPI application · admin.py Admin endpoints · database.py Engine and sessions
Components 11
API routing
- FastAPI application
app/main.py - Auth endpoints
app/routes/auth.py - Admin endpoints
app/routes/admin.py - Request and response schemas
app/schemas.py
Authentication and RBAC
- Token and admin checks
app/dependencies.py - Password and JWT helpers
app/security.py
Persistence
- User model
app/models.py - Engine and sessions
app/database.py - PostgreSQL
Configuration
- Environment configuration
app/config.py
Other components
- API user
Connections 18
- API user → FastAPI application: sends requests
README.md - FastAPI application → Auth endpoints: registers router
app/main.py - FastAPI application → Admin endpoints: registers router
app/main.py - FastAPI application → Engine and sessions: creates tables via
app/main.py - FastAPI application → User model: creates tables from
app/main.py - Auth endpoints → Request and response schemas: uses request schemas
app/routes/auth.py - Auth endpoints → Engine and sessions: opens sessions
app/routes/auth.py - Auth endpoints → User model: queries and stores
app/routes/auth.py - Auth endpoints → Password and JWT helpers: hashes and issues tokens
app/routes/auth.py - Auth endpoints → Token and admin checks: uses access checks
app/routes/auth.py - Admin endpoints → Request and response schemas: uses admin schemas
app/routes/admin.py - Admin endpoints → Engine and sessions: gets database session
app/routes/admin.py - Admin endpoints → User model: queries and updates
app/routes/admin.py - Admin endpoints → Token and admin checks: requires admin
app/routes/admin.py - Token and admin checks → Password and JWT helpers: decodes tokens
app/dependencies.py - Engine and sessions → Environment configuration: reads database URL
app/database.py - Password and JWT helpers → Environment configuration: reads token settings
app/security.py - Engine and sessions → PostgreSQL: connects to
README.md