Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Sees which groups are in the script
  • Get the memberships of the owner groups and all script groups (only get the memberId, sourceId, and groupId)
  • Consider if configured to include internal subject sources (adjust the membership lists)
  • For each member of either the owner group or the script groups for that owner
    • Setup the variables for a JEXL script based on the bulk queries
    • Evaluate the script
    • If the result does not match the current state of the membership, add or remove the member from the owner group
    • If a script evaluation fails, proceed with the job

TO DO

  • Allow common reference groups to have user friendly labels


    • Code Block
      e.g. employee instead of ref:employee



    • Do not allow plurals of labels, and absorb plurals.  e.g. "member of employee" same as "member of employees
    • Same for case differences
    • Absorb smart quotes
  • Document common allowed reference groups and syntax on the script editing page
  • Allow natural language to be converted into JEXL
    • e.g. 

      Code Block
      FROM
      Member of employee, and member of app:jiraAdminsManualTO
      ${entity.memberOf(‘ref:employee’) && entity.memberOf(‘app:jiraAdminsManual’)}


    • e.g.

      Code Block
      FROM
      Has affiliation attribute with name of staff and dept of english, 
         but not a member of lockout
      
      TO
      entity.hasAttribute('affiliation', 'name==staff && dept==english') 
         && entity.notMemberOf('ref:lockout')


  • Load groups as members
  • Add incremental job
  • Unit tests
  • Better validation
  • More methods to call (other than hasMember)
  • Add subject attributes e.g. from global attribute resolver
  • Failsafes
  • Add delegated admin based on READ of groups
  • Visualization
  • Add more counts of total memberships etc
  • See if comments can be included in scripts
  • See if we can replace composite type with immediate in membership table if replacing a composite with jexl script
  • Have a confirm screen that tells the user information about what will happen (tie into visualization)? (have a progress page)
  • Add UI to configure scripts?
  • Test button while writing to see if valid (maybe that does counts too)
  • Add dependency graph for precedence or recalcs in full sync
  • Do not allow circular references
  • Identify full syncs to be hourly or daily
  • Allow single quotes or double quotes when parsing scripts

...