Zero-Seat Team Management & RBAC
In the traditional SaaS and BSP landscape, vendors impose artificial “per-seat” licensing taxes—charging between ₹1,500 and ₹3,500 per month for every additional teammate who logs into the dashboard. This model forces growing merchants into uncomfortable trade-offs: either share insecure master passwords or lock out marketing, support, and warehouse analysts from critical customer and revenue data. Galaxa Nova rejects the per-seat tax entirely. Nova provides Zero-Seat Team Management: unlimited team members on every plan with zero seat fees, zero user caps, and enterprise-grade Role-Based Access Control (RBAC).The Zero-Seat Philosophy
Role-Based Access Control (RBAC)
To maintain strict operational security without gating collaboration, Nova enforces three distinct permission roles:Client-Side Gating & Server-Side Enforcement
Security is enforced at both layers:- UI Navigation Filtering: In the dashboard,
App.RBAC.applyRole()automatically hides administrative navigation tabs (Settings,Deploy,Broadcasts,Templates) for non-admin team members. Attempting to navigate directly via URL hash triggers an unauthorized notification and redirects the user back to the main view. - HTTP API Middleware: In
src/dashboard/router.js,requireAdminRoleintercepts all write and administrative routes (POST /api/dashboard/settings,POST /api/dashboard/team/invite,POST /api/dashboard/developer/keys,DELETE /api/dashboard/developer/keys/:id). Non-admin requests receive an immediate403 Forbidden.
How Roles Are Resolved (fail-closed)
A request’s role is never assumed. Nova resolves it in this order and grants nothing it cannot prove:- roles attached to the already-verified identity;
- the user’s Appwrite Teams membership for their organization (authoritative);
- the legacy
profiles.rolegrant — used only when Teams answered “no membership yet”, which is the state of merchants provisioned before Teams launched; - otherwise nothing →
403.
admin, so an
Appwrite blip silently promoted every signed-in session to administrator; that
path is closed and pinned by tests (tests/dashboard/rbac_fail_closed.test.js).
Passwordless Magic-Link Invitations
Nova eliminates the vulnerabilities of weak passwords and credential sharing by using passwordless email authentication powered by custom Resend SMTP delivery:Inviting a Teammate
- In the dashboard, navigate to Settings -> Team Management.
- View your current team directory, showing active and pending invitations.
- Click Invite Team Member.
- Enter the teammate’s email address and select their role (
Admin,Analyst, orSupport). - Click Send Invitation.
- The teammate immediately receives a branded invitation email with a secure 1-click login link.
What the Dashboard Reports
Nova only shows an invitation as pending when the identity provider actually accepted the dispatch:- Sent — the membership invite exists and the email is on its way.
409— the address is already a member or already has a pending invite; nothing new is created.502— the identity provider rejected the request (misconfiguration, SMTP failure, outage). Nothing is recorded, so the team list can never show a teammate who never received an email. Retry once the cause is fixed.409(no organization) — the signed-in account is not attached to an organization, so there is no team to invite into.
