If you are interested in SCIM v2 implemention in Go, please check out go-scim
The KUMIQ Identity project is an implementation of SCIM v2.0 by Weinan Qiu. It supports most of the features specified in the documentation and provides an easy way to add custom extensions to the resource schema.
- Resource endpoints
- Extension capability
- Query on
User
andGroup
- Query on root
- Patch resource
- Bulk operation
- Filter resource
- Sort resource
- ETag version check
- Change password: Available through replace and patch, does not have separate endpoint yet
- Security (Authentication): Planned with OAuth, to be provided by another project
- In memory database
- JDBC database: Planned on roadmap
- Mongo database: Planned on roadmap
- Stock resource bootstrap on startup
KUMIQ Identity is a straightforward spring-boot project based on Apache Maven so all of the usual build commands apply.
For a quick start:
cd scim
mvn clean spring-boot:run
Note the project structures will change after v0.1 as we introduce SQL and/or MongoDB as persistence stores.
The section introduces some of the details of the key components the project relies on.
- Resource
- Hint Schema
- Database & Init
- Tokenizer
- PathToken
- PathRef
- Path Compiler
- Filter Compiler
- Modifier
- ResourceMapper
- Task
- Bulk Operation Executor
Some of the components in the compiler and evaluator are inspired by Jayway's JsonPath.
KUMIQ Identity project is under MIT License.