ERP Plus Roles & Access Model¶
This document defines how different roles interact with the ERP Plus system and documentation.
It is designed for startup → enterprise scale onboarding clarity.
Core Principle¶
ERP Plus documentation is NOT flat.
It is:
role-aware, permission-aware, and context-aware
Different users should NOT consume the same depth of system information.
Role-Based Documentation Model¶
ERP Plus defines 4 primary roles:
- Backend Developer
- Frontend Developer
- DevOps Engineer
- QA Engineer
Each role has a different lens into the system.
Backend Developer View¶
Access Level: FULL DOMAIN LAYER¶
Backend developers can access:¶
→ Engines
→ System
Responsibilities:¶
- implement engine logic
- define domain rules
- maintain services
- ensure engine isolation
Forbidden:¶
- modifying infrastructure without review
- bypassing engine contracts
Frontend Developer View¶
Access Level: API CONSUMER ONLY¶
Frontend developers can access:¶
→ System
- API contracts (future section)
Responsibilities:¶
- consume backend APIs
- build UI/UX
- avoid domain logic
Forbidden:¶
- touching engine logic
- modifying backend services
- altering business rules
DevOps Engineer View¶
Access Level: INFRASTRUCTURE + DEPLOYMENT¶
DevOps engineers can access:¶
→ Security
→ System
→ architecture (infrastructure sections)
Responsibilities:¶
- CI/CD pipelines
- deployments (Kamal)
- monitoring
- security enforcement
Forbidden:¶
- modifying domain logic
- altering business rules
- touching engine internals
QA Engineer View¶
Access Level: SYSTEM BEHAVIOR ONLY¶
QA engineers can access:¶
→ System
→ Engines
Responsibilities:¶
- validate system behavior
- ensure regression safety
- test engines independently
Forbidden:¶
- modifying production logic
- implementing features
- changing architecture
Internal vs External Contributors¶
ERP Plus distinguishes between internal staff and community contributors.
The two groups participate differently in the delivery process.
Internal Staff¶
Internal contributors have access to:
- Taiga
- GitHub repositories
- CI/CD pipelines
- Sprint planning
Responsibilities:
- execute User Stories
- update Tasks
- participate in sprint commitments
- maintain delivery traceability
Typical workflow:
User Story
↓
Task
↓
Branch
↓
Pull Request
↓
Merge
Community Contributors¶
Community contributors do not require access to Taiga.
They contribute through GitHub.
Responsibilities:
- report bugs
- submit Pull Requests
- improve documentation
- propose enhancements
Typical workflow:
GitHub Issue
↓
Branch
↓
Pull Request
↓
Maintainer Review
Maintainers decide whether external work should be represented in Taiga.
Access Matrix¶
| Capability | Internal Staff | Community |
|---|---|---|
| View Documentation | ✔ | ✔ |
| Submit PRs | ✔ | ✔ |
| Create Branches | ✔ | ✔ |
| Access Taiga | ✔ | ✘ |
| Sprint Planning | ✔ | ✘ |
| Manage User Stories | ✔ | ✘ |
| Manage Tasks | ✔ | ✘ |
| Production Deployments | Restricted | ✘ |
Documentation Visibility Rules¶
Not all documentation is equal.
Public Layer (All Roles)¶
→ System
Technical Layer (Engineers Only)¶
→ Engines
Operational Layer (DevOps Only)¶
→ CI/CD
Decision Layer (All Engineers)¶
Onboarding Flow (REAL WORLD)¶
When a new developer joins:
Step 1 — System Understanding¶
Read:
→ Overview
Step 2 — Architecture Understanding¶
Read:
Step 3 — Role-Specific Deep Dive¶
Depending on role:
-
backend → Contribution Guide
-
frontend → Overview
-
devops → CI/CD
-
QA → Testing
Step 4 — First Contribution¶
Must follow:
CONTRIBUTING.md
→ CI/CD
Key Insight¶
ERP Plus is NOT documented like a project.
It is documented like:
🧠 a system with controlled knowledge exposure
WHY THIS MATTERS (CRITICAL)¶
Without this model:
- frontend devs break backend rules
- QA misunderstands engine boundaries
- DevOps touches domain logic
- external devs get lost
- architecture becomes inconsistent
SCALING IMPACT¶
This structure enables:
- ✔ onboarding external teams safely
- ✔ parallel development across roles
- ✔ reduced architectural mistakes
- ✔ clear responsibility boundaries
- ✔ enterprise-grade maintainability
FINAL MENTAL MODEL¶
Same system → different perspectives → controlled knowledge exposure