[Feature] Add function-scoped Postbox templates and stable unit-specific addresses #17

Open
opened 2026-07-28 18:59:04 +02:00 by zemion · 1 comment
Owner

Outcome

A Postbox administrator can define one reusable template for a function type and an organization scope. Postbox resolves a stable address/container for each matching concrete unit/function without eagerly creating thousands of empty rows.

Acceptance criteria

  • Model published immutable template revisions separately from effective Postbox addresses/containers.
  • A template can target a function type, unit type/structure/subtree, and optional case/service context; concrete unit/function overrides may narrow settings.
  • Resolve addresses lazily and idempotently from tenant + template + concrete unit + concrete function + optional context key.
  • A resolved address remains durable and deliverable while a function is vacant, subject to explicit vacancy policy.
  • Define lifecycle for draft/publish/retire, unit moves, function deactivation, context closure, retention, and address collision.
  • Snapshot the template revision and organization/function refs on each delivery so later hierarchy changes do not rewrite provenance.
  • Support exact concrete postboxes for exceptional responsibilities without requiring a global template.
  • Validate tenant isolation, missing function types, ambiguous parallel structures, and cycles.

Dependencies

## Outcome A Postbox administrator can define one reusable template for a function type and an organization scope. Postbox resolves a stable address/container for each matching concrete unit/function without eagerly creating thousands of empty rows. ## Acceptance criteria - Model published immutable template revisions separately from effective Postbox addresses/containers. - A template can target a function type, unit type/structure/subtree, and optional case/service context; concrete unit/function overrides may narrow settings. - Resolve addresses lazily and idempotently from tenant + template + concrete unit + concrete function + optional context key. - A resolved address remains durable and deliverable while a function is vacant, subject to explicit vacancy policy. - Define lifecycle for draft/publish/retire, unit moves, function deactivation, context closure, retention, and address collision. - Snapshot the template revision and organization/function refs on each delivery so later hierarchy changes do not rewrite provenance. - Support exact concrete postboxes for exceptional responsibilities without requiring a global template. - Validate tenant isolation, missing function types, ambiguous parallel structures, and cycles. ## Dependencies - [Organizations hierarchy/function-type contract](https://git.add-ideas.de/GovOPlaN/govoplan-organizations/issues/5) - Postbox model and manifest foundations (#1, #2) - Parent user story: #16
Author
Owner

Codex State: progress

Implemented immutable draft/published template revisions, tenant/unit/subtree/unit-type scopes, function-type validation, stable context-aware address keys, lazy idempotent materialization, exact Postboxes, vacancy policy, collision checks, and delivery-time target snapshots. Unit-move/context-closure policy and ambiguous multi-structure validation remain open.

## Codex State: progress Implemented immutable draft/published template revisions, tenant/unit/subtree/unit-type scopes, function-type validation, stable context-aware address keys, lazy idempotent materialization, exact Postboxes, vacancy policy, collision checks, and delivery-time target snapshots. Unit-move/context-closure policy and ambiguous multi-structure validation remain open.
zemion added
status
in-progress
and removed
status
ready
labels 2026-07-29 00:20:19 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-postbox#17
No description provided.