Skip to main content

Crate ahri_tre_pgmeta

Crate ahri_tre_pgmeta 

Source
Expand description

PostgreSQL metadata adapter for AHRI TRE.

This crate keeps metadata persistence behind PostgreSQL/libpq-oriented boundaries. It exposes direct PostgreSQL connectivity, OAuth-backed executor support, read/write models for the metadata schema, and a repository implementation for the core domain traits.

Schema-pending read models are exposed under the root-level provisional module, and provisional read paths are named explicitly.

ⓘ
use ahri_tre_pgmeta::provisional::PgVariableMappingReadModel;

// connection.list_variable_mappings_provisional()?;

Re-exports§

pub use access_requests::AccessRequestCustodianApprovalOutcome;
pub use access_requests::AccessRequestCustodianDecisionOutcome;
pub use access_requests::AccessRequestCustodianInspection;
pub use access_requests::AccessRequestDatastoreId;
pub use access_requests::AccessRequestId;
pub use access_requests::AccessRequestLifecycle;
pub use access_requests::AccessRequestSubmission;
pub use access_requests::AccessRequestSubmissionOutcome;
pub use access_requests::AccessRequestWithdrawalOutcome;
pub use access_requests::AuthenticatedCustodianStudyAccessRequestPort;
pub use access_requests::BorrowedAuthenticatedCustodianStudyAccessRequestPort;
pub use access_requests::CustodianAccessRequestInspectionRecord;
pub use access_requests::CustodianStudyAccessRequest;
pub use access_requests::CustodianStudyAccessRequestApproval;
pub use access_requests::CustodianStudyAccessRequestRejection;
pub use access_requests::CustodianStudyAccessRequestScope;
pub use access_requests::RequesterStudyAccessRequest;
pub use access_requests::RequesterStudyAccessRequestScope;
pub use access_requests::StudyAccessRequestDecision;
pub use access_requests::StudyAccessRequestMetadataExecutor;
pub use adapter::DirectPostgresConnectConfig;
pub use adapter::PgHealth;
pub use adapter::PgMetadataAdapter;
pub use adapter::PgMetadataConnection;
pub use adapter::SchemaBootstrapReport;
pub use datastore_creation::PgDatastoreCreationConnection;
pub use datastore_creation::PgDatastoreCreationSpec;
pub use datastore_creation::PgDatastoreCreationStart;
pub use datastore_creation::PgDatastoreCredentialRotationError;
pub use datastore_creation::PgDatastoreReconciliationError;
pub use datastore_creation::PgDatastoreValidationSpec;
pub use datastore_creation::PgPendingDatastoreCreation;
pub use datastore_creation::apply_datastore_credential_rotation;
pub use datastore_creation::begin_datastore_creation;
pub use datastore_creation::find_existing_datastore_binding;
pub use datastore_creation::inspect_datastore_identity_bindings;
pub use datastore_creation::rollback_datastore_credential_rotation;
pub use datastore_creation::validate_existing_datastore_postgresql;
pub use datastore_identity::advance_ready_datastore_identity_lake_path;
pub use datastore_identity::create_datastore_identity_table;
pub use datastore_identity::datastore_identity_table_exists;
pub use datastore_identity::datastore_identity_table_exists_oauth;
pub use datastore_identity::insert_datastore_identity_binding;
pub use datastore_identity::mark_datastore_identity_failed;
pub use datastore_identity::mark_datastore_identity_ready;
pub use datastore_identity::read_datastore_identity_bindings;
pub use datastore_identity::read_datastore_identity_bindings_oauth;
pub use datastore_identity::read_ready_datastore_identity_bindings;
pub use datastore_identity::read_ready_datastore_identity_bindings_oauth;
pub use datastore_identity::update_datastore_identity_credential;
pub use discovery::DatastoreCandidateInspection;
pub use discovery::DatastoreCandidateStatus;
pub use discovery::DatastoreDiscoveryWarning;
pub use discovery::DatastoreServerDiscovery;
pub use discovery::discover_datastores;
pub use discovery::discover_configured_datastore_with_ca;
pub use discovery::discover_configured_datastore_with_ca_and_routing_address;
pub use discovery::discover_datastores_with_ca;
pub use error::PgMetaError;
pub use execution::MetadataExecutor;
pub use execution::MetadataParameters;
pub use execution::MetadataTransaction;
pub use read_models::METADATA_TABLES;
pub use read_models::PgAssetReadModel;
pub use read_models::PgAssetTagReadModel;
pub use read_models::PgAssetVersionDuoRestrictionReadModel;
pub use read_models::PgAssetVersionEntityReadModel;
pub use read_models::PgAssetVersionReadModel;
pub use read_models::PgAssetVersionRelationInstanceReadModel;
pub use read_models::PgAssetVersionTagReadModel;
pub use read_models::PgDataFileReadModel;
pub use read_models::PgDatasetReadModel;
pub use read_models::PgDatasetVariableReadModel;
pub use read_models::PgDatasetVersionEntityReadModel;
pub use read_models::PgDatasetVersionRelationInstanceReadModel;
pub use read_models::PgDomainReadModel;
pub use read_models::PgDomainTagReadModel;
pub use read_models::PgDuoCodeReadModel;
pub use read_models::PgDuoRestrictionReadModel;
pub use read_models::PgEntityInstanceReadModel;
pub use read_models::PgEntityReadModel;
pub use read_models::PgEntityRelationReadModel;
pub use read_models::PgEntityRelationTagReadModel;
pub use read_models::PgEntityTagReadModel;
pub use read_models::PgRelationInstanceReadModel;
pub use read_models::PgStudyAccessReadModel;
pub use read_models::PgStudyCustodianReadModel;
pub use read_models::PgStudyDomainReadModel;
pub use read_models::PgStudyEntityInstanceReadModel;
pub use read_models::PgStudyReadModel;
pub use read_models::PgStudyRelationInstanceReadModel;
pub use read_models::PgStudyTagReadModel;
pub use read_models::PgStudyTypeReadModel;
pub use read_models::PgTagReadModel;
pub use read_models::PgTagTarget;
pub use read_models::PgTransformationInputReadModel;
pub use read_models::PgTransformationOutputReadModel;
pub use read_models::PgTransformationReadModel;
pub use read_models::PgValueTypeReadModel;
pub use read_models::PgVariableReadModel;
pub use read_models::PgVariableTagReadModel;
pub use read_models::PgVocabularyItemReadModel;
pub use read_models::PgVocabularyMappingReadModel;
pub use read_models::PgVocabularyReadModel;
pub use repository::PgMetadataRepository;
pub use repository::UploadMetadataDeadline;
pub use schema::AccessRequestAuthority;
pub use schema::CURRENT_DATASTORE_SCHEMA_VERSION;
pub use schema::DatastoreMigrationAction;
pub use schema::DatastoreMigrationApplyReport;
pub use schema::DatastoreMigrationPlan;
pub use schema::DatastoreMigrationScope;
pub use schema::DatastoreMigrationStep;
pub use schema::DatastoreSchemaCompatibility;
pub use schema::DatastoreSchemaStatus;
pub use schema::apply_datastore_schema_migration;
pub use schema::datastore_schema_status;
pub use schema::plan_datastore_schema_migration;
pub use write_models::PgCreateAsset;
pub use write_models::PgCreateAssetVersion;
pub use write_models::PgCreateAssetVersionDuoRestriction;
pub use write_models::PgCreateDataFile;
pub use write_models::PgCreateDomain;
pub use write_models::PgCreateDuoCode;
pub use write_models::PgCreateEntity;
pub use write_models::PgCreateEntityInstanceInStudy;
pub use write_models::PgCreateEntityRelation;
pub use write_models::PgCreateRelationInstanceInStudy;
pub use write_models::PgCreateStudy;
pub use write_models::PgCreateStudyDuoRestriction;
pub use write_models::PgCreateTransformation;
pub use write_models::PgCreateVariable;
pub use write_models::PgCreateVocabulary;
pub use write_models::PgCreateVocabularyItem;
pub use write_models::PgCreateVocabularyMapping;
pub use write_models::PgDuoQualifiers;
pub use write_models::PgWriteEntityInstance;
pub use write_models::PgWriteRelationInstance;
pub use write_models::PgWriteStudyEntityInstance;
pub use write_models::PgWriteStudyRelationInstance;
pub use write_models::PgWriteTagTarget;

Modules§

access_requests
Typed Study access-request persistence boundary.
adapter
datastore_creation
PostgreSQL-owned mechanics for starting a configured Datastore creation saga.
datastore_identity
discovery
error
execution
governance
Guarded Asset classification and operator-owned preserving conversion. Both direct and libpq Sessions use the same transaction/function boundary.
preflight
Read-only metadata diagnostic over an already selected service authority.
provisional
read_models
PostgreSQL read models and query helpers for the metadata schema.
repository
schema
semantic
Durable semantic field origins. Missing provenance is never reconstructed from a shared Domain, a current Dataset link, or a Transformation label.
semantic_records
Bounded, revision-bound instance and composite-link readbacks.
write_models
PostgreSQL write models and insert/update helpers for metadata tables.

Structs§

DatasetAdmissionReceipt
Private evidence retained independently of public operation history.
PgDatasetMaintenance
Configured maintenance authority exposes only known-attempt reconciliation. The underlying administrator connection never escapes this adapter boundary.
PgDatasetRecovery
Exclusive cleanup authority for one known stopped attempt. It has no writer or metadata-admission interface and cannot replay the interrupted operation.
PgDatasetReservation
An accepted writer holds process exclusion until its last synchronous effect returns. Dropping it leaves the durable reservation for reconciliation.
PgDatasetReset
Administrative Lake replacement has no materialization/admission methods.
PgOperationKey
Serializes only admission for one actor-scoped key on a dedicated user connection. Dropping it after committed acceptance lets retries inspect the operation without waiting for Lake execution or occupying a worker permit.
PgStudyLifecycleGuard
A synchronous destructive workflow excludes new Dataset admissions in its Study and refuses to start while any durable output reservation remains. The connection owns the lock, so connection loss releases it automatically.
RecoverableDatasetAttempt
Private attempt identity; this is independent of any public operation record.

Enums§

DatasetAdmissionError
A failed admission distinguishes a known rollback from an unresolved outcome.
DatasetAdmissionState
DatasetReservationError

Functions§

provision_orcid_workflow_entry
Creates or reuses the requester’s login role and grants inheriting membership in the configured OAuth group role.