Govern distribution delivery channels

This commit is contained in:
2026-07-31 20:59:55 +02:00
parent e061f230f2
commit a89c39862a
5 changed files with 352 additions and 2 deletions
@@ -10,7 +10,7 @@ from govoplan_policy.backend.db.models import PolicyOverride
POLICY_SCOPE_TYPES = frozenset({"system", "tenant", "group", "user"})
POLICY_FAMILIES = frozenset({"definition", "view"})
POLICY_FAMILIES = frozenset({"definition", "distribution_channels", "view"})
class PolicyOverrideError(ValueError):
@@ -21,7 +21,9 @@ def normalize_policy_target(policy_family: str, target_key: str) -> tuple[str, s
family = policy_family.strip().casefold()
target = target_key.strip().casefold()
if family not in POLICY_FAMILIES:
raise PolicyOverrideError("Policy family must be definition or view")
raise PolicyOverrideError(
"Policy family must be definition, distribution_channels, or view"
)
if not target or len(target) > 120:
raise PolicyOverrideError("Policy target must contain 1 to 120 characters")
if family == "view" and target != "*":