1#![forbid(unsafe_code)]
4#![recursion_limit = "512"]
5
6extern crate self as bijux_atlas;
7
8pub(crate) use crate::contracts::api::{ApiError, ApiErrorCode};
9pub(crate) use crate::domain::dataset::{ArtifactManifest, Catalog, DatasetId};
10pub(crate) use crate::domain::sha256_hex;
11pub(crate) use axum::body::Body;
12pub(crate) use axum::extract::State;
13pub(crate) use axum::http::{HeaderMap, HeaderValue, StatusCode};
14pub(crate) use axum::response::{IntoResponse, Response};
15pub(crate) use axum::Json;
16pub(crate) use bijux_atlas::domain::query::{
17 classify_query, decode_cursor, encode_cursor, estimate_query_cost, query_genes, CursorPayload,
18 GeneFields, GeneQueryRequest, OrderMode, QueryClass, RegionFilter, TranscriptFilter,
19 TranscriptQueryRequest,
20};
21pub(crate) use rusqlite::Connection;
22pub(crate) use std::collections::HashMap;
23pub(crate) use std::sync::atomic::{AtomicU64, Ordering};
24pub(crate) use std::sync::Arc;
25pub(crate) use std::time::{Duration, Instant};
26pub(crate) use tokio::time::timeout;
27pub(crate) use tracing::Instrument;
28
29pub mod adapters;
30pub mod app;
31pub mod contracts;
32pub mod domain;
33pub(crate) mod packaged;
34pub mod runtime;
35pub mod version;
36#[allow(dead_code)]
37pub(crate) mod version_support;
38
39pub(crate) use crate::adapters::inbound::http::request_policies::{
40 chrono_like_unix_millis, record_shed_reason, route_sli_class,
41};
42pub(crate) use crate::app::cache::{CacheError, RegistrySourceHealth};
43pub(crate) use crate::app::ports::{CatalogFetch, DatasetStoreBackend};
44pub(crate) use crate::app::server::{AppState, DatasetCacheConfig, DatasetCacheManager};
45#[rustfmt::skip]
46pub(crate) use crate::runtime::config::{RateLimitConfig, runtime_build_hash};
47
48pub const CRATE_NAME: &str = "bijux-atlas";
49pub const ENV_BIJUX_LOG_LEVEL: &str = "BIJUX_LOG_LEVEL";
50pub const ENV_BIJUX_CACHE_DIR: &str = "BIJUX_CACHE_DIR";
51pub const NO_RANDOMNESS_POLICY: &str = "Randomness is forbidden in bijux-atlas";
52
53#[must_use]
54pub const fn no_randomness_policy() -> &'static str {
55 NO_RANDOMNESS_POLICY
56}