Source code for cadrumo.adapters.persistence.profile.sync_runs
"""Encrypted persistence adapter for application sync-run provenance records.Core types::class:`~cadrumo.core.classification.policies.SensitivityClass`."""from__future__importannotationsfromtypingimportClassVar,overridefrompydanticimportBaseModelfrom....application.storage.sync_runs.recordsimport(SyncRunRecord,SyncRunRecordRepositoryProtocol,sync_run_record_key,)from....core.classification.policiesimportSensitivityClassfrom....domain.buckets.eventimportBucketEventfrom....domain.buckets.event_repositoryimportbucket_event_history_writefrom..storage.envelope.secure_bound_repositoryimportSecureBoundRepositoryfrom..storage.secure_object_namespacesimportSYNC_RUN_RECORDS_NAMESPACEfrom.bucketsimportBucketEventHistoryRepository
[docs]classSyncRunRecordRepository(SecureBoundRepository[SyncRunRecord],SyncRunRecordRepositoryProtocol):"""Store sync provenance and its bucket event in one secure-object transaction."""namespace:ClassVar[str]=SYNC_RUN_RECORDS_NAMESPACE.namespacesensitivity:ClassVar[SensitivityClass]=SYNC_RUN_RECORDS_NAMESPACE.sensitivityschema_version:ClassVar[int]=SYNC_RUN_RECORDS_NAMESPACE.schema_versionpayload_type:ClassVar[type[BaseModel]]=SyncRunRecord
[docs]@overridedefsave_with_bucket_event(self,record:SyncRunRecord,event:BucketEvent)->None:"""Commit the run record and its event with the shared backend transaction."""events=BucketEventHistoryRepository(objects=self.secure_object_repository)event_write=bucket_event_history_write(events,(event,))self.secure_object_repository.save_many((self.to_secure_object_write(record),event_write))