Skip to main content

shaperail_core/
lib.rs

1//! # shaperail-core
2//!
3//! Shared foundation types for the Shaperail framework.
4//!
5//! This crate defines the core data structures that all other Shaperail crates
6//! consume: resource definitions, field types, endpoint specs, error handling,
7//! and project configuration.
8
9mod channel;
10mod config;
11mod database;
12mod endpoint;
13mod error;
14mod field_type;
15mod relation;
16mod resource;
17mod saga;
18mod schema;
19mod workspace;
20
21pub use channel::{ChannelDefinition, ChannelHooks, WsClientMessage, WsServerMessage};
22pub use config::{
23    AuthConfig, CacheConfig, DatabaseConfig, EventSubscriber, EventTarget, EventsConfig,
24    GraphQLConfig, GrpcConfig, InboundWebhookConfig, LoggingConfig, NamedDatabaseConfig,
25    ProjectConfig, StorageConfig, WebhookConfig, WorkerCount,
26};
27pub use database::DatabaseEngine;
28pub use endpoint::{
29    apply_endpoint_defaults, endpoint_convention, AuthRule, CacheSpec, ControllerSpec,
30    EndpointSpec, HttpMethod, PaginationStyle, UploadSpec, WASM_HOOK_PREFIX,
31};
32pub use error::{FieldError, ShaperailError};
33pub use field_type::FieldType;
34pub use relation::{IndexSpec, RelationSpec, RelationType};
35pub use resource::ResourceDefinition;
36pub use saga::{SagaDefinition, SagaExecutionStatus, SagaStep};
37pub use schema::FieldSchema;
38pub use workspace::{
39    InterServiceClientConfig, ServiceDefinition, ServiceRegistryEntry, ServiceStatus, SharedConfig,
40    WorkspaceConfig,
41};