Snapshot import is currently constructed of multiple steps, that will be explained below. These steps don't depend on specific element import like parameters or domain.
- The zip file is analyzed for the existence of the config.json file.
- If it exists, then all required elements are fetched. This step is crucial for elements removal during snapshot import.
- If it doesn't exist, then import snapshot will not delete any elements from the system.
- Specific import is launched for each element.
- After import was successful and there was proper config.json then, the deletion process of elements, that were not included in the snapshot, takes place.
- The element can be deleted if it was nowhere to be found in the system. This mechanism is using already existing global search functionality for searching dependencies.
- If an element is not in use, it can be safely marked for deletion.
- If an element is in use, then proper messages will be constructed to inform of the dependent element, but elements can't be removed.
- After the deletion process, if everything was ok, there is a possibility to automatically publish the user's session. This functionality is controlled with an autocommit flag.