GovOPlaN Policy

Repository type: module (platform).

govoplan-policy owns policy and retention API route contributions and the retention administration WebUI sections during the GovOPlaN module split.

The @govoplan/policy-webui package contributes system, tenant, group, and user retention sections through the shared admin.sections UI capability. The admin shell does not render retention policy panels unless this module is installed and enabled.

Policy decision and provenance payloads use the shared kernel DTOs documented in docs/POLICY_DECISION_PROVENANCE.md and /mnt/DATA/git/govoplan-core/docs/POLICY_CONTRACTS.md.

Hierarchical policy evaluation, delegation ceilings, and write simulations are implemented in govoplan_policy.backend.hierarchy. Privacy retention uses that shared helper and exposes /api/v1/admin/privacy-retention/policies/{scope}/simulate for preflight checks before saving lower-level policy changes.

The module also provides the optional policy.schedulingParticipantPrivacy capability. Scheduling owns each request's participant-visibility setting; Policy can only preserve or narrow it. The resolver reads an optional maximum_visibility ceiling from the scheduling_participant_privacy_policy object in system and tenant settings. Missing policy is unrestricted, while malformed explicit policy fails closed to aggregate-only visibility. This resolver slice intentionally has no policy management endpoint or UI yet.

Policy also provides policy.definitionGovernance for Dataflow and Workflow libraries. It evaluates view, edit, run/start, reuse, derive, and automation actions across system, tenant, group, and user scopes. Templates cannot run or be automated. Derived definitions retain ancestor ceilings, and every decision includes the ordered Policy source path and effective limits so a UI can explain why an action is available or blocked.

Description
GovOPlaN policy module for policy contracts, governance rules, retention settings, decision explanations, and policy-source management.
Readme 144 KiB
Languages
Python 88.3%
TypeScript 11.7%