Skip to main content

architect_sdk/
lib.rs

1//! `foundry-rs` — configuration-driven REST backend library for Rust with PostgreSQL.
2//!
3//! Define your schemas, tables, columns, and API entities in JSON. Get a fully working,
4//! production-grade REST API with multi-tenancy, validation, and OpenAPI docs — no
5//! entity-specific business logic required.
6//!
7//! # Quick Start
8//!
9//! Add to your `Cargo.toml`:
10//! ```toml
11//! [dependencies]
12//! foundry-rs = "0.1"
13//! ```
14//!
15//! See the [repository](https://github.com/kaushik-xs/architect-sdk) for full examples.
16
17#[cfg(feature = "mcp")]
18pub mod mcp;
19
20pub mod authrs;
21pub mod case;
22pub mod config;
23pub mod db;
24pub mod error;
25pub mod events;
26pub mod extensible_fields;
27pub mod extractors;
28pub mod handlers;
29pub mod middleware;
30pub mod migration;
31pub mod openapi;
32pub mod response;
33pub mod routes;
34pub mod service;
35pub mod sql;
36pub mod state;
37pub mod storage;
38pub mod store;
39pub mod tenant;
40
41pub use config::{
42    load_from_pool, resolve, FullConfig, ResolvedEntity, ResolvedModel, ResolvedReport,
43};
44pub use db::{introspect, DbSnapshot};
45pub use error::{AppError, ConfigError};
46pub use middleware::{
47    current_trace_id, outbound_traceparent, trace_id_layer, TraceId, TRACEPARENT_HEADER,
48};
49pub use migration::{
50    apply_migrations, compute_migration_plan, execute_migration_plan, reconcile_step,
51    MigrationOperation, MigrationPlan, MigrationRisk, MigrationSafety, MigrationStep,
52    MigrationSummary, StepDecision,
53};
54pub use response::{error_body, success_many, success_one};
55pub use routes::{
56    common_routes, common_routes_with_ready, config_routes, entity_routes, report_routes,
57};
58pub use service::{CrudService, TenantExecutor};
59pub use state::AppState;
60pub use storage::{init_storage_provider, StorageProvider};
61pub use store::{create_pool, ensure_database_exists, ensure_sys_tables, DEFAULT_PACKAGE_ID};
62pub use tenant::{load_registry_from_pool, TenantEntry, TenantRegistry, TenantStrategy};