To maintain model integrity, there are two types of elements appearing in the model:
- Proxies
- Recovered elements
A proxy is a lightweight surrogate that carries only the name and kind of the model element information. These proxies appear in the place of the original used project elements, and are dedicated to maintaining model integrity (so that there are no dangling ends of relationships, types of properties do not disappear, and so on), while the used project is not accessible (for example, you do not have permissions) or is not loaded.
When you do not have granted “Read model” permission for a used project, this used project will not be loaded in a project where it is being used. To maintain the model integrity and keep model references that point to elements of “not accessible” used project, proxies are being displayed instead of referenced not accessible elements. That means that you will be able to see only the following information of these elements:
- Metaclasses of the element
- Names of the element
- Owners of the element
Recovered element is really an indication of the dangling reference. Appearance of these elements indicates that there are elements in the project (for example, elements in the main project or its used projects) that refer to the element in the used project that was previously there but currently cannot be found. It may be that the element was unsafely deleted/ removed/somehow made unavailable in the module. In such case, a modeling tool continues maintaining model integrity of unresolved reference by recovering missing elements - so called “Recovered element” appear in a place of the missing element where the original element existed in the past.
Read how to manage recovered elements in the following topics: