[Feature] Complete temporal read-context adoption across effective-dated modules #39

Open
opened 2026-08-04 17:28:12 +02:00 by zemion · 2 comments
Owner

Context

Core now provides an independent valid-time and recorded-time request context, a titlebar selector, cache variation, and an explicit SQLAlchemy revision filter. Decisions, Mandates, Parties, and Services are the first canonical bitemporal adopters.

Automatic ORM filtering is intentionally prohibited because effective-dated Access, IDM, Organizations, routing, and policy records are also used for current authorization and execution. Historical browsing must never restore an expired permission, delegation, route, or authority.

Scope

  • Inventory effective-dated and revisioned read surfaces in Access, IDM, Organizations, Addresses, Distribution Lists, Postbox, Cases, Approvals, Committee, Forms, Projects, Reporting, Risk Compliance, and Voting.
  • Classify every query as display/history, explicit point-in-time resolution, current authorization, current execution/routing, or mutation/OCC.
  • Apply the shared temporal helper only to display/history queries; preserve explicit resolver times and exact revision references.
  • Add an explicit support/provenance signal so the WebUI can explain when a page does not yet consume the selected data state.
  • Add regression tests proving historical selection does not alter current authorization, module policy, routing, lifecycle mutation, or effect execution.
  • Update each owning module's user/admin documentation as it adopts the contract.

Acceptance criteria

  • Every effective-dated module has a recorded classification and test evidence.
  • Supported display surfaces independently honor valid time and recorded time.
  • Unsupported surfaces explain their limitation rather than implying that a global filter was applied.
  • Current security and consequential actions remain invariant under all titlebar temporal selections.

The Core temporal context is implemented and published; remaining cross-module adoption and evidence are tracked here and in #40 (status reconciled 2026-09-08).

## Context Core now provides an independent valid-time and recorded-time request context, a titlebar selector, cache variation, and an explicit SQLAlchemy revision filter. Decisions, Mandates, Parties, and Services are the first canonical bitemporal adopters. Automatic ORM filtering is intentionally prohibited because effective-dated Access, IDM, Organizations, routing, and policy records are also used for current authorization and execution. Historical browsing must never restore an expired permission, delegation, route, or authority. ## Scope - Inventory effective-dated and revisioned read surfaces in Access, IDM, Organizations, Addresses, Distribution Lists, Postbox, Cases, Approvals, Committee, Forms, Projects, Reporting, Risk Compliance, and Voting. - Classify every query as display/history, explicit point-in-time resolution, current authorization, current execution/routing, or mutation/OCC. - Apply the shared temporal helper only to display/history queries; preserve explicit resolver times and exact revision references. - Add an explicit support/provenance signal so the WebUI can explain when a page does not yet consume the selected data state. - Add regression tests proving historical selection does not alter current authorization, module policy, routing, lifecycle mutation, or effect execution. - Update each owning module's user/admin documentation as it adopts the contract. ## Acceptance criteria - Every effective-dated module has a recorded classification and test evidence. - Supported display surfaces independently honor valid time and recorded time. - Unsupported surfaces explain their limitation rather than implying that a global filter was applied. - Current security and consequential actions remain invariant under all titlebar temporal selections. The Core temporal context is implemented and published; remaining cross-module adoption and evidence are tracked here and in #40 (status reconciled 2026-09-08).
Author
Owner

The shared adoption contract is now implemented locally in Core and the strict meta inventory: manifests expose temporal, purpose, retention, and institutional-context adoption; runtime APIs and signed release catalogs preserve it; supported maturity will reject unproved applicable dimensions. The current inventory deliberately reports all 260 dimensions as contract_only. Temporal module adoption in this issue therefore remains open and is now a child of the broader information-governance work package created in this update. See govoplan-core/docs/INFORMATION_GOVERNANCE_ADOPTION.md and govoplan/docs/STRATEGY_STATUS.md.

<!-- codex-information-governance-baseline-2026-08-05 --> The shared adoption contract is now implemented locally in Core and the strict meta inventory: manifests expose temporal, purpose, retention, and institutional-context adoption; runtime APIs and signed release catalogs preserve it; supported maturity will reject unproved applicable dimensions. The current inventory deliberately reports all 260 dimensions as `contract_only`. Temporal module adoption in this issue therefore remains open and is now a child of the broader information-governance work package created in this update. See `govoplan-core/docs/INFORMATION_GOVERNANCE_ADOPTION.md` and `govoplan/docs/STRATEGY_STATUS.md`.
Author
Owner

Status reconciliation — 2026-09-08

The local-only/all-260-contract-only note in comment 18768 is historical. Current registered manifests and the strict manifest check on 2026-09-08 report 72 modules / 288 governance dimensions: 7 enforced, 281 contract_only, 0 partial. Cases enforces temporal browsing, purpose-aware access and institutional context; retention remains explicitly contract-only (Cases #6, 17415d8). Records enforces all four dimensions (purpose-bound access completion a2dd280). Both are composed at v0.1.24; their manifests and test_case_lifecycle.py / test_records.py retain current-authorization evidence for historical reads.

This cross-module temporal-adoption issue remains in progress, under #40. Classification and applicable display/history adoption across the remaining modules is not complete. A titlebar selection or a shared resolver does not establish that every query or effect path honors the contract. Current security, routing and consequential actions must remain current, independent of historical browsing.

<!-- govoplan-backlog-reconciliation-20260908-v1 --> ## Status reconciliation — 2026-09-08 The local-only/all-260-contract-only note in comment 18768 is historical. Current registered manifests and the strict manifest check on 2026-09-08 report 72 modules / 288 governance dimensions: **7 enforced, 281 contract_only, 0 partial**. Cases enforces temporal browsing, purpose-aware access and institutional context; retention remains explicitly contract-only ([Cases #6](https://git.add-ideas.de/GovOPlaN/govoplan-cases/issues/6), `17415d8`). Records enforces all four dimensions (purpose-bound access completion `a2dd280`). Both are composed at v0.1.24; their manifests and `test_case_lifecycle.py` / `test_records.py` retain current-authorization evidence for historical reads. This cross-module temporal-adoption issue remains **in progress**, under #40. Classification and applicable display/history adoption across the remaining modules is not complete. A titlebar selection or a shared resolver does not establish that every query or effect path honors the contract. Current security, routing and consequential actions must remain current, independent of historical browsing.
zemion added
status
in-progress
and removed
status
ready
labels 2026-09-08 05:27:54 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan#39