aeat.application.ledger._rule_repository module¶
Profile-scoped encrypted repository for ledger classification rules.
LedgerClassificationRule records are stored through
SecureBoundRepository at the
SensitivityClass declared by
aeat.adapters.persistence.storage.LEDGER_CLASSIFICATION_RULES_NAMESPACE.
The bound repository serialises each rule through an
Envelope, so the stored rule
pattern, actor, category, and classification stay encrypted at rest.
See also
LedgerClassificationRuleContent-addressed payload model persisted by this repository.
aeat.application.ledger.add_classification_rule()Application entry point that creates and saves a rule.
aeat.application.ledger.apply_classification_rules()Application entry point that evaluates persisted rules over active ledger transactions.
- class LedgerClassificationRuleRepository(*, bucket_id=None, objects=None, settings=None)[source]¶
Bases:
SecureBoundRepository[LedgerClassificationRule]Encrypted profile-local store of
LedgerClassificationRulepayloads.The namespace, sensitivity, schema version, and object-key contract come from
aeat.adapters.persistence.storage.LEDGER_CLASSIFICATION_RULES_NAMESPACE. Rules are sorted by(priority, created_at)ascending so that lower-priority-number rules (higher precedence) are evaluated first. Among same-priority rules the earliest-created rule wins.- Parameters:
bucket_id (str | None)
objects (SecureObjectRepository | None)
settings (Settings | None)
-
sensitivity:
ClassVar[SensitivityClass]¶
- payload_type¶
alias of
LedgerClassificationRule
- extract_identifier(payload)[source]¶
Return the natural id for
payload(used as the SQL object key).Subclasses MUST override. The base implementation raises
NotImplementedError.- Return type:
- Parameters:
payload (LedgerClassificationRule)
- list_rules()[source]¶
Return all stored rules in application order: (priority asc, created_at asc).
Each element is a
LedgerClassificationRule.- Return type: