Files
inbuxa-server/crates/scim/Cargo.toml
T
jcoffey-dev 0ca26070d7 SCIM: users, groups, queries, PATCH, Bulk and cursors at /scim/v2, over x:Account (SCIM-1 to SCIM-57)
Every SCIM operation becomes the x:Account get, query or set JMAP makes,
as the service principal, so permissions, tenant scope and limits,
address uniqueness and account destruction are enforced in one place.
Discovery is anonymous; everything else takes an API key as a bearer
token and nothing else. Domains open to SCIM carry a flag in the domain
cache. Filters take eq and and, answered from the account indexes, with
unindexed attributes checked on at most 200 candidates. Cursors are
stateless, HMAC-sealed under the server key. PATCH applies to the
resource in memory and saves it as a PUT, so it is all or nothing.
Groups get an address from their display name on the principal's
domain; membership is written on each user.

Every write emits one of five new scim.* events (ids 637 to 641), also
added to the packaged schema. The helpers the surviving SCIM suites
import are rebuilt from the spec; scim_tests runs the new acceptance
suite and the surviving tenant isolation suite, and both pass.
2026-09-19 09:35:23 -07:00

37 lines
968 B
TOML

[package]
name = "scim"
version = "0.16.22"
edition = "2024"
[dependencies]
scim-proto = { path = "../scim-proto" }
common = { path = "../common" }
jmap = { path = "../jmap" }
store = { path = "../store" }
registry = { path = "../registry" }
directory = { path = "../directory" }
http_proto = { path = "../http-proto" }
jmap_proto = { path = "../jmap-proto" }
types = { path = "../types" }
utils = { path = "../utils" }
trc = { path = "../trc" }
hyper = { version = "1.11.1", features = ["server", "http1", "http2"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
xxhash-rust = { version = "0.8.18", features = ["xxh3"] }
icu_locale = "2.3.1"
ahash = { version = "0.8.12", features = ["serde"] }
base64 = "0.23"
hmac = "0.13"
sha2 = "0.11"
[dev-dependencies]
[features]
test_mode = []
dev_mode = []
enterprise = ["common/enterprise", "jmap/enterprise", "store/enterprise", "directory/enterprise", "trc/enterprise"]
[lints]
workspace = true