[Feature] Implement local operational distribution lists #2

Closed
opened 2026-07-13 18:10:41 +02:00 by zemion · 1 comment
Owner

Goal

Add the first persistent, independently usable implementation for local operational Distribution Lists.

Scope

  • Versioned list and entry database tables, migrations, CRUD routes, permissions, and audit hooks.
  • Local raw email, postal, and internal-mail targets.
  • Address contact/address-list references resolved through capabilities.
  • Nested lists with cycle detection and bounded expansion.
  • dist_lists.source and dist_lists.expand capability implementations.
  • Immutable expansion snapshots with entry IDs, revisions, parameters, and provenance.

Acceptance Criteria

  • The module works with no optional provider installed.
  • Address and other provider integrations use capabilities, never ORM imports.
  • Consumers can freeze reproducible recipient snapshots.
  • Tenant/scope isolation, optimistic concurrency, soft deletion, and revision history are covered by focused tests.

Parent: #5. Depends on #1.

## Goal Add the first persistent, independently usable implementation for local operational Distribution Lists. ## Scope - Versioned list and entry database tables, migrations, CRUD routes, permissions, and audit hooks. - Local raw email, postal, and internal-mail targets. - Address contact/address-list references resolved through capabilities. - Nested lists with cycle detection and bounded expansion. - `dist_lists.source` and `dist_lists.expand` capability implementations. - Immutable expansion snapshots with entry IDs, revisions, parameters, and provenance. ## Acceptance Criteria - The module works with no optional provider installed. - Address and other provider integrations use capabilities, never ORM imports. - Consumers can freeze reproducible recipient snapshots. - Tenant/scope isolation, optimistic concurrency, soft deletion, and revision history are covered by focused tests. Parent: #5. Depends on #1.
zemion added module/dist-lists and removed module/addresses labels 2026-07-13 18:15:41 +02:00
Author
Owner

Implemented and published in commit 8c54a5d, with Core wiring in 4cb334c.

Local distribution lists now have persistent scope-owned definitions, immutable revisions and entries, optimistic concurrency with ETags, soft deletion, audit/events, bounded deterministic expansion, immutable snapshots and idempotent freeze behavior. Tenant/scope isolation and migration behavior are covered by tests.

Verification: Ruff, 8 focused Distribution Lists tests, WebUI TypeScript, and migration tests passed.

Implemented and published in commit 8c54a5d, with Core wiring in 4cb334c. Local distribution lists now have persistent scope-owned definitions, immutable revisions and entries, optimistic concurrency with ETags, soft deletion, audit/events, bounded deterministic expansion, immutable snapshots and idempotent freeze behavior. Tenant/scope isolation and migration behavior are covered by tests. Verification: Ruff, 8 focused Distribution Lists tests, WebUI TypeScript, and migration tests passed.
zemion removed the codex/ready
status
ready
labels 2026-07-31 21:04:24 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-dist-lists#2