You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Updates README to more accurately reflect architecture
* Updates Entra app registration instructions
Clarifies that Implicit grant and hybrid flows do not need to be configured during Entra app registration.
Copy file name to clipboardExpand all lines: README.md
+15-10Lines changed: 15 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,19 +11,24 @@ HMPPS CFO DMS
11
11
HMPPS Creating Future Opportunities (CFO) - Data Management System (DMS). It is intended for internal use only and is used to process PNOMIS and NDelius offender data to supply CATS (Case Assessment and Tracking System - also used by HMPPS CFO) with accurate offender movements and updates.
12
12
13
13
## Architecture
14
-
CFO DMS is built as a microservices architecture using .NET Aspire for orchestration. Data flows through the following pipeline:
14
+
CFO DMS is built as a distributed microservices architecture. Data flows through the following pipeline:
1.**FileSync** monitors MinIO/S3/FileSystem storage and syncs incoming files
19
-
2.**Parsers/Cleaners**(Offloc, Delius) transform raw PNOMIS and NDelius files into structured records in staging databases
20
-
3.**Import**validates and migrates data from staging to running picture databases
21
-
4.**Matching Engine**identifies and links related offender records across systems
22
-
5.**Cluster database** maintains grouped offender data
23
-
6.**API**exposes the processed data via REST endpoints for downstream consumers (e.g., CATS)
24
-
7.**Visualiser** provides a web UI for exploring and visualising relationships between offender data
18
+
### Pipeline Applications
19
+
1.**File Ingestion**- [**FileSync**](src/FileSync) monitors MinIO/S3/FileSystem storage and syncs incoming files
20
+
2.**Parsing/Cleaning**- [**Offloc.Parser**](src/Offloc.Parser), [**Offloc.Cleaner**](src/Offloc.Cleaner), [**Delius.Parser**](src/Delius.Parser) transform raw p-NOMIS and nDelius files into structured records
21
+
3.**Staging/Import/Running Picture**- [**Import**](src/Import) validates and migrates data from staging to running picture databases
22
+
4.**Blocking/Matching** - [**Blocking**](src/Blocking) generates candidate record pairs, [**Matching.Engine**](src/Matching.Engine) identifies and links related offender records across systems
23
+
5.**Clustering**- [**Matching.Engine**](src/Matching.Engine) groups related records into clusters representing unique individuals
24
+
6.**Data Consumption** - [**API**](src/API) exposes the processed data via REST endpoints for downstream consumers (e.g., CATS), [**Visualiser**](src/Visualiser) provides a web UI for exploring and visualising relationships between offender data
25
25
26
-
Supporting services include **DbInteractions** (complex database operations), **Blocking** (matching rules), **Cleanup** (data maintenance), and **Logging**. Services communicate asynchronously via RabbitMQ message queues.
26
+
### Supporting Applications
27
+
-[**Cleanup**](src/Cleanup) - Performs data maintenance tasks
0 commit comments