mud_server.services.policy.validation

Canonical policy validation and upsert workflows.

This module owns contract-level validation and validate-before-write behavior. Storage repositories remain persistence-only; this layer enforces business rules that define valid canonical policy objects.

Functions

parse_policy_id(policy_id)

Parse canonical policy_type:namespace:policy_key identity.

list_policies(*, policy_type, namespace, status)

List canonical policy variants with optional filter constraints.

get_policy(*, policy_id, variant)

Get a canonical policy row by id and optional variant selector.

validate_policy_variant(*, policy_id, variant, ...)

Validate one policy payload and persist validation-run history.

upsert_policy_variant(*, policy_id, variant, ...)

Validate then upsert one canonical policy variant row.

is_policy_variant_unchanged(*, existing_row[, ...])

Return whether the existing variant row already matches provided payload.

Module Contents

mud_server.services.policy.validation.parse_policy_id(policy_id)[source]

Parse canonical policy_type:namespace:policy_key identity.

Raises:

PolicyServiceError – When the identity format is invalid or policy type is not supported by canonical policy APIs.

mud_server.services.policy.validation.list_policies(*, policy_type, namespace, status)[source]

List canonical policy variants with optional filter constraints.

mud_server.services.policy.validation.get_policy(*, policy_id, variant)[source]

Get a canonical policy row by id and optional variant selector.

mud_server.services.policy.validation.validate_policy_variant(*, policy_id, variant, schema_version, policy_version, status, content, validated_by)[source]

Validate one policy payload and persist validation-run history.

mud_server.services.policy.validation.upsert_policy_variant(*, policy_id, variant, schema_version, policy_version, status, content, updated_by)[source]

Validate then upsert one canonical policy variant row.

The write path enforces the invariant that invalid payloads never reach canonical variant storage.

mud_server.services.policy.validation.is_policy_variant_unchanged(*, existing_row, schema_version=None, policy_version, status, content)[source]

Return whether the existing variant row already matches provided payload.