[Architecture] Define procedure-party, representation, and delivery-authority semantics #32

Closed
opened 2026-07-31 23:59:10 +02:00 by zemion · 4 comments
Owner

Outcome

Represent how a person or organization participates in a concrete procedure without creating another identity, organization, or address master.

Parent: #29

Scope

Define effective-dated applicant, respondent, beneficiary, joint party, representative, delivery recipient, and other typed procedure roles; powers/authority to represent; permitted and preferred channels; stable provider subject/contact references; evidence and provenance.

Boundary and compatibility

Identity answers who; Organizations answers which unit; Addresses owns contact points; Access authorizes application actions; Parties owns the procedure-local role and relationship. Cases may keep a minimal local compatibility projection but must not grow a duplicate representation lifecycle.

Create govoplan-parties only after a second procedure consumes the shared lifecycle or a first complete service proves independent persistence/security needs.

Acceptance criteria

  • Historical party and representation resolution is deterministic.
  • Joint parties, limited powers, delivery authority, expiry/revocation, and conflicts are explicit.
  • Downstream communication receives only policy-permitted frozen address/channel facts.
  • A Case path works with and without the optional provider through a documented compatibility mode.
  • Access, privacy, evidence, and correction tests cover cross-tenant and stale-authority cases.
## Outcome Represent how a person or organization participates in a concrete procedure without creating another identity, organization, or address master. Parent: https://git.add-ideas.de/GovOPlaN/govoplan/issues/29 ## Scope Define effective-dated applicant, respondent, beneficiary, joint party, representative, delivery recipient, and other typed procedure roles; powers/authority to represent; permitted and preferred channels; stable provider subject/contact references; evidence and provenance. ## Boundary and compatibility Identity answers who; Organizations answers which unit; Addresses owns contact points; Access authorizes application actions; Parties owns the procedure-local role and relationship. Cases may keep a minimal local compatibility projection but must not grow a duplicate representation lifecycle. Create `govoplan-parties` only after a second procedure consumes the shared lifecycle or a first complete service proves independent persistence/security needs. ## Acceptance criteria - Historical party and representation resolution is deterministic. - Joint parties, limited powers, delivery authority, expiry/revocation, and conflicts are explicit. - Downstream communication receives only policy-permitted frozen address/channel facts. - A Case path works with and without the optional provider through a documented compatibility mode. - Access, privacy, evidence, and correction tests cover cross-tenant and stale-authority cases. <!-- codex-parties-semantic-contract-2026-07-31 -->
Author
Owner

Codex State: progress

Summary

  • Core now defines procedure-local Party, subject, representation/power, delivery-recipient, channel, evidence, contact-snapshot, status, and effective-time DTOs plus a provider protocol.

Verification

  • Cross-tenant validation, protected serialization, and semantic round-trip tests pass.

Next / Blocked

  • Add persisted historical resolution, limited/joint-party conflict behavior, policy-filtered frozen delivery facts, and a Case compatibility-mode proof before closing.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Core now defines procedure-local Party, subject, representation/power, delivery-recipient, channel, evidence, contact-snapshot, status, and effective-time DTOs plus a provider protocol. ### Verification - `Cross-tenant validation, protected serialization, and semantic round-trip tests pass.` ### Next / Blocked - Add persisted historical resolution, limited/joint-party conflict behavior, policy-filtered frozen delivery facts, and a Case compatibility-mode proof before closing. Suggested status label: `status/in-progress`
zemion added
status
in-progress
and removed
status
ready
labels 2026-08-01 03:35:42 +02:00
Author
Owner

Codex State: progress

Summary

  • Cases now resolves effective procedure Parties through the optional provider or a bounded local compatibility projection without copying Identity, Organizations, or Addresses masters.
  • Delivery targets require permitted channels and frozen contact snapshots; stale/revoked representation authority is excluded. Core adds OCC-guarded party corrections and explicit representation revocation.

Changed Files

  • govoplan-cases/src/govoplan_cases/backend/party_context.py
  • govoplan-core/src/govoplan_core/core/institutional.py

Verification

  • Cases suite: 6 tests passed
  • Core institutional contract: 12 tests passed

Next / Blocked

  • Prove provider-side access/privacy filtering and reuse from a second procedure before extracting a Parties persistence module.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Cases now resolves effective procedure Parties through the optional provider or a bounded local compatibility projection without copying Identity, Organizations, or Addresses masters. - Delivery targets require permitted channels and frozen contact snapshots; stale/revoked representation authority is excluded. Core adds OCC-guarded party corrections and explicit representation revocation. ### Changed Files - `govoplan-cases/src/govoplan_cases/backend/party_context.py` - `govoplan-core/src/govoplan_core/core/institutional.py` ### Verification - `Cases suite: 6 tests passed` - `Core institutional contract: 12 tests passed` ### Next / Blocked - Prove provider-side access/privacy filtering and reuse from a second procedure before extracting a Parties persistence module. Suggested status label: `status/in-progress`
Author
Owner

Codex State: done

Summary

  • Cases now works with an optional Parties provider and a documented bounded compatibility mode; provider access denial fails closed and never falls back.
  • Effective party roles, limited representation powers, revocation, conflicts, frozen delivery snapshots, evidence, cross-tenant rejection, and OCC-guarded correction are covered.

Verification

  • Core institutional contract: 13 tests passed
  • Cases suite: 7 tests passed

Next / Blocked

  • A persistent Parties repository remains conditional on a second procedure consumer or a complete service proving independent lifecycle needs.
## Codex State: done ### Summary - Cases now works with an optional Parties provider and a documented bounded compatibility mode; provider access denial fails closed and never falls back. - Effective party roles, limited representation powers, revocation, conflicts, frozen delivery snapshots, evidence, cross-tenant rejection, and OCC-guarded correction are covered. ### Verification - `Core institutional contract: 13 tests passed` - `Cases suite: 7 tests passed` ### Next / Blocked - A persistent Parties repository remains conditional on a second procedure consumer or a complete service proving independent lifecycle needs.
Author
Owner

Codex State: done

govoplan-parties now owns effective-dated procedure roles, frozen contact snapshots, delivery authority, and representation powers. Powers cannot disappear or be rewritten; revocation is explicit, evidence-backed, and OCC-guarded. Cases consumes the tenant-bounded parties.resolver capability.

  • tools/checks/check-focused.sh: passed, including 35 WebUI permutations and full-product bundle budgets.
  • Architecture manifest gate: 60/60 declarations; static contract graph: 60 modules, 98 providers, 54 requirements.
  • Release migration audit: valid graph including the four new module heads.
  • SQL-backed institutional golden journey, configuration-package preflight, module tests, Ruff, and startup smoke: passed.

Source push/tagging remains a separate release action.

## Codex State: done `govoplan-parties` now owns effective-dated procedure roles, frozen contact snapshots, delivery authority, and representation powers. Powers cannot disappear or be rewritten; revocation is explicit, evidence-backed, and OCC-guarded. Cases consumes the tenant-bounded `parties.resolver` capability. - `tools/checks/check-focused.sh`: passed, including 35 WebUI permutations and full-product bundle budgets. - Architecture manifest gate: 60/60 declarations; static contract graph: 60 modules, 98 providers, 54 requirements. - Release migration audit: valid graph including the four new module heads. - SQL-backed institutional golden journey, configuration-package preflight, module tests, Ruff, and startup smoke: passed. Source push/tagging remains a separate release action.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan#32