Module resource

Module resource 

Source
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 attributes
  • ResourceHandler - Schema-based resource type definitions
  • RequestContext - Request tracking with optional tenant context
  • VersionedResource - Resources with automatic version control
  • value_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.