validation
azure_bootstrap.validation
¶
Lightweight JSON / queue-message schema validation.
Designed for the narrow case of validating untrusted queue payloads cheaply
at the consumer entry point — not a pydantic replacement. Schema failures
raise :class:InvalidMessageError (unrecoverable per the v2 exception
contract) so the Service Bus consumer wrapper dead-letters them.
Classes:
| Name | Description |
|---|---|
InvalidMessageError |
Queue payload failed schema validation. |
Functions:
| Name | Description |
|---|---|
validate_message |
Validate |
queue_message_schema |
Build a sensible MessageSchema for the common consumer case. |
InvalidMessageError
¶
Bases: UnrecoverableError
Queue payload failed schema validation.
validate_message
¶
validate_message(payload: Any, schema: MessageSchema, *, raise_unrecoverable: bool = True) -> dict[str, Any]
Validate payload against schema. Returns the dict on success.
Failures (non-dict, missing field, type mismatch, pattern, forbidden
substring/prefix, required_prefix) bump the namespaced counter and
raise :class:InvalidMessageError by default.
Source code in azure_bootstrap/validation/__init__.py
queue_message_schema
¶
queue_message_schema(*, required_fields: Iterable[str] = ('correlation_id',), path_field: str | None = None, path_required_prefix: str | None = None, counter_namespace: str = 'queue_message') -> MessageSchema
Build a sensible MessageSchema for the common consumer case.
Adds path-traversal defense (forbidden substrings .. and ://)
when path_field is supplied. required_prefix enforces a blob /
container scoping convention.