Central Free & Core Modules
The Central Hub is not just a gateway; it provides a comprehensive suite of free modules that act as the operating system for the Enterprise. These modules are bundled because they are essential for ANY business operation, regardless of industry.
1) The Core Module Suite
These modules are pre-installed and cannot be disabled (though some features can be hidden).
🔐 Identity & Access
Purpose: Secure entry and permission management.
- Auth: Login, 2FA, Forgot Password.
- RBAC: Roles, Permissions, User Management.
- Teams: Group users for bulk assignment.
🏢 Master Data
Purpose: The "Single Source of Truth".
- People Directory: Profiles for Employees/Contractors.
- Branches: Physical office locations.
- Departments: Org chart hierarchy.
💳 Billing & Licensing
Purpose: Commercial relationship management.
- Marketplace: Storefront for paid plugins.
- Wallet/Cards: Payment methods.
- Invoices: Software subscription history.
💬 Support & Ops
Purpose: Operational health.
- Ticketing: Internal helpdesk.
- Audit Logs: Security trail.
- Notifications: Central inbox/email/SMS.
⚡ Productivity (Utils)
Purpose: Daily engagement tools.
- Calendar: Shared team events.
- Notes: Personal scratchpad.
- Todos: Simple task lists.
Central Modules Map
flowchart TD
Hub(("Central Hub"))
subgraph Core [Core Foundation]
Auth["Auth & IAM"]
Platform["Tenant Mgmt"]
Billing["Billing Engine"]
end
subgraph Master [Master Tables]
People["People Directory"]
Org["Branches & Depts"]
end
subgraph Omni [Omni Tools]
Tickets["Tickets"]
Notif["Notifications"]
Audit["Audit Logs"]
end
Hub --- Core
Hub --- Master
Hub --- Omni
style Hub fill:#2563eb,color:white,stroke:#333
style Core fill:#eff6ff,stroke:#60a5fa
style Master fill:#f0fdf4,stroke:#4ade80
style Omni fill:#faf5ff,stroke:#a855f7
2) Technical Breakdown
| Module | Key Tables | Key APIs |
|---|---|---|
| Identity | users, roles, permissions
|
POST /auth/login, GET /users |
| People | people, person_meta |
GET /people/:id, PATCH /people/:id |
| Org Struct | branches, departments |
GET /branches, POST /departments |
| Marketplace | modules, tenant_modules |
POST /modules/:id/enable |
3) Module Enablement Lifecycle
How a tenant goes from "Browsing" to "Using" a module (Paid or Free).
flowchart LR
Start((Start)) --> Browse[Browse Marketplace]
Browse --> Select[Select Module]
Select --> CheckPrice{Is Paid?}
CheckPrice -- Yes --> Pay[Process Payment]
Pay --> Enable
CheckPrice -- No --> Enable[Enable Module]
Enable --> DbRecord[Insert tenant_modules]
DbRecord --> Event[Publish 'module.enabled']
Event --> Setup[Run Module Seeders]
Setup --> Ready((Ready))
style Enable fill:#dbeafe,stroke:#2563eb
style Event fill:#fef3c7,stroke:#d97706
4) Integration for Future Paid Modules
When building a paid module (e.g., HRM, CRM), developers must integrate with these Central capabilities:
Integration Checklist
- ✅ Auth: Do not build a login page. Use the Bearer token from Central.
- ✅ Nav: Register your menu items in the Central Registry.
- ✅ People: Don't create a "Name" field. Link to `person_id` from Central.
- ✅ Branches: Dropdowns should fetch from `GET /branches`.
- ✅ Billing: Rely on `tenant_modules.status` to enforce strict access control.
- Free modules provide the "Skeleton" of the enterprise.
- Master Data (People, Depts) is centralized to prevent duplication.
- The Marketplace is the engine for enabling/disabling capabilities.
- Future modules act as "Consumers" of this core infrastructure.