Grouper External systems configuration
- Dropbox external system
- Grouper Atlassian cloud SCIM2 external system
- Grouper Box External System
- Grouper Datadog external system
- Grouper Duo External System
- Grouper Entra ID (Azure) External System
- Grouper external system mock services
- Grouper external system - Web service - Oauth credential - Adobe
- Grouper external system - Web service - Oauth credential - Okta
- Grouper Freshservice external system
- Grouper Google external system
- Grouper Interfolio external system
- Grouper LDAP external system
- Grouper smtp external system
- Grouper TeamDynamix External System
- TrueFoundry external system
- Grouper external system references
- Jamf external system
- Grouper CCure external system
- Grouper GitHub external system
In the Grouper UI you can review all the configured external systems in one place with an easy-to-use UI. This will assume you are storing configuration in the database, since the UI needs to save its settings. If you do not want encrypted passwords in the database you will be able to enter a scriptlet to get the password from an environment variable or secrets manager or other place.
External systems in UI
Access the configurations in Miscellaneous → External systems
You can have variables in the parts that vary per env
Screenshots
Identify the external systems and properties
LDAP connections in grouper-loader.properties
ldap.<connectionId>.attributeName
e.g. ldap.personLdap.url
https://www.ldaptive.org/v1/docs/guide/connections/pooling.html
Attribute | Type | Default | Notes |
|---|---|---|---|
url | String |
| required. Explain that for provisioning the URL |
user | String |
| optional |
pass | String |
| encrypted if a password. Save this like the configuration editor saves |
configFileFromClasspath | String |
|
|
isActiveDirectory | Boolean |
|
|
tls | Boolean |
|
|
saslAuthorizationId | String |
|
|
saslRealm | String |
|
|
batchSize | Integer |
|
|
countLimit | Integer |
|
|
timeLimit | Integer |
| time limit for search operations in millis |
timeout | Integer |
| timeout to get a connection in millis |
minPoolSize | Integer | 3 |
|
maxPoolSize | Integer | 10 |
|
validateOnCheckIn | Boolean |
|
|
validateOnCheckOut | Boolean |
| defaults to true if all other validate methods are false |
validatePeriodically | Boolean |
|
|
validateTimerPeriod | String | PT30M |
|
pruneTimerPeriod | String |
|
|
pagedResultsSize | Integer |
| needs to be equal to or less than the max result size server setting |
referral | String |
| set to 'follow' if using AD and using paged results size and need this for some reason (generally you shouldnt) |
validator | String |
| drop down. validator setup, currently supports CompareLdapValidator and SearchValidator. additional properties below for CompareLdapValidator. |
validatorCompareDn | String |
| required for CompareLdapValidator. check this DN exists when saving connection. e.g. ou=people,dc=example,dc=com |
validatorCompareAttribute | String |
| required for CompareLdapValidator. e.g. ou check this DN exists when saving connection |
validatorCompareValue | String |
| required for CompareLdapValidator. e.g. people |
searchResultHandlers | String |
| comma-delimited list of classes to process LDAP search results. Useful if AD returns a ranged attribute for large |
searchIgnoreResultCodes | String |
| comma-delimited list of result codes (org.ldaptive.ResultCode) to ignore, e.g. TIME_LIMIT_EXCEEDED, SIZE_LIMIT_EXCEEDED, PARTIAL_RESULTS |
enabled | Boolean | true | if this connector is enabled |
Database from grouper-loader.properties
db.<connectionId>.attributeName
e.g. db.warehouse.url
Attribute | Type | Default | Notes |
|---|---|---|---|
url | String |
| Required e.g. mysql: jdbc:mysql://localhost:3306/grouper?useSSL=false |
user | String |
|
|
pass | String |
| Save this like the configuration editor saves |
driver | String |
| note: you probably dont have to enter a driver, it will detect from URL. If it cant detect, then specify it here. |
c3p0.max_size | Integer |
| optional pooling params, these will default to the grouper.hibernate(.base).properties pooling settings |
c3p0.min_size | Integer |
|
|
c3p0.timeout | Integer |
| seconds |
c3p0.max_statements | Integer |
|
|
c3p0.idle_test_period | Integer |
|
|
c3p0.acquire_increment | Integer |
|
|
c3p0.validate | Boolean |
|
|
c3p0.debugUnreturnedConnectionStackTraces | Boolean |
| if unreturnedConnectionTimeout is non zero, then if connection takes too long it will be logged as stack |
c3p0.unreturnedConnectionTimeout | Integer |
|
|
enabled | Boolean | true | if this connector is enabled |
Mail SMTP in grouper.properties
There is only one SMTP server in Grouper
mail.smtp.attributeName (configId is "default")
| Type | Default | Notes |
|---|---|---|---|
server | String |
| required |
user | String |
|
|
pass | String |
| use method from config editor to save |
from.address | String |
| required. this is the default email address where mail from grouper will come from |
ssl | Boolean |
|
|
starttls.enable | Boolean |
|
|
ssl.trust | String |
| if you are doing SSL/TLS, you should put the smtp server here so it is trusted |
port | Integer | 25 for non-ssl, 465 for ssl |
|
transport.protocol | String | smtp |
|
use.protocol.in.property.names | Boolean |
| in the java mail settings if "smtp" or whatever the protocol is should be in the property names |
smtp.ssl.protocols | String |
| if you have trouble connecting to SSL/TLS, try a different SSL protocol, e.g. TLSv1.2 |
smtp.socketFactory.class | String |
| generally saying SSL true is enough, though you might need to set a class. generally leave this blank |
smtp.socketFactory.fallback | Boolean |
| generally you will leave this blank unless doing something advanced |
subject.prefix | String |
| prefix all email's subjects. e.g. TEST: |
test.address | String |
| when running junit tests, this is the address that will be used |
debug | Boolean |
| if debug info from java mail should be printed |
enabled | Boolean | true | if this connector is enabled |
SFTP server in grouper.properties
grouperSftp.site.configId.attributeName
e.g. grouperSftp.site.depot.host
Attribute | Type | Default | Notes |
|---|---|---|---|
host | String |
| required |
user | String |
|
|
password | String |
| password if not using private key |
secret.privateKey | String textarea |
| note this is stored in secret.privateKey_0, secret.privateKey_0, if longer than 4k |
secret.privateKeyPassphrase |
|
|
|
knownHostsEntry |
|
| connect to the host, and copy the known_hosts entry for the host to connect to |
deleteTempFilesAfterSession |
|
| if any temporary files (e.g. private key and known hosts) should be deleted after session, default true |
timeoutMillis |
| 10000 | timeout in millis |
enabled | Boolean | true | if this connector is enabled |
Azure endpoint in grouper.properties
grouper.azureConnector.<configId>.attributeName
e.g. grouper.azureConnector.myAzure.loginEndpoint
Attribute | Type | Default | Notes |
|---|---|---|---|
loginEndpoint | String |
| login endpoint to get a token e.g. https://login.microsoftonline.com |
DirectoryID | String |
| azure directory id e.g. 6c4dxxx0d |
client_id | String |