Skip to content

Platform Architecture Freeze

The platform foundation is locked. From this point forward, do not redesign core subsystems unless the change addresses a critical security issue, data integrity issue, or production bug.

Business capability ships as modules on top of this foundation. The first reference module is Leads; every later module (Tasks, Communication Templates, Invoices, Inventory, etc.) must mirror that structure. Cross-cutting reusable modules (e.g. Communication Templates) still follow the same licensing + permission + migrate-only registration rules.

Locked subsystems

Do not redesign:

AreaIncludes
AuthenticationCentral + Tenant auth, shared tenant login, email verification, password reset, sessions, remember me, lockout
TenancyWorkspace resolution, isolation, middleware, domain resolver, white-label readiness
AuthorizationModules = licensing; Roles/Permissions = RBAC (Spatie); module: + can: middleware. No Features, Plans, or Limits
BillingMarketplace, module subscriptions, consolidated billing, invoices/payments foundation, gateway abstraction, Stripe driver
ConfigurationCentral defaults → Tenant overrides → System defaults (branding, SMTP, locale, currency, timezone)
SecurityAudit logs, impersonation, session/workspace isolation, payment security

Allowed changes

  • Extend existing implementations (new catalog rows, permissions, routes, services, UI pages).
  • Fix critical defects, security holes, or data-integrity bugs.
  • Add domain events, listeners, and notifications inside a module following the Module Development Standard.

Forbidden without explicit approval

  • Introducing a Laravel Modules package or plugin auto-discovery layer
  • Repositories abstraction for domain code
  • Reintroducing Features / Plans / usage limits
  • Divergent Central vs Tenant shell redesigns
  • Parallel billing, auth, or settings systems inside a module

Official documentation for the SaleOS SaaS Platform.