Skip to main content

ahri_tre_app/
lib.rs

1//! Workflow-facing application services for AHRI TRE.
2//!
3//! `ahri_tre_app` coordinates metadata repositories, lake adapters, source SQL
4//! analysis, and authentication/session inputs into user-facing operations. It
5//! deliberately keeps concrete PostgreSQL, DuckDB, and OAuth wiring behind
6//! adapter crates so workflows can depend on a stable application boundary.
7
8/// Study access-request submission workflow and its application port.
9pub mod access_request;
10mod browser_catalogue_search;
11mod browser_observation;
12pub mod disclosure;
13mod session_observations;
14pub use browser_observation::observe_browser_workflow;
15pub use session_observations::SessionObservations;
16mod browser_datafile_search;
17mod browser_dataset_search;
18mod browser_datastore_discovery;
19mod browser_dictionary_discovery;
20mod browser_domain_discovery;
21mod browser_model_search;
22mod browser_relation_search;
23mod browser_resource_discovery;
24mod browser_semantic_discovery;
25mod browser_study_discovery;
26mod browser_variable_search;
27mod configured_datastore;
28mod configured_datastore_create;
29mod cursor_integrity;
30mod datastore_reachability;
31/// Application-level error type.
32pub mod error;
33mod file_asset;
34/// Projection helpers for public protocol DTOs.
35pub mod projections;
36/// Lake query request planning and authorization.
37pub mod query;
38/// Request and response data transfer types for application workflows.
39pub mod requests;
40/// The main application service facade.
41pub mod service;
42/// Datastore session construction and repository grouping.
43pub mod session;
44/// External SQL source analysis and import preparation.
45pub mod sql_source;
46
47pub use access_request::*;
48pub use ahri_tre_core::{ArchiveMode, DeleteTarget, TagAttachmentTarget};
49pub use browser_datafile_search::*;
50pub use browser_dataset_search::*;
51pub use browser_datastore_discovery::*;
52pub use browser_dictionary_discovery::*;
53pub use browser_domain_discovery::{
54    BrowserDomainDiscoveryCapability, BrowserDomainDiscoveryError, BrowserDomainSourceRecord,
55    BrowserDomainVariableSourceRecord, BrowserVocabularyMappingSourceRecord,
56    BrowserVocabularySource, get_browser_domain, get_browser_domain_variable,
57    get_browser_vocabulary, list_browser_domain_studies, list_browser_domain_variables,
58    list_browser_domains, list_browser_vocabulary_items, list_browser_vocabulary_mappings,
59};
60pub use browser_model_search::*;
61pub use browser_relation_search::*;
62pub use browser_semantic_discovery::*;
63// Compatibility projections retained for Web's deterministic route tests. Production callers use
64// only the workflow and capability boundary exported above.
65#[doc(hidden)]
66pub use browser_domain_discovery::{
67    collection_response, detail_response, internal_domain_id, internal_vocabulary_id,
68    public_domain_id, public_variable_id, public_vocabulary_id, study_collection_response,
69    variable_collection_response, variable_detail_response, vocabulary_detail_response,
70    vocabulary_item_collection_response, vocabulary_mapping_collection_response,
71};
72pub use browser_resource_discovery::*;
73pub use browser_study_discovery::*;
74pub use browser_variable_search::*;
75pub use configured_datastore::{
76    ConfiguredDatastoreOpenError, ConfiguredSessionReference, DatastoreSecretResolver,
77    LiveSessionIdentifier, OpenConfiguredDatastoreRequest, open_configured_datastore,
78    open_configured_datastore_for_session, open_configured_datastore_for_session_observed,
79    open_configured_datastore_with_observations, open_operation_control,
80    reconcile_configured_dataset_operations,
81};
82pub use configured_datastore_create::*;
83pub use datastore_reachability::*;
84pub use error::{AppError, RegistrationResource};
85pub use file_asset::resolve_file_asset_encryption;
86pub use projections::*;
87pub use query::*;
88pub use requests::*;
89pub use service::{
90    AcquisitionAuthorization, AppRepositories, AppService, AuthenticatedDataStoreSession,
91    acquire_ingest_file_content,
92};
93pub use session::{DataStoreSession, SessionMetadataRepositories, StoreSessionConnection};
94pub use sql_source::SqlSourceConnection;