What's New
Three-Tier Role-Based Access Control
CertMate now enforces granular permissions with three roles:
| Role | Permissions |
|---|---|
| viewer | Read-only: list/download certs, view settings, activity log, metrics |
| operator | Viewer + create/renew certificates, test DNS/CA/notifications |
| admin | Full access: modify settings, manage users, backups, DNS accounts, storage |
Implementation Details
- New
require_role(min_role)decorator inAuthManagerwith hierarchical role checking ROLE_HIERARCHY: viewer (0) < operator (1) < admin (2)- All web routes and API resources now enforce minimum role requirements
- Mixed GET/POST endpoints check role per-method (e.g., GET settings = viewer, POST settings = admin)
UI Updates
- User creation dropdown: Viewer, Operator, Admin
- Color-coded role badges: blue (viewer), yellow (operator), purple (admin)
Backward Compatibility
- Existing users with
role: 'user'are automatically treated asoperator require_admindecorator still works (delegates torequire_role('admin'))- Bearer API token retains
adminrole (per-token scoping is a future feature) - No data migration needed — role normalization happens at read time
Full Changelog: v1.10.5...v1.10.6