LabelPro Canvas Workstation & Multi-Tenant RBAC Security Architecture

Technical Security Specification

Document Status: Core Engine & Tenancy Blueprint • May 2026

This document defines the security parameters, data boundaries, and Role-Based Access Control (RBAC) mechanics running natively within the LabelPro Canvas Designer Engine and its segmented location architecture. The application uses an architectural isolation strategy: design templates and operational permissions are audited on the cloud backend, while live canvas printing variables remain entirely local to the user's active workstation viewport.

1. Workstation Canvas Isolation & Memory Hygiene

The designer engine separates layout assets from the active variable datasets loaded into the designer grid.

  • Workstation-Bound Data Volatility: Live CSV rows or identity card parameters loaded onto the active design canvas exist solely within client-side React state memory. This temporary data is never transmitted to or cached on remote storage clusters during a standard layout session.
  • Wipe-On-Command Infrastructure: Executing the canvas purge routine calls a destructive function (executeClearCanvas) that completely destroys all runtime canvas variables, text objects, and high-density barcodes across the rendering space — reverting memory nodes to a clean state without leaving temporary trace files on disk.
  • Workstation Calibration Security: Fine-tuning values for printer alignment (calibrationData.x, calibrationData.y, and scale configurations) are managed as local, isolated parameters. These variables alter print-head coordinates locally, preventing physical infrastructure specs from being exposed or altered by external network tenants.

2. Role-Based Access Control (RBAC) Matrix

System access rules are enforced at both the UI layer and database row level using a multi-tiered hierarchy: owner, it_admin, admin, and member.

Permission VectorOwner / IT AdminFloor AdminMember
Cloud Template CreationUnrestricted (global or per warehouse)Restricted to assigned warehouse IDBlocked — no cloud saves
Global Warehouse VisibilityFull — any facility locationLocked to assigned facilityNo location visibility
Template ErasureUnrestricted (global or local)Own warehouse onlyBlocked
Disk OperationsExport / backup configurationsExport configurationsGated by active subscription — not role-based

3. Multi-Warehouse Tenancy & Location Segmentation

To prevent cross-site contamination within large enterprise operations, the engine uses strict multi-warehouse indexing rules.

Note on Save Access: Both "Save to Disk" and "Save to Cloud" are gated by the user's active subscription status (canSave), not by role. A member with an active subscription can write to cloud storage. Role enforcement governs template visibility and deletion — not the save action itself.

A. Location Lenses & Filtering Guards

Only owner or it_admin roles can access the Global View dropdown. Standard branch managers (admin) are scoped exclusively to their facility, ensuring regional workflows cannot intercept layout structures from other hubs.

B. Structural Vault Hardening

When saving a layout, elevated roles can assign it to a specific branch or promote it to a system-wide Global Master Template. For floor employees, the routing menu is entirely locked down, displaying only a read-only token of their corporate myWarehouseId.

4. Design Integrity & Deletion Guardrails

A. Deletion Authorization Flow

[ TRIGGER TEMPLATE DELETE ]
↓
[ Role-Based Verification ]
Is User Owner or IT Admin?
YES → ALLOW IMMEDIATE ERASURENO → Guardrail Evaluation
Role == 'admin' AND tpl.warehouse_id == myWarehouseId?
YES → ALLOW LOCAL WAREHOUSE ERASENO → ABORT — ACTION BLOCKED

B. Master Template Lockouts

Authorised personnel can flag critical configurations as a Master Template. Once set, an is_master flag is applied — visually badging the asset in the library and programmatically blocking standard operator access.

C. Destruction Authorization Check

if (
  userRole === 'owner' ||
  userRole === 'it_admin' ||
  (userRole === 'admin' && tpl.warehouse_id === myWarehouseId)
) {
  // Proceed to execute template destruction sequence securely
}

This guard operates at the UI layer — the delete button is not rendered for unauthorised roles. The underlying deleteTemplateFromDB function contains no additional role check; backend enforcement is delegated to Supabase Row Level Security (RLS) policies on the templates table.

For security enquiries: info@barcodecanvas.com