What changed
- Permission managementYAML-driven, flexible to add and edit
- Operational loadReduced by reorganizing the admin UI
- Dev environmentMade reproducible with Docker
Challenge
The SaaS provider's Rails foundation was in production, but the admin panel's permission controls were hard to extend — every new feature added meant more permission-related plumbing. The operations staff weren't dedicated engineers, so whenever the admin panel was confusing, the operational load fed straight back into the volume of support inquiries. The team needed to rework it — using the existing Rails assets — so that both permissions and the admin panel were easy to extend and easy to use without getting lost.
Approach
- 01 Took stock of the existing Rails foundation's structure and business logic and identified the scope of the overhaul
- 02 Redesigned the admin panel's permission control to be YAML-file driven, simplifying how definitions are added and edited
- 03 Unified the permission-definition pattern for the left menu and the second-level controllers
- 04 Reorganized the admin-panel UI with the operations team's workflow in mind
- 05 Unified the development environment with Docker to ensure reproducibility from local through to production
- 06 Released feature additions incrementally to minimize the impact on operations
Key success factors
- YAML-driven permission definitions
- Moving permission control out into YAML removed the need for code changes when adding a new menu.
- Operations-led UI cleanup
- Reorganizing the admin panel around the operations team's workflow curbed the growth in inquiry volume.
- Leveraging existing assets
- Rather than rebuilding the existing Rails + MySQL foundation, we narrowed the overhaul to permissions and the admin panel.
- Incremental release operations
- Releasing feature additions incrementally let the operations team get comfortable at a manageable pace.
Solution
While keeping the existing Rails + MySQL foundation, we redesigned permission control into a scheme defined in YAML files. The permissions for the left-hand menu and its underlying controllers can be added and edited in YAML without writing code. We also reorganized the admin-panel UI around the operations team's workflow, structurally lowering the inquiry-driven operational load.
Facing a similar challenge?
Whatever your industry or scale, let's start with a conversation.
Contact form