Settings
Settings are under Settings in the sidebar. Base path: /{tenant}/settings/....
Locations
Route: /{tenant}/settings/locations
- List β All locations for the tenant (name, address, status, device/camera counts, actions).
- Create β Add a new location (e.g. name, address, timezone).
- Detail β
/{tenant}/settings/locations/[id]β View and edit location details, and manage:- Cameras β Assign cameras to the location.
- Devices β Assign devices (bridge, tablet) to the location.
- Models β Assign AI/ML models (if used).
- Agents β Assign agents (if the product uses agents for this location).
Location detail may show cards for: location info, devices, cameras, model assignment, and agents.
Cameras
Route: /{tenant}/settings/cameras
- List β All cameras (card or table: name, location, status, stream preview, actions).
- Create β Add camera (e.g. name, stream URL, location, credentials).
- Edit β Update camera details.
- Camera feed β View live or recorded feed in a dialog or dedicated view.
Cameras are used for violation detection and monitoring; they can be assigned to locations in Settings β Locations β [location] β Cameras.
Team
Route: /{tenant}/settings/team
- List β Users invited to the tenant (email, role, status, actions).
- Invite β Invite a new user (email, role).
- Edit user β Change role or revoke access.
- Edit role β Change role settings (if the app supports role editing).
Employees
Route: /{tenant}/settings/employees
- List β Employees (name, identifier, location, status, actions).
- Create / Edit β Add or update employee (name, ID, assigned location, etc.).
Employees are used in Checklists (who submitted) and Enter-Leave Events (who entered/left). They may be linked to users or be standalone records.
Checklists (management)
Route: /{tenant}/settings/checklists
- List β Checklist definitions (name, item count, actions).
- Create / Edit β Define checklist (name, description) and checklist items (type, label, required, attachment allowed, order).
- Detail β
/{tenant}/settings/checklists/[id]β Edit checklist and items, preview checklist as a user would see it when filling.
Checklist items can be reordered (e.g. drag-and-drop). Item types might include: yes/no, text, single choice, file upload.
Models
Route: /{tenant}/settings/models
- List β AI/ML models (e.g. for violation detection). May show name, version, status, assignment.
- Assign β Assign models to locations or cameras (sometimes from Settings β Locations β [location]).
Devices
Route: /{tenant}/settings/devices
What are Devices?
Devices are the physical hardware units that connect your cameras and sensors to the HACCPY platform. There are three types:
| Type | Description |
|---|---|
| Bridge | A gateway device that connects IP cameras to the platform and runs AI inference locally |
| Tab | A tablet running the HACCPY Tablet app, used for employee check-in, checklists, and Enter/Leave tracking |
| Air Sensor | An environmental air monitoring sensor provisioned through a request workflow |
The Devices page
Navigate to Settings β Devices. The page has two sections stacked vertically:
- Bridges & Tabs β all registered Bridge and Tablet devices
- Air Sensors β air monitoring devices and pending requests (only visible with
AIR_DEVICES_VIEWpermission)
A toolbar above the Bridges & Tabs list lets you toggle between table view (rows) and card view (grid).
Bridges & Tabs
Each device shows:
- Manufacturer and model name
- Device ID (mono text)
- Device type badge, colour-coded: Bridge or Tab
- Linked cameras β first camera name shown, remainder collapsed
- Assigned location β green Assigned badge or amber Unassigned badge
- Last activity date
- Platform and OS version in the card footer (e.g.
Android 11)
Actions menu
Hover over a device card or row to reveal the actions menu (three-dot icon).
Request snapshot Triggers the device to capture and upload a snapshot from its connected cameras immediately. A success toast confirms the request was sent.
Manage cameras Opens the Manage Cameras dialog with a scrollable list of all cameras in your organisation. Cameras currently linked to this device are pre-checked.
- Click a camera row (or its checkbox) to toggle it
- Click Save to apply changes β cameras are assigned or unassigned in bulk
- Click Close to discard changes
Assign to location Opens the Assign to Location dialog. Select a location from a searchable dropdown and confirm. The deviceβs location badge updates to Assigned immediately. Only shown when the device is not yet assigned to a location.
Unassign from [location name] Removes the deviceβs current location assignment. A confirmation dialog appears before the action runs. Only shown when the device is already assigned to a location.
Air Sensors
Permission required to view this section:
AIR_DEVICES_VIEWPermission required to create or cancel requests:AIR_DEVICES_REQUESTA user with only
AIR_DEVICES_VIEWcan see the list but cannot take any actions.
Air Sensors follow a request-based provisioning workflow β you submit a request specifying which location needs a sensor, an administrator reviews it, and the device is provisioned once approved.
Each Air Sensor card or row shows:
- Location name the sensor was requested for
- Request status badge, colour-coded:
- Pending (amber) β awaiting admin review
- Approved (green) β request accepted, device being provisioned
- Rejected (red) β request declined (a rejection note may be visible)
- Cancelled (grey) β request was cancelled before review
- Who submitted the request and the submission date
- If reviewed: the review date in the card footer
Requesting a new Air Sensor
Permission required:
AIR_DEVICES_REQUEST
- Go to Settings β Devices.
- Click New Request in the top-right corner of the page.
- In the dialog, select the location you want the sensor provisioned for. If your organisation has only one location it is pre-selected.
- Click Submit Request.
The request appears in the Air Sensors list with a Pending badge. An administrator will review and either approve or reject it.
Cancelling a pending request
Permission required:
AIR_DEVICES_REQUEST
You can only cancel a request while it is still Pending (not yet reviewed).
- Find the pending request in the Air Sensors list.
- Click Cancel in the card footer (card view) or the cancel action in the row (table view).
- Confirm in the dialog by clicking Cancel request.
The request status changes to Cancelled and it is removed from the active list.
Detection Use Cases
Route: /{tenant}/settings/detection-usecases
Permission required to view:
USECASES_VIEWPermission required to manage:USECASES_MANAGE
What are Detection Use Cases?
Detection Use Cases define what HACCPYβs AI cameras look for β for example, detecting workers without gloves or identifying bare hands near food surfaces. Each use case can be independently activated, configured, and assigned to specific cameras.
Use Cases list
Navigate to Settings β Use Cases to see all use cases available to your organisation. Each card shows:
- The use case name and logo
- A status badge: Active (green) or Inactive (grey)
- Industry and category labels
- Tags describing what the use case detects
Activating a use case
Permission required:
USECASES_MANAGE
- Find the use case you want to enable.
- Click Activate on the card.
- Confirm in the dialog. The status badge changes to Active and the use case begins processing on any cameras it is configured for.
Deactivating a use case
Permission required:
USECASES_MANAGE
- Find the active use case.
- Click Deactivate on the card.
- Confirm in the dialog. Detection processing stops immediately for this use case.
Click anywhere on the card (other than the Activate/Deactivate button) to open the full configuration page.
Configuring a Use Case
Route: /{tenant}/settings/detection-usecases/[id]
The configuration page has three areas:
- A header bar at the top with status and action buttons
- A left sidebar listing the cameras in your organisation
- A main panel on the right that changes depending on what you select in the sidebar
Header bar
The header always shows the use case name, its current status, and the available action buttons.
| Button | When it appears | What it does |
|---|---|---|
| Activate / Deactivate | Always | Toggles the use case on or off for the whole organisation |
| Save | Default Configuration view, when there are unsaved changes | Saves the global configuration |
| Reset | Per-camera view, when the camera has a saved override | Removes the cameraβs override and reverts to global defaults (confirmation required) |
Default Configuration view
Shown when the page first loads and when you click Default Configuration at the top of the left sidebar.
Applies to Cameras β A panel listing which cameras this use case is active for. Each camera appears as a chip (pill button):
- Click a chip to toggle that camera in or out
- Use Select all / Deselect all to bulk-select
- The badge next to the panel title shows the current selection count
When you save on this view, the global settings are applied as the starting configuration for all currently selected cameras.
Configuration fields β A form with the parameters specific to this use case (e.g. confidence thresholds, sensitivity levels, zone definitions). Available fields depend on the use case.
ROI (Region of Interest) fields β Some use cases include fields where you draw detection zones directly on a canvas. Click and drag to draw a zone; click an existing zone to edit or delete it.
Details β A read-only panel showing metadata about the use case: description, industry, category, version, and tags.
Per-Camera Override view
Click any camera in the left sidebar to open its individual configuration. This lets you give a specific camera different settings from the global defaults.
The form shows the same fields as the Default Configuration view, pre-filled with the cameraβs current values. If no override has been saved yet, the fields are pre-filled with the global defaults as a starting point.
| Action | What it does |
|---|---|
| Save | Stores the override for this camera only β other cameras are not affected |
| Discard | Reverts any unsaved edits to the last saved values |
| Reset | Deletes the cameraβs saved override; it will use the global configuration going forward (confirmation required) |
Left sidebar β camera list
Each camera in the sidebar shows its name, connection details (IP address, URL, or subnet), and a colour-coded badge for the connection type (e.g. RTSP In, RTSP Out, HTTP). The currently selected camera is highlighted with a coloured left border.
Configuration
Route: /{tenant}/settings/configuration
- Tenant-wide settings β e.g.:
- Email notifications β Recipients per location or event type (violations, alerts).
- Privacy / data retention β How long to keep violations, images, logs.
- Integrations β Webhooks, external systems (if supported).
Configuration is tenant-scoped.
Email notification options
- Email with photo β Send email notifications including violation photos
- Email without photo β Send email notifications without photos attached
- Donβt send email β Disable email notifications for violations
Recipients by location
Select recipients who will receive violation emails for each location. You can configure different recipients for different locations.
Privacy settings
- Keep photos β Store and retain violation photos in the system
- Remove photos β Automatically remove photos after processing to maintain privacy
URL summary
| Section | URL |
|---|---|
| Locations | /{tenant}/settings/locations |
| Location detail | /{tenant}/settings/locations/[id] |
| Cameras | /{tenant}/settings/cameras |
| Team | /{tenant}/settings/team |
| Employees | /{tenant}/settings/employees |
| Checklists | /{tenant}/settings/checklists |
| Checklist detail | /{tenant}/settings/checklists/[id] |
| Models | /{tenant}/settings/models |
| Devices | /{tenant}/settings/devices |
| Configuration | /{tenant}/settings/configuration |
| Detection Use Cases | /{tenant}/settings/detection-usecases |
| Use Case configuration | /{tenant}/settings/detection-usecases/[id] |
Replace {tenant} with the tenant slug and [id] with the entity ID.