This is an example of configuring grouper messages in the upcoming Grouper PSP NG
There could be a grouper default message config file, e.g. grouperMessageDefault.properties. We could also have defaults for SCIM or whatever else built in preconfigured formats
allMessages.securityUri = grouperMessageFormat:JOSE
Maybe the institution has some defaults in testUniversity.properties and would be in the messaging config file folder on the file system. Perhaps it could also be pulled from the classpath or database or web or something
inheritFrom = classpath:messaging/grouperMessageDefault.properties sendFrom = grouper@prod.activeMq.testUniversity.edu messagingImplementation = edu.internet2.middleware.grouper.messaging.systems.GrouperActiveMqMessaging server = prod.activeMq.testUniversity.edu pass = /something/private/grouperActivemq.pass joseSenderCertificate = /something/private/grouperActivemqCert.der joseSenderKey = /something/private/grouperActivemqCert.key
To send out all messages to a consumer using the default config, formats, etc, maybe this is for banner, so the file would be called banner.properties
inheritFrom = file:testUniversity.properties sendTo = bannerGrouper@prod.activeMq.testUniversity.edu joseReceiverCertificate = /something/private/bannerGrouperCert.der
To send out messages about membership changes in a certain folder without encryption to a wiki application, do this in a file called testUniversityWiki.properties
inheritFrom = file:testUniversity.properties sendTo = testUniversityWiki@prod.activeMq.testUniversity.edu allMessages.securityUri = grouperMessageFormat:Plain allMessages.includeOnlyEventTypes = MEMBERSHIP_ADD, MEMBERSHIP_UPDATE, MEMBERSHIP_DELETE allMessages.filter.groupNameRegex = apps:wiki:groups:.*
To send out messages about membership changes in a certain folder without encryption to an email application with a custom format, do this in a file called testUniversityEmailGroups.properties
inheritFrom = file:testUniversity.properties sendTo = testUniversityEmailGroups@prod.activeMq.testUniversity.edu allMessages.securityUri = grouperMessageFormat:Plain allMessages.includeOnlyEventTypes = MEMBERSHIP_ADD, MEMBERSHIP_UPDATE, MEMBERSHIP_DELETE allMessages.filter.groupNameRegex = apps:email:groups:.* # make a message like this: {"event": "add", "mailList": "it-staff", "userId": "jsmith"} messageType.MEMBERSHIP_ADD.process.0.0.transform = originalMessage = result messageType.MEMBERSHIP_ADD.process.1.0.transform = result = $newObject$ messageType.MEMBERSHIP_ADD.process.2.0.transform = result.event = add messageType.MEMBERSHIP_ADD.process.3.0.transform = result.mailList = ${grouperGetGroupExtension(originalMessage.payload.groupName)} messageType.MEMBERSHIP_ADD.process.4.0.transform = result.userId = ${originalMessage.payload.subjectId} messageType.MEMBERSHIP_UPDATE.process.0.0.transform = originalMessage = result messageType.MEMBERSHIP_UPDATE.process.1.0.transform = result = $newObject$ messageType.MEMBERSHIP_UPDATE.process.2.0.transform = result.event = change messageType.MEMBERSHIP_UPDATE.process.3.0.transform = result.mailList = ${grouperGetGroupExtension(originalMessage.payload.groupName)} messageType.MEMBERSHIP_UPDATE.process.4.0.transform = result.userId = ${originalMessage.payload.subjectId} messageType.MEMBERSHIP_DELETE.process.0.0.transform = originalMessage = result messageType.MEMBERSHIP_DELETE.process.1.0.transform = result = $newObject$ messageType.MEMBERSHIP_DELETE.process.2.0.transform = result.event = delete messageType.MEMBERSHIP_DELETE.process.3.0.transform = result.mailList = ${grouperGetGroupExtension(originalMessage.payload.groupName)} messageType.MEMBERSHIP_DELETE.process.4.0.transform = result.userId = ${originalMessage.payload.subjectId}
Comments: can we do java class or script instead of property file transformations? Yes, we should
Can we do shared secret instead of JOSE certificates