Skip to main content

heldar_entry/
lib.rs

1//! Heldar Access Control — generic, **open (Apache-2.0)** reference app.
2//!
3//! Built on the open `heldar-kernel` platform. Provides ANPR authorization (plate → registry
4//! resolution → canonical entry event), the vehicle/visitor-pass/watchlist registry, the guard
5//! confirm/reject workflow, and entry/exception/audit reports. It is domain-neutral — any gated-entry
6//! deployment (residential, corporate, industrial) uses it as-is. It plugs into the kernel
7//! purely through public seams: [`heldar_kernel::services::consumer::DetectionConsumer`] (the ANPR
8//! engine), [`heldar_kernel::state::AppState`] + the shared SQLite pool, the auth primitive, and
9//! the error/model types. The kernel has no dependency on this crate — the composing server links it.
10//!
11//! Proprietary vertical/client products depend on THIS crate and layer their domain specifics on
12//! top; the generic access-control core stays open. See `ARCHITECTURE.md` for the open-core split.
13
14pub mod anpr;
15pub mod config;
16pub mod models;
17pub mod retention;
18pub mod routes;
19pub mod schema;
20
21/// This app's module manifest (served at `GET /api/v1/modules` so the dashboard renders its nav).
22pub fn manifest() -> heldar_kernel::modules::ModuleManifest {
23    use heldar_kernel::modules::{ModuleKind, ModuleManifest, NavEntry};
24    ModuleManifest::new(
25        "entry",
26        "Access Control",
27        env!("CARGO_PKG_VERSION"),
28        "Heldar",
29        ModuleKind::Core,
30        "ANPR authorization, vehicle/visitor registry, guard confirm/reject, entry reports.",
31        vec![NavEntry::new("/entry", "Entry", "entry")],
32    )
33}