Deliverables 4 – 7
Product & hybrid architecture
One reusable product codebase, two delivery models, governed by a central control plane that manages metadata — never customer business data.
01
Architecture diagram
┌──────────────────────────────────────────┐
│ SN CONTROL PLANE (this platform) │
│ Products · Customers · Subscriptions · │
│ Deployments · Support · Audit · Billing │
│ Own DB: catalogue + contracts + metadata │
└──────────────┬───────────────────────────┘
│ signed, scoped APIs (mTLS / tokens)
│ NO direct DB access to customer data
┌────────────────────────┼─────────────────────────┐
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ SHARED CLOUD (per │ │ DEDICATED: Customer A│ │ DEDICATED: Customer B│
│ product, e.g. PMS) │ │ own app deployment │ │ own app deployment │
│ Tenant A │ Tenant B │ │ own DB · own storage │ │ own DB · own storage │
│ RLS by tenant_id │ │ own backups · keys │ │ custom modules │
│ storage /tenant_id/ │ │ pinned version │ │ pinned version │
└──────────┬───────────┘ └──────────┬───────────┘ └──────────┬───────────┘
└── agent reports health, version, usage (no business data) ──┘02
Control-plane design
- Owns product catalogue, customers, contracts, subscriptions, deployments and audit — nothing else.
- Talks to product deployments only through versioned, signed APIs with least-privilege scopes.
- Provisioning, upgrades and backups run as background jobs with an audited approval step.
- Support access to a customer environment requires an approved, time-limited grant.
03
Product architecture
- Each product is an independent codebase and deployable with its own identity.
- Shared SN packages: design system, auth client, tenant context, audit SDK, licensing SDK.
- Features are modules toggled by entitlements, so custom modules plug in without forks.
- New products register in the catalogue — no redesign of the Control Center.
04
Shared cloud model
- One deployment per product per region; many tenants.
- Every row carries tenant_id; Row-Level Security enforces isolation in the database.
- Storage paths prefixed by tenant; per-tenant branding and module config.
05
Dedicated enterprise model
- Same product build, deployed into its own project: separate DB, storage, keys and backups.
- Version pinned per customer; updates rolled out on a controlled schedule.
- Custom modules shipped as packages, not edits to the core.
06
Database architecture proposal (control plane, conceptual)
products / product_versions / product_modulesCatalogue of SN PMS, NEXORA, Custom Solutions and future productscustomers / customer_contactsCustomer organisations (control-plane metadata only)plans / subscriptions / entitlementsWhat each customer may use, seats, renewal datesdeploymentsModel (shared | dedicated), region, version, endpoint, healthtenantsShared-cloud tenant record linked to a deploymentcustomizationsCustom modules, workflows, forms, reports, integrations per customerinvoices / paymentsBilling records (Stage 4, provider-hosted card data)support_tickets / support_access_grantsTickets and time-boxed, approved accessstaff / user_rolesSN staff and roles in a separate table (never on profiles)audit_logsAppend-only record of every privileged actionConceptual only — no database is created in Stage 1. Customer operational data lives in each product's own database, never here.