aeat.adapters.persistence.storage.sql._secure_object_records module

Pydantic records for SQL secure object persistence.

Secure object read/write records carry SensitivityClass so repository policy can enforce the expected storage classification.

class SecureObjectRecord(**data)[source]

Bases: BaseModel

One decrypted sensitive object loaded from the SQL backend.

Parameters:
namespace: str
object_key: bytes
classification: SensitivityClass
schema_version: int
written_at: datetime
payload: bytes
class SecureObjectMetadata(**data)[source]

Bases: BaseModel

Row-level metadata for one stored secure object, decryption-free.

Parameters:
namespace: str
classification: str
schema_version: int
written_at: datetime
byte_length: int
class SecureObjectDeletion(**data)[source]

Bases: BaseModel

One secure-object row removal addressed by its raw HMAC digest.

Deletions are addressed by the stored object_key digest (the HashedLookup column value) rather than the natural key, because a diff-based writer enumerates the stored rows by digest and cannot recover their natural keys (those are recoverable only by decrypting each payload). The 32-byte digest passes straight through the HashedLookup column comparison without re-hashing, the same convention save_with_raw_key() and exists_by_raw_key() use.

Parameters:
  • namespace (str)

  • hashed_object_key (bytes)

namespace: str
hashed_object_key: bytes
class SecureObjectUnreadable(**data)[source]

Bases: BaseModel

One stored secure object that cannot be decrypted under the current master key.

Parameters:
namespace: str
row_id: int
object_key: bytes
classification: str
schema_version: int
written_at: datetime
reason: str
class SecureObjectRawRow(**data)[source]

Bases: BaseModel

One stored row surfaced without classification / version validation or decryption.

Parameters:
  • row_id (int)

  • namespace (str)

  • object_key (bytes)

  • classification (str)

  • schema_version (int)

  • written_at (datetime)

  • payload (bytes)

  • revision_id (str | None)

  • previous_revision_id (str | None)

  • revision_ancestor_ids (tuple[str, ...])

  • previous_payload_hash (str | None)

  • payload_hash (str | None)

  • ciphertext_hash (str | None)

  • revision_written_at (datetime | None)

row_id: int
namespace: str
object_key: bytes
classification: str
schema_version: int
written_at: datetime
payload: bytes
revision_id: str | None
previous_revision_id: str | None
revision_ancestor_ids: tuple[str, ...]
previous_payload_hash: str | None
payload_hash: str | None
ciphertext_hash: str | None
revision_written_at: datetime | None
class SecureObjectNamespaceIntegrity(**data)[source]

Bases: BaseModel

Per-namespace decryptability counts for the integrity diagnostic.

Parameters:
  • namespace (str)

  • readable (int)

  • unreadable (int)

namespace: str
readable: int
unreadable: int
class SecureObjectDecryptabilityRow(**data)[source]

Bases: BaseModel

Row-level decryptability metadata without plaintext payload disclosure.

Parameters:
namespace: str
row_id: int
object_key: bytes
classification: str
schema_version: int
written_at: datetime
readable: bool
reason: str | None