Permissions reference

The full list of 46 permission keys, what each one controls, and the default role matrix

OwnerManager

Pistonlog ships with four actor types — Owner, Manager, Reception and Technician — and 46 permission keys grouped by feature. This page is the source-of-truth reference: use it when designing a custom role or auditing what someone in your team can see.

The four actors

ActorHow it's set
OwnerThe user who created the company. One per company. Bypasses every permission check via a * wildcard.
ManagerDefault seeded role with every permission. Effectively the same as Owner for day-to-day work, but Owner-only things like billing stay locked.
ReceptionDefault seeded role for front-of-house: bookings, customers, payments, communication.
TechnicianDefault seeded role for the workshop floor: jobcards, inspections, parts.

You can also create your own custom roles per garage in Team Management and toggle permissions individually.

The 46 permission keys

Keys follow the {group}.{action} pattern.

Jobcards & workflow

KeyWhat it controls
jobcards.viewSee the jobcard list and detail pages
jobcards.createStart a new jobcard
jobcards.editEdit any field on a jobcard, including jobs/parts/labour
jobcards.deleteDelete a jobcard
workflow.viewSee the kanban / workflow board
workflow.editDrag cards between columns
activity.viewSee the activity log on a jobcard

Customers, vehicles, businesses

KeyWhat it controls
customers.viewSee customer records
customers.createAdd a new customer
customers.editEdit a customer record
customers.deleteDelete a customer
businesses.view/create/edit/deleteSame four actions for business accounts (fleets)
vehicles.view/create/edit/deleteSame four actions for vehicles

Inspections

KeyWhat it controls
inspections.viewSee inspection submissions on a jobcard
inspections.createStart a new inspection from a template
inspections.editFill in / update an in-progress inspection
inspections.deleteDelete a submission

Appointments & messages

KeyWhat it controls
appointments.view/create/edit/deleteBookings on the calendar
messages.viewSee the jobcard's internal team thread
messages.createPost on jobcard threads
messages.directStart a one-to-one team DM

Money

KeyWhat it controls
payments.viewSee totals, VAT breakdown, rates, prices on jobcards and invoices
payments.editIssue invoices, record payments
parts.view_costSee the unit cost column (what the garage paid for the part)

payments.view is enforced server-side

Users without payments.view get a stripped jobcard payload from the API — financial fields are removed before the data leaves the server. That means a future mobile or third-party integration can't bypass the check by inspecting the JSON. Owners bypass the strip.

Parts & suppliers

KeyWhat it controls
parts.manageAdd, edit and reorder parts on a jobcard
suppliers.viewSee the suppliers list
suppliers.manageAdd / edit / delete suppliers
returns.manageProcess part returns

Team, roles & garage admin

KeyWhat it controls
team.viewSee the team list
team.editInvite, remove or reassign team members
roles.view/create/edit/deleteManage custom roles
settings.viewOpen Settings
settings.editChange garage configuration
garages.viewSee the list of garages this user belongs to

Default assignments

Default role assignments are seeded from src/db/seed-permissions.ts in the codebase. Custom roles you create override these defaults.

Permission groupOwnerManagerReceptionTechnician
Jobcards (full)yesyesview/create/editview/edit
Workflowyesyesyesyes
Customersyesyesview/create/editview only
Vehiclesyesyesview/create/editview only
Businessesyesyesview/create/edit
Appointmentsyesyesyes
Inspectionsyesyesview/createview/create/edit
Messages (view/create)yesyesyesyes
Messages (direct)yesyesyes
Paymentsyesyesyes
Parts (manage)yesyesyesyes
Parts (view_cost)yesyes
Suppliers (view)yesyesyes
Returns (manage)yesyesyes
Team (view)yesyesyesyes
Team (edit)yesyes
Settingsyesyes
Activityyesyesyes

Related

Was this article helpful?