Skip to content

inventory — permissions

Namespaced by the registry from the module's get_permissions().

PermissionGatesEndpoints
inventory.readList/view items, valuation, movementsGET /api/v1/inventory/, GET /api/v1/inventory/{item_id}, GET /api/v1/inventory/valuation, GET /api/v1/inventory/{item_id}/movements
inventory.writeCreate, edit, adjust stock, delete/deactivatePOST /api/v1/inventory/, PATCH …/{item_id}, POST …/{item_id}/adjust, DELETE …/{item_id}

Default role mapping — the whole team participates; stock levels are operational data, not sensitive (same breadth precedent as patient_relationships):

RolePermissions
adminall (*)
dentistread, write
hygienistread, write
assistantread, write
receptionistread, write

Agent tools reuse the same two permission strings. Tools returning user-entered item names/notes are marked exposes_free_text=True so they stay off the cloud LLM path under redaction.