Simulations in Model

Last modified 16 Dec 2022 19:50 +01:00
Since 4.7
This functionality is available since version 4.7.

How should we execute the simulations at the "model" level, i.e. in the Projector, Clockwork, and related components?

The idea is to isolate the "model" from the rest of midPoint using a barrier that will distribute requests (get, search, add, modify, delete operations) to appropriate components: repository, provisioning, task manager, case manager, and simulation data store.

The question is whether the simulation data store should live alongside provisioning or at the level of repository module.

First Version

The simulation data store will only "accept" deltas that are to be executed. It will not process them in any way.

Later Versions

The simulation data store will execute the deltas by creating a new variant of any object touched.

Open Questions

  1. What if we try to add linkRef value with embedded shadow pointing to a development resource or object class/type? Unless (until) simulated shadows are supported, we must not create such a shadow. Currently, we silently drop the request and skip linkRef value creation. Should we report at least a warning, or even a partial error?