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}