The situation
Crayon is a globally distributed enterprise software platform serving corporate clients who manage software licenses, cloud spend, and IT procurement at scale. Their clients are large organizations with large internal teams — and large organizations have complex permission requirements. The binary role system (admin vs. user) that worked when Crayon was smaller had become a bottleneck. Enterprise clients needed to grant specific people access to specific resources — a procurement manager can see and approve software licenses but not cloud billing; a finance reviewer can view reports but not initiate purchases. None of this was possible with two roles. We built a composable RBAC system: discrete permissions, assignable to roles, with resource-level overrides. A permission like 'view:cloud-billing' can be attached to a role and that role assigned to dozens of users, or granted as a direct override to a specific user without needing a new role. The system is fully auditable — every permission check generates a log entry. Separately, the deployment process was manual and stressful. Every release required a developer to monitor it, ready to intervene. We built a CI/CD pipeline on GitHub Actions deploying to AWS with a blue-green strategy: the new version runs alongside the old one, health checks confirm it's healthy, then traffic cuts over. If health checks fail, rollback is automatic. Deployment incidents dropped to near zero.
What had to change
Binary admin/user roles couldn't model enterprise clients' actual access needs. New contracts were blocked until developers manually created new permission configurations. Deploying updates required senior developer supervision and a war room mentality — releases were infrequent because the risk was too high.
What we changed
Composable RBAC: permissions, roles, and resource-level overrides all independent and stackable. New access configurations set up in minutes by non-technical team. CI/CD on GitHub Actions with AWS blue-green deployment — new version health-checked before traffic cuts over, rollback automatic on failure. Daily deployments became the norm.
What the client gained
- 01 Composable RBAC — permissions + roles + resource overrides
- 02 Daily deployments with zero-downtime blue-green strategy
- 03 Automated rollback on health check failure
- 04 Full audit log on every permission check