# ex_scim v0.2.2 - Table of Contents

SCIM 2.0 protocol implementation for Elixir

## Pages

- [ExScim](readme.md)
- [Configuration &amp; Guides](configuration.md)

## Modules

- [ExScim](ExScim.md): Core SCIM library providing storage adapters, operations, and configuration.
- [ExScim.Auth.AuthProvider](ExScim.Auth.AuthProvider.md): Delegates authentication calls to the configured adapter.
- [ExScim.Auth.AuthProvider.Adapter](ExScim.Auth.AuthProvider.Adapter.md): Behaviour for SCIM authentication providers.
- [ExScim.Config](ExScim.Config.md): Centralized configuration management for ExScim.

- [ExScim.Error](ExScim.Error.md): SCIM error handling and standardization per RFC 7644 Section 3.12.
- [ExScim.Groups.Group](ExScim.Groups.Group.md): Group struct representing a SCIM Group resource.
- [ExScim.Groups.Mapper](ExScim.Groups.Mapper.md): Converts between domain group structs and SCIM JSON representations.
- [ExScim.Groups.Mapper.Adapter](ExScim.Groups.Mapper.Adapter.md): Group resource mapper behaviour.
- [ExScim.Groups.Mapper.DefaultMapper](ExScim.Groups.Mapper.DefaultMapper.md): Default mapper implementation for basic SCIM group compliance.
- [ExScim.Groups.Patcher](ExScim.Groups.Patcher.md): Applies SCIM PatchOp operations to group data (maps or structs).
Handles multiple ops, optional path, simple/complex values, and removals.
Supports both plain maps and domain structs with automatic key conversion.

- [ExScim.Groups.ResourceImpl](ExScim.Groups.ResourceImpl.md)
- [ExScim.Lifecycle](ExScim.Lifecycle.md): Facade for lifecycle hooks around SCIM operations.
- [ExScim.Lifecycle.Adapter](ExScim.Lifecycle.Adapter.md): Behaviour for lifecycle hooks around SCIM operations.
- [ExScim.Operations.Bulk](ExScim.Operations.Bulk.md): SCIM 2.0 Bulk Operations (RFC 7644 Section 3.7).
- [ExScim.Operations.Groups](ExScim.Operations.Groups.md): Orchestration layer for SCIM group operations.
- [ExScim.Operations.Users](ExScim.Operations.Users.md): Orchestration layer for SCIM user operations.
- [ExScim.QueryFilter.Adapter](ExScim.QueryFilter.Adapter.md): Behaviour for converting SCIM filter ASTs into storage-level query logic.
- [ExScim.QueryFilter.EtsQueryFilter](ExScim.QueryFilter.EtsQueryFilter.md): A SCIM filter engine for ETS-based user storage.
Evaluates filter ASTs against in-memory user maps.

- [ExScim.Resources.IdGenerator](ExScim.Resources.IdGenerator.md): Generates UUIDs for new SCIM resources.
- [ExScim.Resources.Metadata](ExScim.Resources.Metadata.md): Handles SCIM metadata for resources: timestamping domain structs and
computing/formatting the SCIM `meta` object (including ETag/version).

- [ExScim.Resources.Resource](ExScim.Resources.Resource.md): Protocol for SCIM resource operations.

- [ExScim.Resources.ResourceImpl](ExScim.Resources.ResourceImpl.md): Generic Map implementation of ExScim.Resources.Resource protocol.
- [ExScim.Schema.Builder](ExScim.Schema.Builder.md): DSL for defining SCIM schemas declaratively.
- [ExScim.Schema.Builder.Helpers](ExScim.Schema.Builder.Helpers.md): Pure functions for building SCIM schema maps.
- [ExScim.Schema.Definitions.EnterpriseUser](ExScim.Schema.Definitions.EnterpriseUser.md): SCIM EnterpriseUser schema extension definition using the Builder DSL.
- [ExScim.Schema.Definitions.Group](ExScim.Schema.Definitions.Group.md): SCIM Group schema definition using the Builder DSL.
- [ExScim.Schema.Definitions.User](ExScim.Schema.Definitions.User.md): SCIM User schema definition using the Builder DSL.
- [ExScim.Schema.Repository](ExScim.Schema.Repository.md): Schema repository interface that delegates to configurable adapters.
- [ExScim.Schema.Repository.Adapter](ExScim.Schema.Repository.Adapter.md): Behaviour for SCIM schema repositories.
- [ExScim.Schema.Repository.DefaultRepository](ExScim.Schema.Repository.DefaultRepository.md): Default SCIM schema repository that loads schemas from configured modules.
- [ExScim.Schema.Repository.LegacyRepository](ExScim.Schema.Repository.LegacyRepository.md): Original RFC 7643 schema definitions (hardcoded maps).
- [ExScim.Schema.Validator](ExScim.Schema.Validator.md): Validates incoming SCIM payloads against registered schemas.
- [ExScim.Schema.Validator.Adapter](ExScim.Schema.Validator.Adapter.md): Behaviour for SCIM schema validators.
- [ExScim.Schema.Validator.DefaultValidator](ExScim.Schema.Validator.DefaultValidator.md): RFC 7643 compliant SCIM schema validator.
- [ExScim.Scope](ExScim.Scope.md): Represents the scope of a SCIM request: identity, authorization, and tenant context.
- [ExScim.Storage](ExScim.Storage.md): Storage interface for SCIM resources using configurable adapters.
- [ExScim.Storage.Adapter](ExScim.Storage.Adapter.md): Behaviour defining the contract for all storage backends.
- [ExScim.Storage.EtsStorage](ExScim.Storage.EtsStorage.md): ETS-based in-memory storage implementation.
- [ExScim.Tenant.Resolver](ExScim.Tenant.Resolver.md): Behaviour for resolving tenant context from an incoming request.
- [ExScim.Users.Mapper](ExScim.Users.Mapper.md): Converts between domain user structs and SCIM JSON representations.
- [ExScim.Users.Mapper.Adapter](ExScim.Users.Mapper.Adapter.md): User resource mapper behaviour.
- [ExScim.Users.Mapper.DefaultMapper](ExScim.Users.Mapper.DefaultMapper.md): Default mapper implementation for basic SCIM compliance.
- [ExScim.Users.Patcher](ExScim.Users.Patcher.md): Applies SCIM PatchOp operations to user data (maps or structs).
Handles multiple ops, optional path, simple/complex values, and removals.
Supports both plain maps and domain structs with automatic key conversion.

- [ExScim.Users.ResourceImpl](ExScim.Users.ResourceImpl.md)
- [ExScim.Users.User](ExScim.Users.User.md): User struct representing a SCIM User resource.

