Skip to content

Permissions Catalog (Modules & Per-Module Permission Keys)

Related documentation: Permissions Blueprint · Commercial Model · Backend Core Modules · Backend Core Addons

This page is the catalog of modules and per-module permission keys for the Kisum platform.

It is the source of truth for:

  • which modules exist
  • which type each module is (Base or Add-on)
  • which permission keys belong to each module
  • which cross-module flows justify the split between persona modules

This page complements (it does not replace):

Design status: this catalog is a forward-looking design. It replaces the legacy basic.* namespace with persona-scoped namespaces (promoter.*, artist.*, venue.*, vendor.*). It MUST be implemented in this order:

  1. Define the new modules in Backend-Kisum-Core (promoter, artist, venue, vendor, plus add-ons).
  2. Replace the permission catalog in Backend-Kisum-Auth (delete legacy basic.* permissions, seed the keys below).
  3. Update each backend service to accept the new permission keys.
  4. Remove the legacy basic module from Core and the legacy basic.* permissions from Auth.

The platform separates modules into two hard categories. The category controls how the module is sold and how it relates to permissions.

A Base module is a primary persona surface. It is the entry point that gives a company an operational identity in Kisum.

A company purchases at least one Base module to use the platform as that persona.

Module keyDisplay namePersona / surface
promoterPromotersCore App, Promoter base — events, calendar, artist offers, venue bookings
venueVenue ManagementVenue-side surface — venue/space management, availability, bookings, deals
artistArtist RelationsArtist/agent-side surface — roster, availability, offers received, deals
vendorVendorsVendor-side surface — vendor directory and vendor-side workflows (TBD)

Legacy note: the previous basic module is being renamed/replaced by the promoter module. The two are not commercially the same — promoter is one persona among four. Treat basic.* as legacy wherever it still appears in code or DB.

An Add-on is an optional capability layered onto a Base module. Add-ons do not make sense without a Base module owning the parent context.

Module keyDisplay nameNotes
financeFinanceOwned by Backend-Kisum-Finance / Frontend-Kisum-Finance
touringTouringTouring/logistics workflows
aiAIAI Copilot, AI reports, AI forecasts
venue_marketplaceVenue Marketplace (booking)Marketplace-style venue discovery + booking; distinct from Base venue
ticketingTicketingBox-office engine (repo Backend-Nextkt) — now a standalone platform with its own role-based auth. Not seeded in Kisum Auth; Kisum integrates as a white-label partner. See §5.5.

1.3 Each Base module composes its own add-ons

Section titled “1.3 Each Base module composes its own add-ons”

A Base module is the parent commercial product. Add-ons attach onto Base modules, not the other way around. Compatibility is decided per add-on (see Backend Core Addons).

Base module (promoter | venue | artist | vendor)
└── eligible add-ons (finance | touring | ai | venue_marketplace | …)

2. Cross-module flows (why Base modules are separated)

Section titled “2. Cross-module flows (why Base modules are separated)”

Persona modules exist as separate modules because their state machines own different data and different permissions at each stage of a deal. The two flows below justify the persona split.

Flow stageArtist / Agent accessPromoter access
Availability postedManage own availabilityView availability
Offer sentView / manage received offerView / manage sent offer
Offer acceptedDeal becomes confirmedEvent changes from pending to confirmed
Deal confirmedView / manage deal, contract, limited event dataManage event, finance, ticket sales, contract
Event activeView restricted event dataFull event management
Flow stageVenue accessPromoter access
Venue createdManage venue profile and spacesView venue profile and spaces
Availability postedManage own availabilityView availability
Booking requestedView / manage received bookingView / manage own booking request
Booking acceptedDeal becomes confirmedEvent is linked to confirmed venue deal
Deal confirmedManage deal and contractsView deal and contracts
Event activeView promoter / event context if sharedManage event from promoter side

The same business event (an offer, a booking, a deal, a contract) appears on two persona surfaces with different permissions on each side. That is the reason promoter, artist, and venue MUST stay as separate modules with their own permission namespaces.


Permission keys MUST follow the rules from the Permissions Blueprint:

<module>.<resource>.<action>
  • module MUST equal one of the keys in §1.1 or §1.2 (e.g. promoter, venue, artist, vendor, finance, ai, touring, venue_marketplace, ticketing).
  • Persona modules (promoter, venue, artist, vendor) own the persona-side actions for shared business objects (offers, bookings, deals, contracts, events). The same business object can appear in two namespaces (e.g. promoter.artist.offer.edit vs artist.offer.manage) — this is intentional; each side has its own permissions.
  • Add-on modules (finance, ai, touring, venue_marketplace) own their own resources and actions; they do not embed persona terms in their keys.

4.1 Module promoter (Core App, Promoter base — replaces legacy basic)

Section titled “4.1 Module promoter (Core App, Promoter base — replaces legacy basic)”

The promoter module is the primary surface of Backend-Kisum / Frontend-Kisum for promoter companies. It owns:

  • promoter dashboard and workspace
  • promoter company settings
  • promoter events (and their per-tab management)
  • promoter-side artist relations (offers, deals, contracts towards artists)
  • promoter-side venue relations (bookings, deals, contracts towards venues)
  • promoter-side vendor directory
  • promoter calendar / availability
Permission keyWhat it gates
promoter.dashboard.viewOpen promoter dashboard and analytics widgets
promoter.workspace.viewView company workspace, offers, news, AI panel
promoter.workspace.editManage workspace settings and workspace-level offers
promoter.company.viewView company settings, members, roles, permissions
promoter.company.editManage company settings, members, roles, permissions
promoter.news.viewView promoter / company news
promoter.ai.viewAccess Kisum AI features
promoter.event.viewView promoter events list and event details
promoter.event.editCreate / update / delete promoter events and edit tabs
promoter.event.sales.viewView ticket sales summary and basic event commercial report
promoter.event.sales.editPost / update ticket sales numbers
promoter.event.estimate.viewView estimated event costs
promoter.event.estimate.editPost / update estimated event costs
promoter.event.analytics.viewView event analytics
promoter.event.commercial.viewView event commercial tab
promoter.event.commercial.editManage event commercial tab
promoter.event.marketing_sales.viewView marketing and sales tab
promoter.event.marketing_sales.editManage marketing and sales tab
promoter.event.talent_programming.viewView talent and programming tab
promoter.event.talent_programming.editManage talent and programming tab
promoter.event.venue_site.viewView venue and site tab
promoter.event.venue_site.editManage venue and site tab
promoter.event.hospitality_logistics.viewView hospitality and logistics tab
promoter.event.hospitality_logistics.editManage hospitality and logistics tab
promoter.event.technical_infrastructure.viewView technical and infrastructure tab
promoter.event.technical_infrastructure.editManage technical and infrastructure tab
promoter.event.safety_compliance.viewView safety and compliance tab
promoter.event.safety_compliance.editManage safety and compliance tab
promoter.event.operations_management.viewView operations and management tab
promoter.event.operations_management.editManage operations and management tab
promoter.event.general_administrative.viewView general and administrative tab
promoter.event.general_administrative.editManage general and administrative tab
promoter.event.other.viewView other event sections
promoter.event.other.editManage other event sections
promoter.artist.viewView artist / agent list, profile, public roster details
promoter.artist.availability.viewView artist availability blocks
promoter.artist.offer.viewView offers sent to artists / agents
promoter.artist.offer.editCreate / edit / cancel / manage pending offers to artists
promoter.artist.deal.viewView confirmed artist deal details
promoter.artist.contract.viewView contracts linked to confirmed artist deals
promoter.artist.contract.editUpload / edit / sign / manage contracts for artist deals
promoter.venue.viewView venue list, venue profile, public venue details
promoter.venue.space.viewView spaces inside a venue
promoter.venue.availability.viewView venue availability blocks
promoter.venue.booking.viewView venue booking requests made by promoter
promoter.venue.booking.editCreate / edit / cancel venue booking requests
promoter.venue.deal.viewView confirmed venue deal details
promoter.venue.contract.viewView contracts linked to confirmed venue deals
promoter.vendor.viewView vendor directory
promoter.vendor.editCreate / update / delete promoter-side vendor records
promoter.calendar.viewView promoter availability / calendar
promoter.calendar.editManage promoter availability blocks

4.1.1 Notes on promoter.artist.* and promoter.venue.*

Section titled “4.1.1 Notes on promoter.artist.* and promoter.venue.*”

These are promoter-side permissions to act on artist relations and venue relations. They do NOT grant access to the artist’s own surface or the venue’s own surface — those live under the artist.* and venue.* modules and are gated by the other side’s permissions.

4.2 Module artist (Artist Relations — design-only, permissions seedable)

Section titled “4.2 Module artist (Artist Relations — design-only, permissions seedable)”

The artist module is the artist/agent persona surface. The frontend/backend implementation is TBD, but the permission catalog below MUST be seeded so that future code accepts these keys without rework.

Permission keyWhat it gates
artist.viewView artist / agent profile, roster, public artist details
artist.editCreate / update / delete artist profiles or roster data
artist.profile.viewView artist / agent business profile
artist.profile.editEdit artist / agent business profile
artist.availability.viewView availability blocks
artist.availability.editCreate / update / delete availability blocks
artist.availability.offer.viewView offers received for availability blocks
artist.availability.offer.manageAccept / reject / counter offers received for availability blocks
artist.promoter.viewView promoter profile linked to an offer / deal / event
artist.offer.viewView marketplace offers received by the artist / agent
artist.offer.manageAccept / reject / counter / manage artist-side offers
artist.deal.viewView confirmed deal details
artist.deal.manageManage confirmed deal details
artist.contract.viewView contracts linked to confirmed deals
artist.contract.manageIssue / upload / edit / sign contracts
artist.event.viewView linked promoter event details after offer / deal is created
artist.event.finance.viewView restricted event finance summary, ticket sales, gross sales, basic settlement data
artist.event.ticket.viewView restricted ticket sales / reporting for linked events
artist.event.production.viewView restricted production / event info shared by promoter
artist.message.viewView communications / messages with promoters
artist.message.sendSend messages to promoters

4.3 Module venue (Venue Management — Backend-Kisum-Venues / Frontend-Kisum-Venues)

Section titled “4.3 Module venue (Venue Management — Backend-Kisum-Venues / Frontend-Kisum-Venues)”

The venue module is the venue-side surface. It is the first-class management module for venue companies. It is distinct from the venue_marketplace add-on and from promoter.venue.* (which are the promoter-side counterparts).

Permission keyWhat it gates
venue.venue.viewView venue list and venue details
venue.venue.editCreate / update / delete venue profile
venue.profile.viewView venue business profile
venue.profile.editEdit venue business profile
venue.space.viewView spaces inside a venue
venue.space.editCreate / update / delete venue spaces
venue.availability.viewView venue availability blocks
venue.availability.editCreate / update / delete venue availability blocks
venue.booking.viewView bookings received by the venue
venue.booking.manageAccept / reject / cancel / manage venue bookings
venue.promoter.viewView promoter profile linked to booking / deal / event
venue.deal.viewView confirmed venue deal details
venue.deal.manageManage confirmed venue deal details
venue.contract.viewView contracts linked to venue bookings / deals
venue.contract.manageIssue / upload / edit / sign contracts
venue.customer.viewView customer / client overlays
venue.customer.editEdit customer / client overlays
venue.message.viewView communications / messages with promoters
venue.message.sendSend messages to promoters

The vendor module is reserved for the vendor persona. Permission keys are not yet defined in this catalog — they MUST follow the same vendor.<resource>.<action> shape when added.

Until vendor permissions are defined, vendor-related actions on the promoter side are gated by promoter.vendor.view and promoter.vendor.edit (see §4.1).


5.1 Module finance (Owned by Backend-Kisum-Finance / Frontend-Kisum-Finance)

Section titled “5.1 Module finance (Owned by Backend-Kisum-Finance / Frontend-Kisum-Finance)”
Permission keyWhat it gates
finance.invoice.viewView invoices
finance.invoice.editCreate / update invoices
finance.invoice.approveApprove invoices (needs membership approval_limit)
finance.bill.viewView bills
finance.bill.editCreate / update bills
finance.bill.approveApprove bills (needs membership approval_limit)
finance.vendor.viewView vendor master
finance.vendor.editManage vendor master
finance.settlement.viewView settlements / payouts
finance.settlement.editManage settlements
finance.report.viewView finance reports / P&L

finance.*.approve actions REQUIRE the membership-level approval_limit field in addition to the permission grant. Permission alone is not sufficient to approve.

Permission keyWhat it gates
ai.copilot.useUse the AI Copilot / chat
ai.report.viewView AI-generated reports / forecasts
ai.report.runTrigger an AI report job

Permission keys for touring.* are reserved. Conceptual scope (per the Backend Core Modules page): routing, logistics, travel/accommodation coordination, operational touring workflows.

Permission keys for venue_marketplace.* are reserved. Conceptual scope: marketplace-style venue discovery and booking. Distinct from the Base venue module (which is the venue-side management surface).

5.5 Module ticketing (built backend Backend-Nextkt — catalog NOT yet seeded)

Section titled “5.5 Module ticketing (built backend Backend-Nextkt — catalog NOT yet seeded)”

The ticketing box-office engine became a standalone platform (repo Backend-Nextkt) with its own auth and tenancy. It resolves the ticketing.* keys below in-code from the member’s role (OWNER → all, MANAGER → all but settings.manage, STAFF → view + guestlist + scan; system admins → all). They are not seeded into Kisum Auth — this list is kept for cross-reference only. Kisum integrates as a white-label partner (per-org API key); it does not entitle ticketing through Core/Auth. Canonical doc: Ticketing Addon Backend (Backend-Nextkt).

Permission keyWhat it gates
ticketing.event.viewView ticketing events, maps, allocations granted to my company
ticketing.event.manageCreate / update ticketing events, host-mode, maps, uploads, allocations
ticketing.inventory.viewView ticket types / inventory
ticketing.tier.manageCreate / update / delete ticket types, products, complimentaries
ticketing.hold.managePlace operator inventory holds
ticketing.sale.viewView reservations, manual sales, discount codes
ticketing.sale.manageRecord manual sales, cancel, reassign, manage discount codes
ticketing.sale.refundRefund reservations; review refund requests
ticketing.guestlist.viewView guest-list entries
ticketing.guestlist.manageAdd guests (capacity-gated), set status, record arrivals
ticketing.scan.operateScan ticket codes at the door
ticketing.allocation.manageGrant / revoke collaborator allocations (host → promoter)
ticketing.settings.manageManage per-tenant checkout settings (fees, platform fee, points, guest)
ticketing.report.viewRead ticketing sales / settlement reports (also accepted on the network BFF)

Buyer-facing storefront routes (/consumer/*) use the module’s own auth (x-tenant + optional buyer JWT), not these Kisum permissions — see the canonical doc.


The legacy basic module is being retired. The migration sequence is strict:

  1. Core — register the new modules (promoter, artist, venue, vendor, plus add-ons) in Backend-Kisum-Core (modules + add-ons catalog).
  2. Auth — replace the permission catalog in Backend-Kisum-Auth with the keys in §4 and §5. Drop legacy basic.* rows.
  3. Backends — every backend service MUST update its permission checks to accept the new keys. No service may keep gating on basic.* after this step.
  4. Frontends — every frontend MUST stop sending / expecting basic.* keys; align role/role-template seeds to the new namespaces.
  5. Core cleanup — only after steps 1–4 are merged: remove the legacy basic module from Core.

This is a breaking migration: tokens, role templates, membership grants, and any cached permission state that contain basic.* will stop matching. Plan a coordinated rollout per the Permissions Blueprint layered model — no legacy basic.* should leak into a new public contract.


  • Modules are split into Base (promoter, venue, artist, vendor) and Add-ons (finance, ai, touring, venue_marketplace). ticketing is now a standalone platform (own role-based auth, not seeded here) that Kisum integrates with as a white-label partner — see §5.5.
  • A company picks a Base module to operate as a persona, then layers compatible Add-ons on top.
  • Each persona has its own namespace because the same business object (offer, booking, deal, contract, event) shows up on two surfaces with different permissions on each side.
  • Permission keys keep the <module>.<resource>.<action> shape from the Permissions Blueprint.
  • basic.* is legacy and is replaced by promoter.* plus the new persona modules — migration is staged through Core → Auth → backends → frontends → Core cleanup.