Source code for cadrumo.adapters.persistence.profile.auth_diagnostics
"""Encrypted persistence adapter for application auth diagnostics."""from__future__importannotationsfromdatetimeimportdatetimefromtypingimportoverridefrom....application.auth.diagnostics_portsimport(AuthDiagnosticPersistenceError,AuthDiagnosticPersistencePort,AuthDiagnosticPersistenceRecord,)from..storage.errorsimportStorageErrorfrom..storage.runtime_repositoryimportsecure_object_repository_for_active_bucketfrom..storage.secure_object_namespacesimportCLAVE_MOVIL_DIAGNOSTICS_NAMESPACE
[docs]classAuthDiagnosticPersistenceAdapter(AuthDiagnosticPersistencePort):"""Translate the active bucket's secure-object store to the auth port."""@staticmethoddef_repository():"""Resolve the repository only when an operation has an active bucket."""returnsecure_object_repository_for_active_bucket()@staticmethoddef_record(payload:bytes)->AuthDiagnosticPersistenceRecord:"""Translate a storage payload into the application-owned record."""returnAuthDiagnosticPersistenceRecord(payload=payload)
[docs]@overridedeflist_records(self)->tuple[AuthDiagnosticPersistenceRecord,...]:"""List readable diagnostic payloads from the canonical namespace."""try:returntuple(self._record(record.payload)forrecordinself._repository().list_records(CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.namespace,expected_class=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.sensitivity,max_supported_version=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.schema_version,))exceptStorageErroraserror:raiseAuthDiagnosticPersistenceError("list")fromerror
[docs]@overridedefload_record(self,diagnostic_id:str)->AuthDiagnosticPersistenceRecord|None:"""Load one readable diagnostic payload from the canonical namespace."""try:record=self._repository().load(CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.namespace,diagnostic_id,expected_class=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.sensitivity,max_supported_version=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.schema_version,)exceptStorageErroraserror:raiseAuthDiagnosticPersistenceError("load")fromerrorreturnNoneifrecordisNoneelseself._record(record.payload)
[docs]@overridedefsave_record(self,diagnostic_id:str,payload:bytes,*,written_at:datetime)->None:"""Save one diagnostic payload under the canonical namespace contract."""try:self._repository().save(namespace=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.namespace,object_key=diagnostic_id,classification=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.sensitivity,schema_version=CLAVE_MOVIL_DIAGNOSTICS_NAMESPACE.schema_version,written_at=written_at,payload=payload,)exceptStorageErroraserror:raiseAuthDiagnosticPersistenceError("save")fromerror
[docs]defbuild_auth_diagnostic_persistence()->AuthDiagnosticPersistencePort:"""Build the stateless active-bucket auth-diagnostic adapter."""returnAuthDiagnosticPersistenceAdapter()