pub mod config;
pub mod core;
pub mod entities;
pub mod events;
pub mod links;
pub mod server;
pub mod storage;
pub mod prelude {
pub use crate::core::{
auth::{AuthContext, AuthPolicy, AuthProvider, NoAuthProvider},
entity::{Data, Entity, Link},
field::{FieldFormat, FieldValue},
link::{LinkAuthConfig, LinkDefinition, LinkEntity},
module::{EntityCreator, EntityFetcher, Module},
pluralize::Pluralizer,
query::{PaginatedResponse, PaginationMeta, QueryParams},
service::{DataService, LinkService},
store::QueryableStore,
validation::{EntityValidationConfig, Validated},
};
pub use crate::{
add_filters_for_field, add_validators_for_field, data_fields, entity_fields,
impl_data_entity, impl_data_entity_validated, impl_link_entity, link_fields,
};
pub use crate::links::{
handlers::{
AppState, create_link, delete_link, get_link, list_available_links, list_links,
update_link,
},
registry::{LinkDirection, LinkRouteRegistry, RouteInfo},
};
#[cfg(feature = "dynamodb")]
pub use crate::storage::{DynamoDBDataService, DynamoDBLinkService};
pub use crate::storage::{InMemoryDataService, InMemoryLinkService};
#[cfg(feature = "lmdb")]
pub use crate::storage::{LmdbDataService, LmdbLinkService};
#[cfg(feature = "mongodb_backend")]
pub use crate::storage::{MongoDataService, MongoLinkService};
#[cfg(feature = "mysql")]
pub use crate::storage::{MysqlDataService, MysqlLinkService};
#[cfg(feature = "neo4j")]
pub use crate::storage::{Neo4jDataService, Neo4jLinkService};
#[cfg(feature = "postgres")]
pub use crate::storage::{PostgresDataService, PostgresLinkService};
#[cfg(feature = "scylladb")]
pub use crate::storage::{ScyllaDataService, ScyllaLinkService};
pub use crate::config::{
EntityAuthConfig, EntityConfig, EventsConfig, LinksConfig, SinkConfig, SinkType,
ValidationRule,
};
pub use crate::server::{EntityDescriptor, EntityRegistry, ServerBuilder};
pub use anyhow::Result;
pub use async_trait::async_trait;
pub use chrono::{DateTime, Utc};
pub use serde::{Deserialize, Serialize};
pub use uuid::Uuid;
pub use axum::{
Router,
extract::{Path, State},
http::HeaderMap,
routing::{delete, get, post, put},
};
}