SCIMREST Framework

Last modified 04 Jul 2025 10:59 +02:00

The SCIMREST Framework is ConnId connector framework, designed to provide a flexible and extensible base, implementing common reusable functionality for supported protocols and technologies, reducing the amount of code needed to write to implement connector

Connector Framework is still under development, so not all listed functionality is fully implemented yet, and some concept may change during development.

Functionality Overview

Base Connector Framework Support
  • Set of base classes necessary to integrate with ConnId framework.

Schema Mapping & Schema Builder APIs
  • Provides a way to define and manage schema, and mappings between protocol representation (SCIM, REST) and ConnId schema.

  • Allows for easy customization of attribute names and types regardless of protocol used.

  • Allows for specifying object classes, attributes, relationships in declarative way.

Authentication & Authorization
  • Common configuration model for authentication and authorization mechanisms, such as OAuth 2.0, API keys.

  • Providing initialized REST client with authentication and authorization headers, tokens, and other required parameters to REST and SCIM Support classes.

ConnId Support & Operation Builders
  • Support for ConnId operations using strategy design pattern, where based on ConnId request, the appropriate strategies are selected to handle the request.

    • Strategies are configured & provided by protocol specific parts and custom scripts.

REST Support
  • Declarative support for calling, retrieving, creating, updating and deleting data using REST APIs.

  • Endpoint-based strategies for handling ConnId search, update, create, and delete operations.

  • Support for custom strategies for handling non-standard cases such as complex updates, splitting operations into multiple sub-operations, indirect searches.

SCIM Support
  • Supports automatic schema discovery using SCIM 2.0 protocol.

  • Contributes to schema mappings and provides strategies based on discovered SCIM 2.0 schema, so there is no need to manually define schema mappings for SCIM 2.0 compliant applications.

  • Built-in strategies for handling ConnId search, update, create, and delete operations based on SCIM 2.0 protocol.

    • Multiple strategies for update operations, delete operations.

    • Support for custom strategies to be defined for handling non-standard cases such as complex updates, splitting operations into multiple sub-operations, indirect searches.

Scripting Support
  • Custom Groovy DSL for configuring & defining custom schema mappings, logic, strategies, and operations.

  • Scripting support is intended to implement custom connectors using Groovy with intent to minimize boilerplate code.

Getting Started using SCIMREST Framework

The SCIMREST Framework is still designed using the terminology of ConnId framework, so it is recommended to have basic understanding of ConnID terminology.

The detailed development process of connector using SCIMREST Framework is described in Development Guide.

Sample Connectors

The sample connectors are not full fledged connectors, but rather testing examples of how to use the SCIMREST Framework to implement connectors for various protocols and technologies. They currnetly only support read-only operations.

Scim.Dev connector

Scim.dev is a sample SCIM 2.0 compliant service, which provides REST API for managing users, groups, and other objects.

Very simple connector, actual implementation is only one Groovy script ScimDev.schema.groovy, which only renames attributes and provides support for references ( associations) for custom object class Office.

Search operations, schema discovery and schema mapping is handled by the SCIMREST Framework, so there is no need to implement any additional code for these operations.

Sources are available in connector-scimrest repository in connector/sample-scimdev directory.

Forgejo connector

Forgejo is a self-hosted Git service, which provides REST API for managing users, organizations, and repositories.

Sources are available in connector-scimrest repository in connector/sample-scimdev directory.

Was this page helpful?
YES NO
Thanks for your feedback