Implement address quality and reversible contact merges

This commit is contained in:
2026-08-02 07:03:27 +02:00
parent 2e78b9ae50
commit 19e9096572
15 changed files with 4369 additions and 31 deletions
+16 -10
View File
@@ -219,17 +219,19 @@ Primary issues: `govoplan-addresses#8`, `govoplan-addresses#9`,
Tasks:
- LDAP/Active Directory read-only directory connector
- Exchange/Microsoft 365 contacts connector
- Google Contacts connector
- CSV/XLSX/LDIF import mapping profiles
- classical address-list UI; reusable static/dynamic operational segments move
- [ ] LDAP/Active Directory read-only directory connector
- [ ] Exchange/Microsoft 365 contacts connector
- [ ] Google Contacts connector
- [ ] CSV/XLSX/LDIF import mapping profiles
- [x] classical address-list UI; reusable static/dynamic operational segments move
to `govoplan-dist-lists`
- operational distribution lists move to `govoplan-dist-lists`
- consent, legal-basis, suppression, and communication preferences
- deduplication and merge workflow
- address quality checks and normalization
- richer vCard `KIND`/`RELATED` round-trip and stable links to IDM/Organizations
- [x] operational distribution lists move to `govoplan-dist-lists`
- [x] consent, legal-basis, suppression, and communication preferences
- [x] bounded, explainable deduplication and reversible merge/split workflow
- [x] contact-point quality states, normalization, original-value preservation,
field provenance, and correction dashboard
- [x] stable redirect resolution for merged contact references
- [ ] richer vCard `KIND`/`RELATED` round-trip and stable links to IDM/Organizations
Exit criteria:
@@ -237,6 +239,10 @@ Exit criteria:
- users can understand where data came from and whether they may edit it
- downstream modules can safely use contacts without owning them
Issues #9 and #10 are implemented. Issue #8 tracks the connector portfolio and
is split into independently deliverable connector/import follow-ups rather than
keeping one cross-protocol implementation ticket open.
## First Implementation Recommendation
Start with Milestone 1 and enough of Milestone 2 to define the data model