AI CCTV Monitoring Platform
White-label ready

Security and privacy

Your video and your data stay on your site

How the platform keeps video from your cameras, the evidence behind every alert, and personal data on your site, across all its checks: PPE, safety, people, vehicles, visitors and sound. Who can see what, and what you can switch off.

In short

Where your data lives

The platform runs as four services on one server: the web app, the API, the vision worker that reads the cameras, and the trainer. They store everything in a database and on the server's data disk.

DataWhat it isDefault keepLimits and notes
Video and pictures
RecordingsContinuous video per camera, in 60-second files. Pictures only, except from a camera an administrator switched Record sound on for: that camera's sound is kept in its recordings.The number of days set per camera, up to the privacy profile's limit: at most 30 days under the strictest rules.The oldest files are also removed to keep a minimum of free disk space. Recordings made before sound was dropped keep their sound until they age out, at most 30 days later.
ExportsA clip or snapshot cut from recordings, as a zip with a manifest that lists every file and its SHA-256 hash. Verify hashes the files again. Each export is also signed with the site's own key unless signing is off. An evidence pack of a path also holds the trail's picture and timeline, names any clip no recording covered, and is recorded with its case reference and reason. Pictures only, except from a camera that records sound.14 days after it is ready (a failed or cancelled export, 14 days after it ends), then the files are deleted.Download the zip before then. Only the person who exported, or an administrator, can see an export.
Detections filesThe boxes Playback draws over a recording, in a small file beside each 60-second file (about 2 MB an hour per camera at 5 checks a second). No pictures.With the recording file: removed by retention and by the Storage clean-up.A camera that is not analysed has none.
Camera referencesThe reference picture a person saved for each camera, which picture health compares the live picture with.The current reference is kept until a person replaces it. A replaced reference is kept 90 days so it can be restored, then its picture is removed.Only a person with camera rights can save or restore one. A reference never refreshes itself.
Event evidenceA raw and an annotated snapshot of each violation, and a short video clip, with sound only from a camera that records it. The clip's marks (the boxes drawn over it, with no person id or plate) are kept beside the clip and go with it.Each kind has its own longest keep in Settings → Storage. By default, clips and snapshots of events that were not confirmed stay 90 days, and so do event records with the evidence of confirmed violations.Under the strictest rules, at most 90 days for clips and snapshots and 3 years for evidence and event records. No event goes before the minimum event retention (90 days by default). An event on legal hold or in an open incident survives every delete path until the hold is released. Delete event and Clear events are admin only and audited; a bulk clear keeps held events, confirmed violations, open incidents, events used by a training sample and anything still running, and never reaches past the list's own filter.
Counting historyCounts only, in 5-minute steps per camera: how much camera time was observed, and how many person-seconds were compliant, violating or not judged. No pictures and no person ids.Compacted to 15-minute steps after 30 days, and removed after 2 years.–
Vehicle countsCounts only, in 5-minute steps for each vehicle line and vehicle type, with the wrong-way crossings. No number plate is read, and no pictures or person ids are stored with the counts. A wrong-way crossing is also an event, kept like any other event.Until the events are cleared.–
Belt countsCounts only, for each belt line: every counted crossing (a time and a plus or minus one), and one row for each batch with its number, start and end, running count, start total and an optional hand count. No pictures, no plate and no person ids are stored with them.Crossings for 7 days, then removed. Batches are kept: nothing removes them automatically.–
People
People sightingsA pseudonymous id such as P-1A2B3C4D, the cameras and zones a person was seen in, when, and any missing PPE.90 days by default (Settings → Storage, at least 7 days).At most 90 days under the strictest rules.
Floor map trailsA person's position on the floor map at a time, with the camera that saw it, for the path replay. Never sent off the site by the platform; an evidence pack leaves only when a person downloads it.30 days by default (Settings → Storage, 7 to 30 days).At most 30 days under every privacy profile. Delete person removes them.
Visit logsEach visit: the person id, the zone, when it started and ended, and any missing PPE.90 days by default (Settings → Storage, at least 7 days).At most 90 days under the strictest rules.
Names and notesEntered by a reviewer for a person id. Without a name, an id is not linked to an identity.Until changed or merged.Delete person removes the name, group and watchlist entry; the sightings and events stay under the bare id.
Face dataFace pictures and face templates used to recognise named people on any camera and on later days.Unnamed people: not kept under the strictest rules (0 days); a profile can allow longer, up to its limit. Named people: until no camera has seen them for a year (Settings → Privacy, Delete face data of people unseen for, 365 days by default and never more than the profile allows). The name stays.Delete face data removes the templates, the face picture and the enrolment photos at once. Two weeks before a deletion the System page warns how many people it takes and on which day. A person on legal hold is skipped.
Training
Training samplesFrames saved for human review to improve detection on your site, and the reviewed labels.Rejected samples are kept 7 days and unreviewed samples 60 days by default.Approved samples stay until deleted, and the golden validation set is kept on purpose.
Accuracy check picturesThe moments reviewers answer in the weekly accuracy check, and each camera's check set. The answers never change an event.Weekly check pictures are removed after 90 days.Check-set pictures stay, and Storage never offers them for clean-up.
Accounts and system
Accounts and audit logUsers, roles, sessions, and a record of every change made through the app.Accounts stay until deleted. The audit log is kept 365 days by default (at least 90).The address and device of a sign-in are blanked 90 days after the session ends; last sign-in still shows. Failed sign-in counts are kept 30 days. Refused requests for access are deleted after 30 days. Changes to the site time zone and renames of a person are written to the audit log (Settings > Site).

Note. Short-lived data such as live frames and heartbeats sits in memory (Redis) and can be cleared at any time without losing anything.

Settings → Storage sets how long each kind of data is kept, and a save above the privacy profile's limit is refused with the limit shown. Exports are measured as their own category on the Storage page and delete themselves after 14 days. Uploads (photos, videos, samples, models and logos) are refused with HTTP 507 when free disk space falls below a hard floor, and an upload with no declared size stops at its size limit; a failed write leaves no partial file. Service and container logs rotate and are capped in size.

Network

The platform needs no internet connection to run. Browsers reach it over HTTPS; the server reaches the cameras on your network. Online updates are off until an administrator turns them on. When they are on, the server contacts drive.google.com and drive.usercontent.google.com over HTTPS to look for and download a newer version; nothing about the site is sent. Turning off Check automatically stops the automatic checks.

Required

ConnectionPortNeeded
Browsers to the web app and API (HTTPS, with redirect from HTTP)443, 80Yes
Server to cameras (RTSP)554Yes, on the camera network
Internal service endpoints–Blocked at the proxy; services use a shared token

Optional

ConnectionPortNeeded
Browsers to raw live video (WebRTC)8555Only for the low-delay raw view
Outbound HTTPS to download ready-made detection models, and the face models the first time face matching runs443Optional; detection models can also be imported as files
Outbound HTTPS for Let's Encrypt certificates443Optional; offline sites use an internal certificate authority
Outbound HTTPS to the licence service, only if you activate with a product key (activation, then one renewal a day)443Optional; a licence file needs no connection
Helper servers to the main server (mutual TLS 1.3, both certificates pinned by fingerprint)7443Only if you add a helper server. The main server listens only while a helper exists or a join code is open, and accepts only your network or a VPN unless Accept helpers from the open internet is on (off by default)
Secure tunnel for remote access–Optional, off unless you set it up

The live-video relay's own API, which can see camera addresses, listens only on the server itself, or behind a password in container installs.

Installer and firewall

When the installer generates the admin password, it shows it once.

What leaves the site

Nothing leaves the site by itself. Data leaves only when a person sends it or a channel you set up sends it:

Data that leaves the site through channels you set up

Only an administrator can set up the channels that send anything off the site.

Who can see what

Each user has one role. The sidebar only shows the pages a role may use, and the API checks the same permissions on every request. The table shows the four built-in roles (admin, supervisor, reviewer, viewer); an administrator can also build up to 20 custom roles, and a custom role never gets more than the person who builds it holds.

PermissionAdminSupervisorReviewerViewer
See camerasYesYesYesYes
Change camerasYesYesNoNo
Change zonesYesYesNoNo
Change rulesYesYesNoNo
See eventsYesYesYesYes
Review eventsYesYesYesNo
Review samplesYesYesYesNo
Change datasetsYesYesNoNo
Manage modelsYesNoNoNo
Manage trainingYesYesNoNo
Manage usersYesNoNoNo
Change settingsYesNoNoNo
See system statusYesYesYesYes
See the audit logYesYesNoNo
Change people, groups and the watchlistYesYesNoNo
Manage the licenceYesNoNoNo
Manage storageYesYesNoNo
Install updatesYesNoNoNo
See peopleYesYesYesNo
Export recordingsYesYesYesNo
Move camerasYesYesYesNo
See all sitesYesYesNoNo
See attendanceYesYesNoNo
Change attendanceYesYesNoNo
See number platesYesYesYesNo
Edit plate listsYesYesNoNo
Manage privacyYesNoNoNo

Special permissions

people:read
Names, faces, groups and visits need the see-people permission (people:read), which admins, supervisors and reviewers hold. Enrolling people, managing groups and the watchlist need the change people permission (people:write), which admins and supervisors hold. A viewer has none, so the Visits page and visit log show numbers such as "Person 1" in place of names and ids, and assignee names read "Someone". Everyone with event access sees incident notes, status and assignee history.
recordings:export
Exports and PTZ moves have their own permissions: export recordings (recordings:export) and move cameras (cameras:control). A user who holds the see-people permission must give a reason for an export unless nobody is in the footage. The reason is kept in the manifest and the audit log, which also records each download and cancellation.
cameras:control
Move PTZ cameras and call saved views.

Sign-in

Passwords

Two-step sign-in

Sessions and devices

Reset links and invitations

Display accounts

People and faces

The platform follows people between cameras so that one person makes one event, not one per camera. By default a person is an id built from their appearance, such as their clothing. It becomes a name only when a reviewer gives it one.

  1. Appearance id. Each tracked person gets an id like P-1A2B3C4D. It links sightings across cameras for a limited time and carries no name.

  2. Named person. A reviewer can name an id. Naming and merging need the reviewer role and are written to the audit log.

  3. Face matching. If it is on, the faces of named people are recognised again on any camera and on later days. Matching only ever proposes people who have been named. A person under 100 px tall in the picture is counted but never recognised. Where a profile allows a watchlist without consent, putting someone on it asks why, so the reason is on record.

  4. Expiry. Under the strictest rules, which apply until the site picks its country, the face data of people who were never named is not kept. A profile can allow longer, up to its own limit, and you can switch face matching off in Settings, under Detection. The face data of a named person who has not been seen for a year is deleted as well; their name stays.

Important. Backups include face pictures and templates of the people the cameras saw. Store backups with the same care as the server.

Appearance matching has known limits: people in identical uniforms can be merged or split. Reviewers can merge two ids of one person, and the matching thresholds are site settings.

Visitors at the gate

The visitor kiosk keeps each expected visit: the visitor's name, company, the work, the host, the area and the times, with an optional email and phone number. Its pass code is kept only as a hash, and each check-in keeps how the visitor was found, the PPE check, any call to the gate desk and who let the visitor in, with the reason. A kiosk keeps only a hash of its pairing cookie and stores no camera picture. The public kiosk screen shows the first name only; the gate desk sees the full name. A visit and its check-ins are deleted after 90 days by default (Settings, Visitor kiosk, 7 to 730 days; no privacy profile allows more than 365). Set the kiosk camera's recording to Off as well, because the camera's own recording setting still applies. With Find visits by face on, a visitor who agreed can have one photo on their visit, kept on the main server and deleted when the visit is cancelled, the day after the visit ends, or on a data request; faces never leave the main server, and switching the setting off stops all matching.

Deleting data and security mode

Delete face data

Delete face data removes the face templates, the face picture and the enrolment photos of one person; their name, sightings and events stay.

Delete person

Delete person also removes the name, group and watchlist entry. Erasure never reports done while photos remain on disk. A forgotten person seen live is not learnt again.

Security mode

A camera can run in security mode, which tracks people without checking PPE.

  • On a security camera the Monitor labels each person with their name, Unknown when the face matches nobody enrolled, or a possible watchlist match.
  • The Security checks tab on Rules raises alerts for unknown faces, watchlist matches, people not allowed in a zone, restricted areas, loitering, and cameras blocked or moved.
  • PPE checking can also be switched off for the whole site; the PPE model is then unloaded.

Encryption and secrets

Licence

A signed file sets the modules and camera limit a site may use, and it works offline.

What a licence is

Activating

Offline use and the clock

Limits

Backups and recovery

A nightly backup, a tested restore and a signed update path with a rollback.

Support file

One file, downloaded by an administrator and never sent by the platform.

How security is checked

Questions reviewers ask

Is any video sent to the cloud?
No. Video is read, analysed and stored on the on-site server. Remote access is optional and goes through a secure tunnel to that server.
Does the system decide who broke a rule?
No. It raises an event with evidence. A person reviews it and marks it a real violation or not a violation.
Can we use PPE checking without face recognition?
Yes. Switch face matching off in Settings, under Detection. People are still tracked by appearance, so one person makes one event.
Who can watch live video?
Every signed-in role can watch cameras. Only admins create accounts and choose roles. An administrator can switch an app off; every route of that app then answers 403 and its records are kept.
How long is data kept?
Each site picks a privacy profile for its country in Settings, Privacy; until it does, the strictest rules apply. Each kind of data has its own longest keep, capped by that profile, and a save above the cap is refused. Under the strictest rules: recordings at most 30 days, event clips and snapshots 90 days, evidence and event records 3 years, sightings and visits 90 days, and no faces of people with no name. Recordings follow each camera's retention days within that limit. Detections files go with their recording, and exports expire after 14 days. The face data of a named person is deleted after a year unseen. An event on legal hold is kept until the hold is released.
What does the set-up list keep?
The set-up list keeps who skipped a step, when and why, and which administrators have seen the welcome.
Is sound recorded?
Not unless an administrator switches it on. Cameras record pictures only. An administrator can switch on Record sound for one camera: they confirm that everyone in view is told, and give a reason that is written to the audit log. Some privacy profiles keep the switch locked off. That camera's sound is then kept in its recordings, evidence clips and exports, and live view and Playback play it muted until someone unmutes it. Recordings made before sound was dropped keep their sound until they age out, at most 30 days later. A camera's own microphone can also feed Sound alarms once audio is cleared for the zone; it is read in memory only, never recorded or played.
Can a recipient check that an export was not changed?
Yes. Each export is signed with the site's own key and lists the check values of its files. The recipient follows the steps in the file with OpenSSL, or drops the file on the Share safely page, which sends only check values and never the file. A match shows the file is unchanged, not that the scene was real.
Is personal text in an export hidden?
Yes, by default. Names the site already knows, emails, international phone numbers and the local ID and phone formats of the site's country are replaced by a mark in the reason, notes and comments that leave with an export, and in the free text of report downloads. Share safely lists each find so it can be kept as written; a role that cannot see people cannot keep any. The rules are plain patterns and known names, not a model, so an unusual spelling can be missed. The audit log keeps what was written, because it stays on site. Hide personal details in text in Settings → Sharing turns it off for the site.
Can footage be covered before it leaves the site?
Yes. Share safely covers every face, screen and bystander in a clip with a solid fill, so the cover cannot be undone. No face recognition runs while a clip is covered: the finder only says where a face is. The export holds only the covered copy, which is silent, and the original recording stays on site. The positions a prepare finds are kept for 24 hours only, and the export expires after 14 days like any other.
Do we need to tell workers?
Follow the rules that apply to your site; the privacy profile states them, and the sign-in page names the site's privacy contact. Typical steps are signs at camera areas, informing worker representatives, and a data protection impact assessment where the law asks for one.
What if a service or the network fails?
Events and samples are queued on disk and replayed when the service is back.

Coming next

Security checks for unknown faces, watchlist matches, authorised people only and cameras blocked or moved are available on Rules → Security checks. The floor map studio is available, with maps made from a photo of a sketch and a live map of people; vehicles on the live map are In progress.

Today's pages Available

The Licence page: the edition, the modules it unlocks, cameras used against the limit, the expiry date and Apply licence file.The Licence page: the edition, the modules it unlocks, cameras used against the limit, the expiry date and Apply licence file.
Licence Available The edition, modules, camera limit and expiry at a glance, with a licence file applied offline.
The People directory: groups, who is on site now, a watchlisted person's panel with the reason, recent sightings and face data actions.The People directory: groups, who is on site now, a watchlisted person's panel with the reason, recent sightings and face data actions.
People directory Available A directory with groups and a watchlist, faces enrolled from a photo, who is on site now, and face data deleted on request.

M4: Security system Available

The security alert feed with unknown face, watchlist, after-hours and camera tamper alerts, and one alert's evidence.The security alert feed with unknown face, watchlist, after-hours and camera tamper alerts, and one alert's evidence.
Security alerts Available Alerts for unknown faces, watchlist people, authorised-only zones, after-hours presence, and covered or moved cameras.
A live 3D floor map: walls and racks standing up, camera views on the floor, people as small figures coloured by state with name tags, room occupancy, rings showing how sure each position is, a possible watchlist match with its estimated position, a last-seen list, and a 2D and 3D switch with turn and zoom buttons.A live 3D floor map: walls and racks standing up, camera views on the floor, people as small figures coloured by state with name tags, room occupancy, rings showing how sure each position is, a possible watchlist match with its estimated position, a last-seen list, and a 2D and 3D switch with turn and zoom buttons.
Live floor map Available The site's floor map, live and in 3D: people named when enrolled, vehicles, alarms, occupancy and camera coverage. Turn or zoom it; point at a camera for its live view and nearby cameras. Vehicles on the map are still in progress.