Permission Matrix
The live structure (migrated from the old flat grants - no longer a plan). CRUD + custom ops fold into each subject via the action lattice. Scope: Owner = whole organization (but not the RBAC catalog Permission/PolicyDefinition - system-only); Cashier / Employee = their merchant(s); Super Admin / Admin / Operator bypass; Customer = own data. Vn* reference data (provinces/wards) is readable by everyone.
How this maps to the two tables
Two tables hold everything. §3 (resource catalog) = rows of Permission - the resource codes; SaleOrder.find, SaleOrder.count etc. always exist. §2 (coarse grants) = grant rows in PolicyDefinition; the inheritance edges that let one grant cover many operations (action_inherits / resource_inherits / domain_inherits) also live in PolicyDefinition. The Permission Guide shows sample rows of both tables and an enforce walkthrough.
1. The reduction
| Measure | Flat (before) | Coarse (live) |
|---|---|---|
| Permission catalog | 966 method-permissions | 111 resources (1 * + 13 modules + 97 subjects) - 153 custom ops folded into their subject |
| Grant rows · Owner | 941 | 3 |
| Grant rows · Cashier | 347 | 7 |
| Grant rows · Employee | 253 | 4 |
| Grant rows · Guest | 31 | 2 |
2. Role grants (coarse, live)
| Role | Coarse grants | Domain | Covers |
|---|---|---|---|
| Super Admin / Admin / Operator | bypass (all) | - | all |
| Owner | *:manage · except Permission, PolicyDefinition | Organizer | 941 ops |
| Cashier | Sale:manage · Customer:manage · Commerce:read · Inventory:read · Payment:write · Invoice:execute · Finance:read | ANY_MEMBER | 347 ops |
| Employee | Sale:write · Customer:read · Commerce:read · Inventory:read | ANY_MEMBER | 253 ops |
| Guest | Licensing:read · InvoiceOnboarding:read | SYSTEM_WIDE | 31 ops |
| Customer | own-data reads | ANY_MEMBER | (own) |
3. Resource catalog
One resource per subject - CRUD and custom operations are covered by a grant on the subject (via the action lattice). A custom op becomes its own resource only if a role must be granted it independently of the subject. Expand a module.
Commerce - 17 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
AllocationLayout | 12 | - |
AllocationUnit | 9 | - |
AllocationZone | 12 | - |
Category | 9 | - |
Configuration | 9 | - |
Device | 9 | - |
DiscriminationType | 9 | - |
Merchant | 18 | checkSlug · findDeletionPolicy · footerSummary · launchpad · updateDeletionPolicy |
Organizer | 13 | checkSlug · launchpadCount · launchpad · onBoarding |
Product | 12 | checkSlug |
ProductOption | 11 | - |
ProductOptionValue | 9 | - |
ProductVariant | 12 | promoteDefault |
ProductVariantOption | 9 | - |
ReceiptTemplate | 9 | - |
SaleChannel | 10 | checkSlug |
Setting | 9 | - |
Finance - 5 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
FinanceAccount | 9 | - |
FinanceCategory | 9 | - |
FinanceTransaction | 9 | - |
FinanceVoucher | 9 | - |
PaymentIntegration | 9 | - |
Identity - 7 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Employee | 10 | resetPassword |
Permission | 9 | - |
PolicyDefinition | 16 | countMerchantTargets · countOrganizerTargets · countRoleTargets · countUserTargets · findMerchantTargets · findOrganizerTargets · findRoleTargets · findUserTargets · manageMerchantTargets · manageOrganizerTargets · manageRoleTargets · manageUserTargets |
Role | 9 | - |
User | 9 | - |
UserConfiguration | 10 | createView |
UserIdentifier | 9 | - |
Inventory - 15 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
InventoryIdentifier | 9 | - |
InventoryItem | 9 | - |
InventoryLocation | 15 | activate · archive · deactivate · setDefault |
InventoryStock | 9 | - |
InventoryTicket | 9 | - |
InventoryTicketItem | 9 | - |
InventoryTracking | 9 | - |
Material | 11 | - |
MaterialIdentifier | 9 | - |
MaterialRecipe | 11 | - |
ProductionOrder | 9 | - |
PurchaseOrder | 19 | addItem · cancel · clearItems · close · complete · confirm · receive · revert |
UnitOfMeasure | 9 | - |
Vendor | 11 | - |
VendorItem | 12 | activate · deactivate · setPreferred |
Invoice - 9 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Invoice | 14 | adjust · cancel · findByOrder · getHistory · issue |
InvoiceConfigMapping | 9 | - |
InvoiceOnboarding | 5 | invoiceTypes · saleChannels · skipStep · status · unskipStep |
InvoiceProvider | 12 | invoiceTypes · registerWebhook · unregisterWebhook |
InvoiceProviderConfig | 10 | test |
InvoiceRequest | 2 | attachBuyerInfo · findByOrderId |
InvoiceVnAddress | 1 | sync |
MerchantInvoiceProfile | 13 | enroll · inviteBranch · revokeInvitation · unenroll |
TaxInfo | 11 | resolve · sync |
Ledger - 2 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Ledger | 23 | amend · batchGenerate · batchRetry · batchStatus · checkExists · download · finalize · generate · regenerate · retry · revise · search · snapshot · status |
MerchantLedgerConfig | 4 | confirm · read · update |
Licensing - 4 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Activation | 9 | - |
License | 15 | issueFreeTrial · issue · reinstate · renew · revoke · suspend |
Policy | 9 | - |
PolicyFeature | 9 | - |
Outreach - 2 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Inquiry | 9 | - |
Subscriber | 9 | - |
Payment - 6 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Payment | 5 | cancel · checkout · confirm · refund · verify |
PaymentAttempt | 8 | - |
PaymentResult | 8 | - |
Transaction | 8 | - |
TransactionItem | 8 | - |
WebhookConfig | 9 | - |
Pricing - 11 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
Cost | 11 | readCurrent · updateCurrent |
Fare | 11 | addChild · createGroup |
FareSet | 10 | changeStatus |
Promotion | 11 | - |
PromotionMethod | 9 | - |
Rule | 9 | - |
Simulation | 1 | calculate |
SimulationV2 | 1 | calculate |
Tax | 9 | - |
TaxSet | 10 | - |
TaxType | 9 | - |
Sale - 13 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
AllocationUsage | 16 | availableUnits · availableZones · cancelBatch · cancel · completeBatch · complete · reassign |
Customer | 22 | linkUser · promoteToUser · promoteToUser · unlinkUser |
KitchenStation | 9 | - |
KitchenTicket | 13 | rush · send · updateTicketStatus · void |
KitchenTicketItem | 11 | updateItemStatus · voidItem |
PointTransaction | 9 | - |
PosSession | 16 | close · getCurrent · getXReport · getZReport · list · open · recordCashMovement |
PurchaseReport | 1 | summary |
Reservation | 11 | cancel · checkIn |
SaleCheck | 15 | history · mergeChecks · rollback · splitEqual · split · update |
SaleOrder | 20 | addSaleOrderItem · batchAddSaleOrderItems · cancel · checkout · clearItems · createDraft · mergeOrders · previewPricing · revert · rollbackMerge · splitOrder |
SaleOrderItem | 9 | - |
SalesReport | 4 | categories · categorySummary · products · summary |
Signal - 1 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
WebSocketClient | 6 | broadcast · disconnectClient · getClientById · getClients · sendToClient · sendToRoom |
Taxation - 5 subjects
| Resource (subject) | Ops covered | Custom operations |
|---|---|---|
TaxGroup | 9 | - |
TaxGroupItem | 9 | - |
VnAdministrativeUnit | 9 | - |
VnProvince | 9 | - |
VnWard | 9 | - |
4. Validation - resolved access on every existing operation
Proof the coarse grants above cover the right operations (✓ = allowed). Expand a module.
Commerce - 181 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
AllocationLayout.count | read | ✓ | ✓ | ✓ | - | Count allocation layouts |
AllocationLayout.create | create | ✓ | - | - | - | Create allocation layouts |
AllocationLayout.createAggregate | create | ✓ | - | - | - | Create aggregate allocation layout |
AllocationLayout.deleteBy | delete | ✓ | - | - | - | Batch delete allocation layouts |
AllocationLayout.deleteById | delete | ✓ | - | - | - | Delete allocation layouts by ID |
AllocationLayout.find | read | ✓ | ✓ | ✓ | - | List allocation layouts |
AllocationLayout.findById | read | ✓ | ✓ | ✓ | - | Get allocation layouts by ID |
AllocationLayout.findByIdAggregate | read | ✓ | ✓ | ✓ | - | Find aggregate allocation layout by id |
AllocationLayout.findOne | read | ✓ | ✓ | ✓ | - | Find one allocation layouts |
AllocationLayout.updateAggregate | update | ✓ | - | - | - | Update aggregate allocation layout |
AllocationLayout.updateBy | update | ✓ | - | - | - | Update allocation layouts by where filter |
AllocationLayout.updateById | update | ✓ | - | - | - | Update allocation layouts by ID |
AllocationUnit.count | read | ✓ | ✓ | ✓ | - | Count allocation units |
AllocationUnit.create | create | ✓ | - | - | - | Create allocation units |
AllocationUnit.deleteBy | delete | ✓ | - | - | - | Batch delete allocation units |
AllocationUnit.deleteById | delete | ✓ | - | - | - | Delete allocation units by ID |
AllocationUnit.find | read | ✓ | ✓ | ✓ | - | List allocation units |
AllocationUnit.findById | read | ✓ | ✓ | ✓ | - | Get allocation units by ID |
AllocationUnit.findOne | read | ✓ | ✓ | ✓ | - | Find one allocation units |
AllocationUnit.updateBy | update | ✓ | - | - | - | Update allocation units by where filter |
AllocationUnit.updateById | update | ✓ | - | - | - | Update allocation units by ID |
AllocationZone.batchCreate | create | ✓ | - | - | - | Batch create zones |
AllocationZone.count | read | ✓ | ✓ | ✓ | - | Count allocation zones |
AllocationZone.create | create | ✓ | - | - | - | Create allocation zones |
AllocationZone.createAggregate | create | ✓ | - | - | - | Create aggregate allocation zone |
AllocationZone.deleteBy | delete | ✓ | - | - | - | Batch delete allocation zones |
AllocationZone.deleteById | delete | ✓ | - | - | - | Delete allocation zones by ID |
AllocationZone.find | read | ✓ | ✓ | ✓ | - | List allocation zones |
AllocationZone.findById | read | ✓ | ✓ | ✓ | - | Get allocation zones by ID |
AllocationZone.findOne | read | ✓ | ✓ | ✓ | - | Find one allocation zones |
AllocationZone.updateAggregate | update | ✓ | - | - | - | Update aggregate allocation zone |
AllocationZone.updateBy | update | ✓ | - | - | - | Update allocation zones by where filter |
AllocationZone.updateById | update | ✓ | - | - | - | Update allocation zones by ID |
Category.count | read | ✓ | ✓ | ✓ | - | Count categories |
Category.create | create | ✓ | - | - | - | Create categories |
Category.deleteBy | delete | ✓ | - | - | - | Batch delete categories |
Category.deleteById | delete | ✓ | - | - | - | Delete categories by ID |
Category.find | read | ✓ | ✓ | ✓ | - | List categories |
Category.findById | read | ✓ | ✓ | ✓ | - | Get categories by ID |
Category.findOne | read | ✓ | ✓ | ✓ | - | Find one categories |
Category.updateBy | update | ✓ | - | - | - | Update categories by where filter |
Category.updateById | update | ✓ | - | - | - | Update categories by ID |
Configuration.count | read | ✓ | ✓ | ✓ | - | Count configurations |
Configuration.create | create | ✓ | - | - | - | Create configurations |
Configuration.deleteBy | delete | ✓ | - | - | - | Batch delete configurations |
Configuration.deleteById | delete | ✓ | - | - | - | Delete configurations by ID |
Configuration.find | read | ✓ | ✓ | ✓ | - | List configurations |
Configuration.findById | read | ✓ | ✓ | ✓ | - | Get configurations by ID |
Configuration.findOne | read | ✓ | ✓ | ✓ | - | Find one configurations |
Configuration.updateBy | update | ✓ | - | - | - | Update configurations by where filter |
Configuration.updateById | update | ✓ | - | - | - | Update configurations by ID |
Device.count | read | ✓ | ✓ | ✓ | - | Count devices |
Device.create | create | ✓ | - | - | - | Create devices |
Device.deleteBy | delete | ✓ | - | - | - | Batch delete devices |
Device.deleteById | delete | ✓ | - | - | - | Delete devices by ID |
Device.find | read | ✓ | ✓ | ✓ | - | List devices |
Device.findById | read | ✓ | ✓ | ✓ | - | Get devices by ID |
Device.findOne | read | ✓ | ✓ | ✓ | - | Find one devices |
Device.updateBy | update | ✓ | - | - | - | Update devices by where filter |
Device.updateById | update | ✓ | - | - | - | Update devices by ID |
DiscriminationType.count | read | ✓ | ✓ | ✓ | - | Count discrimination types |
DiscriminationType.create | create | ✓ | - | - | - | Create discrimination types |
DiscriminationType.deleteBy | delete | ✓ | - | - | - | Batch delete discrimination types |
DiscriminationType.deleteById | delete | ✓ | - | - | - | Delete discrimination types by ID |
DiscriminationType.find | read | ✓ | ✓ | ✓ | - | List discrimination types |
DiscriminationType.findById | read | ✓ | ✓ | ✓ | - | Get discrimination types by ID |
DiscriminationType.findOne | read | ✓ | ✓ | ✓ | - | Find one discrimination types |
DiscriminationType.updateBy | update | ✓ | - | - | - | Update discrimination types by where filter |
DiscriminationType.updateById | update | ✓ | - | - | - | Update discrimination types by ID |
Merchant.batchCreate | create | ✓ | - | - | - | Batch create merchants |
Merchant.batchSaleChannelsCreate | create | ✓ | - | - | - | Batch create sale channels for merchant |
Merchant.checkSlug | read | ✓ | ✓ | ✓ | - | Check whether a merchant slug is available within an organizer scope |
Merchant.count | read | ✓ | ✓ | ✓ | - | Count merchants |
Merchant.create | create | ✓ | - | - | - | Create merchants |
Merchant.createAggregate | create | ✓ | - | - | - | Create aggregate merchant |
Merchant.deleteBy | delete | ✓ | - | - | - | Batch delete merchants |
Merchant.deleteById | delete | ✓ | - | - | - | Delete merchants by ID |
Merchant.find | read | ✓ | ✓ | ✓ | - | List merchants |
Merchant.findById | read | ✓ | ✓ | ✓ | - | Get merchants by ID |
Merchant.findDeletionPolicy | read | ✓ | ✓ | ✓ | - | Find merchant deletion policy |
Merchant.findOne | read | ✓ | ✓ | ✓ | - | Find one merchants |
Merchant.footerSummary | read | ✓ | ✓ | ✓ | - | Six per-merchant counters surfaced in the BO footer strip on every screen (revenue today, revenue all-time, active orders, low stock, pending invoices, unread notifications) |
Merchant.launchpad | read | ✓ | ✓ | ✓ | - | Per-merchant launchpad card (name, revenue, today/yesterday order count, employee count) for the POS app |
Merchant.updateAggregate | update | ✓ | - | - | - | Update aggregate merchant |
Merchant.updateBy | update | ✓ | - | - | - | Update merchants by where filter |
Merchant.updateById | update | ✓ | - | - | - | Update merchants by ID |
Merchant.updateDeletionPolicy | update | ✓ | - | - | - | Update merchant deletion policy |
Organizer.checkSlug | read | ✓ | ✓ | ✓ | - | Check whether an organizer slug is available system-wide |
Organizer.count | read | ✓ | ✓ | ✓ | - | Count organizers |
Organizer.create | create | ✓ | - | - | - | Create organizers |
Organizer.deleteBy | delete | ✓ | - | - | - | Batch delete organizers |
Organizer.deleteById | delete | ✓ | - | - | - | Delete organizers by ID |
Organizer.find | read | ✓ | ✓ | ✓ | - | List organizers |
Organizer.findById | read | ✓ | ✓ | ✓ | - | Get organizers by ID |
Organizer.findOne | read | ✓ | ✓ | ✓ | - | Find one organizers |
Organizer.launchpad | read | ✓ | ✓ | ✓ | - | Per-organizer launchpad cards (name, avatar, today revenue, counts) for the POS app |
Organizer.launchpadCount | read | ✓ | ✓ | ✓ | - | Count of organizers visible in the caller launchpad (with optional q/role filter) |
Organizer.onBoarding | create | ✓ | - | - | - | Organizer on-boarding |
Organizer.updateBy | update | ✓ | - | - | - | Update organizers by where filter |
Organizer.updateById | update | ✓ | - | - | - | Update organizers by ID |
Product.checkSlug | read | ✓ | ✓ | ✓ | - | Check whether a product slug is available within a merchant scope |
Product.count | read | ✓ | ✓ | ✓ | - | Count products |
Product.create | create | ✓ | - | - | - | Create products |
Product.createAggregate | create | ✓ | - | - | - | Create aggregate product |
Product.deleteBy | delete | ✓ | - | - | - | Batch delete products |
Product.deleteById | delete | ✓ | - | - | - | Delete products by ID |
Product.find | read | ✓ | ✓ | ✓ | - | List products |
Product.findById | read | ✓ | ✓ | ✓ | - | Get products by ID |
Product.findOne | read | ✓ | ✓ | ✓ | - | Find one products |
Product.updateAggregate | update | ✓ | - | - | - | Update aggregate product |
Product.updateBy | update | ✓ | - | - | - | Update products by where filter |
Product.updateById | update | ✓ | - | - | - | Update products by ID |
ProductOption.count | read | ✓ | ✓ | ✓ | - | Count product options |
ProductOption.create | create | ✓ | - | - | - | Create product options |
ProductOption.createAggregate | create | ✓ | - | - | - | Create aggregate product option (axis + values in one transaction) |
ProductOption.deleteBy | delete | ✓ | - | - | - | Batch delete product options |
ProductOption.deleteById | delete | ✓ | - | - | - | Delete product options by ID |
ProductOption.find | read | ✓ | ✓ | ✓ | - | List product options |
ProductOption.findById | read | ✓ | ✓ | ✓ | - | Get product options by ID |
ProductOption.findOne | read | ✓ | ✓ | ✓ | - | Find one product options |
ProductOption.updateAggregate | update | ✓ | - | - | - | Update aggregate product option (axis + values in one transaction) |
ProductOption.updateBy | update | ✓ | - | - | - | Update product options by where filter |
ProductOption.updateById | update | ✓ | - | - | - | Update product options by ID |
ProductOptionValue.count | read | ✓ | ✓ | ✓ | - | Count product option values |
ProductOptionValue.create | create | ✓ | - | - | - | Create product option values |
ProductOptionValue.deleteBy | delete | ✓ | - | - | - | Batch delete product option values |
ProductOptionValue.deleteById | delete | ✓ | - | - | - | Delete product option values by ID |
ProductOptionValue.find | read | ✓ | ✓ | ✓ | - | List product option values |
ProductOptionValue.findById | read | ✓ | ✓ | ✓ | - | Get product option values by ID |
ProductOptionValue.findOne | read | ✓ | ✓ | ✓ | - | Find one product option values |
ProductOptionValue.updateBy | update | ✓ | - | - | - | Update product option values by where filter |
ProductOptionValue.updateById | update | ✓ | - | - | - | Update product option values by ID |
ProductVariant.count | read | ✓ | ✓ | ✓ | - | Count product variants |
ProductVariant.create | create | ✓ | - | - | - | Create product variants |
ProductVariant.createAggregate | create | ✓ | - | - | - | Create aggregate product variant |
ProductVariant.deleteBy | delete | ✓ | - | - | - | Batch delete product variants |
ProductVariant.deleteById | delete | ✓ | - | - | - | Delete product variants by ID |
ProductVariant.find | read | ✓ | ✓ | ✓ | - | List product variants |
ProductVariant.findById | read | ✓ | ✓ | ✓ | - | Get product variants by ID |
ProductVariant.findOne | read | ✓ | ✓ | ✓ | - | Find one product variants |
ProductVariant.promoteDefault | update | ✓ | - | - | - | Promote product variant as default |
ProductVariant.updateAggregate | update | ✓ | - | - | - | Update aggregate product variant |
ProductVariant.updateBy | update | ✓ | - | - | - | Update product variants by where filter |
ProductVariant.updateById | update | ✓ | - | - | - | Update product variants by ID |
ProductVariantOption.count | read | ✓ | ✓ | ✓ | - | Count product variant options |
ProductVariantOption.create | create | ✓ | - | - | - | Create product variant options |
ProductVariantOption.deleteBy | delete | ✓ | - | - | - | Batch delete product variant options |
ProductVariantOption.deleteById | delete | ✓ | - | - | - | Delete product variant options by ID |
ProductVariantOption.find | read | ✓ | ✓ | ✓ | - | List product variant options |
ProductVariantOption.findById | read | ✓ | ✓ | ✓ | - | Get product variant options by ID |
ProductVariantOption.findOne | read | ✓ | ✓ | ✓ | - | Find one product variant options |
ProductVariantOption.updateBy | update | ✓ | - | - | - | Update product variant options by where filter |
ProductVariantOption.updateById | update | ✓ | - | - | - | Update product variant options by ID |
ReceiptTemplate.count | read | ✓ | ✓ | ✓ | - | Count receipt templates |
ReceiptTemplate.create | create | ✓ | - | - | - | Create receipt templates |
ReceiptTemplate.deleteBy | delete | ✓ | - | - | - | Batch delete receipt templates |
ReceiptTemplate.deleteById | delete | ✓ | - | - | - | Delete receipt templates by ID |
ReceiptTemplate.find | read | ✓ | ✓ | ✓ | - | List receipt templates |
ReceiptTemplate.findById | read | ✓ | ✓ | ✓ | - | Get receipt templates by ID |
ReceiptTemplate.findOne | read | ✓ | ✓ | ✓ | - | Find one receipt templates |
ReceiptTemplate.updateBy | update | ✓ | - | - | - | Update receipt templates by where filter |
ReceiptTemplate.updateById | update | ✓ | - | - | - | Update receipt templates by ID |
SaleChannel.checkSlug | read | ✓ | ✓ | ✓ | - | Check whether a sale channel slug is available within a merchant scope |
SaleChannel.count | read | ✓ | ✓ | ✓ | - | Count sale channels |
SaleChannel.create | create | ✓ | - | - | - | Create sale channels |
SaleChannel.deleteBy | delete | ✓ | - | - | - | Batch delete sale channels |
SaleChannel.deleteById | delete | ✓ | - | - | - | Delete sale channels by ID |
SaleChannel.find | read | ✓ | ✓ | ✓ | - | List sale channels |
SaleChannel.findById | read | ✓ | ✓ | ✓ | - | Get sale channels by ID |
SaleChannel.findOne | read | ✓ | ✓ | ✓ | - | Find one sale channels |
SaleChannel.updateBy | update | ✓ | - | - | - | Update sale channels by where filter |
SaleChannel.updateById | update | ✓ | - | - | - | Update sale channels by ID |
Setting.count | read | ✓ | ✓ | ✓ | - | Count settings |
Setting.create | create | ✓ | - | - | - | Create settings |
Setting.deleteBy | delete | ✓ | - | - | - | Batch delete settings |
Setting.deleteById | delete | ✓ | - | - | - | Delete settings by ID |
Setting.find | read | ✓ | ✓ | ✓ | - | List settings |
Setting.findById | read | ✓ | ✓ | ✓ | - | Get settings by ID |
Setting.findOne | read | ✓ | ✓ | ✓ | - | Find one settings |
Setting.updateBy | update | ✓ | - | - | - | Update settings by where filter |
Setting.updateById | update | ✓ | - | - | - | Update settings by ID |
Finance - 45 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
FinanceAccount.count | read | ✓ | ✓ | - | - | Count finance accounts |
FinanceAccount.create | create | ✓ | - | - | - | Create finance accounts |
FinanceAccount.deleteBy | delete | ✓ | - | - | - | Batch delete finance accounts |
FinanceAccount.deleteById | delete | ✓ | - | - | - | Delete finance accounts by ID |
FinanceAccount.find | read | ✓ | ✓ | - | - | List finance accounts |
FinanceAccount.findById | read | ✓ | ✓ | - | - | Get finance accounts by ID |
FinanceAccount.findOne | read | ✓ | ✓ | - | - | Find one finance accounts |
FinanceAccount.updateBy | update | ✓ | - | - | - | Update finance accounts by where filter |
FinanceAccount.updateById | update | ✓ | - | - | - | Update finance accounts by ID |
FinanceCategory.count | read | ✓ | ✓ | - | - | Count finance categories |
FinanceCategory.create | create | ✓ | - | - | - | Create finance categories |
FinanceCategory.deleteBy | delete | ✓ | - | - | - | Batch delete finance categories |
FinanceCategory.deleteById | delete | ✓ | - | - | - | Delete finance categories by ID |
FinanceCategory.find | read | ✓ | ✓ | - | - | List finance categories |
FinanceCategory.findById | read | ✓ | ✓ | - | - | Get finance categories by ID |
FinanceCategory.findOne | read | ✓ | ✓ | - | - | Find one finance categories |
FinanceCategory.updateBy | update | ✓ | - | - | - | Update finance categories by where filter |
FinanceCategory.updateById | update | ✓ | - | - | - | Update finance categories by ID |
FinanceTransaction.count | read | ✓ | ✓ | - | - | Count finance transactions |
FinanceTransaction.create | create | ✓ | - | - | - | Create finance transactions |
FinanceTransaction.deleteBy | delete | ✓ | - | - | - | Batch delete finance transactions |
FinanceTransaction.deleteById | delete | ✓ | - | - | - | Delete finance transactions by ID |
FinanceTransaction.find | read | ✓ | ✓ | - | - | List finance transactions |
FinanceTransaction.findById | read | ✓ | ✓ | - | - | Get finance transactions by ID |
FinanceTransaction.findOne | read | ✓ | ✓ | - | - | Find one finance transactions |
FinanceTransaction.updateBy | update | ✓ | - | - | - | Update finance transactions by where filter |
FinanceTransaction.updateById | update | ✓ | - | - | - | Update finance transactions by ID |
FinanceVoucher.count | read | ✓ | ✓ | - | - | Count finance vouchers |
FinanceVoucher.create | create | ✓ | - | - | - | Create finance vouchers |
FinanceVoucher.deleteBy | delete | ✓ | - | - | - | Batch delete finance vouchers |
FinanceVoucher.deleteById | delete | ✓ | - | - | - | Delete finance vouchers by ID |
FinanceVoucher.find | read | ✓ | ✓ | - | - | List finance vouchers |
FinanceVoucher.findById | read | ✓ | ✓ | - | - | Get finance vouchers by ID |
FinanceVoucher.findOne | read | ✓ | ✓ | - | - | Find one finance vouchers |
FinanceVoucher.updateBy | update | ✓ | - | - | - | Update finance vouchers by where filter |
FinanceVoucher.updateById | update | ✓ | - | - | - | Update finance vouchers by ID |
PaymentIntegration.count | read | ✓ | ✓ | - | - | Count payment integrations |
PaymentIntegration.create | create | ✓ | - | - | - | Create payment integrations |
PaymentIntegration.deleteBy | delete | ✓ | - | - | - | Batch delete payment integrations |
PaymentIntegration.deleteById | delete | ✓ | - | - | - | Delete payment integrations by ID |
PaymentIntegration.find | read | ✓ | ✓ | - | - | List payment integrations |
PaymentIntegration.findById | read | ✓ | ✓ | - | - | Get payment integrations by ID |
PaymentIntegration.findOne | read | ✓ | ✓ | - | - | Find one payment integrations |
PaymentIntegration.updateBy | update | ✓ | - | - | - | Update payment integrations by where filter |
PaymentIntegration.updateById | update | ✓ | - | - | - | Update payment integrations by ID |
Identity - 72 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Employee.count | read | ✓ | - | - | - | Count employees |
Employee.create | create | ✓ | - | - | - | Create employees |
Employee.deleteBy | delete | ✓ | - | - | - | Batch delete employees |
Employee.deleteById | delete | ✓ | - | - | - | Delete employees by ID |
Employee.find | read | ✓ | - | - | - | List employees |
Employee.findById | read | ✓ | - | - | - | Get employees by ID |
Employee.findOne | read | ✓ | - | - | - | Find one employees |
Employee.resetPassword | update | ✓ | - | - | - | Reset employee account's password |
Employee.updateBy | update | ✓ | - | - | - | Update employees by where filter |
Employee.updateById | update | ✓ | - | - | - | Update employees by ID |
Permission.count | read | - | - | - | - | Count permissions |
Permission.create | create | - | - | - | - | Create permissions |
Permission.deleteBy | delete | - | - | - | - | Batch delete permissions |
Permission.deleteById | delete | - | - | - | - | Delete permissions by ID |
Permission.find | read | - | - | - | - | List permissions |
Permission.findById | read | - | - | - | - | Get permissions by ID |
Permission.findOne | read | - | - | - | - | Find one permissions |
Permission.updateBy | update | - | - | - | - | Update permissions by where filter |
Permission.updateById | update | - | - | - | - | Update permissions by ID |
PolicyDefinition.count | read | - | - | - | - | Count policy definitions |
PolicyDefinition.countMerchantTargets | read | - | - | - | - | Count merchant policy targets |
PolicyDefinition.countOrganizerTargets | read | - | - | - | - | Count organizer policy targets |
PolicyDefinition.countRoleTargets | read | - | - | - | - | Count role policy targets |
PolicyDefinition.countUserTargets | read | - | - | - | - | Count user policy targets |
PolicyDefinition.find | read | - | - | - | - | List policy definitions |
PolicyDefinition.findById | read | - | - | - | - | Get policy definition by ID |
PolicyDefinition.findMerchantTargets | read | - | - | - | - | List merchant policy targets |
PolicyDefinition.findOne | read | - | - | - | - | Find one policy definition |
PolicyDefinition.findOrganizerTargets | read | - | - | - | - | List organizer policy targets |
PolicyDefinition.findRoleTargets | read | - | - | - | - | List role policy targets |
PolicyDefinition.findUserTargets | read | - | - | - | - | List user policy targets |
PolicyDefinition.manageMerchantTargets | execute | - | - | - | - | Manage merchant policy targets |
PolicyDefinition.manageOrganizerTargets | execute | - | - | - | - | Manage organizer policy targets |
PolicyDefinition.manageRoleTargets | execute | - | - | - | - | Manage role policy targets |
PolicyDefinition.manageUserTargets | execute | - | - | - | - | Manage user policy targets |
Role.count | read | ✓ | - | - | - | Count roles |
Role.create | create | ✓ | - | - | - | Create roles |
Role.deleteBy | delete | ✓ | - | - | - | Batch delete roles |
Role.deleteById | delete | ✓ | - | - | - | Delete roles by ID |
Role.find | read | ✓ | - | - | - | List roles |
Role.findById | read | ✓ | - | - | - | Get roles by ID |
Role.findOne | read | ✓ | - | - | - | Find one roles |
Role.updateBy | update | ✓ | - | - | - | Update roles by where filter |
Role.updateById | update | ✓ | - | - | - | Update roles by ID |
User.count | read | ✓ | - | - | - | Count users |
User.create | create | ✓ | - | - | - | Create users |
User.deleteBy | delete | ✓ | - | - | - | Batch delete users |
User.deleteById | delete | ✓ | - | - | - | Delete users by ID |
User.find | read | ✓ | - | - | - | List users |
User.findById | read | ✓ | - | - | - | Get users by ID |
User.findOne | read | ✓ | - | - | - | Find one users |
User.updateBy | update | ✓ | - | - | - | Update users by where filter |
User.updateById | update | ✓ | - | - | - | Update users by ID |
UserConfiguration.count | read | ✓ | - | - | - | Count user configurations |
UserConfiguration.create | create | ✓ | - | - | - | Create user configurations |
UserConfiguration.createView | create | ✓ | - | - | - | Create custom view |
UserConfiguration.deleteBy | delete | ✓ | - | - | - | Batch delete user configurations |
UserConfiguration.deleteById | delete | ✓ | - | - | - | Delete user configurations by ID |
UserConfiguration.find | read | ✓ | - | - | - | List user configurations |
UserConfiguration.findById | read | ✓ | - | - | - | Get user configurations by ID |
UserConfiguration.findOne | read | ✓ | - | - | - | Find one user configurations |
UserConfiguration.updateBy | update | ✓ | - | - | - | Update user configurations by where filter |
UserConfiguration.updateById | update | ✓ | - | - | - | Update user configurations by ID |
UserIdentifier.count | read | ✓ | - | - | - | Count user identifiers |
UserIdentifier.create | create | ✓ | - | - | - | Create user identifiers |
UserIdentifier.deleteBy | delete | ✓ | - | - | - | Batch delete user identifiers |
UserIdentifier.deleteById | delete | ✓ | - | - | - | Delete user identifiers by ID |
UserIdentifier.find | read | ✓ | - | - | - | List user identifiers |
UserIdentifier.findById | read | ✓ | - | - | - | Get user identifiers by ID |
UserIdentifier.findOne | read | ✓ | - | - | - | Find one user identifiers |
UserIdentifier.updateBy | update | ✓ | - | - | - | Update user identifiers by where filter |
UserIdentifier.updateById | update | ✓ | - | - | - | Update user identifiers by ID |
Inventory - 160 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
InventoryIdentifier.count | read | ✓ | ✓ | ✓ | - | Count inventory identifiers |
InventoryIdentifier.create | create | ✓ | - | - | - | Create inventory identifiers |
InventoryIdentifier.deleteBy | delete | ✓ | - | - | - | Batch delete inventory identifiers |
InventoryIdentifier.deleteById | delete | ✓ | - | - | - | Delete inventory identifiers by ID |
InventoryIdentifier.find | read | ✓ | ✓ | ✓ | - | List inventory identifiers |
InventoryIdentifier.findById | read | ✓ | ✓ | ✓ | - | Get inventory identifiers by ID |
InventoryIdentifier.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory identifiers |
InventoryIdentifier.updateBy | update | ✓ | - | - | - | Update inventory identifiers by where filter |
InventoryIdentifier.updateById | update | ✓ | - | - | - | Update inventory identifiers by ID |
InventoryItem.count | read | ✓ | ✓ | ✓ | - | Count inventory items |
InventoryItem.create | create | ✓ | - | - | - | Create inventory items |
InventoryItem.deleteBy | delete | ✓ | - | - | - | Batch delete inventory items |
InventoryItem.deleteById | delete | ✓ | - | - | - | Delete inventory items by ID |
InventoryItem.find | read | ✓ | ✓ | ✓ | - | List inventory items |
InventoryItem.findById | read | ✓ | ✓ | ✓ | - | Get inventory items by ID |
InventoryItem.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory items |
InventoryItem.updateBy | update | ✓ | - | - | - | Update inventory items by where filter |
InventoryItem.updateById | update | ✓ | - | - | - | Update inventory items by ID |
InventoryLocation.activate | update | ✓ | - | - | - | Transition status to ACTIVATED (allowed from NEW or DEACTIVATED) |
InventoryLocation.archive | update | ✓ | - | - | - | Transition status to ARCHIVED (terminal). Default location must be reassigned first. |
InventoryLocation.count | read | ✓ | ✓ | ✓ | - | Count inventory locations |
InventoryLocation.create | create | ✓ | - | - | - | Create inventory locations |
InventoryLocation.createAggregate | create | ✓ | - | - | - | Create an inventory location with its sale-channel links in one transaction |
InventoryLocation.deactivate | update | ✓ | - | - | - | Transition status to DEACTIVATED (allowed only from ACTIVATED) |
InventoryLocation.deleteBy | delete | ✓ | - | - | - | Batch delete inventory locations |
InventoryLocation.deleteById | delete | ✓ | - | - | - | Delete inventory locations by ID |
InventoryLocation.find | read | ✓ | ✓ | ✓ | - | List inventory locations |
InventoryLocation.findById | read | ✓ | ✓ | ✓ | - | Get inventory locations by ID |
InventoryLocation.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory locations |
InventoryLocation.setDefault | update | ✓ | - | - | - | Promote this InventoryLocation as the default for its merchant; demotes any prior default in the same TX |
InventoryLocation.updateAggregate | update | ✓ | - | - | - | Patch an inventory location and full-replace its sale-channel links |
InventoryLocation.updateBy | update | ✓ | - | - | - | Update inventory locations by where filter |
InventoryLocation.updateById | update | ✓ | - | - | - | Update inventory locations by ID |
InventoryStock.count | read | ✓ | ✓ | ✓ | - | Count inventory stocks |
InventoryStock.create | create | ✓ | - | - | - | Create inventory stocks |
InventoryStock.deleteBy | delete | ✓ | - | - | - | Batch delete inventory stocks |
InventoryStock.deleteById | delete | ✓ | - | - | - | Delete inventory stocks by ID |
InventoryStock.find | read | ✓ | ✓ | ✓ | - | List inventory stocks |
InventoryStock.findById | read | ✓ | ✓ | ✓ | - | Get inventory stocks by ID |
InventoryStock.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory stocks |
InventoryStock.updateBy | update | ✓ | - | - | - | Update inventory stocks by where filter |
InventoryStock.updateById | update | ✓ | - | - | - | Update inventory stocks by ID |
InventoryTicket.count | read | ✓ | ✓ | ✓ | - | Count inventory tickets |
InventoryTicket.create | create | ✓ | - | - | - | Create inventory tickets |
InventoryTicket.deleteBy | delete | ✓ | - | - | - | Batch delete inventory tickets |
InventoryTicket.deleteById | delete | ✓ | - | - | - | Delete inventory tickets by ID |
InventoryTicket.find | read | ✓ | ✓ | ✓ | - | List inventory tickets |
InventoryTicket.findById | read | ✓ | ✓ | ✓ | - | Get inventory tickets by ID |
InventoryTicket.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory tickets |
InventoryTicket.updateBy | update | ✓ | - | - | - | Update inventory tickets by where filter |
InventoryTicket.updateById | update | ✓ | - | - | - | Update inventory tickets by ID |
InventoryTicketItem.count | read | ✓ | ✓ | ✓ | - | Count inventory ticket items |
InventoryTicketItem.create | create | ✓ | - | - | - | Create inventory ticket items |
InventoryTicketItem.deleteBy | delete | ✓ | - | - | - | Batch delete inventory ticket items |
InventoryTicketItem.deleteById | delete | ✓ | - | - | - | Delete inventory ticket items by ID |
InventoryTicketItem.find | read | ✓ | ✓ | ✓ | - | List inventory ticket items |
InventoryTicketItem.findById | read | ✓ | ✓ | ✓ | - | Get inventory ticket items by ID |
InventoryTicketItem.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory ticket items |
InventoryTicketItem.updateBy | update | ✓ | - | - | - | Update inventory ticket items by where filter |
InventoryTicketItem.updateById | update | ✓ | - | - | - | Update inventory ticket items by ID |
InventoryTracking.count | read | ✓ | ✓ | ✓ | - | Count inventory trackings |
InventoryTracking.create | create | ✓ | - | - | - | Create inventory trackings |
InventoryTracking.deleteBy | delete | ✓ | - | - | - | Batch delete inventory trackings |
InventoryTracking.deleteById | delete | ✓ | - | - | - | Delete inventory trackings by ID |
InventoryTracking.find | read | ✓ | ✓ | ✓ | - | List inventory trackings |
InventoryTracking.findById | read | ✓ | ✓ | ✓ | - | Get inventory trackings by ID |
InventoryTracking.findOne | read | ✓ | ✓ | ✓ | - | Find one inventory trackings |
InventoryTracking.updateBy | update | ✓ | - | - | - | Update inventory trackings by where filter |
InventoryTracking.updateById | update | ✓ | - | - | - | Update inventory trackings by ID |
Material.count | read | ✓ | ✓ | ✓ | - | Count material |
Material.create | create | ✓ | - | - | - | Create material |
Material.createAggregate | create | ✓ | - | - | - | Create material with optional inventory + vendor batch in one transaction |
Material.deleteBy | delete | ✓ | - | - | - | Batch delete material |
Material.deleteById | delete | ✓ | - | - | - | Delete material by ID |
Material.find | read | ✓ | ✓ | ✓ | - | List material |
Material.findById | read | ✓ | ✓ | ✓ | - | Get material by ID |
Material.findOne | read | ✓ | ✓ | ✓ | - | Find one material |
Material.updateAggregate | update | ✓ | - | - | - | Patch material core fields, inventory flags (allowOversell, purchasePrice), and vendor batch upsert |
Material.updateBy | update | ✓ | - | - | - | Update material by where filter |
Material.updateById | update | ✓ | - | - | - | Update material by ID |
MaterialIdentifier.count | read | ✓ | ✓ | ✓ | - | Count material identifier |
MaterialIdentifier.create | create | ✓ | - | - | - | Create material identifier |
MaterialIdentifier.deleteBy | delete | ✓ | - | - | - | Batch delete material identifier |
MaterialIdentifier.deleteById | delete | ✓ | - | - | - | Delete material identifier by ID |
MaterialIdentifier.find | read | ✓ | ✓ | ✓ | - | List material identifier |
MaterialIdentifier.findById | read | ✓ | ✓ | ✓ | - | Get material identifier by ID |
MaterialIdentifier.findOne | read | ✓ | ✓ | ✓ | - | Find one material identifier |
MaterialIdentifier.updateBy | update | ✓ | - | - | - | Update material identifier by where filter |
MaterialIdentifier.updateById | update | ✓ | - | - | - | Update material identifier by ID |
MaterialRecipe.count | read | ✓ | ✓ | ✓ | - | Count material recipe |
MaterialRecipe.create | create | ✓ | - | - | - | Create material recipe |
MaterialRecipe.createAggregate | create | ✓ | - | - | - | Create aggregate material recipe |
MaterialRecipe.deleteBy | delete | ✓ | - | - | - | Batch delete material recipe |
MaterialRecipe.deleteById | delete | ✓ | - | - | - | Delete material recipe by ID |
MaterialRecipe.find | read | ✓ | ✓ | ✓ | - | List material recipe |
MaterialRecipe.findById | read | ✓ | ✓ | ✓ | - | Get material recipe by ID |
MaterialRecipe.findOne | read | ✓ | ✓ | ✓ | - | Find one material recipe |
MaterialRecipe.updateAggregate | update | ✓ | - | - | - | Update aggregate material recipe |
MaterialRecipe.updateBy | update | ✓ | - | - | - | Update material recipe by where filter |
MaterialRecipe.updateById | update | ✓ | - | - | - | Update material recipe by ID |
ProductionOrder.count | read | ✓ | ✓ | ✓ | - | Count production orders |
ProductionOrder.create | create | ✓ | - | - | - | Create production orders |
ProductionOrder.deleteBy | delete | ✓ | - | - | - | Batch delete production orders |
ProductionOrder.deleteById | delete | ✓ | - | - | - | Delete production orders by ID |
ProductionOrder.find | read | ✓ | ✓ | ✓ | - | List production orders |
ProductionOrder.findById | read | ✓ | ✓ | ✓ | - | Get production orders by ID |
ProductionOrder.findOne | read | ✓ | ✓ | ✓ | - | Find one production orders |
ProductionOrder.updateBy | update | ✓ | - | - | - | Update production orders by where filter |
ProductionOrder.updateById | update | ✓ | - | - | - | Update production orders by ID |
PurchaseOrder.addItem | update | ✓ | - | - | - | Add item to purchase order |
PurchaseOrder.cancel | update | ✓ | - | - | - | Cancel purchase order |
PurchaseOrder.clearItems | delete | ✓ | - | - | - | Clear items from purchase order |
PurchaseOrder.close | update | ✓ | - | - | - | Close purchase order |
PurchaseOrder.complete | update | ✓ | - | - | - | Complete purchase order |
PurchaseOrder.confirm | update | ✓ | - | - | - | Confirm purchase order |
PurchaseOrder.count | read | ✓ | ✓ | ✓ | - | Count purchase orders |
PurchaseOrder.create | create | ✓ | - | - | - | Create purchase orders |
PurchaseOrder.createAggregate | create | ✓ | - | - | - | Create aggregate purchase order |
PurchaseOrder.deleteBy | delete | ✓ | - | - | - | Batch delete purchase orders |
PurchaseOrder.deleteById | delete | ✓ | - | - | - | Delete purchase orders by ID |
PurchaseOrder.find | read | ✓ | ✓ | ✓ | - | List purchase orders |
PurchaseOrder.findById | read | ✓ | ✓ | ✓ | - | Get purchase orders by ID |
PurchaseOrder.findOne | read | ✓ | ✓ | ✓ | - | Find one purchase orders |
PurchaseOrder.receive | update | ✓ | - | - | - | Receive purchase order |
PurchaseOrder.revert | update | ✓ | - | - | - | Revert purchase order to draft |
PurchaseOrder.updateAggregate | update | ✓ | - | - | - | Update aggregate purchase order |
PurchaseOrder.updateBy | update | ✓ | - | - | - | Update purchase orders by where filter |
PurchaseOrder.updateById | update | ✓ | - | - | - | Update purchase orders by ID |
UnitOfMeasure.count | read | ✓ | ✓ | ✓ | - | Count unit of measures |
UnitOfMeasure.create | create | ✓ | - | - | - | Create unit of measures |
UnitOfMeasure.deleteBy | delete | ✓ | - | - | - | Batch delete unit of measures |
UnitOfMeasure.deleteById | delete | ✓ | - | - | - | Delete unit of measures by ID |
UnitOfMeasure.find | read | ✓ | ✓ | ✓ | - | List unit of measures |
UnitOfMeasure.findById | read | ✓ | ✓ | ✓ | - | Get unit of measures by ID |
UnitOfMeasure.findOne | read | ✓ | ✓ | ✓ | - | Find one unit of measures |
UnitOfMeasure.updateBy | update | ✓ | - | - | - | Update unit of measures by where filter |
UnitOfMeasure.updateById | update | ✓ | - | - | - | Update unit of measures by ID |
Vendor.count | read | ✓ | ✓ | ✓ | - | Count vendors |
Vendor.create | create | ✓ | - | - | - | Create vendors |
Vendor.createAggregate | create | ✓ | - | - | - | Create vendor with optional polymorphic VendorItem batch in one transaction |
Vendor.deleteBy | delete | ✓ | - | - | - | Batch delete vendors |
Vendor.deleteById | delete | ✓ | - | - | - | Delete vendors by ID |
Vendor.find | read | ✓ | ✓ | ✓ | - | List vendors |
Vendor.findById | read | ✓ | ✓ | ✓ | - | Get vendors by ID |
Vendor.findOne | read | ✓ | ✓ | ✓ | - | Find one vendors |
Vendor.updateAggregate | update | ✓ | - | - | - | Patch vendor core fields and upsert/soft-delete polymorphic VendorItem batch |
Vendor.updateBy | update | ✓ | - | - | - | Update vendors by where filter |
Vendor.updateById | update | ✓ | - | - | - | Update vendors by ID |
VendorItem.activate | update | ✓ | - | - | - | Reactivate a deactivated VendorItem so it appears in vendor catalogue lookups |
VendorItem.count | read | ✓ | ✓ | ✓ | - | Count vendor items |
VendorItem.create | create | ✓ | - | - | - | Create vendor items |
VendorItem.deactivate | update | ✓ | - | - | - | Hide a VendorItem from vendor catalogue lookups without deleting history |
VendorItem.deleteBy | delete | ✓ | - | - | - | Batch delete vendor items |
VendorItem.deleteById | delete | ✓ | - | - | - | Delete vendor items by ID |
VendorItem.find | read | ✓ | ✓ | ✓ | - | List vendor items |
VendorItem.findById | read | ✓ | ✓ | ✓ | - | Get vendor items by ID |
VendorItem.findOne | read | ✓ | ✓ | ✓ | - | Find one vendor items |
VendorItem.setPreferred | update | ✓ | - | - | - | Mark this VendorItem as the preferred sourcing for its (merchant, item) pair |
VendorItem.updateBy | update | ✓ | - | - | - | Update vendor items by where filter |
VendorItem.updateById | update | ✓ | - | - | - | Update vendor items by ID |
Invoice - 77 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Invoice.adjust | update | ✓ | - | - | - | Create an adjustment invoice |
Invoice.cancel | update | ✓ | - | - | - | Cancel an issued invoice |
Invoice.count | read | ✓ | - | - | - | Count invoices |
Invoice.create | create | ✓ | - | - | - | Create invoices |
Invoice.deleteBy | delete | ✓ | - | - | - | Batch delete invoices |
Invoice.deleteById | delete | ✓ | - | - | - | Delete invoices by ID |
Invoice.find | read | ✓ | - | - | - | List invoices |
Invoice.findById | read | ✓ | - | - | - | Get invoices by ID |
Invoice.findByOrder | read | ✓ | - | - | - | Get invoice for a specific order |
Invoice.findOne | read | ✓ | - | - | - | Find one invoices |
Invoice.getHistory | read | ✓ | - | - | - | Get audit trace history for an invoice |
Invoice.issue | create | ✓ | - | - | - | Issue invoices for one or more orders |
Invoice.updateBy | update | ✓ | - | - | - | Update invoices by where filter |
Invoice.updateById | update | ✓ | - | - | - | Update invoices by ID |
InvoiceConfigMapping.count | read | ✓ | - | - | - | Count invoice config mappings |
InvoiceConfigMapping.create | create | ✓ | - | - | - | Create invoice config mappings |
InvoiceConfigMapping.deleteBy | delete | ✓ | - | - | - | Batch delete invoice config mappings |
InvoiceConfigMapping.deleteById | delete | ✓ | - | - | - | Delete invoice config mappings by ID |
InvoiceConfigMapping.find | read | ✓ | - | - | - | List invoice config mappings |
InvoiceConfigMapping.findById | read | ✓ | - | - | - | Get invoice config mappings by ID |
InvoiceConfigMapping.findOne | read | ✓ | - | - | - | Find one invoice config mappings |
InvoiceConfigMapping.updateBy | update | ✓ | - | - | - | Update invoice config mappings by where filter |
InvoiceConfigMapping.updateById | update | ✓ | - | - | - | Update invoice config mappings by ID |
InvoiceOnboarding.invoiceTypes | read | ✓ | - | - | ✓ | Get available invoice types filtered by merchant profile |
InvoiceOnboarding.saleChannels | read | ✓ | - | - | ✓ | List sale channels with their current invoice config mapping status |
InvoiceOnboarding.skipStep | update | ✓ | - | - | - | Mark a skippable wizard step as deferred |
InvoiceOnboarding.status | read | ✓ | - | - | ✓ | Get onboarding wizard state for a merchant |
InvoiceOnboarding.unskipStep | update | ✓ | - | - | - | Restore a previously skipped wizard step to incomplete |
InvoiceProvider.count | read | ✓ | - | - | - | Count invoice providers |
InvoiceProvider.create | create | ✓ | - | - | - | Create invoice providers |
InvoiceProvider.deleteBy | delete | ✓ | - | - | - | Batch delete invoice providers |
InvoiceProvider.deleteById | delete | ✓ | - | - | - | Delete invoice providers by ID |
InvoiceProvider.find | read | ✓ | - | - | - | List invoice providers |
InvoiceProvider.findById | read | ✓ | - | - | - | Get invoice providers by ID |
InvoiceProvider.findOne | read | ✓ | - | - | - | Find one invoice providers |
InvoiceProvider.invoiceTypes | read | ✓ | - | - | - | Get available invoice types from VNPAY for a provider |
InvoiceProvider.registerWebhook | update | ✓ | - | - | - | Register webhook for an invoice provider |
InvoiceProvider.unregisterWebhook | update | ✓ | - | - | - | Unregister webhook for an invoice provider |
InvoiceProvider.updateBy | update | ✓ | - | - | - | Update invoice providers by where filter |
InvoiceProvider.updateById | update | ✓ | - | - | - | Update invoice providers by ID |
InvoiceProviderConfig.count | read | ✓ | - | - | - | Count invoice provider configs |
InvoiceProviderConfig.create | create | ✓ | - | - | - | Create invoice provider configs |
InvoiceProviderConfig.deleteBy | delete | ✓ | - | - | - | Batch delete invoice provider configs |
InvoiceProviderConfig.deleteById | delete | ✓ | - | - | - | Delete invoice provider configs by ID |
InvoiceProviderConfig.find | read | ✓ | - | - | - | List invoice provider configs |
InvoiceProviderConfig.findById | read | ✓ | - | - | - | Get invoice provider configs by ID |
InvoiceProviderConfig.findOne | read | ✓ | - | - | - | Find one invoice provider configs |
InvoiceProviderConfig.test | read | ✓ | - | - | - | Test IIAPI provider connectivity for a config |
InvoiceProviderConfig.updateBy | update | ✓ | - | - | - | Update invoice provider configs by where filter |
InvoiceProviderConfig.updateById | update | ✓ | - | - | - | Update invoice provider configs by ID |
InvoiceRequest.attachBuyerInfo | update | ✓ | - | - | - | Attach or update buyer info and invoice config for a sale order |
InvoiceRequest.findByOrderId | read | ✓ | - | - | - | Get buyer info for an order |
InvoiceVnAddress.sync | update | ✓ | - | - | - | Sync VN provinces and communes from the upstream address-kit feed. |
MerchantInvoiceProfile.count | read | ✓ | - | - | - | Count merchant invoice profiles |
MerchantInvoiceProfile.create | create | ✓ | - | - | - | Create merchant invoice profiles |
MerchantInvoiceProfile.deleteBy | delete | ✓ | - | - | - | Batch delete merchant invoice profiles |
MerchantInvoiceProfile.deleteById | delete | ✓ | - | - | - | Delete merchant invoice profiles by ID |
MerchantInvoiceProfile.enroll | create | ✓ | - | - | - | Enroll a branch merchant under an HQ merchant invoice profile |
MerchantInvoiceProfile.find | read | ✓ | - | - | - | List merchant invoice profiles |
MerchantInvoiceProfile.findById | read | ✓ | - | - | - | Get merchant invoice profiles by ID |
MerchantInvoiceProfile.findOne | read | ✓ | - | - | - | Find one merchant invoice profiles |
MerchantInvoiceProfile.inviteBranch | update | ✓ | - | - | - | Invite a branch merchant to use this WHITELIST profile |
MerchantInvoiceProfile.revokeInvitation | delete | ✓ | - | - | - | Revoke an invitation or enrollment for a branch merchant |
MerchantInvoiceProfile.unenroll | delete | ✓ | - | - | - | Unenroll a branch merchant from its current profile |
MerchantInvoiceProfile.updateBy | update | ✓ | - | - | - | Update merchant invoice profiles by where filter |
MerchantInvoiceProfile.updateById | update | ✓ | - | - | - | Update merchant invoice profiles by ID |
TaxInfo.count | read | ✓ | - | - | - | Count tax info |
TaxInfo.create | create | ✓ | - | - | - | Create tax info |
TaxInfo.deleteBy | delete | ✓ | - | - | - | Batch delete tax info |
TaxInfo.deleteById | delete | ✓ | - | - | - | Delete tax info by ID |
TaxInfo.find | read | ✓ | - | - | - | List tax info |
TaxInfo.findById | read | ✓ | - | - | - | Get tax info by ID |
TaxInfo.findOne | read | ✓ | - | - | - | Find one tax info |
TaxInfo.resolve | read | ✓ | - | - | - | Resolve tax info by tax code |
TaxInfo.sync | update | ✓ | - | - | - | Create or update merchant tax info |
TaxInfo.updateBy | update | ✓ | - | - | - | Update tax info by where filter |
TaxInfo.updateById | update | ✓ | - | - | - | Update tax info by ID |
Ledger - 27 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Ledger.amend | create | ✓ | - | - | - | Create an amendment version |
Ledger.batchGenerate | create | ✓ | - | - | - | Generate multiple ledger documents |
Ledger.batchRetry | update | ✓ | - | - | - | Retry failed ledger batch |
Ledger.batchStatus | read | ✓ | - | - | - | Check batch ledger status |
Ledger.checkExists | read | ✓ | - | - | - | Check ledger exists |
Ledger.count | read | ✓ | - | - | - | Count ledger |
Ledger.create | create | ✓ | - | - | - | Create ledger |
Ledger.deleteBy | delete | ✓ | - | - | - | Batch delete ledger |
Ledger.deleteById | delete | ✓ | - | - | - | Delete ledger by ID |
Ledger.download | read | ✓ | - | - | - | Download ledger document |
Ledger.finalize | update | ✓ | - | - | - | Finalize a draft ledger |
Ledger.find | read | ✓ | - | - | - | List ledger |
Ledger.findById | read | ✓ | - | - | - | Get ledger by ID |
Ledger.findOne | read | ✓ | - | - | - | Find one ledger |
Ledger.generate | create | ✓ | - | - | - | Generate ledger document |
Ledger.regenerate | update | ✓ | - | - | - | Force regenerate a DRAFT ledger file |
Ledger.retry | update | ✓ | - | - | - | Retry failed ledger generation |
Ledger.revise | create | ✓ | - | - | - | Create a revision of a finalized ledger |
Ledger.search | read | ✓ | - | - | - | Search ledger with paging |
Ledger.snapshot | update | ✓ | - | - | - | Pull or view ledger snapshot |
Ledger.status | read | ✓ | - | - | - | Check ledger status |
Ledger.updateBy | update | ✓ | - | - | - | Update ledger by where filter |
Ledger.updateById | update | ✓ | - | - | - | Update ledger by ID |
MerchantLedgerConfig.confirm | update | ✓ | - | - | - | Confirm merchant ledger config |
MerchantLedgerConfig.create | create | ✓ | - | - | - | Create a new merchant ledger config |
MerchantLedgerConfig.read | read | ✓ | - | - | - | Read merchant ledger config |
MerchantLedgerConfig.update | update | ✓ | - | - | - | Update merchant ledger config |
Licensing - 42 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Activation.count | read | ✓ | - | - | ✓ | Count activations |
Activation.create | create | ✓ | - | - | - | Create activations |
Activation.deleteBy | delete | ✓ | - | - | - | Batch delete activations |
Activation.deleteById | delete | ✓ | - | - | - | Delete activations by ID |
Activation.find | read | ✓ | - | - | ✓ | List activations |
Activation.findById | read | ✓ | - | - | ✓ | Get activations by ID |
Activation.findOne | read | ✓ | - | - | ✓ | Find one activations |
Activation.updateBy | update | ✓ | - | - | - | Update activations by where filter |
Activation.updateById | update | ✓ | - | - | - | Update activations by ID |
License.count | read | ✓ | - | - | ✓ | Count licenses |
License.create | create | ✓ | - | - | - | Create licenses |
License.deleteBy | delete | ✓ | - | - | - | Batch delete licenses |
License.deleteById | delete | ✓ | - | - | - | Delete licenses by ID |
License.find | read | ✓ | - | - | ✓ | List licenses |
License.findById | read | ✓ | - | - | ✓ | Get licenses by ID |
License.findOne | read | ✓ | - | - | ✓ | Find one licenses |
License.issue | create | ✓ | - | - | - | Issue a new license |
License.issueFreeTrial | create | ✓ | - | - | - | Self-service issue of a free-trial license for the authenticated user |
License.reinstate | update | ✓ | - | - | - | Reinstate license |
License.renew | update | ✓ | - | - | - | Renew license |
License.revoke | update | ✓ | - | - | - | Revoke license |
License.suspend | update | ✓ | - | - | - | Suspend license |
License.updateBy | update | ✓ | - | - | - | Update licenses by where filter |
License.updateById | update | ✓ | - | - | - | Update licenses by ID |
Policy.count | read | ✓ | - | - | ✓ | Count policies |
Policy.create | create | ✓ | - | - | - | Create policies |
Policy.deleteBy | delete | ✓ | - | - | - | Batch delete policies |
Policy.deleteById | delete | ✓ | - | - | - | Delete policies by ID |
Policy.find | read | ✓ | - | - | ✓ | List policies |
Policy.findById | read | ✓ | - | - | ✓ | Get policies by ID |
Policy.findOne | read | ✓ | - | - | ✓ | Find one policies |
Policy.updateBy | update | ✓ | - | - | - | Update policies by where filter |
Policy.updateById | update | ✓ | - | - | - | Update policies by ID |
PolicyFeature.count | read | ✓ | - | - | ✓ | Count policy features |
PolicyFeature.create | create | ✓ | - | - | - | Create policy features |
PolicyFeature.deleteBy | delete | ✓ | - | - | - | Batch delete policy features |
PolicyFeature.deleteById | delete | ✓ | - | - | - | Delete policy features by ID |
PolicyFeature.find | read | ✓ | - | - | ✓ | List policy features |
PolicyFeature.findById | read | ✓ | - | - | ✓ | Get policy features by ID |
PolicyFeature.findOne | read | ✓ | - | - | ✓ | Find one policy features |
PolicyFeature.updateBy | update | ✓ | - | - | - | Update policy features by where filter |
PolicyFeature.updateById | update | ✓ | - | - | - | Update policy features by ID |
Outreach - 18 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Inquiry.count | read | ✓ | - | - | - | Count inquiries |
Inquiry.create | create | ✓ | - | - | - | Create inquiries |
Inquiry.deleteBy | delete | ✓ | - | - | - | Batch delete inquiries |
Inquiry.deleteById | delete | ✓ | - | - | - | Delete inquiries by ID |
Inquiry.find | read | ✓ | - | - | - | List inquiries |
Inquiry.findById | read | ✓ | - | - | - | Get inquiries by ID |
Inquiry.findOne | read | ✓ | - | - | - | Find one inquiries |
Inquiry.updateBy | update | ✓ | - | - | - | Update inquiries by where filter |
Inquiry.updateById | update | ✓ | - | - | - | Update inquiries by ID |
Subscriber.count | read | ✓ | - | - | - | Count subscribers |
Subscriber.create | create | ✓ | - | - | - | Create subscribers |
Subscriber.deleteBy | delete | ✓ | - | - | - | Batch delete subscribers |
Subscriber.deleteById | delete | ✓ | - | - | - | Delete subscribers by ID |
Subscriber.find | read | ✓ | - | - | - | List subscribers |
Subscriber.findById | read | ✓ | - | - | - | Get subscribers by ID |
Subscriber.findOne | read | ✓ | - | - | - | Find one subscribers |
Subscriber.updateBy | update | ✓ | - | - | - | Update subscribers by where filter |
Subscriber.updateById | update | ✓ | - | - | - | Update subscribers by ID |
Payment - 46 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Payment.cancel | execute | ✓ | - | - | - | Cancel payment/checkout |
Payment.checkout | execute | ✓ | - | - | - | Make payment/checkout |
Payment.confirm | execute | ✓ | - | - | - | Confirm system payment |
Payment.refund | execute | ✓ | - | - | - | Refund a completed payment |
Payment.verify | execute | ✓ | - | - | - | Verify payment attempt status |
PaymentAttempt.count | read | ✓ | - | - | - | Count payment attempts |
PaymentAttempt.create | create | ✓ | ✓ | - | - | Create payment attempts |
PaymentAttempt.deleteBy | delete | ✓ | ✓ | - | - | Batch delete payment attempts |
PaymentAttempt.deleteById | delete | ✓ | ✓ | - | - | Delete payment attempts by ID |
PaymentAttempt.find | read | ✓ | - | - | - | List payment attempts |
PaymentAttempt.findById | read | ✓ | - | - | - | Get payment attempts by ID |
PaymentAttempt.findOne | read | ✓ | - | - | - | Find one payment attempts |
PaymentAttempt.updateById | update | ✓ | ✓ | - | - | Update payment attempts by ID |
PaymentResult.count | read | ✓ | - | - | - | Count payment results |
PaymentResult.create | create | ✓ | ✓ | - | - | Create payment results |
PaymentResult.deleteBy | delete | ✓ | ✓ | - | - | Batch delete payment results |
PaymentResult.deleteById | delete | ✓ | ✓ | - | - | Delete payment results by ID |
PaymentResult.find | read | ✓ | - | - | - | List payment results |
PaymentResult.findById | read | ✓ | - | - | - | Get payment results by ID |
PaymentResult.findOne | read | ✓ | - | - | - | Find one payment results |
PaymentResult.updateById | update | ✓ | ✓ | - | - | Update payment results by ID |
Transaction.count | read | ✓ | - | - | - | Count transactions |
Transaction.create | create | ✓ | ✓ | - | - | Create transactions |
Transaction.deleteBy | delete | ✓ | ✓ | - | - | Batch delete transactions |
Transaction.deleteById | delete | ✓ | ✓ | - | - | Delete transactions by ID |
Transaction.find | read | ✓ | - | - | - | List transactions |
Transaction.findById | read | ✓ | - | - | - | Get transactions by ID |
Transaction.findOne | read | ✓ | - | - | - | Find one transactions |
Transaction.updateById | update | ✓ | ✓ | - | - | Update transactions by ID |
TransactionItem.count | read | ✓ | - | - | - | Count transaction items |
TransactionItem.create | create | ✓ | ✓ | - | - | Create transaction items |
TransactionItem.deleteBy | delete | ✓ | ✓ | - | - | Batch delete transaction items |
TransactionItem.deleteById | delete | ✓ | ✓ | - | - | Delete transaction items by ID |
TransactionItem.find | read | ✓ | - | - | - | List transaction items |
TransactionItem.findById | read | ✓ | - | - | - | Get transaction items by ID |
TransactionItem.findOne | read | ✓ | - | - | - | Find one transaction items |
TransactionItem.updateById | update | ✓ | ✓ | - | - | Update transaction items by ID |
WebhookConfig.count | read | ✓ | - | - | - | Count webhook configs |
WebhookConfig.create | create | ✓ | ✓ | - | - | Create webhook configs |
WebhookConfig.deleteBy | delete | ✓ | ✓ | - | - | Batch delete webhook configs |
WebhookConfig.deleteById | delete | ✓ | ✓ | - | - | Delete webhook configs by ID |
WebhookConfig.find | read | ✓ | - | - | - | List webhook configs |
WebhookConfig.findById | read | ✓ | - | - | - | Get webhook configs by ID |
WebhookConfig.findOne | read | ✓ | - | - | - | Find one webhook configs |
WebhookConfig.updateBy | update | ✓ | ✓ | - | - | Update webhook configs by where filter |
WebhookConfig.updateById | update | ✓ | ✓ | - | - | Update webhook configs by ID |
Pricing - 91 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
Cost.count | read | ✓ | - | - | - | Count costs |
Cost.create | create | ✓ | - | - | - | Create costs |
Cost.deleteBy | delete | ✓ | - | - | - | Batch delete costs |
Cost.deleteById | delete | ✓ | - | - | - | Delete costs by ID |
Cost.find | read | ✓ | - | - | - | List costs |
Cost.findById | read | ✓ | - | - | - | Get costs by ID |
Cost.findOne | read | ✓ | - | - | - | Find one costs |
Cost.readCurrent | read | ✓ | - | - | - | Read current cost |
Cost.updateBy | update | ✓ | - | - | - | Update costs by where filter |
Cost.updateById | update | ✓ | - | - | - | Update costs by ID |
Cost.updateCurrent | update | ✓ | - | - | - | Update current cost |
Fare.addChild | create | ✓ | - | - | - | Add child fare to existing parent |
Fare.count | read | ✓ | - | - | - | Count fares |
Fare.create | create | ✓ | - | - | - | Create fares |
Fare.createGroup | create | ✓ | - | - | - | Create fare group with parent and children |
Fare.deleteBy | delete | ✓ | - | - | - | Batch delete fares |
Fare.deleteById | delete | ✓ | - | - | - | Delete fares by ID |
Fare.find | read | ✓ | - | - | - | List fares |
Fare.findById | read | ✓ | - | - | - | Get fares by ID |
Fare.findOne | read | ✓ | - | - | - | Find one fares |
Fare.updateBy | update | ✓ | - | - | - | Update fares by where filter |
Fare.updateById | update | ✓ | - | - | - | Update fares by ID |
FareSet.changeStatus | update | ✓ | - | - | - | Change fare set status |
FareSet.count | read | ✓ | - | - | - | Count fare sets |
FareSet.create | create | ✓ | - | - | - | Create fare sets |
FareSet.deleteBy | delete | ✓ | - | - | - | Batch delete fare sets |
FareSet.deleteById | delete | ✓ | - | - | - | Delete fare sets by ID |
FareSet.find | read | ✓ | - | - | - | List fare sets |
FareSet.findById | read | ✓ | - | - | - | Get fare sets by ID |
FareSet.findOne | read | ✓ | - | - | - | Find one fare sets |
FareSet.updateBy | update | ✓ | - | - | - | Update fare sets by where filter |
FareSet.updateById | update | ✓ | - | - | - | Update fare sets by ID |
Promotion.count | read | ✓ | - | - | - | Count promotions |
Promotion.create | create | ✓ | - | - | - | Create promotions |
Promotion.createAggregate | create | ✓ | - | - | - | Create promotion with methods and rules |
Promotion.deleteBy | delete | ✓ | - | - | - | Batch delete promotions |
Promotion.deleteById | delete | ✓ | - | - | - | Delete promotions by ID |
Promotion.find | read | ✓ | - | - | - | List promotions |
Promotion.findById | read | ✓ | - | - | - | Get promotions by ID |
Promotion.findOne | read | ✓ | - | - | - | Find one promotions |
Promotion.updateAggregate | update | ✓ | - | - | - | Update promotion with methods and rules |
Promotion.updateBy | update | ✓ | - | - | - | Update promotions by where filter |
Promotion.updateById | update | ✓ | - | - | - | Update promotions by ID |
PromotionMethod.count | read | ✓ | - | - | - | Count promotion methods |
PromotionMethod.create | create | ✓ | - | - | - | Create promotion methods |
PromotionMethod.deleteBy | delete | ✓ | - | - | - | Batch delete promotion methods |
PromotionMethod.deleteById | delete | ✓ | - | - | - | Delete promotion methods by ID |
PromotionMethod.find | read | ✓ | - | - | - | List promotion methods |
PromotionMethod.findById | read | ✓ | - | - | - | Get promotion methods by ID |
PromotionMethod.findOne | read | ✓ | - | - | - | Find one promotion methods |
PromotionMethod.updateBy | update | ✓ | - | - | - | Update promotion methods by where filter |
PromotionMethod.updateById | update | ✓ | - | - | - | Update promotion methods by ID |
Rule.count | read | ✓ | - | - | - | Count rules |
Rule.create | create | ✓ | - | - | - | Create rules |
Rule.deleteBy | delete | ✓ | - | - | - | Batch delete rules |
Rule.deleteById | delete | ✓ | - | - | - | Delete rules by ID |
Rule.find | read | ✓ | - | - | - | List rules |
Rule.findById | read | ✓ | - | - | - | Get rules by ID |
Rule.findOne | read | ✓ | - | - | - | Find one rules |
Rule.updateBy | update | ✓ | - | - | - | Update rules by where filter |
Rule.updateById | update | ✓ | - | - | - | Update rules by ID |
Simulation.calculate | create | ✓ | - | - | - | Calculate price simulation |
SimulationV2.calculate | create | ✓ | - | - | - | Calculate price simulation using core-v2 fare + tax calculators |
Tax.count | read | ✓ | - | - | - | Count taxes |
Tax.create | create | ✓ | - | - | - | Create taxes |
Tax.deleteBy | delete | ✓ | - | - | - | Batch delete taxes |
Tax.deleteById | delete | ✓ | - | - | - | Delete taxes by ID |
Tax.find | read | ✓ | - | - | - | List taxes |
Tax.findById | read | ✓ | - | - | - | Get taxes by ID |
Tax.findOne | read | ✓ | - | - | - | Find one taxes |
Tax.updateBy | update | ✓ | - | - | - | Update taxes by where filter |
Tax.updateById | update | ✓ | - | - | - | Update taxes by ID |
TaxSet.count | read | ✓ | - | - | - | Count tax sets |
TaxSet.create | create | ✓ | - | - | - | Create tax sets |
TaxSet.deleteBy | delete | ✓ | - | - | - | Batch delete tax sets |
TaxSet.deleteById | delete | ✓ | - | - | - | Delete tax sets by ID |
TaxSet.find | read | ✓ | - | - | - | List tax sets |
TaxSet.findById | read | ✓ | - | - | - | Get tax sets by ID |
TaxSet.findOne | read | ✓ | - | - | - | Find one tax sets |
TaxSet.updateAggregate | update | ✓ | - | - | - | Update TaxSet with its Tax array (create/update/delete) |
TaxSet.updateBy | update | ✓ | - | - | - | Update tax sets by where filter |
TaxSet.updateById | update | ✓ | - | - | - | Update tax sets by ID |
TaxType.count | read | ✓ | - | - | - | Count tax types |
TaxType.create | create | ✓ | - | - | - | Create tax types |
TaxType.deleteBy | delete | ✓ | - | - | - | Batch delete tax types |
TaxType.deleteById | delete | ✓ | - | - | - | Delete tax types by ID |
TaxType.find | read | ✓ | - | - | - | List tax types |
TaxType.findById | read | ✓ | - | - | - | Get tax types by ID |
TaxType.findOne | read | ✓ | - | - | - | Find one tax types |
TaxType.updateBy | update | ✓ | - | - | - | Update tax types by where filter |
TaxType.updateById | update | ✓ | - | - | - | Update tax types by ID |
Sale - 156 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
AllocationUsage.availableUnits | read | ✓ | ✓ | - | - | View unit availability by zone |
AllocationUsage.availableZones | read | ✓ | ✓ | - | - | View zone availability summary |
AllocationUsage.cancel | update | ✓ | ✓ | ✓ | - | Cancel a table usage |
AllocationUsage.cancelBatch | update | ✓ | ✓ | ✓ | - | Cancel multiple table usages |
AllocationUsage.complete | update | ✓ | ✓ | ✓ | - | Free a table by completing its usage |
AllocationUsage.completeBatch | update | ✓ | ✓ | ✓ | - | Free tables by completing its usage |
AllocationUsage.count | read | ✓ | ✓ | - | - | Count allocation usages |
AllocationUsage.create | create | ✓ | ✓ | ✓ | - | Create allocation usages |
AllocationUsage.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete allocation usages |
AllocationUsage.deleteById | delete | ✓ | ✓ | ✓ | - | Delete allocation usages by ID |
AllocationUsage.find | read | ✓ | ✓ | - | - | List allocation usages |
AllocationUsage.findById | read | ✓ | ✓ | - | - | Get allocation usages by ID |
AllocationUsage.findOne | read | ✓ | ✓ | - | - | Find one allocation usages |
AllocationUsage.reassign | update | ✓ | ✓ | ✓ | - | Move orders from one zone to another |
AllocationUsage.updateBy | update | ✓ | ✓ | ✓ | - | Update allocation usages by where filter |
AllocationUsage.updateById | update | ✓ | ✓ | ✓ | - | Update allocation usages by ID |
Customer.count | read | ✓ | ✓ | ✓ | - | Count customers |
Customer.count | read | ✓ | ✓ | ✓ | - | Count customers |
Customer.create | create | ✓ | ✓ | ✓ | - | Create customers |
Customer.create | create | ✓ | ✓ | ✓ | - | Create customers |
Customer.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete customers |
Customer.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete customers |
Customer.deleteById | delete | ✓ | ✓ | ✓ | - | Delete customers by ID |
Customer.deleteById | delete | ✓ | ✓ | ✓ | - | Delete customers by ID |
Customer.find | read | ✓ | ✓ | ✓ | - | List customers |
Customer.find | read | ✓ | ✓ | ✓ | - | List customers |
Customer.findById | read | ✓ | ✓ | ✓ | - | Get customers by ID |
Customer.findById | read | ✓ | ✓ | ✓ | - | Get customers by ID |
Customer.findOne | read | ✓ | ✓ | ✓ | - | Find one customers |
Customer.findOne | read | ✓ | ✓ | ✓ | - | Find one customers |
Customer.linkUser | update | ✓ | ✓ | ✓ | - | Link customer to user |
Customer.promoteToUser | update | ✓ | ✓ | ✓ | - | Promote customer to a full user account |
Customer.promoteToUser | create | ✓ | ✓ | ✓ | - | Promote customer to a full user account |
Customer.unlinkUser | update | ✓ | ✓ | ✓ | - | Unlink customer from user |
Customer.updateBy | update | ✓ | ✓ | ✓ | - | Update customers by where filter |
Customer.updateBy | update | ✓ | ✓ | ✓ | - | Update customers by where filter |
Customer.updateById | update | ✓ | ✓ | ✓ | - | Update customers by ID |
Customer.updateById | update | ✓ | ✓ | ✓ | - | Update customers by ID |
KitchenStation.count | read | ✓ | ✓ | - | - | Count kitchen station |
KitchenStation.create | create | ✓ | ✓ | ✓ | - | Create kitchen station |
KitchenStation.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete kitchen station |
KitchenStation.deleteById | delete | ✓ | ✓ | ✓ | - | Delete kitchen station by ID |
KitchenStation.find | read | ✓ | ✓ | - | - | List kitchen station |
KitchenStation.findById | read | ✓ | ✓ | - | - | Get kitchen station by ID |
KitchenStation.findOne | read | ✓ | ✓ | - | - | Find one kitchen station |
KitchenStation.updateBy | update | ✓ | ✓ | ✓ | - | Update kitchen station by where filter |
KitchenStation.updateById | update | ✓ | ✓ | ✓ | - | Update kitchen station by ID |
KitchenTicket.count | read | ✓ | ✓ | - | - | Count kitchen ticket |
KitchenTicket.create | create | ✓ | ✓ | ✓ | - | Create kitchen ticket |
KitchenTicket.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete kitchen ticket |
KitchenTicket.deleteById | delete | ✓ | ✓ | ✓ | - | Delete kitchen ticket by ID |
KitchenTicket.find | read | ✓ | ✓ | - | - | List kitchen ticket |
KitchenTicket.findById | read | ✓ | ✓ | - | - | Get kitchen ticket by ID |
KitchenTicket.findOne | read | ✓ | ✓ | - | - | Find one kitchen ticket |
KitchenTicket.rush | update | ✓ | ✓ | ✓ | - | Mark ticket as rush |
KitchenTicket.send | create | ✓ | ✓ | ✓ | - | Send items to kitchen |
KitchenTicket.updateBy | update | ✓ | ✓ | ✓ | - | Update kitchen ticket by where filter |
KitchenTicket.updateById | update | ✓ | ✓ | ✓ | - | Update kitchen ticket by ID |
KitchenTicket.updateTicketStatus | update | ✓ | ✓ | ✓ | - | Bulk update kitchen ticket status (KDS) |
KitchenTicket.void | delete | ✓ | ✓ | ✓ | - | Void a kitchen ticket |
KitchenTicketItem.count | read | ✓ | ✓ | - | - | Count kitchen ticket item |
KitchenTicketItem.create | create | ✓ | ✓ | ✓ | - | Create kitchen ticket item |
KitchenTicketItem.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete kitchen ticket item |
KitchenTicketItem.deleteById | delete | ✓ | ✓ | ✓ | - | Delete kitchen ticket item by ID |
KitchenTicketItem.find | read | ✓ | ✓ | - | - | List kitchen ticket item |
KitchenTicketItem.findById | read | ✓ | ✓ | - | - | Get kitchen ticket item by ID |
KitchenTicketItem.findOne | read | ✓ | ✓ | - | - | Find one kitchen ticket item |
KitchenTicketItem.updateBy | update | ✓ | ✓ | ✓ | - | Update kitchen ticket item by where filter |
KitchenTicketItem.updateById | update | ✓ | ✓ | ✓ | - | Update kitchen ticket item by ID |
KitchenTicketItem.updateItemStatus | update | ✓ | ✓ | ✓ | - | Update kitchen ticket item status (KDS) |
KitchenTicketItem.voidItem | delete | ✓ | ✓ | ✓ | - | Void a kitchen ticket item |
PointTransaction.count | read | ✓ | ✓ | - | - | Count point transactions |
PointTransaction.create | create | ✓ | ✓ | ✓ | - | Create point transactions |
PointTransaction.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete point transactions |
PointTransaction.deleteById | delete | ✓ | ✓ | ✓ | - | Delete point transactions by ID |
PointTransaction.find | read | ✓ | ✓ | - | - | List point transactions |
PointTransaction.findById | read | ✓ | ✓ | - | - | Get point transactions by ID |
PointTransaction.findOne | read | ✓ | ✓ | - | - | Find one point transactions |
PointTransaction.updateBy | update | ✓ | ✓ | ✓ | - | Update point transactions by where filter |
PointTransaction.updateById | update | ✓ | ✓ | ✓ | - | Update point transactions by ID |
PosSession.close | update | ✓ | ✓ | ✓ | - | Close an open POS session |
PosSession.count | read | ✓ | ✓ | - | - | Count pos sessions |
PosSession.create | create | ✓ | ✓ | ✓ | - | Create pos sessions |
PosSession.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete pos sessions |
PosSession.deleteById | delete | ✓ | ✓ | ✓ | - | Delete pos sessions by ID |
PosSession.find | read | ✓ | ✓ | - | - | List pos sessions |
PosSession.findById | read | ✓ | ✓ | - | - | Get pos sessions by ID |
PosSession.findOne | read | ✓ | ✓ | - | - | Find one pos sessions |
PosSession.getCurrent | read | ✓ | ✓ | - | - | Get current open POS session by device |
PosSession.getXReport | read | ✓ | ✓ | - | - | Generate live in-shift report snapshot |
PosSession.getZReport | read | ✓ | ✓ | - | - | Get aggregated close-shift report |
PosSession.list | read | ✓ | ✓ | - | - | List POS sessions by merchant |
PosSession.open | create | ✓ | ✓ | ✓ | - | Open a new POS session |
PosSession.recordCashMovement | update | ✓ | ✓ | ✓ | - | Record pay-in/pay-out/safe-drop |
PosSession.updateBy | update | ✓ | ✓ | ✓ | - | Update pos sessions by where filter |
PosSession.updateById | update | ✓ | ✓ | ✓ | - | Update pos sessions by ID |
PurchaseReport.summary | read | ✓ | ✓ | - | - | View aggregated daily purchase summary |
Reservation.cancel | update | ✓ | ✓ | ✓ | - | Cancel a reservation |
Reservation.checkIn | update | ✓ | ✓ | ✓ | - | Check in a guest for their reservation |
Reservation.count | read | ✓ | ✓ | - | - | Count reservations |
Reservation.create | create | ✓ | ✓ | ✓ | - | Create reservations |
Reservation.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete reservations |
Reservation.deleteById | delete | ✓ | ✓ | ✓ | - | Delete reservations by ID |
Reservation.find | read | ✓ | ✓ | - | - | List reservations |
Reservation.findById | read | ✓ | ✓ | - | - | Get reservations by ID |
Reservation.findOne | read | ✓ | ✓ | - | - | Find one reservations |
Reservation.updateBy | update | ✓ | ✓ | ✓ | - | Update reservations by where filter |
Reservation.updateById | update | ✓ | ✓ | ✓ | - | Update reservations by ID |
SaleCheck.count | read | ✓ | ✓ | - | - | Count sale check |
SaleCheck.create | create | ✓ | ✓ | ✓ | - | Create sale check |
SaleCheck.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete sale check |
SaleCheck.deleteById | delete | ✓ | ✓ | ✓ | - | Delete sale check by ID |
SaleCheck.find | read | ✓ | ✓ | - | - | List checks |
SaleCheck.findById | read | ✓ | ✓ | - | - | View check detail |
SaleCheck.findOne | read | ✓ | ✓ | - | - | Find one sale check |
SaleCheck.history | read | ✓ | ✓ | - | - | View check history |
SaleCheck.mergeChecks | update | ✓ | ✓ | ✓ | - | Merge checks together |
SaleCheck.rollback | delete | ✓ | ✓ | ✓ | - | Rollback all checks |
SaleCheck.split | create | ✓ | ✓ | ✓ | - | Split order into checks |
SaleCheck.splitEqual | create | ✓ | ✓ | ✓ | - | Auto-split equally |
SaleCheck.update | update | ✓ | ✓ | ✓ | - | Update check assignments |
SaleCheck.updateBy | update | ✓ | ✓ | ✓ | - | Update sale check by where filter |
SaleCheck.updateById | update | ✓ | ✓ | ✓ | - | Update sale check by ID |
SaleOrder.addSaleOrderItem | update | ✓ | ✓ | ✓ | - | Add item to sale order |
SaleOrder.batchAddSaleOrderItems | update | ✓ | ✓ | ✓ | - | Batch add items to sale order |
SaleOrder.cancel | update | ✓ | ✓ | ✓ | - | Cancel sale order |
SaleOrder.checkout | update | ✓ | ✓ | ✓ | - | Checkout sale order |
SaleOrder.clearItems | delete | ✓ | ✓ | ✓ | - | Clear items from sale order |
SaleOrder.count | read | ✓ | ✓ | - | - | Count sale orders |
SaleOrder.create | create | ✓ | ✓ | ✓ | - | Create sale orders |
SaleOrder.createDraft | create | ✓ | ✓ | ✓ | - | Create draft sale order |
SaleOrder.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete sale orders |
SaleOrder.deleteById | delete | ✓ | ✓ | ✓ | - | Delete sale orders by ID |
SaleOrder.find | read | ✓ | ✓ | - | - | List sale orders |
SaleOrder.findById | read | ✓ | ✓ | - | - | Get sale orders by ID |
SaleOrder.findOne | read | ✓ | ✓ | - | - | Find one sale orders |
SaleOrder.mergeOrders | update | ✓ | ✓ | ✓ | - | Merge orders together |
SaleOrder.previewPricing | read | ✓ | ✓ | - | - | Preview sale order pricing |
SaleOrder.revert | update | ✓ | ✓ | ✓ | - | Revert sale order to draft |
SaleOrder.rollbackMerge | delete | ✓ | ✓ | ✓ | - | Rollback order merge |
SaleOrder.splitOrder | create | ✓ | ✓ | ✓ | - | Split order into multiple orders |
SaleOrder.updateBy | update | ✓ | ✓ | ✓ | - | Update sale orders by where filter |
SaleOrder.updateById | update | ✓ | ✓ | ✓ | - | Update sale orders by ID |
SaleOrderItem.count | read | ✓ | ✓ | - | - | Count sale order items |
SaleOrderItem.create | create | ✓ | ✓ | ✓ | - | Create sale order items |
SaleOrderItem.deleteBy | delete | ✓ | ✓ | ✓ | - | Batch delete sale order items |
SaleOrderItem.deleteById | delete | ✓ | ✓ | ✓ | - | Delete sale order items by ID |
SaleOrderItem.find | read | ✓ | ✓ | - | - | List sale order items |
SaleOrderItem.findById | read | ✓ | ✓ | - | - | Get sale order items by ID |
SaleOrderItem.findOne | read | ✓ | ✓ | - | - | Find one sale order items |
SaleOrderItem.updateBy | update | ✓ | ✓ | ✓ | - | Update sale order items by where filter |
SaleOrderItem.updateById | update | ✓ | ✓ | ✓ | - | Update sale order items by ID |
SalesReport.categories | read | ✓ | ✓ | - | - | View category-level sales aggregation |
SalesReport.categorySummary | read | ✓ | ✓ | - | - | View single category sales summary |
SalesReport.products | read | ✓ | ✓ | - | - | View product-level sales aggregation |
SalesReport.summary | read | ✓ | ✓ | - | - | View aggregated daily sales summary |
Signal - 6 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
WebSocketClient.broadcast | create | ✓ | - | - | - | Broadcast to all WebSocket clients |
WebSocketClient.disconnectClient | delete | ✓ | - | - | - | Disconnect WebSocket client |
WebSocketClient.getClientById | read | ✓ | - | - | - | Get WebSocket client by ID |
WebSocketClient.getClients | read | ✓ | - | - | - | List WebSocket clients |
WebSocketClient.sendToClient | create | ✓ | - | - | - | Send message to specific WebSocket client |
WebSocketClient.sendToRoom | create | ✓ | - | - | - | Send message to WebSocket room |
Taxation - 45 operations
| Code | Action | Owner | Cashier | Employee | Guest | Description |
|---|---|---|---|---|---|---|
TaxGroup.count | read | ✓ | - | - | - | Count tax groups |
TaxGroup.create | create | ✓ | - | - | - | Create tax groups |
TaxGroup.deleteBy | delete | ✓ | - | - | - | Batch delete tax groups |
TaxGroup.deleteById | delete | ✓ | - | - | - | Delete tax groups by ID |
TaxGroup.find | read | ✓ | - | - | - | List tax groups |
TaxGroup.findById | read | ✓ | - | - | - | Get tax groups by ID |
TaxGroup.findOne | read | ✓ | - | - | - | Find one tax groups |
TaxGroup.updateBy | update | ✓ | - | - | - | Update tax groups by where filter |
TaxGroup.updateById | update | ✓ | - | - | - | Update tax groups by ID |
TaxGroupItem.count | read | ✓ | - | - | - | Count tax group items |
TaxGroupItem.create | create | ✓ | - | - | - | Create tax group items |
TaxGroupItem.deleteBy | delete | ✓ | - | - | - | Batch delete tax group items |
TaxGroupItem.deleteById | delete | ✓ | - | - | - | Delete tax group items by ID |
TaxGroupItem.find | read | ✓ | - | - | - | List tax group items |
TaxGroupItem.findById | read | ✓ | - | - | - | Get tax group items by ID |
TaxGroupItem.findOne | read | ✓ | - | - | - | Find one tax group items |
TaxGroupItem.updateBy | update | ✓ | - | - | - | Update tax group items by where filter |
TaxGroupItem.updateById | update | ✓ | - | - | - | Update tax group items by ID |
VnAdministrativeUnit.count | read | ✓ | ✓ | ✓ | ✓ | Count VN administrative units |
VnAdministrativeUnit.create | create | ✓ | - | - | - | Create VN administrative units |
VnAdministrativeUnit.deleteBy | delete | ✓ | - | - | - | Batch delete VN administrative units |
VnAdministrativeUnit.deleteById | delete | ✓ | - | - | - | Delete VN administrative units by ID |
VnAdministrativeUnit.find | read | ✓ | ✓ | ✓ | ✓ | List VN administrative units |
VnAdministrativeUnit.findById | read | ✓ | ✓ | ✓ | ✓ | Get VN administrative units by ID |
VnAdministrativeUnit.findOne | read | ✓ | ✓ | ✓ | ✓ | Find one VN administrative units |
VnAdministrativeUnit.updateBy | update | ✓ | - | - | - | Update VN administrative units by where filter |
VnAdministrativeUnit.updateById | update | ✓ | - | - | - | Update VN administrative units by ID |
VnProvince.count | read | ✓ | ✓ | ✓ | ✓ | Count VN provinces |
VnProvince.create | create | ✓ | - | - | - | Create VN provinces |
VnProvince.deleteBy | delete | ✓ | - | - | - | Batch delete VN provinces |
VnProvince.deleteById | delete | ✓ | - | - | - | Delete VN provinces by ID |
VnProvince.find | read | ✓ | ✓ | ✓ | ✓ | List VN provinces |
VnProvince.findById | read | ✓ | ✓ | ✓ | ✓ | Get VN provinces by ID |
VnProvince.findOne | read | ✓ | ✓ | ✓ | ✓ | Find one VN provinces |
VnProvince.updateBy | update | ✓ | - | - | - | Update VN provinces by where filter |
VnProvince.updateById | update | ✓ | - | - | - | Update VN provinces by ID |
VnWard.count | read | ✓ | ✓ | ✓ | ✓ | Count VN wards |
VnWard.create | create | ✓ | - | - | - | Create VN wards |
VnWard.deleteBy | delete | ✓ | - | - | - | Batch delete VN wards |
VnWard.deleteById | delete | ✓ | - | - | - | Delete VN wards by ID |
VnWard.find | read | ✓ | ✓ | ✓ | ✓ | List VN wards |
VnWard.findById | read | ✓ | ✓ | ✓ | ✓ | Get VN wards by ID |
VnWard.findOne | read | ✓ | ✓ | ✓ | ✓ | Find one VN wards |
VnWard.updateBy | update | ✓ | - | - | - | Update VN wards by where filter |
VnWard.updateById | update | ✓ | - | - | - | Update VN wards by ID |