repo.jdbc.json revision 10ce1c22b1cd83482f0127254fe8a27610bb25f5
d1d86cce199bac0cae2564859cdce940fc674efcomebold "connection" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "dbType" : "DB2",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "jndiName" : "",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "driverClass" : "com.ibm.db2.jcc.DB2Driver",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "jdbcUrl" : "jdbc:db2://localhost:60000/dopenidm:retrieveMessagesFromServerOnGetMessage=true;",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "username" : "db2inst1",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "password" : "changeme",
d1d86cce199bac0cae2564859cdce940fc674efcomebold "defaultCatalog" : "sopenidm",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "maxBatchSize" : 100,
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "maxTxRetry" : 5,
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "enableConnectionPool" : true,
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "connectionTimeoutInMs" : 30000
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "queries" : {
d1d86cce199bac0cae2564859cdce940fc674efcomebold "genericTables" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "credential-query" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE prop.propkey='/userName' AND prop.propvalue = ${username} AND objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "find-by-id" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE obj.objectid = ${id} AND objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-by-field-value" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE prop.propkey=CONCAT('/', ${field}) AND prop.propvalue = ${value} AND objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-users-of-direct-role" : "select obj.fullobject from ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id where objtype.objecttype = ${_resource} AND prop.propKey LIKE '/roles/%' AND prop.propValue = ${role}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all-ids" : "SELECT obj.objectid FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON obj.objecttypes_id = objtype.id WHERE objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all" : "SELECT obj.fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON obj.objecttypes_id = objtype.id WHERE objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all-ids-count" : "SELECT COUNT(obj.objectid) AS total FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON obj.objecttypes_id = objtype.id WHERE objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all-count" : "SELECT COUNT(obj.fullobject) AS total FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objtype ON obj.objecttypes_id = objtype.id WHERE objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "for-userName" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE prop.propkey='/userName' AND prop.propvalue = ${uid} AND objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "credential-internaluser-query" : "SELECT credprop.${_mainTable}_id, credprop.propkey, credprop.propvalue FROM ${_dbSchema}.${_propTable} credprop INNER JOIN ${_dbSchema}.${_mainTable} obj ON obj.id = credprop.${_mainTable}_id INNER JOIN ${_dbSchema}.${_propTable} conditionprop ON obj.id = conditionprop.${_mainTable}_id INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE credprop.propkey='/userPassword' AND conditionprop.propkey='/_id' AND conditionprop.propvalue = ${username} AND objtype.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "scan-tasks" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id INNER JOIN ${_dbSchema}.${_propTable} complete ON obj.id = complete.${_mainTable}_id INNER JOIN ${_dbSchema}.objecttypes objtype ON objtype.id = obj.objecttypes_id WHERE ( prop.propkey=${property} AND prop.propvalue < ${condition.before} AND objtype.objecttype = ${_resource} ) AND ( complete.propkey=${taskState.completed} AND complete.propvalue is NULL )",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-cluster-failed-instances" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id INNER JOIN ${_dbSchema}.${_propTable} state ON obj.id = state.${_mainTable}_id WHERE (prop.propkey = '/timestamp' AND prop.propvalue <= ${timestamp}) AND (state.propkey = '/state' AND (state.propvalue = '1' OR state.propvalue = '2'))",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-cluster-instances" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop ON obj.id = prop.${_mainTable}_id WHERE (prop.propkey = '/type' AND prop.propvalue = 'state')",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-cluster-events" : "SELECT fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.${_propTable} prop1 ON obj.id = prop1.${_mainTable}_id INNER JOIN ${_dbSchema}.${_propTable} prop2 ON obj.id = prop2.${_mainTable}_id WHERE (prop1.propkey = '/type' AND prop1.propvalue = 'event') AND (prop2.propkey = '/instanceId' AND prop2.propvalue = ${instanceId})",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-managed-users" : "SELECT * FROM (SELECT obj.fullobject, row_number() over (ORDER BY CASE WHEN ${orderByDir} = 'asc' THEN orderby.propvalue END asc, CASE WHEN ${orderByDir} = 'desc' THEN orderby.propvalue END desc) rn FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objTypes ON obj.objecttypes_id = objTypes.id and objTypes.objecttype = ${_resource} INNER JOIN ${_dbSchema}.${_propTable} orderby on obj.id = orderby.managedobjects_id and orderby.propkey = CONCAT('/',${orderBy}) ORDER BY CASE WHEN ${orderByDir} = 'asc' THEN orderby.propvalue END asc, CASE WHEN ${orderByDir} = 'desc' THEN orderby.propvalue END desc) WHERE rn BETWEEN ${int:_pagedResultsOffset}+1 AND ${int:_pagedResultsOffset}+${int:_pageSize} ORDER BY rn",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-managed-users-filtered" : "SELECT * FROM (SELECT obj.fullobject, row_number() over (ORDER BY CASE WHEN ${orderByDir} = 'asc' THEN orderby.propvalue END asc, CASE WHEN ${orderByDir} = 'desc' THEN orderby.propvalue END desc) rn FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objTypes ON obj.objecttypes_id = objTypes.id and objTypes.objecttype = ${_resource} INNER JOIN ${_dbSchema}.${_propTable} orderby on obj.id = orderby.managedobjects_id and orderby.propkey = CONCAT('/',${orderBy}) INNER JOIN ${_dbSchema}.${_propTable} userName on obj.id = userName.${_mainTable}_id and userName.propkey = '/userName' INNER JOIN ${_dbSchema}.${_propTable} givenName on obj.id = givenName.${_mainTable}_id and givenName.propkey = '/givenName' INNER JOIN ${_dbSchema}.${_propTable} sn on obj.id = sn.${_mainTable}_id and sn.propkey = '/sn' INNER JOIN ${_dbSchema}.${_propTable} mail on obj.id = mail.${_mainTable}_id and mail.propkey = '/mail' INNER JOIN ${_dbSchema}.${_propTable} accountStatus on obj.id = accountStatus.${_mainTable}_id and accountStatus.propkey = '/accountStatus' WHERE userName.propvalue LIKE concat(${userName},'%') AND mail.propvalue LIKE concat(${mail},'%') AND givenName.propvalue LIKE concat(${givenName},'%') AND sn.propvalue LIKE concat(${sn},'%') AND accountStatus.propvalue LIKE concat(${accountStatus},'%') ORDER BY CASE WHEN ${orderByDir} = 'asc' THEN orderby.propvalue END asc, CASE WHEN ${orderByDir} = 'desc' THEN orderby.propvalue END desc) WHERE rn BETWEEN ${int:_pagedResultsOffset}+1 AND ${int:_pagedResultsOffset}+${int:_pageSize} ORDER BY rn",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-managed-users-count" : "SELECT '{ \"total\":' || COUNT(*) || '}' as fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objTypes ON obj.objecttypes_id = objTypes.id and objTypes.objecttype = ${_resource}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-managed-users-filtered-count" : "SELECT '{ \"total\":' || COUNT(*) || '}' as fullobject FROM ${_dbSchema}.${_mainTable} obj INNER JOIN ${_dbSchema}.objecttypes objTypes ON obj.objecttypes_id = objTypes.id and objTypes.objecttype = ${_resource} INNER JOIN ${_dbSchema}.${_propTable} userName on obj.id = userName.${_mainTable}_id and userName.propkey = '/userName' INNER JOIN ${_dbSchema}.${_propTable} givenName on obj.id = givenName.${_mainTable}_id and givenName.propkey = '/givenName' INNER JOIN ${_dbSchema}.${_propTable} sn on obj.id = sn.${_mainTable}_id and sn.propkey = '/sn' INNER JOIN ${_dbSchema}.${_propTable} mail on obj.id = mail.${_mainTable}_id and mail.propkey = '/mail' INNER JOIN ${_dbSchema}.${_propTable} accountStatus on obj.id = accountStatus.${_mainTable}_id and accountStatus.propkey = '/accountStatus' WHERE userName.propvalue LIKE concat(${userName},'%') AND mail.propvalue LIKE concat(${mail},'%') AND givenName.propvalue LIKE concat(${givenName},'%') AND sn.propvalue LIKE concat(${sn},'%') AND accountStatus.propvalue LIKE concat(${accountStatus},'%')"
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "explicitTables" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all-ids" : "SELECT objectid FROM ${_dbSchema}.${_table}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "for-internalcredentials" : "SELECT * FROM ${_dbSchema}.internaluser WHERE objectid = ${uid}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-notifications-for-user" : "SELECT * FROM ${_dbSchema}.${_table} WHERE receiverId = ${userId} order by createDate desc",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "credential-query" : "SELECT * FROM ${_dbSchema}.${_table} WHERE objectid = ${username}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "credential-internaluser-query" : "SELECT * FROM ${_dbSchema}.${_table} WHERE objectid = ${username}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "links-for-firstId" : "SELECT * FROM ${_dbSchema}.${_table} WHERE linkType = ${linkType} AND linkQualifier = ${linkQualifier} AND firstid = ${firstId}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "links-for-secondId" : "SELECT * FROM ${_dbSchema}.${_table} WHERE linkType = ${linkType} AND linkQualifier = ${linkQualifier} AND secondid = ${secondId}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "links-for-linkType" : "SELECT * FROM ${_dbSchema}.${_table} WHERE linkType = ${linkType} AND linkQualifier = ${linkQualifier}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "scan-tasks" : "SELECT * FROM ${_dbSchema}.${_table} WHERE ${property} < ${condition.before} AND ${taskState.completed} is NULL",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "audit-by-mapping" : "SELECT * FROM ${_dbSchema}.auditrecon WHERE mapping = ${mappingName}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "audit-by-recon-id" : "SELECT * FROM ${_dbSchema}.auditrecon WHERE reconId = ${reconId}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "audit-by-recon-id-type" : "SELECT * FROM ${_dbSchema}.auditrecon WHERE reconId = ${reconId} AND entryType = ${entryType}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "audit-by-recon-id-situation" : "SELECT * FROM ${_dbSchema}.auditrecon WHERE reconId = ${reconId} AND situation = ${situation}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "audit-by-activity-parent-action" : "SELECT * FROM ${_dbSchema}.auditactivity WHERE parentactionid = ${parentActionId}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "query-all" : "SELECT * FROM ${_dbSchema}.${_table}",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "get-recons" : "SELECT reconid, activitydate, mapping, message FROM ${_dbSchema}.auditrecon WHERE mapping LIKE ${includeMapping} AND mapping NOT LIKE ${excludeMapping} AND entrytype = 'summary' ORDER BY activitydate DESC"
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "commands" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "genericTables" : { },
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "explicitTables" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "purge-by-recon-ids-to-keep" : "DELETE FROM ${_dbSchema}.auditrecon WHERE mapping LIKE ${includeMapping} AND mapping NOT LIKE ${excludeMapping} AND reconid NOT IN (${list:reconIds})",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "purge-by-recon-expired" : "DELETE FROM ${_dbSchema}.auditrecon WHERE mapping LIKE ${includeMapping} AND mapping NOT LIKE ${excludeMapping} AND activitydate < ${timestamp}"
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "resourceMapping" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "default" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "mainTable" : "genericobjects",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "propertiesTable" : "genericobjectproperties",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchableDefault" : true
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "genericMapping" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "managed/*" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "mainTable" : "managedobjects",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "propertiesTable" : "managedobjectproperties",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchableDefault" : true
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "mainTable" : "managedobjects",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "propertiesTable" : "managedobjectproperties",
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchableDefault" : false,
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "properties" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "/userName" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchable" : true
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "/givenName" : {
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchable" : true
de0e07f12cab9aa60d334ba26da830655765e954Jason Browne "searchable" : true
"ui/notification" : {
"internal/user" : {
"audit/activity" : {
"audit/recon" : {
"audit/sync" : {
"audit/access" : {
"security/keys" : {