hodei_authz_sdk/
lib.rs

1//! Hodei Authorization SDK
2//!
3//! SDK completo que proporciona una solución de autorización lista para usar
4//! con auto-discovery de schema, builder pattern, y todas las integraciones.
5//!
6//! # Quick Start
7//!
8//! ```rust,ignore
9//! use hodei_authz_sdk::prelude::*;
10//!
11//! // 1. Definir entidades con derives
12//! #[derive(HodeiEntity)]
13//! #[hodei(entity_type = "MyApp::User")]
14//! struct User {
15//!     id: Hrn,
16//!     email: String,
17//! }
18//!
19//! // 2. Configurar el servicio
20//! let auth = HodeiAuthService::builder()
21//!     .with_postgres(pool)
22//!     .with_redis("redis://localhost:6379")
23//!     .auto_discover_schema()?
24//!     .build()
25//!     .await?;
26//! ```
27
28pub mod builder;
29pub mod schema;
30
31pub use builder::{BuildError, HodeiAuthService, HodeiAuthServiceBuilder};
32pub use schema::{auto_discover_schema, SchemaError};
33
34/// Prelude con todos los imports comunes
35pub mod prelude {
36    pub use hodei_hrn::*;
37    pub use hodei_derive::{HodeiEntity, HodeiAction};
38    pub use hodei_authz::*;
39    
40    pub use crate::builder::{HodeiAuthService, HodeiAuthServiceBuilder, BuildError};
41    pub use crate::schema::{auto_discover_schema, SchemaError};
42    
43    #[cfg(feature = "postgres")]
44    pub use hodei_authz_postgres::*;
45    
46    #[cfg(feature = "redis")]
47    pub use hodei_authz_redis::*;
48    
49    #[cfg(feature = "axum")]
50    pub use hodei_authz_axum::*;
51}
52
53// Re-exports de los crates base
54pub use hodei_authz;
55pub use hodei_hrn;
56pub use hodei_derive;
57
58#[cfg(feature = "postgres")]
59pub use hodei_authz_postgres;
60
61#[cfg(feature = "redis")]
62pub use hodei_authz_redis;
63
64#[cfg(feature = "axum")]
65pub use hodei_authz_axum;