Files
inbuxa-server/crates/scim-proto/src/lib.rs
T
jcoffey-dev 776d18d06e SCIM: the protocol crate: URNs, the error document, and the filter and PATCH path grammars (SCIM-42, SCIM-45)
The filter parser reads all of RFC 7644's grammar, so a server supporting
only eq and and can name the construct it refuses. PATCH paths take a
schema URN prefix, sub-attributes and value filters.
2026-09-19 09:06:50 -07:00

36 lines
1.6 KiB
Rust

/*
* SPDX-FileCopyrightText: 2026 Coffey Labs
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
//! The SCIM 2.0 wire contract (RFC 7643, RFC 7644, RFC 9865): schema and
//! message URNs, the error document, and the filter and PATCH path grammars.
//! No server behavior lives here; see `docs/spec/features/scim.md`.
pub mod error;
pub mod filter;
pub mod path;
pub use error::{ScimError, ScimType};
pub use filter::{AttrPath, CompareOp, Filter};
pub use path::PatchPath;
pub const SCHEMA_USER: &str = "urn:ietf:params:scim:schemas:core:2.0:User";
pub const SCHEMA_GROUP: &str = "urn:ietf:params:scim:schemas:core:2.0:Group";
pub const SCHEMA_ENTERPRISE_USER: &str =
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User";
pub const SCHEMA_SERVICE_PROVIDER_CONFIG: &str =
"urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig";
pub const SCHEMA_RESOURCE_TYPE: &str = "urn:ietf:params:scim:schemas:core:2.0:ResourceType";
pub const SCHEMA_SCHEMA: &str = "urn:ietf:params:scim:schemas:core:2.0:Schema";
pub const MESSAGE_LIST_RESPONSE: &str = "urn:ietf:params:scim:api:messages:2.0:ListResponse";
pub const MESSAGE_SEARCH_REQUEST: &str = "urn:ietf:params:scim:api:messages:2.0:SearchRequest";
pub const MESSAGE_PATCH_OP: &str = "urn:ietf:params:scim:api:messages:2.0:PatchOp";
pub const MESSAGE_BULK_REQUEST: &str = "urn:ietf:params:scim:api:messages:2.0:BulkRequest";
pub const MESSAGE_BULK_RESPONSE: &str = "urn:ietf:params:scim:api:messages:2.0:BulkResponse";
pub const MESSAGE_ERROR: &str = "urn:ietf:params:scim:api:messages:2.0:Error";
pub const CONTENT_TYPE: &str = "application/scim+json";