cadrumo.application.user_profile.aggregate module¶
Non-authoritative projection of one committed profile capsule.
Custody material is deliberately absent. A profile view is visible only after the storage owner has validated its immutable commit marker; the label is the repository’s presentation mapping, never a manifest or a key-selection hint.
- class LockedProfileFactSummary(**data)[source]¶
Bases:
BaseModelThe only fact/status projection available without an unlocked session.
- Parameters:
- availability: Literal['UNAVAILABLE_LOCKED']¶
- setup_state: Literal['UNAVAILABLE_LOCKED']¶
- fact_count: Literal[0]¶
- class UnlockedProfileFactSummary(**data)[source]¶
Bases:
BaseModelSession-authenticated current-record summary and provenance.
- Parameters:
availability (Literal['AVAILABLE_UNLOCKED'])
setup_state (ProfileSetupState)
record_revision (int)
content_digest (ContentDigest)
- availability: Literal['AVAILABLE_UNLOCKED']¶
- setup_state: ProfileSetupState¶
- fact_count: NonNegativeInt¶
- record_revision: int¶
- content_digest: ContentDigest¶
- class CommittedProfileView(**data)[source]¶
Bases:
BaseModelA safe read model, assembled from a committed capsule and label owner.
- Parameters:
profile_id (Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=1, max_length=36, pattern=^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$, ascii_only=None)])
label (Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=1, max_length=160, pattern=None, ascii_only=None), AfterValidator(func=~cadrumo.core.identity.profile_label._reject_uuid_shaped_label)])
committed_at (datetime)
publication_kind (Literal[ProfilePublicationKind.ENROLL, ProfilePublicationKind.RESTORE])
password_generation (int)
custody_present (Literal[True])
label_revision (int)
label_content_digest (Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=71, max_length=71, pattern=^sha256:[0-9a-f]{64}$, ascii_only=None)])
label_self_digest (Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=71, max_length=71, pattern=^sha256:[0-9a-f]{64}$, ascii_only=None)])
label_source_witness (Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=71, max_length=71, pattern=^sha256:[0-9a-f]{64}$, ascii_only=None)])
fact_summary (ProfileFactSummary)
- profile_id: ProfileId¶
- label: ProfileLabel¶
- committed_at: datetime¶
- publication_kind: ProfilePublicationKindValue¶
- password_generation: int¶
- custody_present: Literal[True]¶
- label_revision: int¶
- label_content_digest: PrefixedContentDigest¶
- label_self_digest: PrefixedContentDigest¶
- label_source_witness: PrefixedContentDigest¶
- fact_summary: ProfileFactSummary¶