Authentication with RBAC, immutable audit log of all actions, notifications across 4 channels, built-in messenger and document management.
JWT RS256 tokens, device-level sessions, 20+ predefined roles with wildcards.
Immutable log of all 185+ domain events. 27 action types. Covers 16 business contexts. Append-only.
4 channels: Email, SMS, Push, In-App. Templates with variables, priorities, user settings.
Internal direct and group chats. Full-text search, real-time delivery via SSE, member management.
Markdown templates, folder tree by module, approval workflows, digital signatures, versioning.
Every company gets its own dashboard layout defined as a JSON configuration in the database. No code changes required β update a single SQL row to change what widgets appear, in what order, and with what parameters.
Each company has a row in dashboard_configs with a JSONB widget layout. Sections, widget IDs, spans and params β all configurable.
KPI tiles, spline charts and data tables β all fetching from live DB on each load. No stale caches.
PostgreSQL triggers fire pg_notify on every data change. A Go listener debounces signals and runs REFRESH MATERIALIZED VIEW CONCURRENTLY β no cron, no scripts.
First screen after login for holding owners: consolidated KPIs, per-subsidiary cards with live metrics, tabs and charts.