Skip to content

Commit 4564e5a

Browse files
authored
Task: Update README with purpose of this repo (#31)
1 parent 1e36ade commit 4564e5a

2 files changed

Lines changed: 46 additions & 7 deletions

File tree

README.md

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,49 @@
11
# NHS Notify Config
22

3-
## Setup
3+
This repository contains code and schemas for NHS Notify configuration management, event publishing, and onboarding automation.
44

5-
### Prerequisites
5+
## Purpose
66

7-
### Configuration
7+
- **Configuration Model:** Defines and manages client, campaign, quota, supplier, and routing configuration for NHS Notify.
8+
- **Event Schemas:** Publishes configuration changes as events to an event bus for consumption by other system components.
9+
- **Onboarding Automation:** Automates and streamlines the onboarding of new integrators, supporting self-serve and admin-driven workflows.
10+
11+
## Design
12+
13+
### Configuration Management
14+
15+
A phased approach will be used to improve client configuration management:
16+
17+
1. **Libraries & Validation:** Standardise configuration and naming, reduce manual errors, and improve auditability.
18+
2. **API Layer:** Centralise access to configuration data.
19+
3. **Web UI:** Enable operations/admin teams to manage configuration with validation and audit trails.
20+
21+
Configuration entities include:
22+
23+
- `client`, `campaign`, `client_feature`, `client_quota`, `client_subscription`
24+
- `mesh_mailbox`, `apim_application`, `govuknotify_account`
25+
- `supplier_quota`, `channel_supplier`, `queue`, `suppression_filter`, `additional_mesh_report_subscription`
26+
27+
Configuration changes are validated, auditable, and published to environments via an event bus.
28+
29+
### Event Publishing
30+
31+
Configuration changes are published as events to a central event bus, enabling decoupled updates across bounded contexts (core, print supplier API, template/routing UI, user management, etc.).
32+
33+
Event publishing strategies include:
34+
35+
- CLI tools (tactical)
36+
- Scheduled audit tasks (tactical)
37+
- Admin/Web UI (strategic, single source of truth)
38+
39+
### Onboarding Automation
40+
41+
Quick Start onboarding will enable rapid, self-serve client setup in INT:
42+
43+
- **Phase 1:** CLI/script automation using minimal data (client name, APIM ID, etc.)
44+
- **Phase 2:** Web UI for onboarding, protected by CIS2 auth, triggers config change events
45+
- **Phase 3:** Admin UI for incremental client config management and production promotion
46+
- **Phase 4:** Full self-serve onboarding via Web UI (admin approval for production)
847

948
## Usage
1049

@@ -14,8 +53,6 @@ There are `make` tasks for you to configure to run your tests. Run
1453
`make test` to see how they work. You should be able to use the same
1554
entry points for local development as in your CI pipeline.
1655

17-
## Design
18-
1956
## Contributing
2057

2158
Describe or link templates on how to raise an issue, feature request

scripts/config/vale/styles/config/vocabularies/words/accept.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
auditability
2+
auditable
13
[A-Z]+s
24
Bitwarden
35
bot
6+
[Cc]onfig
47
Cognito
5-
Config
68
Cyber
79
Dependabot
810
draw.io
@@ -17,7 +19,7 @@ idempotence
1719
Jira
1820
OAuth
1921
Octokit
20-
onboarding
22+
[Oo]nboarding
2123
Podman
2224
Python
2325
rawContent

0 commit comments

Comments
 (0)