feat(policy): resolve scheduling participant privacy
This commit is contained in:
@@ -20,6 +20,34 @@ When retention needs audit-log storage behavior, it requests the
|
||||
`audit.retention` capability; it does not import audit module tables or
|
||||
providers directly.
|
||||
|
||||
## Scheduling Participant Privacy
|
||||
|
||||
Policy exposes `policy.schedulingParticipantPrivacy` as an optional restriction
|
||||
hook. Scheduling supplies the request-level visibility choice and remains
|
||||
responsible for its secure fallback when Policy is absent. The provider never
|
||||
broadens that choice.
|
||||
|
||||
System and tenant settings may contain:
|
||||
|
||||
```json
|
||||
{
|
||||
"scheduling_participant_privacy_policy": {
|
||||
"maximum_visibility": "aggregates_only"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`maximum_visibility` is either `aggregates_only` or `names_and_statuses`.
|
||||
Omitted settings impose no additional restriction. Effective visibility is the
|
||||
most restrictive of the Scheduling request, the system ceiling, and the tenant
|
||||
ceiling. Explicit malformed policy fails closed to `aggregates_only` and is
|
||||
reported in decision details without echoing the invalid stored value. Policy
|
||||
sources include only explicitly configured or invalid system and tenant steps.
|
||||
|
||||
The current slice is resolver-only. A managed write API and administration UI
|
||||
must add validation, audit, parent-ceiling enforcement, and configuration
|
||||
safety registration before operators can edit this setting through GovOPlaN.
|
||||
|
||||
## Backend DTOs
|
||||
|
||||
Use `govoplan_core.core.policy.PolicyDecision` for explainable policy results:
|
||||
|
||||
Reference in New Issue
Block a user