# Features — legitimate_licences

Evidence date: 2026-10-10.

Source: `main` at `707aa72` (2024-11-24, "first commit").

**Current** means the code is in this revision. Nothing in Git history shows a feature being added or removed after this commit, because this is the only commit. **Planned** items were not found in the repository. A local non-Git folder contains later e-hailing material; that is recorded under discrepancies, not as a feature of this revision.

## Current — shell and access

| Feature | Evidence | Status |
|---|---|---|
| Sign in, sign out | `AuthController.SignIn.cs`, forms auth in `Web.config` | Current |
| Optional fingerprint sign-in | `FingerprintAuthenticationEnabled`, `DPUruNet`, `CaptureFingerPrint` | Current, config value `false` |
| Forgot password via security question | `AuthController.ForgotPassword.cs`, membership `requiresQuestionAndAnswer` | Current |
| User administration (details, security, roles, activity, buddies, settings) | `Neo.LegitimateLicences.UserConsole`, view title "Legitimate Licences Administration" | Current |
| Office locations and places | `OfficeLocationConsole`, securables `AdminModule_ManagePlaces`, `AdminModule_OfficeLocations` | Current |
| Document types and application-request type setup | `DocumentTypeConsole`, `ApplicationRequestTypeSetupConsole` | Current |
| Home search and advanced search | `HomeController.Search`, `AdvancedSearch` | Current |
| Dashboards (processing time, query response, verification time, application analytics, issuing and adjudication summaries) | `SecurableEnum` dashboard ids, `Neo.LegitimateLicences.Dashboards`, procedures `Pr_Dashboard_*` | Current |
| Audit list | `AfxController.Audit.cs`, `AuditActionEnum` Created, Updated, Deleted, Cancelled | Current |
| Error pages | `ErrorController`, `ShowError`, `ShowSecurityError` | Current |

## Current — applications

| Feature | Evidence | Status |
|---|---|---|
| Start and capture an application | `ApplicationsModule_Home_StartNewApplication`, `Neo.LegitimateLicences.ApplicationRequest` | Current |
| Application types 1–11, 13–18, 22–37 | `ApplicationRequestTypeEnum` | Current |
| Payment, receipts, cash-up | `ApplicationsController.Payment.cs`, `ApplicationsController.Cashup.cs` | Current |
| Document verification queue | `VerificationConsole`, `AfxController.Verification.cs` | Current |
| Inspections and referrals | `ApplicationsController.AwaitingInspections.cs`, `ReferralTypeEnum`, referral letters | Current |
| Gazettes (internal and publish) | `ApplicationsController.Gazetting.cs`, `GazetteConsole` | Current |
| Adjudication hearings, meetings, agenda, decisions | `ApplicationsController.Adjudication.cs`, `AdjudicationConsole` | Current |
| Objections, tags, barcodes, payment advice, OLAS data view | Securables under `ApplicationsModule_ApplicationRequest_*` | Current |
| Assessor approval and senior manager approval | Securables 1089 and 1090 | Current |
| Application reports (activity, decisions, in progress, completed, incomplete, money received, missing purification data, and others) | `ApplicationsModule_Reports_*`, `Neo.LegitimateLicences.Reports` | Current |
| MD approval requests | `MDApprovalRequest`, `MDApprovals`, workflow id 13 | Current |
| Licence cancel and accreditation cancel requests | `LicenceCancelRequest`, `AccreditationCancelRequest` | Current |

## Current — registers and issuing

| Feature | Evidence | Status |
|---|---|---|
| Operating licence console, status, expiries, extensions, issuing | `OperatingLicences`, `OperatingLicenceConsole`, `LicenceIssueRequest` | Current |
| Test print vs actual print vs issue without print | Securables 2011, 2012, 2023 | Current |
| Temporary replacement letter and licence | `PrintoutTypeEnum.TemporaryReplacementLicence`, ActiveX `TemporaryReplacementLicencePrinter` | Current |
| Accreditation issuing, certificate, decal | `Accreditations`, `AccreditationIssueRequest`, `AccreditationConsole`, ActiveX printers | Current |
| Associations and association console, including route adjustment | `Associations`, `AssociationConsole` | Current |
| Members and member console, including contact-detail save | `Members`, `MemberConsole` | Current |
| Routes, new route request, route console, route reports | `Routes`, `RouteConsole`, `NewRouteRequest` | Current |
| Vehicles and vehicle console, related licences | `Vehicles`, `VehicleConsole` | Current |
| Stationery batches (from GPW, internal transfer, external transfer) and statuses from awaiting issuing through lost | `Stationery`, `StationeryBatchTypeEnum`, `StationeryStatusEnum` | Current |

## Current — data quality and cross-department

| Feature | Evidence | Status |
|---|---|---|
| Purification of applications, licences, and routes | Project folder `Neo.LegitimateLicences.Purifaction` (spelling as in the tree), assembly name Purification | Current |
| Block lists for licences and ID numbers, LTPS list, bypassed expired licences, allowed new licences | Purification securables | Current |
| Duplicate national and board route numbers | Procedures `Pr_Purification_RouteDuplicateNationalRouteNumbers` and the board-route equivalent | Current |
| Business-rule bypass requests | `BusinessRuleBypassRequest` | Current |
| Inter-department release of TAT applications waiting on data | `InterDepartmentController.ReleaseData` | Current |
| IT audit report securable | `ITAuditReport` = 13002 | Current. Report body was not opened |

## Current — channels outside the browser

| Feature | Evidence | Status |
|---|---|---|
| API ping | `GET ~/1.0/ping` | Current |
| Verified licence XML, imported licence XML, LTPS application XML search, application list | `LegitimateLicencesApiController.VerifiedData.cs` | Current |
| Scan metadata and scanned-document upload | `LegitimateLicencesApiController.Scanning.cs` | Current |
| Print payload | `GET ~/1.0/Printing/GetPrintoutData` | Current |
| Desktop protocol `legitimatedesktop` for print and scan, with a version check | `Neo.LegitimateLicences.Desktop/Program.cs` | Current |
| Desktop updater project | `Neo.LegitimateLicences.DesktopUpdater` (WinExe) | Current. Update protocol was not fully traced |
| Windows service scheduler | `Neo.LegitimateLicences.WinService/ProjectService.cs` | Current |
| Verification push over SignalR | `SystemTriggerHandler` | Current |
| ActiveX printers for receipt, payment advice, operating licence, accreditation certificate, accreditation decal, temporary replacement | `Neo.LegitimateLicences.ActiveX.Printing` | Current |
| CDN static assets | `Neo.LegitimateLicences.Cdn` | Current |
| Blob download handler | `Neo.LegitimateLicences.Api/BlobDownload.ashx.cs` | Current |

## Current — platform behaviour

| Feature | Evidence | Status |
|---|---|---|
| DbUp on web startup | `Global.asax.cs` calls `DatabaseUpdator.UpdateDB` | Current |
| Sentry | `SentryDsn` app setting, Sentry packages 3.33.1 | Current when DSN is set |
| DevExpress report viewer | `Web.config` handlers `DXXRD.axd`, `DXXRDV.axd`, `DXQB.axd`, version 19.1 | Current |
| Azure Pipelines build | `azure-pipelines.yml` | Current file. Trigger branch is `master`, while Git HEAD is `main` |

## Planned

No roadmap, TODO product list, or issue tracker file was found in this revision.

**Unknown / Requires Confirmation:** e-hailing app-provider registration (application types 60, 61, and 62, setting `ehailing.providers.enabled`, table `Verified.PlatformProviders`) is described in a local non-Git working folder and is absent from `707aa72`. It is not classified as planned inside the repository.

## Recently changed

Cannot be determined from Git. The only commit message is "first commit". The newest dated artefacts inside the tree are the 2023 DbUp scripts and the 2024-11-24 commit.

## Deprecated or removed

Not evidenced. Commented blocks exist (for example a verifier-only redirect in `SignInUser`, and a commented lookup in `LicenceCancelRequest`). Those are inactive code paths, not a recorded removal.

`LicenceStatusEnum` has no values for ids 7 and 8. `AdjudicationDecisionEnum` has no ids 3 and 7. `ApplicationRequestTypeEnum` skips 12, 19, 20, and 21. Whether those ids were retired is **Unknown / Requires Confirmation**.

## Discrepancies

| Item | In `707aa72` | Elsewhere |
|---|---|---|
| E-hailing provider registry | Not present | Present in a non-Git local folder (`README.md`, `docs/EhailingProviders.md`, `ProvidersRegistry`) |
| Pipeline branch | YAML says `master` | Repository branch is `main` |
| API login | Handler special-cases `/1.0/login` | No matching route on the controller |
| Upliftment SMS copy | Body says "more than 30 days" | Threshold is setting `UpliftmentNotificationDays` |
| Project folder name | Directory `Purifaction` | Project and namespace use Purification |
