Skip to content

Commercial Model (Permissions & Packages)

Related documentation: Permissions Blueprint · Permissions Catalog · Backend Core Packages · Backend Core Modules · Backend Core Addons

This document is intentionally limited to:

  • packages
  • modules
  • add-ons
  • permission relationship
  • delegation relationship

It does not describe current implementation status.


  • promoter
  • artist
  • vendor
  • venue
  • finance
  • ai
  • touring
  • venue_marketplace

The commercial model must be read in this order:

Base module / add-on
-> enables capability eligibility
-> enables module eligibility
-> makes permission families commercially possible
-> user still needs Auth grants

This means the platform must separate:

  • what a company bought
  • what a user can access
  • what a user can grant to others

Company level decides:

  • what the company bought
  • which modules are enabled
  • which add-ons are enabled
  • which permission families are commercially possible

User level decides:

  • what modules the user may access
  • what permissions the user may use
  • what scope restrictions apply
  • what the user may delegate to others

4. Package, module, add-on, permission, delegation chain

Section titled “4. Package, module, add-on, permission, delegation chain”
Base module / add-on purchase
-> company commercial entitlement
-> module eligibility
-> permission-family eligibility
-> user grant
-> scope restrictions
-> delegation limits

Every team in the platform should understand this chain.

It is the core rule that keeps commercial logic and access logic separated.


The Basic package is the main operational package.

It should be treated as:

  • one commercial package
  • backed by one basic capability domain
  • compatible with specific add-ons
  • the main operational entry point for companies

It is the main product bundle for companies that want operational planning, artist intelligence, event management, workspace tooling, and market support features.


Finance, AI, Touring, Market, and Venue Availability are different from Basic add-ons because they can be purchased alone.

This means:

  • they are not dependent on Basic
  • they must have their own module identity
  • they must have their own permission families
  • they should not be documented as “just advanced add-ons”

Add-ons are optional commercial enhancements to an existing product path.

Current add-ons:

  • Vendor directory
  • Venue directory
  • Live ticket sales
  • AI report over sales for marketing campaigns

These should be treated as:

  • optional
  • explicitly compatible
  • commercially meaningful
  • not direct user permissions by themselves

Permissions must never be defined directly from package names.

Use:

  • package -> commercial availability
  • module -> permission namespace
  • permission -> actual user action

Good examples:

finance.income.read
finance.expenses.write
market.contracts.read
venue.availability.read
basic.events.create

Bad examples:

basic-package-user
premium-package-editor
finance-addon-person

Delegation is not the same as permission.

Permission answers:

What can this user do?

Delegation answers:

What can this user grant or manage for another user?

Example:

  • user has finance.write
  • but delegation may still forbid them from granting finance.write to someone else

10. How to create future commercial products

Section titled “10. How to create future commercial products”
  • the product is a real commercial tier
  • module composition differs
  • add-on compatibility differs
  • the target customer profile differs clearly
  • the capability is a real product boundary
  • it needs its own permission namespace
  • it may be sold independently
  • the capability is optional
  • it enhances an existing package or module
  • it does not deserve a full standalone module identity

Do not:

  • create a package when a price list would solve the problem
  • create a module for one tiny feature
  • create an add-on for something that should always be included

The platform commercial model must stay clean:

  • packages are commercial bundles
  • modules are capability boundaries
  • add-ons are optional extensions
  • permissions are module-scoped user actions
  • delegation controls what users may grant to others

That separation is the rule that allows the platform to grow without breaking access governance.