--- type: entity tags: [parking, domain, business, access-control] sources: [] updated: 2026-06-15 status: open --- # Blocklist (Banlist) Plates or credentials the lot **refuses** — barred vehicles (non-payers, abusers, court orders) and revoked/stolen cards. Checked in the entry flow. ## Model - A `blocklist` table of `{ kind: 'plate' | 'card' | 'qr', value, reason, addedBy, addedAt }` — admin-managed master data (mutable: add/lift a ban). - **Entry check:** after identifying the vehicle ([[parking-session]] identity — plate via [[opencv-anpr-service|vision]]/LPR, or card/QR), if it matches an active blocklist entry, **refuse entry** and append a signed event (`anomaly` / a refused-entry record) so the attempt is logged. - **Exit is never blocked** — a barred car already inside must still leave ([[fail-state-safety]]: never trap a vehicle). A blocklist hit at exit is logged for follow-up, not used to detain. ## Notes - Plate matching depends on capture quality — a blocklist-by-plate is only as good as the [[opencv-anpr-service|vision]] read; treat a near-miss as a flag for a human, not an automatic refusal that could strand a misread innocent car. - Bans are attributed (`addedBy`) and their enforcement is logged, so the control is auditable ([[reconciliation]]) rather than an invisible operator lever. ## Open - Plate-match tolerance (exact vs. fuzzy) and the false-positive handling. - Expiry / review of bans.