Create a new entity type for synchronization and/or provisioning
Introduction
It is useful to be able to create a custom synchronization of entities from a separate module because it allows for more flexibility and control in the synchronization process. The application is decoupled from the logic in the separate module, thus it cannot support the synchronization of its entities. Additionally, a custom synchronization module can be tailored to the specific needs of the application, allowing for a more efficient and effective synchronization process. This can be especially useful in complex applications with a large number of entities that need to be synchronized. This is not a step-by-step tutorial but rather an overview of changes needed to make to support synchronization or provisioning. For more details, the source code for the technical accounts module is a good starting point.
Steps
Create a new registrable system entity type
This is a Spring component implementing the SystemEntityTypeRegistrable interface. It contains information about the entities, module, available attributes, and support for synchronization and provisioning.
Create a synchronization and/or provisioning executor
This is a Spring component implementing SynchronizationEntityExecutor interface and extending AbstractSynchronizationExecutor<DTO>. It contains the logic needed to create new objects. It can be rather simple or quite complex depending on the logic used.
Add localization
In the frontend part of the application, under entity > SystemEntityType, add the name of the entity (as used in your SystemEntityTypeRegistrable under SYSTEMENTITYTYPE). Add the label for the entity type, and localization of used attributes.