Platform Management
RBAC & Security
Role-based access control and security features
InferiaLLM provides comprehensive security features including authentication, authorization, and audit logging.
Authentication
JWT-Based Auth
All API requests require a valid JWT token obtained via login.
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "password123"}'Response:
{
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"token_type": "bearer"
}Two-Factor Authentication (2FA)
TOTP-based 2FA can be enabled per user:
- Setup:
POST /auth/totp/setup- Returns QR code - Verify:
POST /auth/totp/verify- Verify and enable - Login: Include
totp_codein login request
API Keys
For programmatic access, generate API keys:
curl -X POST http://localhost:8000/management/api-keys \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "my-app", "deployment_id": "uuid"}'Authorization (RBAC)
Built-in Roles
| Role | Capabilities |
|---|---|
| Admin | Full access, user management, settings |
| Developer | Deployments, API keys, configurations |
| User | Read access, limited API key creation |
| Guest | View only, no modifications |
Permissions
Granular permissions control access:
| Permission | Description |
|---|---|
model:read | View models and deployments |
model:write | Create/modify deployments |
model:delete | Delete deployments |
apikey:read | View API keys |
apikey:write | Create API keys |
admin:users | Manage users |
admin:roles | Manage roles |
admin:config | Modify system settings |
admin:audit | View audit logs |
Custom Roles
Create custom roles via Dashboard or API:
curl -X POST http://localhost:8000/admin/roles \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "analyst",
"permissions": ["model:read", "apikey:read"]
}'Organizations
Multi-Tenancy
Users can belong to multiple organizations with different roles in each.
Organization Switching
curl -X POST http://localhost:8000/auth/switch-org \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"org_id": "org-uuid"}'Invitations
Invite users to organizations:
- Admin creates invitation in Dashboard
- User receives invitation link
- User accepts and joins organization
Audit Logging
All actions are logged immutably:
- Authentication events
- Resource modifications
- API key usage
- Configuration changes
View Audit Logs
curl http://localhost:8000/audit/logs \
-H "Authorization: Bearer $TOKEN"Security Best Practices
- Rotate Secrets: Change
JWT_SECRET_KEYregularly - Enable 2FA: Require for admin accounts
- Least Privilege: Assign minimal necessary permissions
- Monitor Logs: Review audit logs for anomalies
- Encrypt at Rest: Use
SECRET_ENCRYPTION_KEYfor credentials
