You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/19 15:02:08 UTC

[21/24] syncope git commit: [SYNCOPE-822] UUID keys

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
index 5c90069..efbd821 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportSyncopeOperations.java
@@ -18,11 +18,13 @@
  */
 package org.apache.syncope.client.cli.commands.report;
 
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.SequenceInputStream;
 import java.util.List;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.TransformerException;
+import org.apache.cxf.helpers.IOUtils;
 import org.apache.syncope.client.cli.SyncopeServices;
 import org.apache.syncope.client.cli.util.XMLUtils;
 import org.apache.syncope.common.lib.to.JobTO;
@@ -37,7 +39,7 @@ public class ReportSyncopeOperations {
     private final ReportService reportService = SyncopeServices.get(ReportService.class);
 
     public ReportTO read(final String reportKey) {
-        return reportService.read(Long.valueOf(reportKey));
+        return reportService.read(reportKey);
     }
 
     public List<JobTO> listJobs() {
@@ -50,37 +52,62 @@ public class ReportSyncopeOperations {
 
     public String exportExecutionResult(final String executionKey, final String reportExecExportFormat)
             throws TransformerException, SAXException, IOException, ParserConfigurationException {
-        final ReportExecExportFormat format = ReportExecExportFormat.valueOf(reportExecExportFormat);
-        final SequenceInputStream report = (SequenceInputStream) reportService.exportExecutionResult(Long.valueOf(
-                executionKey), format).getEntity();
-        final String xmlFinalName = "export_" + executionKey + ".xml";
+
+        ReportExecExportFormat format = ReportExecExportFormat.valueOf(reportExecExportFormat);
+        SequenceInputStream report = (SequenceInputStream) reportService.exportExecutionResult(executionKey, format).
+                getEntity();
+
+        String fileName = "export_" + executionKey;
+        FileOutputStream fos = null;
         switch (format) {
             case XML:
-                XMLUtils.createXMLFile(report, xmlFinalName);
+                fileName += ".xml";
+                XMLUtils.createXMLFile(report, fileName);
                 break;
+
             case CSV:
-                return format + " doesn't supported";
+                fileName += ".csv";
+                fos = new FileOutputStream(fileName);
+                IOUtils.copyAndCloseInput(report, fos);
+                break;
+
             case PDF:
-                return format + " doesn't supported";
+                fileName += ".pdf";
+                fos = new FileOutputStream(fileName);
+                IOUtils.copyAndCloseInput(report, fos);
+                break;
+
             case HTML:
-                return format + " doesn't supported";
+                fileName += ".html";
+                fos = new FileOutputStream(fileName);
+                IOUtils.copyAndCloseInput(report, fos);
+                break;
+
             case RTF:
-                return format + " doesn't supported";
+                fileName += ".rtf";
+                fos = new FileOutputStream(fileName);
+                IOUtils.copyAndCloseInput(report, fos);
+                break;
+
             default:
-                return format + " doesn't supported";
+                return format + " not supported";
+        }
+        if (fos != null) {
+            fos.close();
         }
-        return xmlFinalName;
+
+        return fileName;
     }
 
     public void execute(final String reportKey) {
-        reportService.execute(new ExecuteQuery.Builder().key(Long.valueOf(reportKey)).build());
+        reportService.execute(new ExecuteQuery.Builder().key(reportKey).build());
     }
 
-    public void deleteExecution(final String executionId) {
-        reportService.deleteExecution(Long.valueOf(executionId));
+    public void deleteExecution(final String executionKey) {
+        reportService.deleteExecution(executionKey);
     }
 
     public void delete(final String reportKey) {
-        reportService.delete(Long.valueOf(reportKey));
+        reportService.delete(reportKey);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java
index 18ab0aa..042207a 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java
@@ -38,15 +38,10 @@ public class ResourceResultManager extends CommonsResultManager {
     private void printResource(final ResourceTO resourceTO) {
         System.out.println(" > RESOURCE ID: " + resourceTO.getKey());
         System.out.println("    connector dispaly name: " + resourceTO.getConnectorDisplayName());
-        System.out.println("    etag value: " + resourceTO.getETagValue());
         System.out.println("    connector id: " + resourceTO.getConnector());
         System.out.println("    account policy id: " + resourceTO.getAccountPolicy());
         System.out.println("    password policy id: " + resourceTO.getPasswordPolicy());
         System.out.println("    pull policy id: " + resourceTO.getPullPolicy());
-        System.out.println("    creator: " + resourceTO.getCreator());
-        System.out.println("    creation date: " + resourceTO.getCreationDate());
-        System.out.println("    last modifier: " + resourceTO.getLastModifier());
-        System.out.println("    last change date: " + resourceTO.getLastChangeDate());
         System.out.println("    propagation actions class: " + resourceTO.getPropagationActionsClassNames());
         System.out.println("    propagation priority: " + resourceTO.getPropagationPriority());
         System.out.println("    PROVISIONS:");

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
index 6fd1e1d..7ac8593 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java
@@ -37,11 +37,11 @@ public class TaskSyncopeOperations {
     }
 
     public <T extends AbstractTaskTO> T read(final String taskKey) {
-        return taskService.read(Long.valueOf(taskKey), true);
+        return taskService.read(taskKey, true);
     }
 
     public void delete(final String taskKey) {
-        taskService.delete(Long.valueOf(taskKey));
+        taskService.delete(taskKey);
     }
 
     public List<AbstractTaskTO> list(final String type) {
@@ -53,10 +53,11 @@ public class TaskSyncopeOperations {
     }
 
     public void deleteExecution(final String executionKey) {
-        taskService.deleteExecution(Long.valueOf(executionKey));
+        taskService.deleteExecution(executionKey);
     }
 
     public ExecTO execute(final String executionKey, final boolean dryRun) {
-        return taskService.execute(new ExecuteQuery.Builder().key(Long.valueOf(executionKey)).dryRun(dryRun).build());
+        return taskService.execute(
+                new ExecuteQuery.Builder().key(executionKey).dryRun(dryRun).build());
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
index ec0aff4..22737c6 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java
@@ -29,7 +29,7 @@ import org.apache.syncope.client.cli.commands.AbstractCommand;
 public class UserCommand extends AbstractCommand {
 
     private final UserResultManager userResultManager = new UserResultManager();
-    
+
     @Override
     public void execute(final Input input) {
         if (StringUtils.isBlank(input.getOption())) {
@@ -43,12 +43,6 @@ public class UserCommand extends AbstractCommand {
             case LIST:
                 new UserList(input).list();
                 break;
-            case GET_BY_KEY:
-                new UserGetKey(input).get();
-                break;
-            case GET_BY_USERNAME:
-                new UserGetUsername(input).get();
-                break;
             case READ_BY_ID:
                 new UserReadByUserId(input).read();
                 break;
@@ -91,8 +85,6 @@ public class UserCommand extends AbstractCommand {
         HELP("--help"),
         DETAILS("--details"),
         LIST("--list"),
-        GET_BY_KEY("--get-user-key"),
-        GET_BY_USERNAME("--get-username"),
         READ_BY_ID("--read-by-userid"),
         READ_BY_USERNAME("--read-by-username"),
         SEARCH_BY_ATTRIBUTE("--search-by-attribute"),

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetKey.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetKey.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetKey.java
deleted file mode 100644
index 2eb1e3d..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetKey.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.cli.commands.user;
-
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserGetKey extends AbstractUserCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(UserGetKey.class);
-
-    private static final String GET_HELP_MESSAGE = "user --get-user-key {USERNAME}";
-
-    private final Input input;
-
-    public UserGetKey(final Input input) {
-        this.input = input;
-    }
-
-    public void get() {
-        if (input.getParameters().length == 1) {
-            try {
-                final String userId = userSyncopeOperations.getIdFromUsername(input.firstParameter());
-                userResultManager.genericMessage(input.firstParameter() + " user ID is " + userId);
-            } catch (final SyncopeClientException ex) {
-                LOG.error("Error getting user", ex);
-                userResultManager.genericError(ex.getMessage());
-            }
-        } else {
-            userResultManager.commandOptionError(GET_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetUsername.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetUsername.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetUsername.java
deleted file mode 100644
index 42fc558..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserGetUsername.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.cli.commands.user;
-
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserGetUsername extends AbstractUserCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(UserGetUsername.class);
-
-    private static final String GET_HELP_MESSAGE = "user --get-username {USER-ID}";
-
-    private final Input input;
-
-    public UserGetUsername(final Input input) {
-        this.input = input;
-    }
-
-    public void get() {
-        if (input.getParameters().length == 1) {
-            try {
-                final String username = userSyncopeOperations.getUsernameFromId(input.firstParameter());
-                userResultManager.genericMessage(input.firstParameter() + " username is " + username);
-            } catch (final SyncopeClientException ex) {
-                LOG.error("Error getting user", ex);
-                userResultManager.genericError(ex.getMessage());
-            }
-        } else {
-            userResultManager.commandOptionError(GET_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUsername.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUsername.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUsername.java
index ae2dd7c..e09ec83 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUsername.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUsername.java
@@ -44,8 +44,7 @@ public class UserReadByUsername extends AbstractUserCommand {
             final List<UserTO> userTOs = new ArrayList<>();
             for (final String parameter : input.getParameters()) {
                 try {
-                    final String userId = userSyncopeOperations.getIdFromUsername(parameter);
-                    userTOs.add(userSyncopeOperations.read(userId));
+                    userTOs.add(userSyncopeOperations.read(parameter));
                 } catch (final SyncopeClientException | WebServiceException ex) {
                     LOG.error("Error reading user", ex);
                     if (ex.getMessage().startsWith("NotFound")) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
index 80ae127..04bed36 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
@@ -26,7 +26,6 @@ import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.PagedResult;
 import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.common.rest.api.RESTHeaders;
 import org.apache.syncope.common.rest.api.beans.AnyListQuery;
 import org.apache.syncope.common.rest.api.beans.AnySearchQuery;
 import org.apache.syncope.common.rest.api.service.UserService;
@@ -69,20 +68,12 @@ public class UserSyncopeOperations {
         return userService.list(new AnyListQuery());
     }
 
-    public UserTO read(final String userId) {
-        return userService.read(Long.valueOf(userId));
+    public UserTO read(final String userKey) {
+        return userService.read(userKey);
     }
 
-    public String getUsernameFromId(final String userId) {
-        return userService.getUsername(Long.valueOf(userId)).getHeaderString(RESTHeaders.USERNAME);
-    }
-
-    public String getIdFromUsername(final String username) {
-        return userService.getUserKey(username).getHeaderString(RESTHeaders.USER_KEY);
-    }
-
-    public void delete(final String userId) {
-        userService.delete(Long.valueOf(userId));
+    public void delete(final String userKey) {
+        userService.delete(userKey);
     }
 
     public Map<String, BulkActionResult.Status> deleteByAttribute(

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/cli/src/test/resources/schema20.sql
----------------------------------------------------------------------
diff --git a/client/cli/src/test/resources/schema20.sql b/client/cli/src/test/resources/schema20.sql
index 491bc6e..1a1d185 100644
--- a/client/cli/src/test/resources/schema20.sql
+++ b/client/cli/src/test/resources/schema20.sql
@@ -15,204 +15,207 @@
 -- specific language governing permissions and limitations
 -- under the License.
 
-CREATE TABLE AccountPolicy (id BIGINT NOT NULL, description VARCHAR(255), maxAuthenticationAttempts INTEGER, propagateSuspension INTEGER, PRIMARY KEY (id));
-CREATE TABLE AccountPolicy_ExternalResource (accountPolicy_id BIGINT, resource_name VARCHAR(255));
-CREATE TABLE AccountRuleConfInstance (id BIGINT NOT NULL, serializedInstance CLOB, ACCOUNTPOLICY_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE ADynGroupMembership (id BIGINT NOT NULL, fiql VARCHAR(255), GROUP_ID BIGINT, ANYTYPE_NAME VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE ADynGroupMembership_AnyObject (aDynGroupMembership_id BIGINT, anyObject_id BIGINT);
-CREATE TABLE AMembership (id BIGINT NOT NULL, anyObject_id BIGINT, group_id BIGINT, PRIMARY KEY (id));
-CREATE TABLE AnyAbout (id BIGINT NOT NULL, filter CLOB, ANYTYPE_NAME VARCHAR(255), NOTIFICATION_ID BIGINT, PRIMARY KEY (id), CONSTRAINT U_NYABOUT_NOTIFICATION_ID UNIQUE (NOTIFICATION_ID, ANYTYPE_NAME));
-CREATE TABLE AnyObject (id BIGINT NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), REALM_ID BIGINT, TYPE_NAME VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE AnyObject_AnyTypeClass (anyObject_id BIGINT, anyTypeClass_name VARCHAR(255));
-CREATE TABLE AnyObject_ExternalResource (anyObject_id BIGINT, resource_name VARCHAR(255));
-CREATE TABLE AnyTemplatePullTask (id BIGINT NOT NULL, template CLOB, ANYTYPE_NAME VARCHAR(255), PULLTASK_ID BIGINT, PRIMARY KEY (id), CONSTRAINT U_NYTMTSK_PULLTASK_ID UNIQUE (PULLTASK_ID, ANYTYPE_NAME));
-CREATE TABLE AnyTemplateRealm (id BIGINT NOT NULL, template CLOB, REALM_ID BIGINT, ANYTYPE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_NYTMRLM_REALM_ID UNIQUE (REALM_ID, ANYTYPE_NAME));
-CREATE TABLE AnyType (name VARCHAR(255) NOT NULL, kind VARCHAR(20), PRIMARY KEY (name));
-CREATE TABLE AnyTypeClass (name VARCHAR(255) NOT NULL, PRIMARY KEY (name));
-CREATE TABLE AnyType_AnyTypeClass (anyType_name VARCHAR(255), anyTypeClass_name VARCHAR(255));
-CREATE TABLE APlainAttr (id BIGINT NOT NULL, OWNER_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE APlainAttrUniqueValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PLNTQVL_BOOLEANVALUE1 UNIQUE (booleanValue, schema_name), CONSTRAINT U_PLNTQVL_DATEVALUE1 UNIQUE (dateValue, schema_name), CONSTRAINT U_PLNTQVL_STRINGVALUE1 UNIQUE (stringValue, schema_name), CONSTRAINT U_PLNTQVL_DOUBLEVALUE1 UNIQUE (doubleValue, schema_name), CONSTRAINT U_PLNTQVL_LONGVALUE1 UNIQUE (longValue, schema_name));
-CREATE TABLE APlainAttrValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE ARelationship (id BIGINT NOT NULL, left_anyObject_id BIGINT, right_anyObject_id BIGINT, TYPE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_RLTNSHP_TYPE_NAME1 UNIQUE (TYPE_NAME, left_anyObject_id, right_anyObject_id));
-CREATE TABLE ConnInstance (id BIGINT NOT NULL, bundleName VARCHAR(255), connRequestTimeout INTEGER, connectorName VARCHAR(255), displayName VARCHAR(255), jsonConf CLOB, location VARCHAR(255), version VARCHAR(255), maxIdle INTEGER, maxObjects INTEGER, maxWait BIGINT, minEvictableIdleTimeMillis BIGINT, minIdle INTEGER, PRIMARY KEY (id), CONSTRAINT U_CNNNTNC_DISPLAYNAME UNIQUE (displayName));
-CREATE TABLE ConnInstance_capabilities (connInstance_id BIGINT, capability VARCHAR(20));
-CREATE TABLE CPlainAttr (id BIGINT NOT NULL, schema_name VARCHAR(255), OWNER_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE CPlainAttrUniqueValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_CPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_name), CONSTRAINT U_CPLNQVL_DATEVALUE UNIQUE (dateValue, schema_name), CONSTRAINT U_CPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_name), CONSTRAINT U_CPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_name), CONSTRAINT U_CPLNQVL_LONGVALUE UNIQUE (longValue, schema_name));
-CREATE TABLE CPlainAttrValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE DerSchema (name VARCHAR(255) NOT NULL, expression VARCHAR(255), ANYTYPECLASS_NAME VARCHAR(255), PRIMARY KEY (name));
-CREATE TABLE DynRoleMembership (id BIGINT NOT NULL, fiql VARCHAR(255), ROLE_NAME VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE DynRoleMembership_User (dynRoleMembership_id BIGINT, user_id BIGINT);
-CREATE TABLE ExternalResource (name VARCHAR(255) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, createTraceLevel VARCHAR(20), deleteTraceLevel VARCHAR(20), enforceMandatoryCondition INTEGER, jsonConf CLOB, overrideCapabilities INTEGER, propagationPriority INTEGER, pullTraceLevel VARCHAR(20), randomPwdIfNotProvided INTEGER, updateTraceLevel VARCHAR(20), ACCOUNTPOLICY_ID BIGINT, CONNECTOR_ID BIGINT, PASSWORDPOLICY_ID BIGINT, PULLPOLICY_ID BIGINT, PRIMARY KEY (name));
-CREATE TABLE ExternalResource_capOverride (resource_name VARCHAR(255), capabilityOverride VARCHAR(20));
-CREATE TABLE ExternalResource_PropActions (resource_name VARCHAR(255), actionClassName VARCHAR(255));
-CREATE TABLE GPlainAttr (id BIGINT NOT NULL, schema_name VARCHAR(255), OWNER_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE GPlainAttrUniqueValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_GPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_name), CONSTRAINT U_GPLNQVL_DATEVALUE UNIQUE (dateValue, schema_name), CONSTRAINT U_GPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_name), CONSTRAINT U_GPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_name), CONSTRAINT U_GPLNQVL_LONGVALUE UNIQUE (longValue, schema_name));
-CREATE TABLE GPlainAttrValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE MailTemplate (name VARCHAR(255) NOT NULL, htmlTemplate CLOB, textTemplate CLOB, PRIMARY KEY (name));
-CREATE TABLE Mapping (id BIGINT NOT NULL, connObjectLink VARCHAR(255), PROVISION_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE MappingItem (id BIGINT NOT NULL, connObjectKey INTEGER, extAttrName VARCHAR(255), intAttrName VARCHAR(255), intMappingType VARCHAR(22), mandatoryCondition VARCHAR(255), password INTEGER, purpose VARCHAR(20), MAPPING_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE MappingItem_Transformer (mappingItem_id BIGINT, transformerClassName VARCHAR(255));
-CREATE TABLE Notification (id BIGINT NOT NULL, active INTEGER, recipientAttrName VARCHAR(255), recipientAttrType VARCHAR(22), recipientsFIQL VARCHAR(255), recipientsProviderClassName VARCHAR(255), selfAsRecipient INTEGER, sender VARCHAR(255), subject VARCHAR(255), traceLevel VARCHAR(20), template_name VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE NotificationTask_recipients (notificationTask_id BIGINT, address VARCHAR(255));
-CREATE TABLE Notification_events (notification_id BIGINT, event VARCHAR(255));
-CREATE TABLE Notification_staticRecipients (notification_id BIGINT, staticRecipients VARCHAR(255));
-CREATE TABLE OPENJPA_SEQUENCES_TABLE (ID VARCHAR(255) NOT NULL, SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID));
-CREATE TABLE PasswordPolicy (id BIGINT NOT NULL, description VARCHAR(255), allowNullPassword INTEGER, historyLength INTEGER, PRIMARY KEY (id));
-CREATE TABLE PasswordRuleConfInstance (id BIGINT NOT NULL, serializedInstance CLOB, PASSWORDPOLICY_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE PlainSchema (name VARCHAR(255) NOT NULL, cipherAlgorithm VARCHAR(20), conversionPattern VARCHAR(255), enumerationKeys CLOB, enumerationValues CLOB, mandatoryCondition VARCHAR(255), mimeType VARCHAR(255), multivalue INTEGER, readonly INTEGER, secretKey VARCHAR(255), type VARCHAR(20), uniqueConstraint INTEGER, validatorClass VARCHAR(255), ANYTYPECLASS_NAME VARCHAR(255), PRIMARY KEY (name));
-CREATE TABLE Provision (id BIGINT NOT NULL, objectClass VARCHAR(255), serializedSyncToken CLOB, ANYTYPE_NAME VARCHAR(255), RESOURCE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PROVSON_RESOURCE_NAME UNIQUE (RESOURCE_NAME, ANYTYPE_NAME));
-CREATE TABLE PullPolicy (id BIGINT NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (id));
-CREATE TABLE PullTask_actionsClassNames (pullTask_id BIGINT, actionClassName VARCHAR(255));
-CREATE TABLE PushPolicy (id BIGINT NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (id));
-CREATE TABLE PushTaskAnyFilter (id BIGINT NOT NULL, fiql VARCHAR(255), PUSHTASK_ID BIGINT, ANYTYPE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PSHTLTR_PUSHTASK_ID UNIQUE (PUSHTASK_ID, ANYTYPE_NAME));
-CREATE TABLE PushTask_actionsClassNames (pushTask_id BIGINT, actionClassName VARCHAR(255));
-CREATE TABLE Realm (id BIGINT NOT NULL, name VARCHAR(255), ACCOUNTPOLICY_ID BIGINT, PARENT_ID BIGINT, PASSWORDPOLICY_ID BIGINT, PRIMARY KEY (id), CONSTRAINT U_REALM_NAME UNIQUE (name, PARENT_ID));
-CREATE TABLE Realm_actionsClassNames (realm_id BIGINT, actionClassName VARCHAR(255));
-CREATE TABLE RelationshipType (name VARCHAR(255) NOT NULL, description VARCHAR(255), PRIMARY KEY (name));
-CREATE TABLE Report (id BIGINT NOT NULL, active INTEGER, cronExpression VARCHAR(255), name VARCHAR(255) NOT NULL, template_name VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_REPORT_NAME UNIQUE (name));
-CREATE TABLE ReportExec (id BIGINT NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), execResult BLOB, REPORT_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE ReportletConfInstance (id BIGINT NOT NULL, serializedInstance CLOB, REPORT_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE ReportTemplate (name VARCHAR(255) NOT NULL, csvTemplate CLOB, foTemplate CLOB, htmlTemplate CLOB, PRIMARY KEY (name));
-CREATE TABLE SecurityQuestion (id BIGINT NOT NULL, content VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_SCRTSTN_CONTENT UNIQUE (content));
-CREATE TABLE SyncopeConf (id BIGINT NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, PRIMARY KEY (id));
-CREATE TABLE SyncopeDomain (name VARCHAR(255) NOT NULL, adminCipherAlgorithm VARCHAR(20), adminPwd VARCHAR(255), PRIMARY KEY (name));
-CREATE TABLE SyncopeGroup (id BIGINT NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), name VARCHAR(255), REALM_ID BIGINT, GROUPOWNER_ID BIGINT, USEROWNER_ID BIGINT, PRIMARY KEY (id), CONSTRAINT U_SYNCGRP_NAME UNIQUE (name));
-CREATE TABLE SyncopeGroup_AnyTypeClass (group_id BIGINT, anyTypeClass_name VARCHAR(255));
-CREATE TABLE SyncopeGroup_ExternalResource (group_id BIGINT, resource_name VARCHAR(255));
+CREATE TABLE AccountPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), maxAuthenticationAttempts INTEGER, propagateSuspension INTEGER, PRIMARY KEY (key));
+CREATE TABLE AccountPolicy_ExternalResource (accountPolicy_key VARCHAR(36), resource_key VARCHAR(255));
+CREATE TABLE AccountRuleConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, ACCOUNTPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE ADynGroupMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE ADynGroupMembership_AnyObject (aDynGroupMembership_key VARCHAR(36), anyObject_key VARCHAR(36));
+CREATE TABLE AMembership (key VARCHAR(36) NOT NULL, anyObject_key VARCHAR(36), group_key VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE AnyAbout (key VARCHAR(36) NOT NULL, filter CLOB, NOTIFICATION_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYABOUT_NOTIFICATION_KEY UNIQUE (NOTIFICATION_KEY, ANYTYPE_KEY));
+CREATE TABLE AnyObject (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), REALM_KEY VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE AnyObject_AnyTypeClass (anyObject_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
+CREATE TABLE AnyObject_ExternalResource (anyObject_key VARCHAR(36), resource_key VARCHAR(255));
+CREATE TABLE AnyTemplatePullTask (key VARCHAR(36) NOT NULL, template CLOB, PULLTASK_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYTMTSK_PULLTASK_KEY UNIQUE (PULLTASK_KEY, ANYTYPE_KEY));
+CREATE TABLE AnyTemplateRealm (key VARCHAR(36) NOT NULL, template CLOB, REALM_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYTMRLM_REALM_KEY UNIQUE (REALM_KEY, ANYTYPE_KEY));
+CREATE TABLE AnyType (key VARCHAR(255) NOT NULL, kind VARCHAR(20), PRIMARY KEY (key));
+CREATE TABLE AnyTypeClass (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
+CREATE TABLE AnyType_AnyTypeClass (anyType_key VARCHAR(255), anyTypeClass_key VARCHAR(255));
+CREATE TABLE APlainAttr (key VARCHAR(36) NOT NULL, OWNER_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE APlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PLNTQVL_BOOLEANVALUE1 UNIQUE (booleanValue, schema_key), CONSTRAINT U_PLNTQVL_DATEVALUE1 UNIQUE (dateValue, schema_key), CONSTRAINT U_PLNTQVL_STRINGVALUE1 UNIQUE (stringValue, schema_key), CONSTRAINT U_PLNTQVL_DOUBLEVALUE1 UNIQUE (doubleValue, schema_key), CONSTRAINT U_PLNTQVL_LONGVALUE1 UNIQUE (longValue, schema_key));
+CREATE TABLE APlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE ARelationship (key VARCHAR(36) NOT NULL, left_anyObject_key VARCHAR(36), right_anyObject_key VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_RLTNSHP_TYPE_KEY1 UNIQUE (TYPE_KEY, left_anyObject_key, right_anyObject_key));
+CREATE TABLE ConnInstance (key VARCHAR(36) NOT NULL, bundleName VARCHAR(255), connRequestTimeout INTEGER, connectorName VARCHAR(255), displayName VARCHAR(255), jsonConf CLOB, location VARCHAR(255), version VARCHAR(255), maxIdle INTEGER, maxObjects INTEGER, maxWait BIGINT, minEvictableIdleTimeMillis BIGINT, minIdle INTEGER, PRIMARY KEY (key), CONSTRAINT U_CNNNTNC_DISPLAYNAME UNIQUE (displayName));
+CREATE TABLE ConnInstance_capabilities (connInstance_key VARCHAR(36), capability VARCHAR(20));
+CREATE TABLE CPlainAttr (key VARCHAR(36) NOT NULL, schema_key VARCHAR(255), OWNER_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE CPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_CPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_CPLNQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_CPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_CPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_CPLNQVL_LONGVALUE UNIQUE (longValue, schema_key));
+CREATE TABLE CPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE DerSchema (key VARCHAR(255) NOT NULL, expression VARCHAR(255), ANYTYPECLASS_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE DynRoleMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), ROLE_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE DynRoleMembership_User (dynRoleMembership_key VARCHAR(36), user_key VARCHAR(36));
+CREATE TABLE ExternalResource (key VARCHAR(255) NOT NULL, createTraceLevel VARCHAR(20), deleteTraceLevel VARCHAR(20), enforceMandatoryCondition INTEGER, jsonConf CLOB, overrideCapabilities INTEGER, propagationPriority INTEGER, pullTraceLevel VARCHAR(20), randomPwdIfNotProvided INTEGER, updateTraceLevel VARCHAR(20), ACCOUNTPOLICY_KEY VARCHAR(36), CONNECTOR_KEY VARCHAR(36), PASSWORDPOLICY_KEY VARCHAR(36), PULLPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE ExternalResource_capOverride (resource_key VARCHAR(255), capabilityOverride VARCHAR(20));
+CREATE TABLE ExternalResource_PropActions (resource_key VARCHAR(255), actionClassName VARCHAR(255));
+CREATE TABLE GPlainAttr (key VARCHAR(36) NOT NULL, schema_key VARCHAR(255), OWNER_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE GPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_GPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_GPLNQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_GPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_GPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_GPLNQVL_LONGVALUE UNIQUE (longValue, schema_key));
+CREATE TABLE GPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE MailTemplate (key VARCHAR(255) NOT NULL, htmlTemplate CLOB, textTemplate CLOB, PRIMARY KEY (key));
+CREATE TABLE Mapping (key VARCHAR(36) NOT NULL, connObjectLink VARCHAR(255), PROVISION_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE MappingItem (key VARCHAR(36) NOT NULL, connObjectKey INTEGER, extAttrName VARCHAR(255), intAttrName VARCHAR(255), intMappingType VARCHAR(22), mandatoryCondition VARCHAR(255), password INTEGER, purpose VARCHAR(20), MAPPING_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE MappingItem_Transformer (mappingItem_key VARCHAR(36), transformerClassName VARCHAR(255));
+CREATE TABLE Notification (key VARCHAR(36) NOT NULL, active INTEGER, recipientAttrName VARCHAR(255), recipientAttrType VARCHAR(22), recipientsFIQL VARCHAR(255), recipientsProviderClassName VARCHAR(255), selfAsRecipient INTEGER, sender VARCHAR(255), subject VARCHAR(255), traceLevel VARCHAR(20), template_key VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE NotificationTask_recipients (notificationTask_key VARCHAR(36), address VARCHAR(255));
+CREATE TABLE Notification_events (notification_key VARCHAR(36), event VARCHAR(255));
+CREATE TABLE Notification_staticRecipients (notification_key VARCHAR(36), staticRecipients VARCHAR(255));
+CREATE TABLE PasswordPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), allowNullPassword INTEGER, historyLength INTEGER, PRIMARY KEY (key));
+CREATE TABLE PasswordRuleConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, PASSWORDPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE PlainSchema (key VARCHAR(255) NOT NULL, cipherAlgorithm VARCHAR(20), conversionPattern VARCHAR(255), enumerationKeys CLOB, enumerationValues CLOB, mandatoryCondition VARCHAR(255), mimeType VARCHAR(255), multivalue INTEGER, readonly INTEGER, secretKey VARCHAR(255), type VARCHAR(20), uniqueConstraint INTEGER, validatorClass VARCHAR(255), ANYTYPECLASS_KEY VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE Provision (key VARCHAR(36) NOT NULL, objectClass VARCHAR(255), serializedSyncToken CLOB, ANYTYPE_KEY VARCHAR(255), RESOURCE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PROVSON_RESOURCE_KEY UNIQUE (RESOURCE_KEY, ANYTYPE_KEY));
+CREATE TABLE Provision_AnyTypeClass (provision_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
+CREATE TABLE PullPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (key));
+CREATE TABLE PullTask_actionsClassNames (pullTask_key VARCHAR(36), actionClassName VARCHAR(255));
+CREATE TABLE PushPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (key));
+CREATE TABLE PushTaskAnyFilter (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), PUSHTASK_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PSHTLTR_PUSHTASK_KEY UNIQUE (PUSHTASK_KEY, ANYTYPE_KEY));
+CREATE TABLE PushTask_actionsClassNames (pushTask_key VARCHAR(36), actionClassName VARCHAR(255));
+CREATE TABLE Realm (key VARCHAR(36) NOT NULL, name VARCHAR(255), ACCOUNTPOLICY_KEY VARCHAR(36), PARENT_KEY VARCHAR(36), PASSWORDPOLICY_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_REALM_KEY UNIQUE (key, PARENT_KEY));
+CREATE TABLE Realm_actionsClassNames (realm_key VARCHAR(36), actionClassName VARCHAR(255));
+CREATE TABLE RelationshipType (key VARCHAR(255) NOT NULL, description VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE Report (key VARCHAR(36) NOT NULL, active INTEGER, cronExpression VARCHAR(255), name VARCHAR(255) NOT NULL, template_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_REPORT_NAME UNIQUE (name));
+CREATE TABLE ReportExec (key VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), execResult BLOB, REPORT_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE ReportletConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, REPORT_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE ReportTemplate (key VARCHAR(255) NOT NULL, csvTemplate CLOB, foTemplate CLOB, htmlTemplate CLOB, PRIMARY KEY (key));
+CREATE TABLE SecurityQuestion (key VARCHAR(36) NOT NULL, content VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_SCRTSTN_CONTENT UNIQUE (content));
+CREATE TABLE SyncopeConf (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
+CREATE TABLE SyncopeDomain (key VARCHAR(255) NOT NULL, adminCipherAlgorithm VARCHAR(20), adminPwd VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE SyncopeGroup (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), name VARCHAR(255), REALM_KEY VARCHAR(36), GROUPOWNER_KEY VARCHAR(36), USEROWNER_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_SYNCGRP_NAME UNIQUE (name));
+CREATE TABLE SyncopeGroup_AnyTypeClass (group_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
+CREATE TABLE SyncopeGroup_ExternalResource (group_key VARCHAR(36), resource_key VARCHAR(255));
 CREATE TABLE SyncopeLogger (logName VARCHAR(255) NOT NULL, logLevel VARCHAR(20) NOT NULL, logType VARCHAR(20) NOT NULL, PRIMARY KEY (logName));
-CREATE TABLE SyncopeRole (name VARCHAR(255) NOT NULL, PRIMARY KEY (name));
-CREATE TABLE SyncopeRole_entitlements (role_name VARCHAR(255), entitlement VARCHAR(255));
-CREATE TABLE SyncopeRole_Realm (role_name VARCHAR(255), realm_id BIGINT);
-CREATE TABLE SyncopeUser (id BIGINT NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), changePwdDate TIMESTAMP, cipherAlgorithm VARCHAR(20), failedLogins INTEGER, lastLoginDate TIMESTAMP, mustChangePassword INTEGER, password VARCHAR(255), securityAnswer VARCHAR(255), suspended INTEGER, token CLOB, tokenExpireTime TIMESTAMP, username VARCHAR(255), REALM_ID BIGINT, SECURITYQUESTION_ID BIGINT, PRIMARY KEY (id), CONSTRAINT U_SYNCPSR_USERNAME UNIQUE (username));
-CREATE TABLE SyncopeUser_AnyTypeClass (user_id BIGINT, anyTypeClass_name VARCHAR(255));
-CREATE TABLE SyncopeUser_ExternalResource (user_id BIGINT, resource_name VARCHAR(255));
-CREATE TABLE SyncopeUser_passwordHistory (user_id BIGINT, passwordHistoryValue VARCHAR(255));
-CREATE TABLE SyncopeUser_SyncopeRole (user_id BIGINT, role_name VARCHAR(255));
-CREATE TABLE Task (id BIGINT NOT NULL, DTYPE VARCHAR(31), active INTEGER, cronExpression VARCHAR(255), description VARCHAR(255), jobDelegateClassName VARCHAR(255), name VARCHAR(255), startAt TIMESTAMP, matchingRule VARCHAR(20), performCreate INTEGER, performDelete INTEGER, performUpdate INTEGER, pullStatus INTEGER, unmatchingRule VARCHAR(20), pullMode VARCHAR(23), reconciliationFilterBuilderClassName VARCHAR(255), RESOURCE_NAME VARCHAR(255), DESTINATIONREALM_ID BIGINT, executed INTEGER, htmlBody CLOB, sender VARCHAR(255), subject VARCHAR(255), textBody CLOB, traceLevel VARCHAR(20), anyKey BIGINT, anyType VARCHAR(255), anyTypeKind VARCHAR(20), attributes CLOB, connObjectKey VARCHAR(255), objectClassName VARCHAR(255), oldConnObjectKey VARCHAR(255), operation VARCHAR(20), PRIMARY KEY (id));
-CREATE TABLE TaskExec (id BIGINT NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), TASK_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE TypeExtension (id BIGINT NOT NULL, GROUP_ID BIGINT, ANYTYPE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_TYPXNSN_GROUP_ID UNIQUE (GROUP_ID, ANYTYPE_NAME));
-CREATE TABLE TypeExtension_AnyTypeClass (typeExtension_id BIGINT, anyTypeClass_name VARCHAR(255));
-CREATE TABLE UDynGroupMembership (id BIGINT NOT NULL, fiql VARCHAR(255), GROUP_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE UDynGroupMembership_User (uDynGroupMembership_id BIGINT, user_id BIGINT);
-CREATE TABLE UMembership (id BIGINT NOT NULL, user_id BIGINT, group_id BIGINT, PRIMARY KEY (id));
-CREATE TABLE UPlainAttr (id BIGINT NOT NULL, OWNER_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id));
-CREATE TABLE UPlainAttrUniqueValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, schema_name VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PLNTQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_name), CONSTRAINT U_PLNTQVL_DATEVALUE UNIQUE (dateValue, schema_name), CONSTRAINT U_PLNTQVL_STRINGVALUE UNIQUE (stringValue, schema_name), CONSTRAINT U_PLNTQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_name), CONSTRAINT U_PLNTQVL_LONGVALUE UNIQUE (longValue, schema_name));
-CREATE TABLE UPlainAttrValue (id BIGINT NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID BIGINT, PRIMARY KEY (id));
-CREATE TABLE URelationship (id BIGINT NOT NULL, user_id BIGINT, anyObject_id BIGINT, TYPE_NAME VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_RLTNSHP_TYPE_NAME UNIQUE (TYPE_NAME, user_id, anyObject_id));
-CREATE TABLE VirSchema (name VARCHAR(255) NOT NULL, extAttrName VARCHAR(255), readonly INTEGER, ANYTYPECLASS_NAME VARCHAR(255), PROVISION_ID BIGINT, PRIMARY KEY (name));
-CREATE INDEX I_CCNTSRC_ACCOUNTPOLICY_ID ON AccountPolicy_ExternalResource (accountPolicy_id);
-CREATE INDEX I_CCNTSRC_ELEMENT ON AccountPolicy_ExternalResource (resource_name);
-CREATE INDEX I_CCNTTNC_ACCOUNTPOLICY ON AccountRuleConfInstance (ACCOUNTPOLICY_ID);
-CREATE INDEX I_DYNGSHP_ANYTYPE ON ADynGroupMembership (ANYTYPE_NAME);
-CREATE INDEX I_DYNGSHP_GROUP ON ADynGroupMembership (GROUP_ID);
-CREATE INDEX I_DYNGJCT_ADYNGROUPMEMBERSHIP_ID ON ADynGroupMembership_AnyObject (aDynGroupMembership_id);
-CREATE INDEX I_DYNGJCT_ELEMENT ON ADynGroupMembership_AnyObject (anyObject_id);
-CREATE INDEX I_MMBRSHP_LEFTEND1 ON AMembership (anyObject_id);
-CREATE INDEX I_MMBRSHP_RIGHTEND1 ON AMembership (group_id);
-CREATE INDEX I_NYABOUT_ANYTYPE ON AnyAbout (ANYTYPE_NAME);
-CREATE INDEX I_NYABOUT_NOTIFICATION ON AnyAbout (NOTIFICATION_ID);
-CREATE INDEX I_NYOBJCT_REALM ON AnyObject (REALM_ID);
-CREATE INDEX I_NYOBJCT_TYPE ON AnyObject (TYPE_NAME);
-CREATE INDEX I_NYBJLSS_ANYOBJECT_ID ON AnyObject_AnyTypeClass (anyObject_id);
-CREATE INDEX I_NYBJLSS_ELEMENT ON AnyObject_AnyTypeClass (anyTypeClass_name);
-CREATE INDEX I_NYBJSRC_ANYOBJECT_ID ON AnyObject_ExternalResource (anyObject_id);
-CREATE INDEX I_NYBJSRC_ELEMENT ON AnyObject_ExternalResource (resource_name);
-CREATE INDEX I_NYTMTSK_ANYTYPE ON AnyTemplatePullTask (ANYTYPE_NAME);
-CREATE INDEX I_NYTMTSK_PULLTASK ON AnyTemplatePullTask (PULLTASK_ID);
-CREATE INDEX I_NYTMRLM_ANYTYPE ON AnyTemplateRealm (ANYTYPE_NAME);
-CREATE INDEX I_NYTMRLM_REALM ON AnyTemplateRealm (REALM_ID);
-CREATE INDEX I_NYTYLSS_ANYTYPE_NAME ON AnyType_AnyTypeClass (anyType_name);
-CREATE INDEX I_NYTYLSS_ELEMENT ON AnyType_AnyTypeClass (anyTypeClass_name);
-CREATE INDEX I_PLINTTR_OWNER ON APlainAttr (OWNER_ID);
-CREATE INDEX I_PLINTTR_SCHEMA ON APlainAttr (schema_name);
-CREATE INDEX I_PLNTQVL_ATTRIBUTE1 ON APlainAttrUniqueValue (ATTRIBUTE_ID);
-CREATE INDEX I_PLNTQVL_SCHEMA1 ON APlainAttrUniqueValue (schema_name);
-CREATE INDEX I_PLNTRVL_ATTRIBUTE1 ON APlainAttrValue (ATTRIBUTE_ID);
-CREATE INDEX I_RLTNSHP_LEFTEND1 ON ARelationship (left_anyObject_id);
-CREATE INDEX I_RLTNSHP_RIGHTEND1 ON ARelationship (right_anyObject_id);
-CREATE INDEX I_RLTNSHP_TYPE1 ON ARelationship (TYPE_NAME);
-CREATE INDEX I_CNNNLTS_CONNINSTANCE_ID ON ConnInstance_capabilities (connInstance_id);
-CREATE INDEX I_CPLNTTR_OWNER ON CPlainAttr (OWNER_ID);
-CREATE INDEX I_CPLNTTR_SCHEMA ON CPlainAttr (schema_name);
-CREATE INDEX I_CPLNQVL_ATTRIBUTE ON CPlainAttrUniqueValue (ATTRIBUTE_ID);
-CREATE INDEX I_CPLNQVL_SCHEMA ON CPlainAttrUniqueValue (schema_name);
-CREATE INDEX I_CPLNRVL_ATTRIBUTE ON CPlainAttrValue (ATTRIBUTE_ID);
-CREATE INDEX I_DRSCHEM_ANYTYPECLASS ON DerSchema (ANYTYPECLASS_NAME);
-CREATE INDEX I_DYNRSHP_ROLE ON DynRoleMembership (ROLE_NAME);
-CREATE INDEX I_DYNR_SR_DYNROLEMEMBERSHIP_ID ON DynRoleMembership_User (dynRoleMembership_id);
-CREATE INDEX I_DYNR_SR_ELEMENT ON DynRoleMembership_User (user_id);
-CREATE INDEX I_XTRNSRC_ACCOUNTPOLICY ON ExternalResource (ACCOUNTPOLICY_ID);
-CREATE INDEX I_XTRNSRC_CONNECTOR ON ExternalResource (CONNECTOR_ID);
-CREATE INDEX I_XTRNSRC_PASSWORDPOLICY ON ExternalResource (PASSWORDPOLICY_ID);
-CREATE INDEX I_XTRNSRC_PULLPOLICY ON ExternalResource (PULLPOLICY_ID);
-CREATE INDEX I_XTRNRRD_RESOURCE_NAME ON ExternalResource_capOverride (resource_name);
-CREATE INDEX I_XTRNTNS_RESOURCE_NAME ON ExternalResource_PropActions (resource_name);
-CREATE INDEX I_GPLNTTR_OWNER ON GPlainAttr (OWNER_ID);
-CREATE INDEX I_GPLNTTR_SCHEMA ON GPlainAttr (schema_name);
-CREATE INDEX I_GPLNQVL_ATTRIBUTE ON GPlainAttrUniqueValue (ATTRIBUTE_ID);
-CREATE INDEX I_GPLNQVL_SCHEMA ON GPlainAttrUniqueValue (schema_name);
-CREATE INDEX I_GPLNRVL_ATTRIBUTE ON GPlainAttrValue (ATTRIBUTE_ID);
-CREATE INDEX I_MAPPING_PROVISION ON Mapping (PROVISION_ID);
-CREATE INDEX I_MPPNGTM_MAPPING ON MappingItem (MAPPING_ID);
-CREATE INDEX I_MPPNRMR_MAPPINGITEM_ID ON MappingItem_Transformer (mappingItem_id);
-CREATE INDEX I_NTFCTON_TEMPLATE ON Notification (template_name);
-CREATE INDEX I_NTFCNTS_NOTIFICATIONTASK_ID ON NotificationTask_recipients (notificationTask_id);
-CREATE INDEX I_NTFCNTS_NOTIFICATION_ID ON Notification_events (notification_id);
-CREATE INDEX I_NTFCNTS_NOTIFICATION_ID1 ON Notification_staticRecipients (notification_id);
-CREATE INDEX I_PSSWTNC_PASSWORDPOLICY ON PasswordRuleConfInstance (PASSWORDPOLICY_ID);
-CREATE INDEX I_PLNSCHM_ANYTYPECLASS ON PlainSchema (ANYTYPECLASS_NAME);
-CREATE INDEX I_PROVSON_ANYTYPE ON Provision (ANYTYPE_NAME);
-CREATE INDEX I_PROVSON_RESOURCE ON Provision (RESOURCE_NAME);
-CREATE INDEX I_PLLTNMS_PULLTASK_ID ON PullTask_actionsClassNames (pullTask_id);
-CREATE INDEX I_PSHTLTR_ANYTYPE ON PushTaskAnyFilter (ANYTYPE_NAME);
-CREATE INDEX I_PSHTLTR_PUSHTASK ON PushTaskAnyFilter (PUSHTASK_ID);
-CREATE INDEX I_PSHTNMS_PUSHTASK_ID ON PushTask_actionsClassNames (pushTask_id);
-CREATE INDEX I_REALM_ACCOUNTPOLICY ON Realm (ACCOUNTPOLICY_ID);
-CREATE INDEX I_REALM_PARENT ON Realm (PARENT_ID);
-CREATE INDEX I_REALM_PASSWORDPOLICY ON Realm (PASSWORDPOLICY_ID);
-CREATE INDEX I_RLM_NMS_REALM_ID ON Realm_actionsClassNames (realm_id);
-CREATE INDEX I_REPORT_TEMPLATE ON Report (template_name);
-CREATE INDEX I_RPORTXC_REPORT ON ReportExec (REPORT_ID);
-CREATE INDEX I_RPRTTNC_REPORT ON ReportletConfInstance (REPORT_ID);
-CREATE INDEX I_SYNCGRP_GROUPOWNER ON SyncopeGroup (GROUPOWNER_ID);
-CREATE INDEX I_SYNCGRP_REALM ON SyncopeGroup (REALM_ID);
-CREATE INDEX I_SYNCGRP_USEROWNER ON SyncopeGroup (USEROWNER_ID);
-CREATE INDEX I_SYNCLSS_ELEMENT ON SyncopeGroup_AnyTypeClass (anyTypeClass_name);
-CREATE INDEX I_SYNCLSS_GROUP_ID ON SyncopeGroup_AnyTypeClass (group_id);
-CREATE INDEX I_SYNCSRC_ELEMENT ON SyncopeGroup_ExternalResource (resource_name);
-CREATE INDEX I_SYNCSRC_GROUP_ID ON SyncopeGroup_ExternalResource (group_id);
-CREATE INDEX I_SYNCNTS_ROLE_NAME ON SyncopeRole_entitlements (role_name);
-CREATE INDEX I_SYNCRLM_ELEMENT ON SyncopeRole_Realm (realm_id);
-CREATE INDEX I_SYNCRLM_ROLE_NAME ON SyncopeRole_Realm (role_name);
-CREATE INDEX I_SYNCPSR_REALM ON SyncopeUser (REALM_ID);
-CREATE INDEX I_SYNCPSR_SECURITYQUESTION ON SyncopeUser (SECURITYQUESTION_ID);
-CREATE INDEX I_SYNCLSS_ELEMENT1 ON SyncopeUser_AnyTypeClass (anyTypeClass_name);
-CREATE INDEX I_SYNCLSS_USER_ID ON SyncopeUser_AnyTypeClass (user_id);
-CREATE INDEX I_SYNCSRC_ELEMENT1 ON SyncopeUser_ExternalResource (resource_name);
-CREATE INDEX I_SYNCSRC_USER_ID ON SyncopeUser_ExternalResource (user_id);
-CREATE INDEX I_SYNCTRY_USER_ID ON SyncopeUser_passwordHistory (user_id);
-CREATE INDEX I_SYNCPRL_ELEMENT ON SyncopeUser_SyncopeRole (role_name);
-CREATE INDEX I_SYNCPRL_USER_ID ON SyncopeUser_SyncopeRole (user_id);
-CREATE INDEX I_TASK_DESTINATIONREALM ON Task (DESTINATIONREALM_ID);
+CREATE TABLE SyncopeRole (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
+CREATE TABLE SyncopeRole_entitlements (role_key VARCHAR(255), entitlement VARCHAR(255));
+CREATE TABLE SyncopeRole_Realm (role_key VARCHAR(255), realm_key VARCHAR(36));
+CREATE TABLE SyncopeUser (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), changePwdDate TIMESTAMP, cipherAlgorithm VARCHAR(20), failedLogins INTEGER, lastLoginDate TIMESTAMP, mustChangePassword INTEGER, password VARCHAR(255), securityAnswer VARCHAR(255), suspended INTEGER, token CLOB, tokenExpireTime TIMESTAMP, username VARCHAR(255), REALM_KEY VARCHAR(36), SECURITYQUESTION_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_SYNCPSR_USERNAME UNIQUE (username));
+CREATE TABLE SyncopeUser_AnyTypeClass (user_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
+CREATE TABLE SyncopeUser_ExternalResource (user_key VARCHAR(36), resource_key VARCHAR(255));
+CREATE TABLE SyncopeUser_passwordHistory (user_key VARCHAR(36), passwordHistoryValue VARCHAR(255));
+CREATE TABLE SyncopeUser_SyncopeRole (user_key VARCHAR(36), role_key VARCHAR(255));
+CREATE TABLE Task (key VARCHAR(36) NOT NULL, DTYPE VARCHAR(31), anyKey VARCHAR(255), anyType VARCHAR(255), anyTypeKind VARCHAR(20), attributes CLOB, connObjectKey VARCHAR(255), objectClassName VARCHAR(255), oldConnObjectKey VARCHAR(255), operation VARCHAR(20), RESOURCE_KEY VARCHAR(255), active INTEGER, cronExpression VARCHAR(255), description VARCHAR(255), jobDelegateClassName VARCHAR(255), name VARCHAR(255), startAt TIMESTAMP, matchingRule VARCHAR(20), performCreate INTEGER, performDelete INTEGER, performUpdate INTEGER, pullStatus INTEGER, unmatchingRule VARCHAR(20), executed INTEGER, htmlBody CLOB, sender VARCHAR(255), subject VARCHAR(255), textBody CLOB, traceLevel VARCHAR(20), NOTIFICATION_KEY VARCHAR(36), pullMode VARCHAR(23), reconciliationFilterBuilderClassName VARCHAR(255), DESTINATIONREALM_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE TaskExec (key VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), TASK_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE TypeExtension (key VARCHAR(36) NOT NULL, GROUP_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_TYPXNSN_GROUP_KEY UNIQUE (GROUP_KEY, ANYTYPE_KEY));
+CREATE TABLE TypeExtension_AnyTypeClass (typeExtension_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
+CREATE TABLE UDynGroupMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE UDynGroupMembership_User (uDynGroupMembership_key VARCHAR(36), user_key VARCHAR(36));
+CREATE TABLE UMembership (key VARCHAR(36) NOT NULL, user_key VARCHAR(36), group_key VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE UPlainAttr (key VARCHAR(36) NOT NULL, OWNER_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key));
+CREATE TABLE UPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PLNTQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_PLNTQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_PLNTQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_PLNTQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_PLNTQVL_LONGVALUE UNIQUE (longValue, schema_key));
+CREATE TABLE UPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE TABLE URelationship (key VARCHAR(36) NOT NULL, user_key VARCHAR(36), anyObject_key VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_RLTNSHP_TYPE_KEY UNIQUE (TYPE_KEY, user_key, anyObject_key));
+CREATE TABLE VirSchema (key VARCHAR(255) NOT NULL, extAttrName VARCHAR(255), readonly INTEGER, ANYTYPECLASS_KEY VARCHAR(255), PROVISION_KEY VARCHAR(36), PRIMARY KEY (key));
+CREATE INDEX I_CCNTSRC_ACCOUNTPOLICY_KEY ON AccountPolicy_ExternalResource (accountPolicy_key);
+CREATE INDEX I_CCNTSRC_ELEMENT ON AccountPolicy_ExternalResource (resource_key);
+CREATE INDEX I_CCNTTNC_ACCOUNTPOLICY ON AccountRuleConfInstance (ACCOUNTPOLICY_KEY);
+CREATE INDEX I_DYNGSHP_ANYTYPE ON ADynGroupMembership (ANYTYPE_KEY);
+CREATE INDEX I_DYNGSHP_GROUP ON ADynGroupMembership (GROUP_KEY);
+CREATE INDEX I_DYNGJCT_ADYNGROUPMEMBERSHIP_KEY ON ADynGroupMembership_AnyObject (aDynGroupMembership_key);
+CREATE INDEX I_DYNGJCT_ELEMENT ON ADynGroupMembership_AnyObject (anyObject_key);
+CREATE INDEX I_MMBRSHP_LEFTEND1 ON AMembership (anyObject_key);
+CREATE INDEX I_MMBRSHP_RIGHTEND1 ON AMembership (group_key);
+CREATE INDEX I_NYABOUT_ANYTYPE ON AnyAbout (ANYTYPE_KEY);
+CREATE INDEX I_NYABOUT_NOTIFICATION ON AnyAbout (NOTIFICATION_KEY);
+CREATE INDEX I_NYOBJCT_REALM ON AnyObject (REALM_KEY);
+CREATE INDEX I_NYOBJCT_TYPE ON AnyObject (TYPE_KEY);
+CREATE INDEX I_NYBJLSS_ANYOBJECT_KEY ON AnyObject_AnyTypeClass (anyObject_key);
+CREATE INDEX I_NYBJLSS_ELEMENT ON AnyObject_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_NYBJSRC_ANYOBJECT_KEY ON AnyObject_ExternalResource (anyObject_key);
+CREATE INDEX I_NYBJSRC_ELEMENT ON AnyObject_ExternalResource (resource_key);
+CREATE INDEX I_NYTMTSK_ANYTYPE ON AnyTemplatePullTask (ANYTYPE_KEY);
+CREATE INDEX I_NYTMTSK_PULLTASK ON AnyTemplatePullTask (PULLTASK_KEY);
+CREATE INDEX I_NYTMRLM_ANYTYPE ON AnyTemplateRealm (ANYTYPE_KEY);
+CREATE INDEX I_NYTMRLM_REALM ON AnyTemplateRealm (REALM_KEY);
+CREATE INDEX I_NYTYLSS_ANYTYPE_KEY ON AnyType_AnyTypeClass (anyType_key);
+CREATE INDEX I_NYTYLSS_ELEMENT ON AnyType_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_PLINTTR_OWNER ON APlainAttr (OWNER_KEY);
+CREATE INDEX I_PLINTTR_SCHEMA ON APlainAttr (schema_key);
+CREATE INDEX I_PLNTQVL_ATTRIBUTE1 ON APlainAttrUniqueValue (ATTRIBUTE_KEY);
+CREATE INDEX I_PLNTQVL_SCHEMA1 ON APlainAttrUniqueValue (schema_key);
+CREATE INDEX I_PLNTRVL_ATTRIBUTE1 ON APlainAttrValue (ATTRIBUTE_KEY);
+CREATE INDEX I_RLTNSHP_LEFTEND1 ON ARelationship (left_anyObject_key);
+CREATE INDEX I_RLTNSHP_RIGHTEND1 ON ARelationship (right_anyObject_key);
+CREATE INDEX I_RLTNSHP_TYPE1 ON ARelationship (TYPE_KEY);
+CREATE INDEX I_CNNNLTS_CONNINSTANCE_KEY ON ConnInstance_capabilities (connInstance_key);
+CREATE INDEX I_CPLNTTR_OWNER ON CPlainAttr (OWNER_KEY);
+CREATE INDEX I_CPLNTTR_SCHEMA ON CPlainAttr (schema_key);
+CREATE INDEX I_CPLNQVL_ATTRIBUTE ON CPlainAttrUniqueValue (ATTRIBUTE_KEY);
+CREATE INDEX I_CPLNQVL_SCHEMA ON CPlainAttrUniqueValue (schema_key);
+CREATE INDEX I_CPLNRVL_ATTRIBUTE ON CPlainAttrValue (ATTRIBUTE_KEY);
+CREATE INDEX I_DRSCHEM_ANYTYPECLASS ON DerSchema (ANYTYPECLASS_KEY);
+CREATE INDEX I_DYNRSHP_ROLE ON DynRoleMembership (ROLE_KEY);
+CREATE INDEX I_DYNR_SR_DYNROLEMEMBERSHIP_KEY ON DynRoleMembership_User (dynRoleMembership_key);
+CREATE INDEX I_DYNR_SR_ELEMENT ON DynRoleMembership_User (user_key);
+CREATE INDEX I_XTRNSRC_ACCOUNTPOLICY ON ExternalResource (ACCOUNTPOLICY_KEY);
+CREATE INDEX I_XTRNSRC_CONNECTOR ON ExternalResource (CONNECTOR_KEY);
+CREATE INDEX I_XTRNSRC_PASSWORDPOLICY ON ExternalResource (PASSWORDPOLICY_KEY);
+CREATE INDEX I_XTRNSRC_PULLPOLICY ON ExternalResource (PULLPOLICY_KEY);
+CREATE INDEX I_XTRNRRD_RESOURCE_KEY ON ExternalResource_capOverride (resource_key);
+CREATE INDEX I_XTRNTNS_RESOURCE_KEY ON ExternalResource_PropActions (resource_key);
+CREATE INDEX I_GPLNTTR_OWNER ON GPlainAttr (OWNER_KEY);
+CREATE INDEX I_GPLNTTR_SCHEMA ON GPlainAttr (schema_key);
+CREATE INDEX I_GPLNQVL_ATTRIBUTE ON GPlainAttrUniqueValue (ATTRIBUTE_KEY);
+CREATE INDEX I_GPLNQVL_SCHEMA ON GPlainAttrUniqueValue (schema_key);
+CREATE INDEX I_GPLNRVL_ATTRIBUTE ON GPlainAttrValue (ATTRIBUTE_KEY);
+CREATE INDEX I_MAPPING_PROVISION ON Mapping (PROVISION_KEY);
+CREATE INDEX I_MPPNGTM_MAPPING ON MappingItem (MAPPING_KEY);
+CREATE INDEX I_MPPNRMR_MAPPINGITEM_KEY ON MappingItem_Transformer (mappingItem_key);
+CREATE INDEX I_NTFCTON_TEMPLATE ON Notification (template_key);
+CREATE INDEX I_NTFCNTS_NOTIFICATIONTASK_KEY ON NotificationTask_recipients (notificationTask_key);
+CREATE INDEX I_NTFCNTS_NOTIFICATION_KEY ON Notification_events (notification_key);
+CREATE INDEX I_NTFCNTS_NOTIFICATION_KEY1 ON Notification_staticRecipients (notification_key);
+CREATE INDEX I_PSSWTNC_PASSWORDPOLICY ON PasswordRuleConfInstance (PASSWORDPOLICY_KEY);
+CREATE INDEX I_PLNSCHM_ANYTYPECLASS ON PlainSchema (ANYTYPECLASS_KEY);
+CREATE INDEX I_PROVSON_ANYTYPE ON Provision (ANYTYPE_KEY);
+CREATE INDEX I_PROVSON_RESOURCE ON Provision (RESOURCE_KEY);
+CREATE INDEX I_PRVSLSS_ELEMENT ON Provision_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_PRVSLSS_PROVISION_KEY ON Provision_AnyTypeClass (provision_key);
+CREATE INDEX I_PLLTNMS_PULLTASK_KEY ON PullTask_actionsClassNames (pullTask_key);
+CREATE INDEX I_PSHTLTR_ANYTYPE ON PushTaskAnyFilter (ANYTYPE_KEY);
+CREATE INDEX I_PSHTLTR_PUSHTASK ON PushTaskAnyFilter (PUSHTASK_KEY);
+CREATE INDEX I_PSHTNMS_PUSHTASK_KEY ON PushTask_actionsClassNames (pushTask_key);
+CREATE INDEX I_REALM_ACCOUNTPOLICY ON Realm (ACCOUNTPOLICY_KEY);
+CREATE INDEX I_REALM_PARENT ON Realm (PARENT_KEY);
+CREATE INDEX I_REALM_PASSWORDPOLICY ON Realm (PASSWORDPOLICY_KEY);
+CREATE INDEX I_RLM_NMS_REALM_KEY ON Realm_actionsClassNames (realm_key);
+CREATE INDEX I_REPORT_TEMPLATE ON Report (template_key);
+CREATE INDEX I_RPORTXC_REPORT ON ReportExec (REPORT_KEY);
+CREATE INDEX I_RPRTTNC_REPORT ON ReportletConfInstance (REPORT_KEY);
+CREATE INDEX I_SYNCGRP_GROUPOWNER ON SyncopeGroup (GROUPOWNER_KEY);
+CREATE INDEX I_SYNCGRP_REALM ON SyncopeGroup (REALM_KEY);
+CREATE INDEX I_SYNCGRP_USEROWNER ON SyncopeGroup (USEROWNER_KEY);
+CREATE INDEX I_SYNCLSS_ELEMENT ON SyncopeGroup_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_SYNCLSS_GROUP_KEY ON SyncopeGroup_AnyTypeClass (group_key);
+CREATE INDEX I_SYNCSRC_ELEMENT ON SyncopeGroup_ExternalResource (resource_key);
+CREATE INDEX I_SYNCSRC_GROUP_KEY ON SyncopeGroup_ExternalResource (group_key);
+CREATE INDEX I_SYNCNTS_ROLE_KEY ON SyncopeRole_entitlements (role_key);
+CREATE INDEX I_SYNCRLM_ELEMENT ON SyncopeRole_Realm (realm_key);
+CREATE INDEX I_SYNCRLM_ROLE_KEY ON SyncopeRole_Realm (role_key);
+CREATE INDEX I_SYNCPSR_REALM ON SyncopeUser (REALM_KEY);
+CREATE INDEX I_SYNCPSR_SECURITYQUESTION ON SyncopeUser (SECURITYQUESTION_KEY);
+CREATE INDEX I_SYNCLSS_ELEMENT1 ON SyncopeUser_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_SYNCLSS_USER_KEY ON SyncopeUser_AnyTypeClass (user_key);
+CREATE INDEX I_SYNCSRC_ELEMENT1 ON SyncopeUser_ExternalResource (resource_key);
+CREATE INDEX I_SYNCSRC_USER_KEY ON SyncopeUser_ExternalResource (user_key);
+CREATE INDEX I_SYNCTRY_USER_KEY ON SyncopeUser_passwordHistory (user_key);
+CREATE INDEX I_SYNCPRL_ELEMENT ON SyncopeUser_SyncopeRole (role_key);
+CREATE INDEX I_SYNCPRL_USER_KEY ON SyncopeUser_SyncopeRole (user_key);
+CREATE INDEX I_TASK_DESTINATIONREALM ON Task (DESTINATIONREALM_KEY);
 CREATE INDEX I_TASK_DTYPE ON Task (DTYPE);
-CREATE INDEX I_TASK_RESOURCE ON Task (RESOURCE_NAME);
-CREATE INDEX I_TSKEXEC_TASK ON TaskExec (TASK_ID);
-CREATE INDEX I_TYPXNSN_ANYTYPE ON TypeExtension (ANYTYPE_NAME);
-CREATE INDEX I_TYPXNSN_GROUP ON TypeExtension (GROUP_ID);
-CREATE INDEX I_TYPXLSS_ELEMENT ON TypeExtension_AnyTypeClass (anyTypeClass_name);
-CREATE INDEX I_TYPXLSS_TYPEEXTENSION_ID ON TypeExtension_AnyTypeClass (typeExtension_id);
-CREATE INDEX I_DYNGSHP_GROUP1 ON UDynGroupMembership (GROUP_ID);
-CREATE INDEX I_DYNG_SR_ELEMENT ON UDynGroupMembership_User (user_id);
-CREATE INDEX I_DYNG_SR_UDYNGROUPMEMBERSHIP_ID ON UDynGroupMembership_User (uDynGroupMembership_id);
-CREATE INDEX I_MMBRSHP_LEFTEND ON UMembership (user_id);
-CREATE INDEX I_MMBRSHP_RIGHTEND ON UMembership (group_id);
-CREATE INDEX I_UPLNTTR_OWNER ON UPlainAttr (OWNER_ID);
-CREATE INDEX I_UPLNTTR_SCHEMA ON UPlainAttr (schema_name);
-CREATE INDEX I_PLNTQVL_ATTRIBUTE ON UPlainAttrUniqueValue (ATTRIBUTE_ID);
-CREATE INDEX I_PLNTQVL_SCHEMA ON UPlainAttrUniqueValue (schema_name);
-CREATE INDEX I_PLNTRVL_ATTRIBUTE ON UPlainAttrValue (ATTRIBUTE_ID);
-CREATE INDEX I_RLTNSHP_LEFTEND ON URelationship (user_id);
-CREATE INDEX I_RLTNSHP_RIGHTEND ON URelationship (anyObject_id);
-CREATE INDEX I_RLTNSHP_TYPE ON URelationship (TYPE_NAME);
-CREATE INDEX I_VIRSCHM_ANYTYPECLASS ON VirSchema (ANYTYPECLASS_NAME);
-CREATE INDEX I_VIRSCHM_PROVISION ON VirSchema (PROVISION_ID);
+CREATE INDEX I_TASK_NOTIFICATION ON Task (NOTIFICATION_KEY);
+CREATE INDEX I_TASK_RESOURCE ON Task (RESOURCE_KEY);
+CREATE INDEX I_TSKEXEC_TASK ON TaskExec (TASK_KEY);
+CREATE INDEX I_TYPXNSN_ANYTYPE ON TypeExtension (ANYTYPE_KEY);
+CREATE INDEX I_TYPXNSN_GROUP ON TypeExtension (GROUP_KEY);
+CREATE INDEX I_TYPXLSS_ELEMENT ON TypeExtension_AnyTypeClass (anyTypeClass_key);
+CREATE INDEX I_TYPXLSS_TYPEEXTENSION_KEY ON TypeExtension_AnyTypeClass (typeExtension_key);
+CREATE INDEX I_DYNGSHP_GROUP1 ON UDynGroupMembership (GROUP_KEY);
+CREATE INDEX I_DYNG_SR_ELEMENT ON UDynGroupMembership_User (user_key);
+CREATE INDEX I_DYNG_SR_UDYNGROUPMEMBERSHIP_KEY ON UDynGroupMembership_User (uDynGroupMembership_key);
+CREATE INDEX I_MMBRSHP_LEFTEND ON UMembership (user_key);
+CREATE INDEX I_MMBRSHP_RIGHTEND ON UMembership (group_key);
+CREATE INDEX I_UPLNTTR_OWNER ON UPlainAttr (OWNER_KEY);
+CREATE INDEX I_UPLNTTR_SCHEMA ON UPlainAttr (schema_key);
+CREATE INDEX I_PLNTQVL_ATTRIBUTE ON UPlainAttrUniqueValue (ATTRIBUTE_KEY);
+CREATE INDEX I_PLNTQVL_SCHEMA ON UPlainAttrUniqueValue (schema_key);
+CREATE INDEX I_PLNTRVL_ATTRIBUTE ON UPlainAttrValue (ATTRIBUTE_KEY);
+CREATE INDEX I_RLTNSHP_LEFTEND ON URelationship (user_key);
+CREATE INDEX I_RLTNSHP_RIGHTEND ON URelationship (anyObject_key);
+CREATE INDEX I_RLTNSHP_TYPE ON URelationship (TYPE_KEY);
+CREATE INDEX I_VIRSCHM_ANYTYPECLASS ON VirSchema (ANYTYPECLASS_KEY);
+CREATE INDEX I_VIRSCHM_PROVISION ON VirSchema (PROVISION_KEY);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index c420368..4655faf 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -91,7 +91,7 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
 
     private String activitiModelerDirectory;
 
-    private Long reconciliationReportKey;
+    private String reconciliationReportKey;
 
     private SyncopeClientFactoryBean clientFactory;
 
@@ -198,7 +198,7 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
         Args.notNull(activitiModelerDirectory, "<activitiModelerDirectory> not set");
 
         try {
-            reconciliationReportKey = Long.valueOf(props.getProperty("reconciliationReportKey"));
+            reconciliationReportKey = props.getProperty("reconciliationReportKey");
         } catch (NumberFormatException e) {
             LOG.error("While parsing reconciliationReportKey", e);
         }
@@ -285,7 +285,7 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication {
         return activitiModelerDirectory;
     }
 
-    public Long getReconciliationReportKey() {
+    public String getReconciliationReportKey() {
         return reconciliationReportKey;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
index 396752a..67d1238 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java
@@ -104,8 +104,7 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession {
         domains = new ArrayList<>();
         domains.add(SyncopeConstants.MASTER_DOMAIN);
         CollectionUtils.collect(anonymousClient.getService(DomainService.class).list(),
-                EntityTOUtils.<String, DomainTO>keyTransformer(),
-                domains);
+                EntityTOUtils.<DomainTO>keyTransformer(), domains);
     }
 
     public void execute(final Runnable command) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
index caf5dce..5110119 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
@@ -143,15 +143,15 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
                                 throw new IllegalArgumentException("Invalid bulk action executor");
                             }
 
-                            final AbstractAnyRestClient<?> anyRestClient
-                                    = AbstractAnyRestClient.class.cast(bulkActionExecutor);
+                            final AbstractAnyRestClient<?> anyRestClient =
+                                    AbstractAnyRestClient.class.cast(bulkActionExecutor);
 
                             if (items.isEmpty() || !(items.iterator().next() instanceof StatusBean)) {
                                 throw new IllegalArgumentException("Invalid items");
                             }
 
                             // Group bean information by anyKey
-                            final Map<Long, List<StatusBean>> beans = new HashMap<>();
+                            final Map<String, List<StatusBean>> beans = new HashMap<>();
                             for (T bean : items) {
                                 final StatusBean sb = StatusBean.class.cast(bean);
                                 final List<StatusBean> sblist;
@@ -164,7 +164,7 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
                                 sblist.add(sb);
                             }
 
-                            for (Map.Entry<Long, List<StatusBean>> entry : beans.entrySet()) {
+                            for (Map.Entry<String, List<StatusBean>> entry : beans.entrySet()) {
                                 final String etag = anyRestClient.read(entry.getKey()).getETagValue();
                                 try {
                                     switch (ResourceDeassociationAction.valueOf(actionToBeAddresed.name())) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/commons/RoleDataProvider.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/RoleDataProvider.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/RoleDataProvider.java
index 2285b08..e2b1582 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/RoleDataProvider.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/RoleDataProvider.java
@@ -41,9 +41,9 @@ public class RoleDataProvider extends DirectoryDataProvider<RoleTO> {
 
     @Override
     public Iterator<RoleTO> iterator(final long first, final long count) {
-        final List<RoleTO> result = restClient.list();
+        List<RoleTO> result = restClient.list();
         Collections.sort(result, comparator);
-        return result.iterator();
+        return result.subList((int) first, (int) first + (int) count).iterator();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
index 668b333..52087f7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
@@ -34,7 +34,7 @@ public class SortableAnyProviderComparator<T extends AnyTO> extends SortableData
     private static final long serialVersionUID = 1775967163571699258L;
 
     private static final Set<String> INLINE_PROPS = new HashSet<>(Arrays.asList(
-            new String[] { "key", "status", "token", "username" }));
+            new String[] { "key", "status", "token", "username", "name" }));
 
     public SortableAnyProviderComparator(final SortableDataProvider<T, String> provider) {
         super(provider);
@@ -54,7 +54,7 @@ public class SortableAnyProviderComparator<T extends AnyTO> extends SortableData
 
         private static final long serialVersionUID = -7856686374020091808L;
 
-        private final Map<String, AttrTO> attrs;
+        private final Map<String, AttrTO> plainAttrs;
 
         private final Map<String, AttrTO> derAttrs;
 
@@ -63,7 +63,7 @@ public class SortableAnyProviderComparator<T extends AnyTO> extends SortableData
         AttrModel(final AnyTO anyTO) {
             super();
 
-            this.attrs = anyTO.getPlainAttrMap();
+            this.plainAttrs = anyTO.getPlainAttrMap();
             this.derAttrs = anyTO.getDerAttrMap();
             this.virAttrs = anyTO.getVirAttrMap();
         }
@@ -91,12 +91,12 @@ public class SortableAnyProviderComparator<T extends AnyTO> extends SortableData
 
             final AttrTO attr;
             if (schemaType == null) {
-                attr = this.attrs.get(schema);
+                attr = this.plainAttrs.get(schema);
             } else {
                 switch (schemaType) {
                     case PLAIN:
                     default:
-                        attr = this.attrs.get(schema);
+                        attr = this.plainAttrs.get(schema);
                         break;
 
                     case DERIVED:

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
index 3a317b8..3f1afd1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
@@ -31,7 +31,7 @@ public class StatusBean implements Serializable {
 
     private static final long serialVersionUID = -5207260204921071129L;
 
-    private final Long anyKey;
+    private final String anyKey;
 
     private final String anyName;
 
@@ -71,7 +71,7 @@ public class StatusBean implements Serializable {
         this.status = status;
     }
 
-    public Long getAnyKey() {
+    public String getAnyKey() {
         return anyKey;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
index 86be57d..566d2b8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
@@ -94,8 +94,7 @@ public class MailTemplateDirectoryPanel
 
     @Override
     protected List<IColumn<MailTemplateTO, String>> getColumns() {
-
-        final List<IColumn<MailTemplateTO, String>> columns = new ArrayList<IColumn<MailTemplateTO, String>>();
+        List<IColumn<MailTemplateTO, String>> columns = new ArrayList<>();
         columns.add(new PropertyColumn<MailTemplateTO, String>(
                 new StringResourceModel("key", this, null), "key", "key"));
 
@@ -115,8 +114,8 @@ public class MailTemplateDirectoryPanel
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final MailTemplateTO ignore) {
-                        MailTemplateContentModal.MailTemplateContentTO content
-                                = new MailTemplateContentModal.MailTemplateContentTO(
+                        MailTemplateContentModal.MailTemplateContentTO content =
+                                new MailTemplateContentModal.MailTemplateContentTO(
                                         model.getObject().getKey(), MailTemplateFormat.HTML);
                         content.setContent(
                                 restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.HTML));
@@ -134,8 +133,8 @@ public class MailTemplateDirectoryPanel
 
                     @Override
                     public void onClick(final AjaxRequestTarget target, final MailTemplateTO ignore) {
-                        MailTemplateContentModal.MailTemplateContentTO content
-                                = new MailTemplateContentModal.MailTemplateContentTO(
+                        MailTemplateContentModal.MailTemplateContentTO content =
+                                new MailTemplateContentModal.MailTemplateContentTO(
                                         model.getObject().getKey(), MailTemplateFormat.TEXT);
                         content.setContent(
                                 restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.TEXT));
@@ -196,7 +195,7 @@ public class MailTemplateDirectoryPanel
         public MailTemplateProvider(final int paginatorRows) {
             super(paginatorRows);
             setSort("key", SortOrder.ASCENDING);
-            comparator = new SortableDataProviderComparator<MailTemplateTO>(this);
+            comparator = new SortableDataProviderComparator<>(this);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
index a7aab9d..195c5ff 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
@@ -35,6 +35,7 @@ import org.apache.syncope.client.console.panels.DirectoryPanel;
 import org.apache.syncope.client.console.rest.NotificationRestClient;
 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.ActionColumn;
 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.CollectionPropertyColumn;
+import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.KeyPropertyColumn;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
@@ -83,8 +84,8 @@ public class NotificationDirectoryPanel
     @Override
     protected List<IColumn<NotificationTO, String>> getColumns() {
 
-        final List<IColumn<NotificationTO, String>> columns = new ArrayList<IColumn<NotificationTO, String>>();
-        columns.add(new PropertyColumn<NotificationTO, String>(
+        List<IColumn<NotificationTO, String>> columns = new ArrayList<>();
+        columns.add(new KeyPropertyColumn<NotificationTO>(
                 new StringResourceModel("key", this, null), "key", "key"));
         columns.add(new CollectionPropertyColumn<NotificationTO>(
                 new StringResourceModel("events", this, null), "events", "events"));
@@ -181,7 +182,7 @@ public class NotificationDirectoryPanel
         public NotificationProvider(final int paginatorRows) {
             super(paginatorRows);
             setSort("key", SortOrder.ASCENDING);
-            comparator = new SortableDataProviderComparator<NotificationTO>(this);
+            comparator = new SortableDataProviderComparator<>(this);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationHandler.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationHandler.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationHandler.java
index 28f4f26..b089631 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationHandler.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationHandler.java
@@ -45,7 +45,7 @@ public class NotificationHandler implements Serializable {
         this.notificationTO = notificationTO;
     }
 
-    public final Long getKey() {
+    public final String getKey() {
         return this.notificationTO.getKey();
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationTasks.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationTasks.java b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationTasks.java
index b0f21f5..4d24824 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationTasks.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationTasks.java
@@ -40,21 +40,22 @@ public class NotificationTasks extends Panel implements ModalPanel<Serializable>
 
     public NotificationTasks(
             final AnyTypeKind anyTypeKind,
-            final Long anyTypeKey,
+            final String anyTypeKey,
             final PageReference pageReference) {
+
         this(null, anyTypeKind, anyTypeKey, pageReference);
     }
 
     public NotificationTasks(
-            final Long notification,
+            final String notification,
             final PageReference pageReference) {
         this(notification, null, null, pageReference);
     }
 
     private NotificationTasks(
-            final Long notification,
+            final String notification,
             final AnyTypeKind anyTypeKind,
-            final Long anyTypeKey,
+            final String anyTypeKey,
             final PageReference pageReference) {
         super(BaseModal.CONTENT_ID);