Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-10522

Unexpected behaviour with assignments

    XMLWordPrintable

    Details

    • Target Version/s:
    • Sprint:
      OpenIDM Sprint 89
    • Support Ticket IDs:

      Description

      You should be able to use the zip file that I attached for this.
      ​Files Attached
      openidm-demo.zip: https://backstage.forgerock.com/backstage-ws/api/v1/cloudstorage/Xp4P1KnWSy6OkMW0QZreYg?redirect

      It is the vanilla IDM5.5 zip, with only the changes necessary to reproduce this error. In other words, it's based on the Forgerock's default environment, not our own. If you compare the config in my attachment to your default config you'll see that there are absolutely minimal changes - they simply set up the connectors necessary to import some dummy data from a csv file and to write it out to another one.

      If you do want to reproduce this from scratch, you'll have to follow these steps:

      1) Extract IDM-5.5.0.zip and run startup.sh
      2) Create a csv file containing some basic user data. Call it input.csv
      3) Create a csv file called output.csv.
      4) Create a connector and mapping to load users from input.csv file into managed/user
      5) Create a connector and mapping to load users into output.csv from managed/user.
      5) Create a role called Role 1 and a role called Role 2
      6) Create an assignment called Assignment 1, associated with the input.csv -> managed/user mapping. Set the role to Role 1. Set the assignment to set the description attribute to "Assignment 1". Set up onAssignment and onUnassignment scripts to log that they have run.
      7) Create an assignment called Assignment 2, associated with the managed/user -> output.csv mapping. Set the role to Role 2. Set the assignment to set the description attribute to "Assignment 2". Set up onAssignment and onUnassignment scripts to log that they have run.
      8) Reconcile the input.csv -> managed/user mapping to create some users.
      9) Make one user a member of Role 1.
      10) Make another user a member of Role 2.

      Expected behaviour:
      1) Members of Role 1 will have their description attribute set on managed/user as configured in Assignment 1
      2) Assignment 1's onAssignment script will run when members are added to Role 1
      3) Assignment 1's onUnassignment will run when members are removed from Role 1
      4) Members of Role 2 will have their description attribute set on csvOutput as configured in Assignment 2
      5) Assignment 2's onAssignment script will run when members are added to Role 2
      6) Assignment 2's onUnassignment will run when members are removed from Role 2

      Actual behaviour:
      1) !! The description attribute on managed/user is not updated
      2) !! Assignment 1's onAssignment script does not run when members are added to Role 1 (no logging observed in openidm's log)
      3) !! Assignment 1's onUnassignment script does not run when members are removed from Role 1 (no logging observed in openidm's log)
      4) This occurs as expected
      5) Assignment 2's onAssignment script is called when members are added to Role 2, but:
      !! Assignment 2's onAssignment script is called every time a user with Role 2 is updated, even if they already had Role 2 (and therefore the assignment)
      6) This occurs as expected
      This does not seem to fit in with the documented behaviour for assignments in the Integrator's Guide or with the UI's behaviour when setting up assignments.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                alin Alin Brici
                Reporter:
                jeremy.barras Jeremy Barras
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: