[midPoint-git] [Evolveum/midpoint] aa156c: Smart Integration: Refactor well-known schema mapp...

Michal Zelenčík noreply at github.com
Tue Jan 27 15:57:30 CET 2026


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: aa156c5d9956d2d1acbdafe6a0a681153d5d00f4
      https://github.com/Evolveum/midpoint/commit/aa156c5d9956d2d1acbdafe6a0a681153d5d00f4
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-19 (Mon, 19 Jan 2026)

  Changed paths:
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/SystemMappingSuggestion.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/WellKnownSchemaProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ad/UserActiveDirectoryMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ldap/InetOrgPersonLdapMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/scim/UserScimMappingProvider.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/DummyScenario.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestMappingsSuggestionOperation.java

  Log Message:
  -----------
  Smart Integration: Refactor well-known schema mappings for quality assessment

- Refactored SystemMappingSuggestion to hold raw mapping data (paths, expression)
  instead of complete AttributeMappingsSuggestionType structure
- Updated WellKnownSchemaProvider interface to return SystemMappingSuggestion objects
- Centralized mapping construction in MappingsSuggestionOperation.buildAttributeMappingSuggestion
- This enables quality assessment for system-provided mappings using the same
  logic as AI-suggested mappings

Bug Fix:
- Fixed shadow attribute paths to include ShadowType.F_ATTRIBUTES prefix
  (e.g., "attributes/cn" instead of "cn") so ValuesPairSample can correctly
  extract shadow values for quality assessment

Implementation Updates:
- Updated all WellKnownSchemaProvider implementations (LDAP, AD, SCIM) to use
  simplified createSystemMappingSuggestion helper method
- Removed deprecated createInboundMapping/createOutboundMapping helper methods
- MappingsSuggestionOperation.addSystemMappings now assesses quality for each
  system mapping using the same flow as AI mappings

Signed-off-by: Michal Zelencik <michal.zelencik at evolveum.com>


  Commit: b907576a11212dfdfac5aec89a8b9f35486209ec
      https://github.com/Evolveum/midpoint/commit/b907576a11212dfdfac5aec89a8b9f35486209ec
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-20 (Tue, 20 Jan 2026)

  Changed paths:
    M infra/schema/src/main/resources/xml/ns/public/common/common-smart-integration-3.xsd
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchService.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchingOperation.java

  Log Message:
  -----------
  Smart Integration: Mark well-known schema mappings as system-provided

Add isSystemProvided boolean field to schema match types to distinguish
mappings from well-known schema detection from AI-generated mappings.

- Add isSystemProvided field to SiAttributeMatchSuggestionType and
  SchemaMatchOneResultType in XSD schema
- Set isSystemProvided=true in SchemaMatchingOperation when matches come
  from well-known schema providers
- Use flag in MappingsSuggestionOperation to mark final mappings:
  * System-provided if from well-known schema and no AI involvement
  * AI-provided if LLM was used for mapping generation

Signed-off-by: Michal Zelencik <michal.zelencik at evolveum.com>


  Commit: 8ab57f1bb68415b0bf670eb5001edfa8ed5066ca
      https://github.com/Evolveum/midpoint/commit/8ab57f1bb68415b0bf670eb5001edfa8ed5066ca
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-20 (Tue, 20 Jan 2026)

  Changed paths:
    M docs/security/authorization/admin-gui.adoc
    M docs/security/authorization/model.adoc
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/action/AbstractCertItemDecisionAction.java
    M model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertCaseOperationsHelper.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/SaveReportFileSupport.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchingOperation.java

  Log Message:
  -----------
  Merge branch 'master' into feature/system-mappings

# Conflicts:
#	model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchingOperation.java
#	model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/WellKnownSchemaProvider.java


  Commit: 8ad3a1308e2b38b1d4027d258d0785311152442f
      https://github.com/Evolveum/midpoint/commit/8ad3a1308e2b38b1d4027d258d0785311152442f
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-21 (Wed, 21 Jan 2026)

  Changed paths:
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchService.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchingOperation.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/SystemMappingSuggestion.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/WellKnownSchemaProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ad/UserActiveDirectoryMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ldap/InetOrgPersonLdapMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/scim/UserScimMappingProvider.java

  Log Message:
  -----------
  Smart Integration: Refactor system mapping suggestion creation and processing

- Move factory methods from WellKnownSchemaProvider to SystemMappingSuggestion record
  - Add createAsIsSuggestion() for simple mappings without scripts
  - Add createScriptSuggestion() for script-based mappings
  - Remove old createSystemMappingSuggestion() static method

- Refactor MappingsSuggestionOperation.addSystemMappings()
  - Rename to collectSystemMappings() and return List instead of void
  - Extract single mapping processing into assessAndBuildSystemMapping()
  - Remove isSystemProvided parameter from suggestMapping() (derive from matchPair)

Signed-off-by: Michal Zelencik <michal.zelencik at evolveum.com>


  Commit: d9fad352e88142597e1cf3fcf22f01489bee5d28
      https://github.com/Evolveum/midpoint/commit/d9fad352e88142597e1cf3fcf22f01489bee5d28
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-21 (Wed, 21 Jan 2026)

  Changed paths:
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/AttributeMappingCandidate.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java

  Log Message:
  -----------
  Smart Integration: Introduce deduplication of mapping suggestions

Add AttributeMappingCandidate wrapper to enable duplicate detection and
quality-based selection. When duplicate mappings are found (same shadow
attribute and focus property), keep the one with higher quality. If
quality is equal, prefer system-provided over AI-generated mappings.

This prevents duplicate mapping suggestions in the final output while
ensuring the best quality mapping is retained.

Signed-off-by: Michal Zelencik <michal.zelencik at evolveum.com>


  Commit: 4cb306d15d5ef32c2a4ed482f72e7813814dbb99
      https://github.com/Evolveum/midpoint/commit/4cb306d15d5ef32c2a4ed482f72e7813814dbb99
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-27 (Tue, 27 Jan 2026)

  Changed paths:
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/AttributeMappingCandidate.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/DummyScenario.java
    A model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestSystemMappingsSuggestion.java
    A model/smart-impl/src/test/resources/smart/mappings-suggestion/resource-ldap-for-mappings-suggestion.xml

  Log Message:
  -----------
  Smart Integration: Fix duplicate detection for mapping suggestions

Introduce AttributeMappingCandidate to handle duplicate mapping detection
based on target path. When multiple mappings target the same property:
- Higher quality mapping wins
- System-provided mappings are preferred over AI when quality is equal

Add tests for system mapping suggestions covering:
- System mappings from well-known schema detection
- Duplicate detection keeping higher quality mappings
- System-provided preference when quality is equal

Signed-off-by: Michal Zelencik <michal.zelencik at evolveum.com>


  Commit: 3d8056a1f7ec08ae76c74484fab5d8e6f845a018
      https://github.com/Evolveum/midpoint/commit/3d8056a1f7ec08ae76c74484fab5d8e6f845a018
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-27 (Tue, 27 Jan 2026)

  Changed paths:
    R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/AttributeMappingCandidate.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/AttributeMappingCandidateSet.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestMappingsSuggestionOperation.java

  Log Message:
  -----------
  Smart Integration: Rename AttributeMappingCandidate to AttributeMappingCandidateSet

- Renamed class to better reflect that it manages a set of candidates
- Changed propose() to throw IllegalArgumentException on null target path
  instead of silently accepting it


  Commit: d57239cda3dce227a305e9c28be72e705c0f19d2
      https://github.com/Evolveum/midpoint/commit/d57239cda3dce227a305e9c28be72e705c0f19d2
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-01-27 (Tue, 27 Jan 2026)

  Changed paths:
    M infra/schema/src/main/resources/xml/ns/public/common/common-smart-integration-3.xsd
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/AttributeMappingCandidateSet.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchService.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/SchemaMatchingOperation.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/SystemMappingSuggestion.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/WellKnownSchemaProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ad/UserActiveDirectoryMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/ldap/InetOrgPersonLdapMappingProvider.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/wellknownschemas/scim/UserScimMappingProvider.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/DummyScenario.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestMappingsSuggestionOperation.java
    A model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestSystemMappingsSuggestion.java
    A model/smart-impl/src/test/resources/smart/mappings-suggestion/resource-ldap-for-mappings-suggestion.xml

  Log Message:
  -----------
  Merge branch 'feature/system-mappings-fix'


Compare: https://github.com/Evolveum/midpoint/compare/1df375d06a4b...d57239cda3dc

To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/midpoint/settings/notifications


More information about the midPoint-svn mailing list