~~ ------------------------- ~~ Title ~~ ------------------------- ~~ ------------------------- ~~ Date ~~ ------------------------- ~~ ~~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. ~~ ~~ Copyright © 2011. ForgeRock AS. All rights reserved. ~~ ~~ The contents of this file are subject to the terms ~~ of the Common Development and Distribution License ~~ (the License). You may not use this file except in ~~ compliance with the License. ~~ ~~ You can obtain a copy of the License at ~~ http://forgerock.org/license/CDDLv1.0.html ~~ See the License for the specific language governing ~~ permission and limitations under the License. ~~ ~~ When distributing Covered Code, include this CDDL ~~ Header Notice in each file and include the License file ~~ at http://forgerock.org/license/CDDLv1.0.html ~~ If applicable, add the following below the CDDL Header, ~~ with the fields enclosed by brackets [] replaced by ~~ your own identifying information: ~~ "Portions Copyrighted [year] [name of copyright owner]" ~~ ~~ $Id$ ~~ Database Table Connector The Database Table connector is used to manage identity stores in a single database table or view. Integration to the database requires a compliant SQL92 JDBC Driver. * Download Latest releases: *---*---------*-----------------------------* | # | Version | Download | *---*---------*-----------------------------* | 1 | 1.1.0.0 | {{http://maven.forgerock.org/repo/snapshots/org/forgerock/openicf/connectors/db/databasetable/1.1.0.0-SNAPSHOT/databasetable-1.1.0.0-SNAPSHOT.jar}}| *---*---------*-----------------------------* | | | | *---*---------*-----------------------------* * Supported Resource Versions *--------------------*--------------------------------------*-----------------------------* | Identity Connector | Identity Connector Version (minimum) | Target Resource and Version | *--------------------*--------------------------------------*-----------------------------* | | | | *--------------------*--------------------------------------*-----------------------------* | | | | *--------------------*--------------------------------------*-----------------------------* * Release Notes *-------------------*---------*---------------* | Connector Version | Issue # | Release Notes | *-------------------*---------*---------------* | | | | *-------------------*---------*---------------* | | | | *-------------------*---------*---------------* * Installation To install the Database Table connector in OpenIDM perform the following steps: * Download the appropriate connector jar and place it in the $OPENIDM/connectors folder. * Provide the applicable JDBC driver and make it available via the CLASSPATH. * Setup and configure the $OPENIDM/conf/provisioner.openicf-dbtable.json connector instance configuration. * Supported Operations * Authenticate () Specify the password column configuration property. * Create * Delete * Update * Search * Schema * Test * LiveSync () Specify the Change Log Column configuration property. * Configuration A valid jdbc driver must be present and accessible, typically via the CLASSPATH. The connector configuration requires connectivity information. ** Configuration Sample The following sample can be found at $OPENIDM/samples and illustrates the configuration of a simple contractor database or HR table. +-- { "name" : "contractordb", "connectorRef" : { "connectorHostRef" : "#LOCAL", "connectorName" : "org.identityconnectors.databasetable.DatabaseTableConnector", "bundleName" : "org.forgerock.openicf.connectors.db.databasetable", "bundleVersion" : "1.1.0.0-SNAPSHOT" }, "poolConfigOption" : { "maxObjects" : 10, "maxIdle" : 10, "maxWait" : 150000, "minEvictableIdleTimeMillis" : 120000, "minIdle" : 1 }, "resultsHandlerConfig" : { "enableNormalizingResultsHandler" : true, "enableFilteredResultsHandler" : true, "enableCaseInsensitiveFilter" : false, "enableAttributesToGetSearchResultsHandler" : true }, "operationTimeout" : { "CREATE" : -1, "UPDATE" : -1, "DELETE" : -1, "TEST" : -1, "SCRIPT_ON_CONNECTOR" : -1, "SCRIPT_ON_RESOURCE" : -1, "GET" : -1, "RESOLVEUSERNAME" : -1, "AUTHENTICATE" : -1, "SEARCH" : -1, "VALIDATE" : -1, "SYNC" : -1, "SCHEMA" : -1 }, "configurationProperties" : { "quoting" : "", "host" : "localhost", "port" : "3306", "user" : "root", "password" : "", "database" : "contractordb", "table" : "people", "keyColumn" : "UNIQUE_ID", "passwordColumn" : "", "jdbcDriver" : "com.mysql.jdbc.Driver", "jdbcUrlTemplate" : "jdbc:mysql://%h:%p/%d", "enableEmptyString" : false, "rethrowAllSQLExceptions" : true, "nativeTimestamps" : true, "allNative" : false, "validConnectionQuery" : null, "changeLogColumn" : "CHANGE_TIMESTEMP", "datasource" : "", "jndiProperties" : null }, "objectTypes" : { "__ACCOUNT__" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "__ACCOUNT__", "type" : "object", "nativeType" : "__ACCOUNT__", "properties" : { "NAME_FIRST_UTF8" : { "type" : "string", "nativeName" : "NAME_FIRST_UTF8", "nativeType" : "string" }, "SUNRISE_DATE" : { "type" : "string", "nativeName" : "SUNRISE_DATE", "nativeType" : "string" }, "CONTRACTOR_NUMBER" : { "type" : "string", "nativeName" : "CONTRACTOR_NUMBER", "nativeType" : "string" }, "SPONSOR" : { "type" : "string", "nativeName" : "SPONSOR", "nativeType" : "string" }, "STATUS" : { "type" : "string", "required" : true, "nativeName" : "STATUS", "nativeType" : "string" }, "LOCATION" : { "type" : "string", "nativeName" : "LOCATION", "nativeType" : "string" }, "NAME_FIRST" : { "type" : "string", "required" : true, "nativeName" : "NAME_FIRST", "nativeType" : "string" }, "NAME_FULL_UTF8" : { "type" : "string", "nativeName" : "NAME_FULL_UTF8", "nativeType" : "string" }, "NAME_LAST" : { "type" : "string", "required" : true, "nativeName" : "NAME_LAST", "nativeType" : "string" }, "ORGANIZATION" : { "type" : "string", "nativeName" : "ORGANIZATION", "nativeType" : "string" }, "NAME_FULL" : { "type" : "string", "nativeName" : "NAME_FULL", "nativeType" : "string" }, "PHONE_WORK" : { "type" : "string", "nativeName" : "PHONE_WORK", "nativeType" : "string" }, "SSN_LASTFOUR" : { "type" : "string", "nativeName" : "SSN_LASTFOUR", "nativeType" : "string" }, "NAME_LAST_UTF8" : { "type" : "string", "nativeName" : "NAME_LAST_UTF8", "nativeType" : "string" }, "__NAME__" : { "type" : "string", "required" : true, "nativeName" : "__NAME__", "nativeType" : "string" }, "SUNSET_DATE" : { "type" : "string", "nativeName" : "SUNSET_DATE", "nativeType" : "string" }, "EMAIL" : { "type" : "string", "nativeName" : "EMAIL", "nativeType" : "string" }, "TYPE" : { "type" : "string", "required" : true, "nativeName" : "TYPE", "nativeType" : "string" }, "DATE_BIRTH" : { "type" : "string", "nativeName" : "DATE_BIRTH", "nativeType" : "string" }, "TITLE" : { "type" : "string", "nativeName" : "TITLE", "nativeType" : "string" } } } }, "operationOptions" : { "CREATE" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "UPDATE" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "DELETE" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "TEST" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "SCRIPT_ON_CONNECTOR" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "SCRIPT_ON_RESOURCE" : { "objectFeatures" : { } }, "GET" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "RESOLVEUSERNAME" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "AUTHENTICATE" : { "objectFeatures" : { } }, "SEARCH" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "VALIDATE" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "SYNC" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } }, "SCHEMA" : { "objectFeatures" : { "__ACCOUNT__" : { "denied" : false, "onDeny" : "DO_NOTHING", "operationOptionInfo" : { "$schema" : "http://json-schema.org/draft-03/schema", "id" : "FIX_ME", "type" : "object", "properties" : { } } } } } } } +--