scim_server/providers/
mod.rs

1//! Standard resource provider implementations.
2//!
3//! This module provides production-ready implementations of the ResourceProvider
4//! trait that can be used directly or as reference implementations for custom
5//! providers.
6//!
7//! # Available Providers
8//!
9//! * [`StandardResourceProvider`] - **RECOMMENDED** Production-ready provider with pluggable storage backends
10//! * **InMemoryProvider** - ⚠️ **REMOVED** in v0.4.0 - Use `StandardResourceProvider<InMemoryStorage>` instead
11//!
12//! All providers in this module implement the unified ResourceProvider trait,
13//! supporting both single-tenant and multi-tenant operations through the
14//! RequestContext interface.
15//!
16//! # Quick Start
17//!
18//! ```rust
19//! use scim_server::providers::StandardResourceProvider;
20//! use scim_server::storage::InMemoryStorage;
21//!
22//! // Recommended approach
23//! let storage = InMemoryStorage::new();
24//! let provider = StandardResourceProvider::new(storage);
25//! ```
26
27pub mod error;
28pub mod helpers;
29pub mod provider;
30pub mod standard;
31
32// Re-export the recommended types
33pub use crate::storage::{InMemoryStorage, ProviderStats, StorageProvider};
34pub use error::ProviderError;
35pub use provider::ResourceProvider;
36pub use standard::StandardResourceProvider;
37
38// Re-export helper traits for composable provider development
39pub use helpers::{
40    ConditionalOperations, MultiTenantProvider, ScimMetadataManager, ScimPatchOperations,
41    ScimValidator,
42};