Expand description
SCIM resource model with type-safe value objects and clean architecture.
This module provides the core resource abstractions for SCIM operations, emphasizing type safety, immutable value objects, and clean separation of concerns between protocol logic and storage.
§Architecture
The resource module follows a hybrid approach:
- Core attributes as validated value objects (ResourceId, UserName, etc.)
- Extension attributes as flexible JSON for extensibility
- Schema handlers for resource type definitions
- Version control for optimistic concurrency
§Key Components
Resource- Core SCIM resource with type-safe attributesResourceHandler- Schema-based resource type definitionsRequestContext- Request tracking with optional tenant contextVersionedResource- Resources with automatic version controlvalue_objects- Validated domain primitives (ResourceId, UserName, etc.)mapper- Schema mapping infrastructure (for future storage-level mapping)
Re-exports§
pub use context::ListQuery;pub use context::RequestContext;pub use resource::Resource;pub use tenant::IsolationLevel;pub use tenant::TenantContext;pub use tenant::TenantPermissions;pub use crate::multi_tenant::ScimOperation;pub use handlers::ResourceHandler;pub use handlers::SchemaResourceBuilder;pub use mapper::DatabaseMapper;pub use mapper::SchemaMapper;pub use value_objects::Address;pub use value_objects::EmailAddress;pub use value_objects::ExternalId;pub use value_objects::Meta;pub use value_objects::Name;pub use value_objects::PhoneNumber;pub use value_objects::ResourceId;pub use value_objects::SchemaUri;pub use value_objects::UserName;pub use version::ConditionalResult;pub use version::HttpVersion;pub use version::RawVersion;pub use version::ScimVersion;pub use version::VersionConflict;pub use version::VersionError;pub use versioned::VersionedResource;
Modules§
- builder
- Resource builder for type-safe SCIM resource construction.
- context
- Request context and query structures for SCIM operations.
- handlers
- Handler infrastructure for dynamic resource operations.
- mapper
- Schema mapping functionality for converting between SCIM and implementation formats.
- resource
- Core SCIM resource representation and validation.
- serialization
- Serialization and deserialization implementations for SCIM resources.
- tenant
- Tenant-related types for multi-tenant SCIM operations.
- value_
objects - Value objects for SCIM resource domain primitives.
- version
- Version control types for SCIM resources.
- versioned
- Versioned resource types for SCIM resource versioning.