===== Provisioning - tree nodes ===== {{tag> tree provisioning}} Tree provisioning behaves differently than the provisioning of identities. The main difference is the absence of a separate account management mechanism. In the case of identities, the [[..:..:accounts:dev:account-management | Account management]] that creates and (depending on) the IDM account depending on the assigned roles. In the case of trees, account management is directly linked to the creation / modification / deletion event of the tree node. -If we **create** a new tree node, the event is published and catched by the processor (in the **ACC** module) [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/acc/src/main/java/eu /bcvsolutions/idm/acc/event/processor/TreeNodeSaveProcessor.java|TreeNodeSaveProcessor]]. This first creates an **IDM account** by calling ProvisioningService.createAccountsForAllSystems. It creates an IDM account (and associated bindings) for all systems that have provisioning mapping for that tree type. Subsequently, the **provisioning** itself is triggered. - If we **modify** a tree node, the event is published and catched by the same processor and performs the same operations as the previous point. - If we **delete** a tree node, the delete event is published and catched by [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/acc/src/main/java/eu/bcvsolutions/idm/acc/event/processor/TreeNodeDeleteProcessor.java|TreeNodeDeleteProcessor]]. This processor deletes all **AccTreeAccount** relations and linked AccAccount (account on end system too). Provides tree provisioning by default [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/acc/src/main/java/eu/bcvsolutions/idm/acc/service/impl/ TreeProvisioningExecutor.java | TreeProvisioningExecutor]], which primarily resolves the conversion between the parent IdmTreeNode and the value of the parent attribute on the system.