[midPoint-git] [Evolveum/midpoint] 3a5cd8: Analyze expression profiles for mappings

mederly noreply at github.com
Sat Aug 26 01:01:20 CEST 2023


  Branch: refs/heads/tmp/expr-profiles-hardening
  Home:   https://github.com/Evolveum/midpoint
  Commit: 3a5cd8f4bf987bb845cb26a011a6b61dbeaabb84
      https://github.com/Evolveum/midpoint/commit/3a5cd8f4bf987bb845cb26a011a6b61dbeaabb84
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2023-08-26 (Sat, 26 Aug 2023)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/AbstractMappingConfigItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/AssignmentConfigItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/AutoAssignMappingConfigItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/ConfigurationItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/GlobalPolicyRuleConfigItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/config/MappingConfigItem.java
    A infra/schema/src/main/java/com/evolveum/midpoint/schema/config/MultiSourceDataHandlingConfigItem.java
    A infra/schema/src/main/java/com/evolveum/midpoint/schema/config/MultiSourceItemDefinitionConfigItem.java
    A infra/schema/src/main/java/com/evolveum/midpoint/schema/config/ObjectTemplateItemDefinitionConfigItem.java
    A infra/schema/src/main/java/com/evolveum/midpoint/schema/config/ObjectTemplateMappingConfigItem.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/AssociationDefinitionStore.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ResourceAssociationDefinition.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd
    M infra/schema/src/main/resources/xml/ns/public/common/common-correlation-3.xsd
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/ModelInteractionService.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/GlobalRuleWithId.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/MarkManager.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/AbstractMappingBuilder.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/AbstractMappingImpl.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingFactory.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/MappingImpl.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/metadata/ItemValueMetadataProcessingSpec.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/mapping/metadata/ValueMetadataComputation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/CollectionProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/DashboardServiceImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/MappingDiagEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/SchemaTransformer.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LoginAssignmentCollector.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/AssignmentEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/AssignmentPathSegmentImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/ConditionEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/PathSegmentEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/PayloadEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/TargetAssignmentEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/TargetEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/TargetInducementEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/AbstractConstruction.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/AbstractConstructionBuilder.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/AssociationEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/AttributeEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/ConstructionEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/ConstructionResourceResolver.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/EvaluatedAssignedResourceObjectConstructionImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/EvaluatedPlainResourceObjectConstructionImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/EvaluatedResourceObjectConstructionImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/ItemEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/construction/ResourceObjectConstruction.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/identities/IdentityItemConfigurationImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/identities/IdentityManagementConfigurationImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/ActivationProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/AssignmentOrigin.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/OutboundProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/SmartAssignmentCollection.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/SmartAssignmentElement.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/credentials/ProjectionCredentialsProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentTripleEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AutoAssignMappingCollector.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/FocalMappingSetEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/ProjectionMappingSetEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/TemplateMappingsEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/inbounds/prep/ClockworkShadowInboundsPreparation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/inbounds/prep/MappedItem.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/inbounds/prep/MappedItems.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/AssignedFocusMappingEvaluationRequest.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/AutoassignRoleMappingEvaluationRequest.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/FocalMappingEvaluationRequest.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/MappingEvaluatorParams.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/TemplateMappingEvaluationRequest.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRulesCollector.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/security/GuiProfileCompiler.java

  Log Message:
  -----------
  Analyze expression profiles for mappings

This commit contains marks in source code that serve as an attempt
to analyze how well are expression profiles set up for mappings.

Currently, it seems that the support is complete, with the known
limitation of resource inheritance not taken into account (MID-9018).

Mappings analyzed:
- inbound mappings [EP:M:IM]
- outbound mappings [EP:M:OM]
- assigned focus mappings [EP:M:AFM]
- auto-assignment focus mappings [EP:M:AAFM]
- template focus mappings [EP:M:TFM]
- assignment and role conditions [EP:M:ARC]
- policy rule conditions [EP:M:PRC]
- metadata mapping [EP:M:MM]
- shadow tags [EP:M:Tag]

As part of this, a rather complex question was establishing the
correctness of assignment path segment origin determination [EP:APSO].

This work did not try to answer the question of how completely are these
profiles subsequently applied _within_ mappings, e.g. to some obscure
embedded filter expression evaluation. This will be done later.

See also https://docs.evolveum.com/midpoint/reference/expressions/expressions/profiles/coverage/.tmp/expr-profiles-hardening

Minor functional changes were also done, mainly to make the analysis
easier.




More information about the midPoint-svn mailing list