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/08/25 10:20:41 UTC

[1/3] syncope git commit: [SYNCOPE-700] Password Reset

Repository: syncope
Updated Branches:
  refs/heads/master 09b250fa4 -> d18bdbd58


[SYNCOPE-700] Password Reset


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/2c4d363c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/2c4d363c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/2c4d363c

Branch: refs/heads/master
Commit: 2c4d363c264cc1ce0d6a4301c2a1e383e5a1add8
Parents: 09b250f
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Thu Aug 25 11:02:12 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Thu Aug 25 11:02:12 2016 +0200

----------------------------------------------------------------------
 .../concepts/typemanagement.adoc                |  5 ++--
 .../concepts/usersgroupsandanyobjects.adoc      | 29 +++++++++++++++++++-
 .../adminconsole/configuration.adoc             |  2 +-
 3 files changed, 32 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/2c4d363c/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
index b78374b..0c3a382 100644
--- a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
@@ -102,6 +102,7 @@ When defining a virtual schema, the following information must be provided:
 * Any Type - reference <<anytype,Any Type>> on the external resource
 * Read-only flag - whether the external attribute value(s) for this schema can only be read, or whether they can be written to as well
 
+[[virtual-attribute-cache]]
 .Virtual Attribute Cache
 ****
 For performance optimization, virtual attributes are managed by an internal cache to control the actual access to 
@@ -154,8 +155,8 @@ given user / group / any object instance) and for <<type-extensions,type extensi
 Any types represent the type of identities that Apache Syncope is able to manage; besides the predefined `USER` and 
 `GROUP`, more types can be created to model workstations, printers, folders, sensors, services, ...
 
-For all Any Types that are defined, a set of <<anytypeclass, classes>> can be selected so that instances af a given any type will
-be enabled to populate attributes for schemas in those classes.
+For all Any Types that are defined, a set of <<anytypeclass, classes>> can be selected so that instances af a given
+Any Type will be enabled to populate attributes for schemas in those classes.
 
 .Any types and attributes allowed for Users, Groups and Any Objects
 ====

http://git-wip-us.apache.org/repos/asf/syncope/blob/2c4d363c/src/main/asciidoc/reference-guide/concepts/usersgroupsandanyobjects.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/concepts/usersgroupsandanyobjects.adoc b/src/main/asciidoc/reference-guide/concepts/usersgroupsandanyobjects.adoc
index 456abde..09d1642 100644
--- a/src/main/asciidoc/reference-guide/concepts/usersgroupsandanyobjects.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/usersgroupsandanyobjects.adoc
@@ -41,7 +41,7 @@ For each of the identities above, Apache Syncope is capable of maintaining:
  ** `values` is a (possibly singleton) collection of data (e.g. `[Doe]` but also 
 `[\john.doe@syncope.apache.org, \jdoe@gmail.com]`)
  ; the type of values that can be assigned to each attribute is defined via the <<schema,schema>> matching the `key`
-value (i.e. _plain_, _derived_ and _virtual_);
+value (e.g. _plain_, _derived_ and _virtual_);
 . associations with <<external-resources,external resources>>, for <<provisioning,provisioning>>.
 
 [IMPORTANT]
@@ -76,3 +76,30 @@ _dynamic_ members of the group. +
 Dynamic memberships have some limitations: for example, <<type-extensions,type extensions>> do not apply;
 group-based provisioning is still effective.
 ====
+
+==== Password Reset
+
+When users lost their password, a feature is available to help gaining back access to Apache Syncope: password reset.
+
+The process can be outlined as follows:
+
+. user asks for password reset, typically via <<enduser-component,end-user>>
+. user is asked to provide an answer to the security question that was selected during self-registration or self-update
+. if the expected answer is provided, a unique token with time-constrained validity is internally generated and an
+e-mail is sent to the configured address for the user with a link - again, typically to the
+<<enduser-component,end-user>> - containing such token value
+. user clicks on the received link and provides new password value, typically via <<enduser-component,end-user>>
+. user receives confirmation via e-mail
+
+[TIP]
+====
+The process above requires the availability of <<console-configuration-security-questions,security questions>> that
+users can pick up and provide answers for.
+
+The usage of security questions can be however disabled by setting the `passwordReset.securityQuestion` value - see
+<<configuration-parameters, below>> for details.
+====
+
+[NOTE]
+In addition to the password reset feature, administrators can set a flag on a given user so that he / she is forced to
+update their password value at next login.

http://git-wip-us.apache.org/repos/asf/syncope/blob/2c4d363c/src/main/asciidoc/reference-guide/workingwithapachesyncope/adminconsole/configuration.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/adminconsole/configuration.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/adminconsole/configuration.adoc
index 6367e04..1c4c6df 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/adminconsole/configuration.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/adminconsole/configuration.adoc
@@ -61,4 +61,4 @@ Displays and provides editing functionality for <<roles,roles>>.
 Security Questions::
 
 The administrators can use this page to define a set of security questions which the users can choose from when
-managing their own profile, to allow them to recover their account in case of a forgotten password.
+managing their own profile, to allow them to recover their account in case of a <<password-reset,forgotten password>>.


[3/3] syncope git commit: [SYNCOPE-700] Reviwing CLI

Posted by il...@apache.org.
[SYNCOPE-700] Reviwing CLI


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d18bdbd5
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d18bdbd5
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d18bdbd5

Branch: refs/heads/master
Commit: d18bdbd582dfe17ffb5605da584aade7ddd11f7e
Parents: 2c4d363
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Thu Aug 25 12:20:30 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Thu Aug 25 12:20:30 2016 +0200

----------------------------------------------------------------------
 .../commands/anyobject/AnyObjectCommand.java    |  2 +-
 .../cli/commands/anyobject/AnyObjectDelete.java |  2 +-
 .../cli/commands/anyobject/AnyObjectRead.java   |  4 +-
 ...ctReadAttributeBySchemaTypeAndSchemaKey.java | 61 ++++++++++++++++++
 ...tReadAttributeBySchemaTypeAndSchemaName.java | 61 ------------------
 .../AnyObjectReadAttributesBySchemaType.java    |  2 +-
 .../anyobject/AnyObjectResultManager.java       |  6 +-
 .../cli/commands/connector/ConnectorDelete.java |  2 +-
 .../ConnectorListConfigurationProperties.java   |  2 +-
 .../cli/commands/connector/ConnectorRead.java   |  2 +-
 .../connector/ConnectorReadByResource.java      |  3 +-
 .../connector/ConnectorResultManager.java       |  2 +-
 .../commands/domain/DomainResultManager.java    |  2 +-
 .../entitlement/EntitlementCommand.java         |  6 +-
 .../entitlement/EntitlementReadByUserId.java    | 59 -----------------
 .../entitlement/EntitlementReadByUserKey.java   | 59 +++++++++++++++++
 .../entitlement/EntitlementResultManager.java   |  2 +-
 .../entitlement/EntitlementSearchByRole.java    |  2 +-
 .../client/cli/commands/group/GroupCommand.java |  2 +-
 .../client/cli/commands/group/GroupDelete.java  |  2 +-
 .../client/cli/commands/group/GroupRead.java    |  2 +-
 ...upReadAttributeBySchemaTypeAndSchemaKey.java | 61 ++++++++++++++++++
 ...pReadAttributeBySchemaTypeAndSchemaName.java | 61 ------------------
 .../group/GroupReadAttributesBySchemaType.java  |  2 +-
 .../cli/commands/group/GroupResultManager.java  |  2 +-
 .../notification/NotificationDelete.java        |  3 +-
 .../commands/notification/NotificationRead.java |  2 +-
 .../notification/NotificationResultManager.java |  2 +-
 .../cli/commands/policy/PolicyDelete.java       |  2 +-
 .../client/cli/commands/policy/PolicyRead.java  |  2 +-
 .../cli/commands/question/QuestionDelete.java   |  2 +-
 .../cli/commands/question/QuestionRead.java     |  2 +-
 .../question/QuestionResultManager.java         |  2 +-
 .../cli/commands/realm/RealmResultManager.java  |  8 +--
 .../cli/commands/report/ReportDelete.java       |  2 +-
 .../commands/report/ReportDeleteExecution.java  |  2 +-
 .../cli/commands/report/ReportExecute.java      |  2 +-
 .../commands/report/ReportExportExecution.java  |  2 +-
 .../client/cli/commands/report/ReportRead.java  |  2 +-
 .../commands/report/ReportResultManager.java    |  4 +-
 .../cli/commands/resource/ResourceDelete.java   |  2 +-
 .../cli/commands/resource/ResourceRead.java     |  2 +-
 .../resource/ResourceResultManager.java         | 12 ++--
 .../client/cli/commands/role/RoleDelete.java    |  2 +-
 .../client/cli/commands/role/RoleRead.java      |  2 +-
 .../cli/commands/role/RoleResultManager.java    |  2 +-
 .../commands/schema/SchemaResultManager.java    |  2 +-
 .../client/cli/commands/task/TaskDelete.java    |  2 +-
 .../client/cli/commands/task/TaskExecute.java   |  2 +-
 .../cli/commands/task/TaskExecutionDelete.java  |  2 +-
 .../client/cli/commands/task/TaskRead.java      |  2 +-
 .../client/cli/commands/user/UserCommand.java   |  6 +-
 .../client/cli/commands/user/UserDelete.java    |  2 +-
 .../cli/commands/user/UserReadByUserId.java     | 66 --------------------
 .../cli/commands/user/UserReadByUserKey.java    | 66 ++++++++++++++++++++
 .../cli/commands/user/UserResultManager.java    |  8 +--
 .../cli/commands/user/UserSearchByResource.java |  2 +-
 .../cli/commands/user/UserSearchByRole.java     |  2 +-
 .../cli/src/main/resources/messages.properties  | 24 +++----
 .../api/notification/NotificationManager.java   |  2 +-
 .../org/apache/syncope/fit/cli/CLIITCase.java   |  6 +-
 .../workingwithapachesyncope/cli/anyObject.adoc | 55 ++++++++++++++++
 .../workingwithapachesyncope/cli/cli.adoc       |  2 +
 .../cli/configuration.adoc                      |  3 +-
 .../workingwithapachesyncope/cli/connector.adoc |  9 ++-
 .../workingwithapachesyncope/cli/domain.adoc    |  5 +-
 .../cli/entitlement.adoc                        | 12 ++--
 .../workingwithapachesyncope/cli/group.adoc     | 11 ++--
 .../workingwithapachesyncope/cli/info.adoc      |  3 +-
 .../workingwithapachesyncope/cli/logger.adoc    |  5 +-
 .../cli/notification.adoc                       |  7 +--
 .../workingwithapachesyncope/cli/policy.adoc    |  9 ++-
 .../workingwithapachesyncope/cli/question.adoc  |  7 +--
 .../workingwithapachesyncope/cli/realm.adoc     |  3 +-
 .../workingwithapachesyncope/cli/report.adoc    | 15 +++--
 .../workingwithapachesyncope/cli/resource.adoc  |  7 +--
 .../workingwithapachesyncope/cli/role.adoc      |  7 +--
 .../workingwithapachesyncope/cli/schema.adoc    |  3 +-
 .../workingwithapachesyncope/cli/task.adoc      | 19 +++---
 .../workingwithapachesyncope/cli/user.adoc      | 25 ++++----
 80 files changed, 457 insertions(+), 416 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectCommand.java
index 6dc6ba7..520e3ec 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectCommand.java
@@ -45,7 +45,7 @@ public class AnyObjectCommand extends AbstractCommand {
                 new AnyObjectRead(input).read();
                 break;
             case READ_ATTRIBUTES_BY_SCHEMA:
-                new AnyObjectReadAttributeBySchemaTypeAndSchemaName(input).read();
+                new AnyObjectReadAttributeBySchemaTypeAndSchemaKey(input).read();
                 break;
             case READ_ATTRIBUTES_BY_SCHEMA_TYPE:
                 new AnyObjectReadAttributesBySchemaType(input).read();

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectDelete.java
index 16ff80b..f7b635c 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectDelete.java
@@ -27,7 +27,7 @@ public class AnyObjectDelete extends AbstractAnyObjectCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(AnyObjectDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "any --delete {ANY-ID} {ANY-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "any --delete {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectRead.java
index 03137f7..f084c38 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectRead.java
@@ -27,7 +27,7 @@ public class AnyObjectRead extends AbstractAnyObjectCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(AnyObjectRead.class);
 
-    private static final String READ_HELP_MESSAGE = "any --read {ANY-ID} {ANY-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "any --read {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]";
 
     private final Input input;
 
@@ -39,7 +39,7 @@ public class AnyObjectRead extends AbstractAnyObjectCommand {
         if (input.parameterNumber() >= 1) {
             for (final String parameter : input.getParameters()) {
                 try {
-                    anyResultManager.printGroup(anySyncopeOperations.read(parameter));
+                    anyResultManager.printAny(anySyncopeOperations.read(parameter));
                 } catch (final SyncopeClientException ex) {
                     LOG.error("Error reading group", ex);
                     if (ex.getMessage().startsWith("NotFound")) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaKey.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaKey.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaKey.java
new file mode 100644
index 0000000..e3deda3
--- /dev/null
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaKey.java
@@ -0,0 +1,61 @@
+/*
+ * 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.anyobject;
+
+import org.apache.syncope.client.cli.Input;
+import org.apache.syncope.client.cli.util.CommandUtils;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.types.SchemaType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AnyObjectReadAttributeBySchemaTypeAndSchemaKey extends AbstractAnyObjectCommand {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AnyObjectReadAttributeBySchemaTypeAndSchemaKey.class);
+
+    private static final String READ_HELP_MESSAGE
+            = "any --read-attr-by-schema {ANY_OBJECT-KEY} {SCHEMA-TYPE} {SCHEMA-KEY}\n"
+            + "   Schema type: PLAIN / DERIVED / VIRTUAL";
+
+    private final Input input;
+
+    public AnyObjectReadAttributeBySchemaTypeAndSchemaKey(final Input input) {
+        this.input = input;
+    }
+
+    public void read() {
+        if (input.parameterNumber() == 3) {
+            try {
+                anyResultManager.printAttribute(anySyncopeOperations.readAttribute(
+                        input.firstParameter(), input.secondParameter(), input.thirdParameter()));
+            } catch (final SyncopeClientException ex) {
+                LOG.error("Error reading any object", ex);
+                anyResultManager.genericError(ex.getMessage());
+            } catch (final NumberFormatException ex) {
+                anyResultManager.numberFormatException("any object", input.firstParameter());
+            } catch (final IllegalArgumentException ex) {
+                LOG.error("Error reading schema", ex);
+                anyResultManager.typeNotValidError(
+                        "schema", input.secondParameter(), CommandUtils.fromEnumToArray(SchemaType.class));
+            }
+        } else {
+            anyResultManager.commandOptionError(READ_HELP_MESSAGE);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaName.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaName.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaName.java
deleted file mode 100644
index 8db0e21..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributeBySchemaTypeAndSchemaName.java
+++ /dev/null
@@ -1,61 +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.anyobject;
-
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.client.cli.util.CommandUtils;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.types.SchemaType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AnyObjectReadAttributeBySchemaTypeAndSchemaName extends AbstractAnyObjectCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(AnyObjectReadAttributeBySchemaTypeAndSchemaName.class);
-
-    private static final String READ_HELP_MESSAGE
-            = "any --read-attr-by-schema {ANY-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n"
-            + "   Schema type: PLAIN / DERIVED / VIRTUAL";
-
-    private final Input input;
-
-    public AnyObjectReadAttributeBySchemaTypeAndSchemaName(final Input input) {
-        this.input = input;
-    }
-
-    public void read() {
-        if (input.parameterNumber() == 3) {
-            try {
-                anyResultManager.printAttribute(anySyncopeOperations.readAttribute(
-                        input.firstParameter(), input.secondParameter(), input.thirdParameter()));
-            } catch (final SyncopeClientException ex) {
-                LOG.error("Error reading any object", ex);
-                anyResultManager.genericError(ex.getMessage());
-            } catch (final NumberFormatException ex) {
-                anyResultManager.numberFormatException("any object", input.firstParameter());
-            } catch (final IllegalArgumentException ex) {
-                LOG.error("Error reading schema", ex);
-                anyResultManager.typeNotValidError(
-                        "schema", input.secondParameter(), CommandUtils.fromEnumToArray(SchemaType.class));
-            }
-        } else {
-            anyResultManager.commandOptionError(READ_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributesBySchemaType.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributesBySchemaType.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributesBySchemaType.java
index ff42b0a..c2ece79 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributesBySchemaType.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectReadAttributesBySchemaType.java
@@ -29,7 +29,7 @@ public class AnyObjectReadAttributesBySchemaType extends AbstractAnyObjectComman
 
     private static final Logger LOG = LoggerFactory.getLogger(AnyObjectReadAttributesBySchemaType.class);
 
-    private static final String READ_HELP_MESSAGE = "any --read-attr-by-schema-type {ANY-ID} {SCHEMA-TYPE}\n"
+    private static final String READ_HELP_MESSAGE = "any --read-attr-by-schema-type {ANY_OBJECT-KEY} {SCHEMA-TYPE}\n"
             + "   Schema type: PLAIN / DERIVED / VIRTUAL";
 
     private final Input input;

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectResultManager.java
index 4f89b23..a107239 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/anyobject/AnyObjectResultManager.java
@@ -30,12 +30,12 @@ public class AnyObjectResultManager extends CommonsResultManager {
     public void printAnys(final List<AnyObjectTO> anyObjectTOs) {
         System.out.println("");
         for (final AnyObjectTO anyObjectTO : anyObjectTOs) {
-            printGroup(anyObjectTO);
+            printAny(anyObjectTO);
         }
     }
 
-    public void printGroup(final AnyObjectTO anyObjectTO) {
-        System.out.println(" > ANY ID: " + anyObjectTO.getKey());
+    public void printAny(final AnyObjectTO anyObjectTO) {
+        System.out.println(" > ANY OBJECT KEY: " + anyObjectTO.getKey());
         System.out.println("    type: " + anyObjectTO.getType());
         System.out.println("    realm: " + anyObjectTO.getRealm());
         System.out.println("    status: " + anyObjectTO.getStatus());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDelete.java
index 2abc5ba..4039c40 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDelete.java
@@ -31,7 +31,7 @@ public class ConnectorDelete extends AbstractConnectorCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConnectorDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "connector --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "connector --delete {CONNECTOR-KEY} {CONNECTOR-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorListConfigurationProperties.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorListConfigurationProperties.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorListConfigurationProperties.java
index da54e4a..d830f80 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorListConfigurationProperties.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorListConfigurationProperties.java
@@ -29,7 +29,7 @@ public class ConnectorListConfigurationProperties extends AbstractConnectorComma
     private static final Logger LOG = LoggerFactory.getLogger(ConnectorListConfigurationProperties.class);
 
     private static final String LIST_CONFIGURATION_HELP_MESSAGE
-            = "connector --list-configuration-properties {CONNECTOR-ID} {CONNECTOR-ID} [...]";
+            = "connector --list-configuration-properties {CONNECTOR-KEY} {CONNECTOR-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorRead.java
index c332505..732b2ae 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorRead.java
@@ -28,7 +28,7 @@ public class ConnectorRead extends AbstractConnectorCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConnectorRead.class);
 
-    private static final String READ_HELP_MESSAGE = "connector --read {CONNECTOR-ID} {CONNECTOR-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "connector --read {CONNECTOR-KEY} {CONNECTOR-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorReadByResource.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorReadByResource.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorReadByResource.java
index 1dba6f1..c6c3345 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorReadByResource.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorReadByResource.java
@@ -28,8 +28,7 @@ public class ConnectorReadByResource extends AbstractConnectorCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConnectorReadByResource.class);
 
-    private static final String READ_HELP_MESSAGE
-            = "connector --read-by-resource {RESOURCE-NAME} {RESOURCE-NAME} [...]";
+    private static final String READ_HELP_MESSAGE = "connector --read-by-resource {RESOURCE-KEY} {RESOURCE-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java
index cf63632..157500f 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java
@@ -39,7 +39,7 @@ public class ConnectorResultManager extends CommonsResultManager {
     }
 
     public void printConnector(final ConnInstanceTO connInstanceTO) {
-        System.out.println(" > CONNECTOR ID: " + connInstanceTO.getKey());
+        System.out.println(" > CONNECTOR KEY: " + connInstanceTO.getKey());
         System.out.println("    bundle name: " + connInstanceTO.getBundleName());
         System.out.println("    connector name: " + connInstanceTO.getConnectorName());
         System.out.println("    display name: " + connInstanceTO.getDisplayName());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java
index 5f15dfe..6490f3f 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java
@@ -33,7 +33,7 @@ public class DomainResultManager extends CommonsResultManager {
     }
 
     public void printDomain(final DomainTO domainTO) {
-        System.out.println(" > DOIMAIN NAME: " + domainTO.getKey());
+        System.out.println(" > DOIMAIN KEY: " + domainTO.getKey());
         System.out.println("    cipher algorithm: " + domainTO.getAdminCipherAlgorithm());
         System.out.println("");
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
index 42949a7..2c4420e 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementCommand.java
@@ -43,8 +43,8 @@ public class EntitlementCommand extends AbstractCommand {
             case READ_BY_USERNAME:
                 new EntitlementReadByUsername(input).read();
                 break;
-            case READ_BY_USERID:
-                new EntitlementReadByUserId(input).read();
+            case READ_BY_USERKEY:
+                new EntitlementReadByUserKey(input).read();
                 break;
             case SEARCH_BY_ROLE:
                 new EntitlementSearchByRole(input).search();
@@ -70,7 +70,7 @@ public class EntitlementCommand extends AbstractCommand {
         HELP("--help"),
         LIST("--list"),
         READ_BY_USERNAME("--read-by-username"),
-        READ_BY_USERID("--read-by-userid"),
+        READ_BY_USERKEY("--read-by-userkey"),
         SEARCH_BY_ROLE("--search-by-role"),
         LIST_ROLE("--list-role");
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserId.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserId.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserId.java
deleted file mode 100644
index 51bc602..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserId.java
+++ /dev/null
@@ -1,59 +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.entitlement;
-
-import javax.xml.ws.WebServiceException;
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EntitlementReadByUserId extends AbstractEntitlementCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(EntitlementReadByUserId.class);
-
-    private static final String READ_HELP_MESSAGE = "entitlement --read-by-userid {USER-ID}";
-
-    private final Input input;
-
-    public EntitlementReadByUserId(final Input input) {
-        this.input = input;
-    }
-
-    public void read() {
-        if (input.getParameters().length == 1) {
-            try {
-                entitlementResultManager.toView(
-                        entitlementSyncopeOperations.userIdEntitlements(input.firstParameter()));
-            } catch (final SyncopeClientException | WebServiceException ex) {
-                LOG.error("Error reading entitlement", ex);
-                if (ex.getMessage().startsWith("NotFound")) {
-                    entitlementResultManager.notFoundError("User", input.firstParameter());
-                } else {
-                    entitlementResultManager.genericError(ex.getMessage());
-                }
-            } catch (final NumberFormatException ex) {
-                LOG.error("Error reading entitlement", ex);
-                entitlementResultManager.numberFormatException("user", input.firstParameter());
-            }
-        } else {
-            entitlementResultManager.commandOptionError(READ_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserKey.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserKey.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserKey.java
new file mode 100644
index 0000000..1cbc794
--- /dev/null
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementReadByUserKey.java
@@ -0,0 +1,59 @@
+/*
+ * 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.entitlement;
+
+import javax.xml.ws.WebServiceException;
+import org.apache.syncope.client.cli.Input;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EntitlementReadByUserKey extends AbstractEntitlementCommand {
+
+    private static final Logger LOG = LoggerFactory.getLogger(EntitlementReadByUserKey.class);
+
+    private static final String READ_HELP_MESSAGE = "entitlement --read-by-userkey {USER-KEY}";
+
+    private final Input input;
+
+    public EntitlementReadByUserKey(final Input input) {
+        this.input = input;
+    }
+
+    public void read() {
+        if (input.getParameters().length == 1) {
+            try {
+                entitlementResultManager.toView(
+                        entitlementSyncopeOperations.userIdEntitlements(input.firstParameter()));
+            } catch (final SyncopeClientException | WebServiceException ex) {
+                LOG.error("Error reading entitlement", ex);
+                if (ex.getMessage().startsWith("NotFound")) {
+                    entitlementResultManager.notFoundError("User", input.firstParameter());
+                } else {
+                    entitlementResultManager.genericError(ex.getMessage());
+                }
+            } catch (final NumberFormatException ex) {
+                LOG.error("Error reading entitlement", ex);
+                entitlementResultManager.numberFormatException("user", input.firstParameter());
+            }
+        } else {
+            entitlementResultManager.commandOptionError(READ_HELP_MESSAGE);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementResultManager.java
index 02d3e67..bf871f6 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementResultManager.java
@@ -40,7 +40,7 @@ public class EntitlementResultManager extends CommonsResultManager {
     }
 
     private void printRole(final RoleTO roleTO) {
-        System.out.println(" > ROLE ID: " + roleTO.getKey());
+        System.out.println(" > ROLE KEY: " + roleTO.getKey());
         System.out.println("    REALMS: ");
         printRealms(roleTO.getRealms());
         System.out.println("");

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementSearchByRole.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementSearchByRole.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementSearchByRole.java
index fec995c..30ec04b 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementSearchByRole.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/entitlement/EntitlementSearchByRole.java
@@ -28,7 +28,7 @@ public class EntitlementSearchByRole extends AbstractEntitlementCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(EntitlementSearchByRole.class);
 
-    private static final String READ_HELP_MESSAGE = "entitlement --search-by-role {ROLE-ID}";
+    private static final String READ_HELP_MESSAGE = "entitlement --search-by-role {ROLE-KEY}";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
index fee8252..1197a55 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupCommand.java
@@ -49,7 +49,7 @@ public class GroupCommand extends AbstractCommand {
                 new GroupReadAttributesBySchemaType(input).read();
                 break;
             case READ_ATTRIBUTES_BY_SCHEMA:
-                new GroupReadAttributeBySchemaTypeAndSchemaName(input).read();
+                new GroupReadAttributeBySchemaTypeAndSchemaKey(input).read();
                 break;
             case DELETE:
                 new GroupDelete(input).delete();

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDelete.java
index 279f9b2..9e5d96c 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupDelete.java
@@ -27,7 +27,7 @@ public class GroupDelete extends AbstractGroupCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(GroupDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "group --delete {GROUP-ID} {GROUP-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "group --delete {GROUP-KEY} {GROUP-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupRead.java
index 6adb8b7..c8c82cc 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupRead.java
@@ -27,7 +27,7 @@ public class GroupRead extends AbstractGroupCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(GroupRead.class);
 
-    private static final String READ_HELP_MESSAGE = "group --read {GROUP-ID} {GROUP-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "group --read {GROUP-KEY} {GROUP-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaKey.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaKey.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaKey.java
new file mode 100644
index 0000000..18f8939
--- /dev/null
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaKey.java
@@ -0,0 +1,61 @@
+/*
+ * 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.group;
+
+import org.apache.syncope.client.cli.Input;
+import org.apache.syncope.client.cli.util.CommandUtils;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.types.SchemaType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GroupReadAttributeBySchemaTypeAndSchemaKey extends AbstractGroupCommand {
+
+    private static final Logger LOG = LoggerFactory.getLogger(GroupReadAttributeBySchemaTypeAndSchemaKey.class);
+
+    private static final String READ_HELP_MESSAGE
+            = "group --read-attr-by-schema {GROUP-KEY} {SCHEMA-TYPE} {SCHEMA-KEY}\n"
+            + "   Schema type: PLAIN / DERIVED / VIRTUAL";
+
+    private final Input input;
+
+    public GroupReadAttributeBySchemaTypeAndSchemaKey(final Input input) {
+        this.input = input;
+    }
+
+    public void read() {
+        if (input.parameterNumber() == 3) {
+            try {
+                groupResultManager.printAttribute(groupSyncopeOperations.readAttribute(
+                        input.firstParameter(), input.secondParameter(), input.thirdParameter()));
+            } catch (final SyncopeClientException ex) {
+                LOG.error("Error reading group", ex);
+                groupResultManager.genericError(ex.getMessage());
+            } catch (final NumberFormatException ex) {
+                groupResultManager.numberFormatException("group", input.firstParameter());
+            } catch (final IllegalArgumentException ex) {
+                LOG.error("Error reading schema", ex);
+                groupResultManager.typeNotValidError(
+                        "schema", input.secondParameter(), CommandUtils.fromEnumToArray(SchemaType.class));
+            }
+        } else {
+            groupResultManager.commandOptionError(READ_HELP_MESSAGE);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaName.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaName.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaName.java
deleted file mode 100644
index 42432f3..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributeBySchemaTypeAndSchemaName.java
+++ /dev/null
@@ -1,61 +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.group;
-
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.client.cli.util.CommandUtils;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.types.SchemaType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class GroupReadAttributeBySchemaTypeAndSchemaName extends AbstractGroupCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(GroupReadAttributeBySchemaTypeAndSchemaName.class);
-
-    private static final String READ_HELP_MESSAGE
-            = "group --read-attr-by-schema {GROUP-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n"
-            + "   Schema type: PLAIN / DERIVED / VIRTUAL";
-
-    private final Input input;
-
-    public GroupReadAttributeBySchemaTypeAndSchemaName(final Input input) {
-        this.input = input;
-    }
-
-    public void read() {
-        if (input.parameterNumber() == 3) {
-            try {
-                groupResultManager.printAttribute(groupSyncopeOperations.readAttribute(
-                        input.firstParameter(), input.secondParameter(), input.thirdParameter()));
-            } catch (final SyncopeClientException ex) {
-                LOG.error("Error reading group", ex);
-                groupResultManager.genericError(ex.getMessage());
-            } catch (final NumberFormatException ex) {
-                groupResultManager.numberFormatException("group", input.firstParameter());
-            } catch (final IllegalArgumentException ex) {
-                LOG.error("Error reading schema", ex);
-                groupResultManager.typeNotValidError(
-                        "schema", input.secondParameter(), CommandUtils.fromEnumToArray(SchemaType.class));
-            }
-        } else {
-            groupResultManager.commandOptionError(READ_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributesBySchemaType.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributesBySchemaType.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributesBySchemaType.java
index a707a8c..df6dcc2 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributesBySchemaType.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupReadAttributesBySchemaType.java
@@ -29,7 +29,7 @@ public class GroupReadAttributesBySchemaType extends AbstractGroupCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(GroupReadAttributesBySchemaType.class);
 
-    private static final String READ_HELP_MESSAGE = "group --read-attr-by-schema-type {GROUP-ID} {SCHEMA-TYPE}\n"
+    private static final String READ_HELP_MESSAGE = "group --read-attr-by-schema-type {GROUP-KEY} {SCHEMA-TYPE}\n"
             + "   Schema type: PLAIN / DERIVED / VIRTUAL";
 
     private final Input input;

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupResultManager.java
index ecda625..db4796d 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/group/GroupResultManager.java
@@ -35,7 +35,7 @@ public class GroupResultManager extends CommonsResultManager {
     }
 
     public void printGroup(final GroupTO groupTO) {
-        System.out.println(" > GROUP ID: " + groupTO.getKey());
+        System.out.println(" > GROUP KEY: " + groupTO.getKey());
         System.out.println("    name: " + groupTO.getName());
         System.out.println("    type: " + groupTO.getType());
         System.out.println("    realm: " + groupTO.getRealm());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationDelete.java
index 0909ff9..d684ec7 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationDelete.java
@@ -28,7 +28,8 @@ public class NotificationDelete extends AbstractNotificationCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(NotificationDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "notification --delete {NOTIFICATION-ID} {NOTIFICATION-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE =
+            "notification --delete {NOTIFICATION-KEY} {NOTIFICATION-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java
index 7c45e86..c51c8ec 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java
@@ -28,7 +28,7 @@ public class NotificationRead extends AbstractNotificationCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(NotificationRead.class);
 
-    private static final String READ_HELP_MESSAGE = "notification --read {NOTIFICATION-ID} {NOTIFICATION-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "notification --read {NOTIFICATION-KEY} {NOTIFICATION-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java
index a364316..49002c1 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java
@@ -32,7 +32,7 @@ public class NotificationResultManager extends CommonsResultManager {
     }
 
     public void printNotification(final NotificationTO notificationTO) {
-        System.out.println(" > NOTIFICATION ID: " + notificationTO.getKey());
+        System.out.println(" > NOTIFICATION KEY: " + notificationTO.getKey());
         System.out.println("    events: " + notificationTO.getEvents());
         System.out.println("    sender: " + notificationTO.getSender());
         System.out.println("    subject: " + notificationTO.getSubject());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDelete.java
index b73b770..c9f5ff9 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDelete.java
@@ -28,7 +28,7 @@ public class PolicyDelete extends AbstractPolicyCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(PolicyDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "policy --delete {POLICY-ID} {POLICY-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "policy --delete {POLICY-KEY} {POLICY-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyRead.java
index 2187492..f399457 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyRead.java
@@ -30,7 +30,7 @@ public class PolicyRead extends AbstractPolicyCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(PolicyRead.class);
 
-    private static final String READ_HELP_MESSAGE = "policy --read {POLICY-ID} {POLICY-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "policy --read {POLICY-KEY} {POLICY-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionDelete.java
index 460f4a6..a83ca1c 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionDelete.java
@@ -28,7 +28,7 @@ public class QuestionDelete extends AbstractQuestionCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(QuestionDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "question --delete {QUESTION-ID} {QUESTION-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "question --delete {QUESTION-KEY} {QUESTION-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionRead.java
index cfc99a5..6393774 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionRead.java
@@ -31,7 +31,7 @@ public class QuestionRead extends AbstractQuestionCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(QuestionRead.class);
 
-    private static final String READ_HELP_MESSAGE = "question --read {QUESTION-ID} {QUESTION-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "question --read {QUESTION-KEY} {QUESTION-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionResultManager.java
index 5b691ff..d13a63e 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/question/QuestionResultManager.java
@@ -32,7 +32,7 @@ public class QuestionResultManager extends CommonsResultManager {
     }
 
     public void printQuestion(final SecurityQuestionTO securityQuestionTO) {
-        System.out.println(" > SECURITY QUESTION ID: " + securityQuestionTO.getKey());
+        System.out.println(" > SECURITY QUESTION KEY: " + securityQuestionTO.getKey());
         System.out.println("    content: " + securityQuestionTO.getContent());
         System.out.println("");
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java
index 0bd564d..e9814f8 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java
@@ -33,14 +33,14 @@ public class RealmResultManager extends CommonsResultManager {
     }
 
     private void printRealm(final RealmTO realmTO) {
-        System.out.println(" > REALM ID: " + realmTO.getKey());
+        System.out.println(" > REALM KEY: " + realmTO.getKey());
         System.out.println("    name: " + realmTO.getName());
         System.out.println("    full path: " + realmTO.getFullPath());
         System.out.println("    actions: " + realmTO.getActionsClassNames());
         System.out.println("    templates: " + realmTO.getTemplates());
-        System.out.println("    parent id: " + realmTO.getParent());
-        System.out.println("    account policy id: " + realmTO.getAccountPolicy());
-        System.out.println("    password policy id: " + realmTO.getPasswordPolicy());
+        System.out.println("    parent key: " + realmTO.getParent());
+        System.out.println("    account policy key: " + realmTO.getAccountPolicy());
+        System.out.println("    password policy key: " + realmTO.getPasswordPolicy());
         System.out.println("");
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDelete.java
index c20ccc2..3da0810 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDelete.java
@@ -28,7 +28,7 @@ public class ReportDelete extends AbstractReportCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ReportDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "report --delete {REPORT-ID} {REPORT-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "report --delete {REPORT-KEY} {REPORT-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDeleteExecution.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDeleteExecution.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDeleteExecution.java
index 653a475..4d0b261 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDeleteExecution.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDeleteExecution.java
@@ -29,7 +29,7 @@ public class ReportDeleteExecution extends AbstractReportCommand {
     private static final Logger LOG = LoggerFactory.getLogger(ReportDeleteExecution.class);
 
     private static final String DELETE_EXECUTION_HELP_MESSAGE
-            = "report --delete-execution {EXECUTION-ID} {EXECUTION-ID} [...]";
+            = "report --delete-execution {EXECUTION-KEY} {EXECUTION-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExecute.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExecute.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExecute.java
index 72bd9c8..c69a114 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExecute.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExecute.java
@@ -28,7 +28,7 @@ public class ReportExecute extends AbstractReportCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ReportExecute.class);
 
-    private static final String EXECUTE_HELP_MESSAGE = "report --execute {REPORT-ID}";
+    private static final String EXECUTE_HELP_MESSAGE = "report --execute {REPORT-KEY}";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
index 87583c2..f520254 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportExportExecution.java
@@ -36,7 +36,7 @@ public class ReportExportExecution extends AbstractReportCommand {
     private static final Logger LOG = LoggerFactory.getLogger(ReportExportExecution.class);
 
     private static final String EXPORT_EXECUTION_HELP_MESSAGE
-            = "report --export-execution-result {EXECUTION-ID} {EXECUTION-ID} [...] {FORMAT}\n"
+            = "report --export-execution-result {EXECUTION-KEY} {EXECUTION-KEY} [...] {FORMAT}\n"
             + "          Format: CSV / HTML / PDF / XML / RTF";
 
     private final Input input;

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java
index 9ccebc8..5ca6ac6 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java
@@ -31,7 +31,7 @@ public class ReportRead extends AbstractReportCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ReportRead.class);
 
-    private static final String READ_HELP_MESSAGE = "report --read {REPORT-ID} {REPORT-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "report --read {REPORT-KEY} {REPORT-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java
index 7fd2a93..d33b84e 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java
@@ -37,7 +37,7 @@ public class ReportResultManager extends CommonsResultManager {
     }
 
     private void printReport(final ReportTO reportTO) {
-        System.out.println(" > REPORT ID: " + reportTO.getKey());
+        System.out.println(" > REPORT KEY: " + reportTO.getKey());
         System.out.println("    name: " + reportTO.getName());
         System.out.println("    cron expression: " + reportTO.getCronExpression());
         System.out.println("    latest execution status: " + reportTO.getLatestExecStatus());
@@ -66,7 +66,7 @@ public class ReportResultManager extends CommonsResultManager {
 
     public void printReportExecutions(final List<ExecTO> reportExecTOs) {
         for (final ExecTO reportExecTO : reportExecTOs) {
-            System.out.println("       REPORT EXEC ID: " + reportExecTO.getKey());
+            System.out.println("       REPORT EXEC KEY: " + reportExecTO.getKey());
             System.out.println("       status: " + reportExecTO.getStatus());
             System.out.println("       message: " + reportExecTO.getMessage());
             System.out.println("       start date: " + reportExecTO.getStart());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDelete.java
index a36ec6c..8651ec1 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDelete.java
@@ -28,7 +28,7 @@ public class ResourceDelete extends AbstractResourceCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ResourceDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "resource --delete {RESOURCE-NAME} {RESOURCE-NAME} [...]";
+    private static final String DELETE_HELP_MESSAGE = "resource --delete {RESOURCE-KEY} {RESOURCE-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceRead.java
index fb0f133..471e864 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceRead.java
@@ -31,7 +31,7 @@ public class ResourceRead extends AbstractResourceCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(ResourceRead.class);
 
-    private static final String READ_HELP_MESSAGE = "resource --read {RESOURCE-NAME} {RESOURCE-NAME} [...]";
+    private static final String READ_HELP_MESSAGE = "resource --read {RESOURCE-KEY} {RESOURCE-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/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 99704f6..aefb7c1 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
@@ -36,12 +36,12 @@ public class ResourceResultManager extends CommonsResultManager {
     }
 
     private void printResource(final ResourceTO resourceTO) {
-        System.out.println(" > RESOURCE ID: " + resourceTO.getKey());
+        System.out.println(" > RESOURCE KEY: " + resourceTO.getKey());
         System.out.println("    connector dispaly name: " + resourceTO.getConnectorDisplayName());
-        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("    connector key: " + resourceTO.getConnector());
+        System.out.println("    account policy key: " + resourceTO.getAccountPolicy());
+        System.out.println("    password policy key: " + resourceTO.getPasswordPolicy());
+        System.out.println("    pull policy key: " + resourceTO.getPullPolicy());
         System.out.println("    propagation actions class: " + resourceTO.getPropagationActionsClassNames());
         System.out.println("    propagation priority: " + resourceTO.getPropagationPriority());
         System.out.println("    PROVISIONS:");
@@ -58,7 +58,7 @@ public class ResourceResultManager extends CommonsResultManager {
 
     private void printProvision(final List<ProvisionTO> provisionTOs) {
         for (final ProvisionTO provisionTO : provisionTOs) {
-            System.out.println("       provision id: " + provisionTO.getKey());
+            System.out.println("       provision key: " + provisionTO.getKey());
             System.out.println("       any type: " + provisionTO.getAnyType());
             System.out.println("       object class: " + provisionTO.getObjectClass());
             System.out.println("       sync token: " + provisionTO.getSyncToken());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDelete.java
index 0d5426d..36eb7ce 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDelete.java
@@ -28,7 +28,7 @@ public class RoleDelete extends AbstractRoleCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(RoleDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "role --delete {ROLE-NAME} {ROLE-NAME} [...]";
+    private static final String DELETE_HELP_MESSAGE = "role --delete {ROLE-KEY} {ROLE-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleRead.java
index f5f4aa7..f5f9e91 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleRead.java
@@ -31,7 +31,7 @@ public class RoleRead extends AbstractRoleCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(RoleRead.class);
 
-    private static final String READ_HELP_MESSAGE = "role --read {ROLE-NAME} {ROLE-NAME} [...]";
+    private static final String READ_HELP_MESSAGE = "role --read {ROLE-KEY} {ROLE-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java
index 4ca13da..9d39f19 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java
@@ -34,7 +34,7 @@ public class RoleResultManager extends CommonsResultManager {
     }
 
     private void printRole(final RoleTO roleTO) {
-        System.out.println(" > ROLE ID: " + roleTO.getKey());
+        System.out.println(" > ROLE KEY: " + roleTO.getKey());
         System.out.println("    REALMS: ");
         printRealms(roleTO.getRealms());
         System.out.println("    ENTITLEMENTS:");

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
index b90c381..0692ccd 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java
@@ -55,7 +55,7 @@ public class SchemaResultManager extends CommonsResultManager {
     }
 
     private void printPlanSchemaDetailed(final PlainSchemaTO schemaTO) {
-        System.out.println(" > SCHEMA ID: " + schemaTO.getKey());
+        System.out.println(" > SCHEMA KEY: " + schemaTO.getKey());
         System.out.println("    type: " + schemaTO.getType().toString());
         System.out.println("    any type class: " + schemaTO.getAnyTypeClass());
         System.out.println("    conversion pattern: " + schemaTO.getConversionPattern());

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDelete.java
index d5fbfef..8516507 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDelete.java
@@ -28,7 +28,7 @@ public class TaskDelete extends AbstractTaskCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(TaskDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "task --delete {TASK-ID} {TASK-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "task --delete {TASK-KEY} {TASK-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecute.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecute.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecute.java
index b139832..493525d 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecute.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecute.java
@@ -29,7 +29,7 @@ public class TaskExecute extends AbstractTaskCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(TaskExecute.class);
 
-    private static final String EXECUTE_HELP_MESSAGE = "task --execute {TASK-ID} {DRY-RUN}\n"
+    private static final String EXECUTE_HELP_MESSAGE = "task --execute {TASK-KEY} {DRY-RUN}\n"
             + "          Dry run: true / false";
 
     private final Input input;

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecutionDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecutionDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecutionDelete.java
index a39ba6a..3d8264b 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecutionDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskExecutionDelete.java
@@ -29,7 +29,7 @@ public class TaskExecutionDelete extends AbstractTaskCommand {
     private static final Logger LOG = LoggerFactory.getLogger(TaskExecutionDelete.class);
 
     private static final String DELETE_HELP_MESSAGE = "task --delete-execution "
-            + "{TASK-EXEC-ID} {TASK-EXEC-ID} [...]";
+            + "{TASK-EXEC-KEY} {TASK-EXEC-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskRead.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskRead.java
index f50f1f7..b1fd01a 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskRead.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskRead.java
@@ -30,7 +30,7 @@ public class TaskRead extends AbstractTaskCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(TaskRead.class);
 
-    private static final String READ_HELP_MESSAGE = "task --read {TASK-ID} {TASK-ID} [...]";
+    private static final String READ_HELP_MESSAGE = "task --read {TASK-KEY} {TASK-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/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 22737c6..35688c7 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
@@ -43,8 +43,8 @@ public class UserCommand extends AbstractCommand {
             case LIST:
                 new UserList(input).list();
                 break;
-            case READ_BY_ID:
-                new UserReadByUserId(input).read();
+            case READ_BY_KEY:
+                new UserReadByUserKey(input).read();
                 break;
             case READ_BY_USERNAME:
                 new UserReadByUsername(input).read();
@@ -85,7 +85,7 @@ public class UserCommand extends AbstractCommand {
         HELP("--help"),
         DETAILS("--details"),
         LIST("--list"),
-        READ_BY_ID("--read-by-userid"),
+        READ_BY_KEY("--read-by-userkey"),
         READ_BY_USERNAME("--read-by-username"),
         SEARCH_BY_ATTRIBUTE("--search-by-attribute"),
         SEARCH_BY_ROLE("--search-by-role"),

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDelete.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDelete.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDelete.java
index f338844..a5278d6 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDelete.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDelete.java
@@ -28,7 +28,7 @@ public class UserDelete extends AbstractUserCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(UserDelete.class);
 
-    private static final String DELETE_HELP_MESSAGE = "user --delete {USER-ID} {USER-ID} [...]";
+    private static final String DELETE_HELP_MESSAGE = "user --delete {USER-KEY} {USER-KEY} [...]";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserId.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserId.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserId.java
deleted file mode 100644
index 93a4712..0000000
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserId.java
+++ /dev/null
@@ -1,66 +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 java.util.ArrayList;
-import java.util.List;
-import javax.xml.ws.WebServiceException;
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserReadByUserId extends AbstractUserCommand {
-
-    private static final Logger LOG = LoggerFactory.getLogger(UserReadByUserId.class);
-
-    private static final String READ_HELP_MESSAGE = "user --read-by-userid {USER-ID} {USER-ID} [...]";
-
-    private final Input input;
-
-    public UserReadByUserId(final Input input) {
-        this.input = input;
-    }
-
-    public void read() {
-        if (input.getParameters().length >= 1) {
-            final List<UserTO> userTOs = new ArrayList<>();
-            for (final String parameter : input.getParameters()) {
-                try {
-                    userTOs.add(userSyncopeOperations.read(parameter));
-                } catch (final SyncopeClientException | WebServiceException ex) {
-                    LOG.error("Error reading user", ex);
-                    if (ex.getMessage().startsWith("NotFound")) {
-                        userResultManager.notFoundError("User", parameter);
-                    } else {
-                        userResultManager.genericError(ex.getMessage());
-                    }
-                    break;
-                } catch (final NumberFormatException ex) {
-                    LOG.error("Error reading user", ex);
-                    userResultManager.numberFormatException("user", parameter);
-                }
-            }
-            userResultManager.printUsers(userTOs);
-        } else {
-            userResultManager.commandOptionError(READ_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserKey.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserKey.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserKey.java
new file mode 100644
index 0000000..d848037
--- /dev/null
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserReadByUserKey.java
@@ -0,0 +1,66 @@
+/*
+ * 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 java.util.ArrayList;
+import java.util.List;
+import javax.xml.ws.WebServiceException;
+import org.apache.syncope.client.cli.Input;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.to.UserTO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserReadByUserKey extends AbstractUserCommand {
+
+    private static final Logger LOG = LoggerFactory.getLogger(UserReadByUserKey.class);
+
+    private static final String READ_HELP_MESSAGE = "user --read-by-userkey {USER-KEY} {USER-KEY} [...]";
+
+    private final Input input;
+
+    public UserReadByUserKey(final Input input) {
+        this.input = input;
+    }
+
+    public void read() {
+        if (input.getParameters().length >= 1) {
+            final List<UserTO> userTOs = new ArrayList<>();
+            for (final String parameter : input.getParameters()) {
+                try {
+                    userTOs.add(userSyncopeOperations.read(parameter));
+                } catch (final SyncopeClientException | WebServiceException ex) {
+                    LOG.error("Error reading user", ex);
+                    if (ex.getMessage().startsWith("NotFound")) {
+                        userResultManager.notFoundError("User", parameter);
+                    } else {
+                        userResultManager.genericError(ex.getMessage());
+                    }
+                    break;
+                } catch (final NumberFormatException ex) {
+                    LOG.error("Error reading user", ex);
+                    userResultManager.numberFormatException("user", parameter);
+                }
+            }
+            userResultManager.printUsers(userTOs);
+        } else {
+            userResultManager.commandOptionError(READ_HELP_MESSAGE);
+        }
+    }
+}


[2/3] syncope git commit: [SYNCOPE-700] Reviwing CLI

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
index 50ccd74..2c479a4 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
@@ -39,7 +39,7 @@ public class UserResultManager extends CommonsResultManager {
     }
 
     private void printUser(final UserTO userTO) {
-        System.out.println(" > USER ID: " + userTO.getKey());
+        System.out.println(" > USER KEY: " + userTO.getKey());
         System.out.println("    username: " + userTO.getUsername());
         System.out.println("    realm: " + userTO.getRealm());
         System.out.println("    status: " + userTO.getStatus());
@@ -64,8 +64,8 @@ public class UserResultManager extends CommonsResultManager {
         System.out.println("    failed logins: " + userTO.getFailedLogins());
         System.out.println("RELATIONSHIPS:");
         printRelationships(userTO.getRelationships());
-        System.out.println("    security question id: " + userTO.getSecurityQuestion());
-        System.out.println("    security question answer id: " + userTO.getSecurityAnswer());
+        System.out.println("    security question key: " + userTO.getSecurityQuestion());
+        System.out.println("    security question answer key: " + userTO.getSecurityAnswer());
         System.out.println("");
     }
 
@@ -103,7 +103,7 @@ public class UserResultManager extends CommonsResultManager {
 
     public void printFailedUsers(final Map<String, String> users) {
         final Table.TableBuilder tableBuilder =
-                new Table.TableBuilder("Users not deleted").header("user id").header("cause");
+                new Table.TableBuilder("Users not deleted").header("user key").header("cause");
         for (final Map.Entry<String, String> entrySet : users.entrySet()) {
             tableBuilder.rowValues(new LinkedList<>(Arrays.asList(entrySet.getKey(), entrySet.getValue())));
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByResource.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByResource.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByResource.java
index abf3811..83af7ed 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByResource.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByResource.java
@@ -30,7 +30,7 @@ public class UserSearchByResource extends AbstractUserCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(UserSearchByResource.class);
 
-    private static final String SEARCH_HELP_MESSAGE = "user --search-by-resource {REALM} {RESOURCE-NAME}";
+    private static final String SEARCH_HELP_MESSAGE = "user --search-by-resource {REALM} {RESOURCE-KEY}";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByRole.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByRole.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByRole.java
index 6674966..10c760e 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByRole.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSearchByRole.java
@@ -30,7 +30,7 @@ public class UserSearchByRole extends AbstractUserCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(UserSearchByRole.class);
 
-    private static final String SEARCH_HELP_MESSAGE = "user --search-by-role {REALM} {ROLE-NAME}";
+    private static final String SEARCH_HELP_MESSAGE = "user --search-by-role {REALM} {ROLE-KEY}";
 
     private final Input input;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/client/cli/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/cli/src/main/resources/messages.properties b/client/cli/src/main/resources/messages.properties
index 05ef8ad..0e47a36 100644
--- a/client/cli/src/main/resources/messages.properties
+++ b/client/cli/src/main/resources/messages.properties
@@ -14,22 +14,22 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-anyObject.help.message=\nUsage: any [options]\n   Options:\n     --help \n     --details \n     --list \n     --read \n        Syntax: --read {ANY-ID} {ANY-ID} [...]\n     --read-attr-by-schema-type {ANY-ID} {SCHEMA-TYPE}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --read-attr-by-schema {ANY-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --delete \n        Syntax: --delete {ANY-ID} {ANY-ID} [...]\n
+anyObject.help.message=\nUsage: any [options]\n   Options:\n     --help \n     --details \n     --list \n     --read \n        Syntax: --read {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]\n     --read-attr-by-schema-type {ANY_OBJECT-KEY} {SCHEMA-TYPE}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --read-attr-by-schema {ANY_OBJECT-KEY} {SCHEMA-TYPE} {SCHEMA-KEY}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n     --delete \n        Syntax: --delete {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]\n
 configuration.help.message=\nUsage: configuration [options]\n  Options:\n    --help \n    --get \n    --read \n       Syntax: --read {CONF-NAME} {CONF-NAME} [...] \n    --update \n       Syntax: --update {CONF-NAME}={CONF-VALUE} {CONF-NAME}={CONF-VALUE} [...]\n    --delete \n       Syntax: --delete {CONF-NAME} {CONF-NAME} [...]\n    --export \n       Syntax: --export {WHERE-DIR}\n
-connector.help.message=\nUsage: connector [options]\n  Options:\n    --help \n    --details \n    --list \n    --list-bundles \n    --list-configuration-properties\n       Syntax: --list-configuration-properties {CONNECTOR-ID} {CONNECTOR-ID} [...]\n    --read \n       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n    --delete \n       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]\n
+connector.help.message=\nUsage: connector [options]\n  Options:\n    --help \n    --details \n    --list \n    --list-bundles \n    --list-configuration-properties\n       Syntax: --list-configuration-properties {CONNECTOR-KEY} {CONNECTOR-KEY} [...]\n    --read \n       Syntax: --read {CONNECTOR-KEY} {CONNECTOR-KEY} [...]\n    --delete \n       Syntax: --delete {CONNECTOR-KEY} {CONNECTOR-KEY} [...]\n
 domain.help.message=\nUsage: domain [options]\n  Options:\n    --help \n    --details \n    --list \n    --delete \n       Syntax: --delete {DOMAIN-NAME} {DOMAIN-NAME} [...]\n
-entitlement.help.message=\nUsage: entitlement [options]\n  Options:\n    --help \n    --list\n    --list-role\n       Syntax: --list-role {ENTITLEMENT-NAME}\n    --read-by-username\n       Syntax: --read-by-username {USERNAME}\n    --read-by-userid\n       Syntax: --read-by-userid {USER-ID}\n    --search-by-role\n       Syntax: --search-by-role {ROLE-ID}\n
-group.help.message=\nUsage: group [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {GROUP-ID} {GROUP-ID} [...]\n    --read-attr-by-schema-type {GROUP-ID} {SCHEMA-TYPE}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --read-attr-by-schema {GROUP-ID} {SCHEMA-TYPE} {SCHEMA-NAME}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --delete \n       Syntax: --delete {GROUP-ID} {GROUP-ID} [...]\n
+entitlement.help.message=\nUsage: entitlement [options]\n  Options:\n    --help \n    --list\n    --list-role\n       Syntax: --list-role {ENTITLEMENT-NAME}\n    --read-by-username\n       Syntax: --read-by-username {USERNAME}\n    --read-by-userkey\n       Syntax: --read-by-userkey {USER-KEY}\n    --search-by-role\n       Syntax: --search-by-role {ROLE-KEY}\n
+group.help.message=\nUsage: group [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {GROUP-KEY} {GROUP-KEY} [...]\n    --read-attr-by-schema-type {GROUP-KEY} {SCHEMA-TYPE}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --read-attr-by-schema {GROUP-KEY} {SCHEMA-TYPE} {SCHEMA-KEY}\n       Schema type: PLAIN / DERIVED / VIRTUAL\n    --delete \n       Syntax: --delete {GROUP-KEY} {GROUP-KEY} [...]\n
 logger.help.message=\nUsage: logger [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {LOG-NAME} {LOG-NAME} [...]\n    --update \n       Syntax: --update {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n    --update-all \n       Syntax: --update-all {LOG-LEVEL} \n    --create \n       Syntax: --create {LOG-NAME}={LOG-LEVEL} {LOG-NAME}={LOG-LEVEL} [...]\n    --delete \n       Syntax: --delete {LOG-NAME} {LOG-NAME} [...]\n
-notification.help.message=\nUsage: notification [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {NOTIFICATION-ID} \n    --delete \n       Syntax: --delete {NOTIFICATION-ID}\n
-policy.help.message=\nUsage: policy [options]\n  Options:\n    --help \n    --details \n    --list \n       Syntax: --list-policy {POLICY-TYPE} \n          Policy type: ACCOUNT / PASSWORD / PULL / PUSH\n    --read \n       Syntax: --read {POLICY-ID} {POLICY-ID} [...]\n    --delete \n       Syntax: --delete {POLICY-ID} {POLICY-ID} [...]\n
-question.help.message=\nUsage: question [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {QUESTION-ID} {QUESTION-ID} [...]\n    --delete \n       Syntax: --delete {QUESTION-ID} {QUESTION-ID} [...]\n
+notification.help.message=\nUsage: notification [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {NOTIFICATION-KEY} \n    --delete \n       Syntax: --delete {NOTIFICATION-KEY}\n
+policy.help.message=\nUsage: policy [options]\n  Options:\n    --help \n    --details \n    --list \n       Syntax: --list-policy {POLICY-TYPE} \n          Policy type: ACCOUNT / PASSWORD / PULL / PUSH\n    --read \n       Syntax: --read {POLICY-KEY} {POLICY-KEY} [...]\n    --delete \n       Syntax: --delete {POLICY-KEY} {POLICY-KEY} [...]\n
+question.help.message=\nUsage: question [options]\n  Options:\n    --help \n    --list \n    --read \n       Syntax: --read {QUESTION-KEY} {QUESTION-KEY} [...]\n    --delete \n       Syntax: --delete {QUESTION-KEY} {QUESTION-KEY} [...]\n
 realm.help.message=\nUsage: realm [options]\n  Options:\n    --help \n    --details \n    --list \n
-report.help.message=\nUsage: report [options]\n  Options:\n    --help \n    --details\n    --list \n    --list-jobs \n    --read \n       Syntax: --read {REPORT-ID} {REPORT-ID} [...] \n    --delete \n       Syntax: --delete {REPORT-ID} {REPORT-ID} [...]\n    --execute \n       Syntax: --execute {REPORT-ID} \n    --delete-execution \n       Syntax: --delete-execution {EXECUTION-ID} {EXECUTION-ID} [...]\n    --export-execution-result \n       Syntax: --export-execution-result {EXECUTION-ID} {EXECUTION-ID} [...] {FORMAT}\n          Format: CSV / HTML / PDF / XML / RTF\n
-resource.help.message=\nUsage: resource [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {RESOURCE-NAME} {RESOURCE-NAME} [...]\n    --delete \n       Syntax: --delete {RESOURCE-NAME} {RESOURCE-NAME} [...]\n
-role.help.message=\nUsage: role [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {ROLE-ID} {ROLE-ID} [...]\n    --delete \n       Syntax: --delete {ROLE-ID} {ROLE-ID} [...]\n
+report.help.message=\nUsage: report [options]\n  Options:\n    --help \n    --details\n    --list \n    --list-jobs \n    --read \n       Syntax: --read {REPORT-KEY} {REPORT-KEY} [...] \n    --delete \n       Syntax: --delete {REPORT-KEY} {REPORT-KEY} [...]\n    --execute \n       Syntax: --execute {REPORT-KEY} \n    --delete-execution \n       Syntax: --delete-execution {EXECUTION-KEY} {EXECUTION-KEY} [...]\n    --export-execution-result \n       Syntax: --export-execution-result {EXECUTION-KEY} {EXECUTION-KEY} [...] {FORMAT}\n          Format: CSV / HTML / PDF / XML / RTF\n
+resource.help.message=\nUsage: resource [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {RESOURCE-KEY} {RESOURCE-KEY} [...]\n    --delete \n       Syntax: --delete {RESOURCE-KEY} {RESOURCE-KEY} [...]\n
+role.help.message=\nUsage: role [options]\n  Options:\n    --help \n    --details \n    --list \n    --read \n       Syntax: --read {ROLE-KEY} {ROLE-KEY} [...]\n    --delete \n       Syntax: --delete {ROLE-KEY} {ROLE-KEY} [...]\n
 schema.help.message=\nUsage: schema [options]\n  Options:\n    --help \n    --details \n    --list-all\n    --list-plain\n    --list-derived\n    --list-virtual\n    --read {SCHEMA-TYPE} {SCHEMA-KEY}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n    --delete {SCHEMA-TYPE} {SCHEMA-KEY}\n        Schema type: PLAIN / DERIVED / VIRTUAL\n
-task.help.message=\nUsage: task [options]\n  Options:\n    --help \n    --details\n    --list\n       Syntax: --list {TASK-TYPE} \n          Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / PULL\n    --list-running-jobs \n    --list-scheduled-jobs \n    --read \n       Syntax: --read {TASK-ID} {TASK-ID} [...]\n    --delete \n       Syntax: --delete {TASK-ID} {TASK-ID} [...]\n    --delete-all-prop\n    --delete-execution \n       Syntax: --delete-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]\n    --execute \n       Syntax: --execute {TASK-ID} {DRY-RUN}\n          Dry run: true / false\n
-user.help.message=\nUsage: user [options]\n  Options:\n    --help \n    --details \n    --list \n    --get-user-key\n       Syntax: --get-user-key {USERNAME}\n    --get-username\n       Syntax: --get-username {USER-ID}\n    --read-by-userid \n       Syntax: --read-by-userid {USER-ID} {USER-ID} [...]\n    --read-by-username\n       Syntax: --read-by-username {USERNAME} {USERNAME} [...]\n    --search-by-attribute \n       Syntax: --search-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n    --search-by-role \n       Syntax: --search-by-role {REALM} {ROLE-NAME}\n    --search-by-resource \n       Syntax: --search-by-resource {REALM} {RESOURCE-NAME}\n    --delete \n       Syntax: --delete {USER-ID} {USER-ID} [...]\n    --delete-all \n       Syntax: --delete-all {REALM}\n    --delete-by-attribute \n       Syntax: --delete-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n
+task.help.message=\nUsage: task [options]\n  Options:\n    --help \n    --details\n    --list\n       Syntax: --list {TASK-TYPE} \n          Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / PULL\n    --list-running-jobs \n    --list-scheduled-jobs \n    --read \n       Syntax: --read {TASK-KEY} {TASK-KEY} [...]\n    --delete \n       Syntax: --delete {TASK-KEY} {TASK-KEY} [...]\n    --delete-all-prop\n    --delete-execution \n       Syntax: --delete-execution {TASK-EXEC-KEY} {TASK-EXEC-KEY} [...]\n    --execute \n       Syntax: --execute {TASK-KEY} {DRY-RUN}\n          Dry run: true / false\n
+user.help.message=\nUsage: user [options]\n  Options:\n    --help \n    --details \n    --list \n    --get-user-key\n       Syntax: --get-user-key {USERNAME}\n    --get-username\n       Syntax: --get-username {USER-KEY}\n    --read-by-userkey \n       Syntax: --read-by-userkey {USER-KEY} {USER-KEY} [...]\n    --read-by-username\n       Syntax: --read-by-username {USERNAME} {USERNAME} [...]\n    --search-by-attribute \n       Syntax: --search-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n    --search-by-role \n       Syntax: --search-by-role {REALM} {ROLE-KEY}\n    --search-by-resource \n       Syntax: --search-by-resource {REALM} {RESOURCE-KEY}\n    --delete \n       Syntax: --delete {USER-KEY} {USER-KEY} [...]\n    --delete-all \n       Syntax: --delete-all {REALM}\n    --delete-by-attribute \n       Syntax: --delete-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}\n
 workflow.help.message=\nUsage: workflow [options]\n  Options:\n    --help \n    --export-diagram {ANY-TYPE-KIND}\n        Any type kind: ANY_OBJECT / USER / GROUP\n    --export-definition {ANY-TYPE-KIND}\n        Any type kind: ANY_OBJECT / USER / GROUP\n
 migrate.help.message=\nUsage: migrate [options]\n  Options:\n    --help \n    --conf {SRC} {DST}\n        Syncope 1.2.X content.xml SRC absolute path\n        Syncope 2.0.X *Content.xml DST absolute path\n

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java
index 2940611..65d9412 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/notification/NotificationManager.java
@@ -40,7 +40,7 @@ public interface NotificationManager {
     long countExecutionsWithStatus(final String taskKey, final String status);
 
     /**
-     * Create notification tasks for each notification matching the given user id and (some of) tasks performed.
+     * Create notification tasks for each notification matching provided conditions.
      *
      * @param type event category type
      * @param category event category

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
index ae598d0..162e798 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
@@ -178,7 +178,7 @@ public class CLIITCase extends AbstractITCase {
         try {
             PROCESS_BUILDER.command(getCommand(
                     new UserCommand().getClass().getAnnotation(Command.class).name(),
-                    UserCommand.UserOptions.READ_BY_ID.getOptionName(),
+                    UserCommand.UserOptions.READ_BY_KEY.getOptionName(),
                     String.valueOf(userKey1)));
             Process process = PROCESS_BUILDER.start();
             String result = IOUtils.toString(process.getInputStream(), SyncopeConstants.DEFAULT_CHARSET);
@@ -187,7 +187,7 @@ public class CLIITCase extends AbstractITCase {
 
             PROCESS_BUILDER.command(getCommand(
                     new UserCommand().getClass().getAnnotation(Command.class).name(),
-                    UserCommand.UserOptions.READ_BY_ID.getOptionName(),
+                    UserCommand.UserOptions.READ_BY_KEY.getOptionName(),
                     String.valueOf(userKey1), String.valueOf(userKey2),
                     String.valueOf(userKey3), String.valueOf(userKey4), String.valueOf(userKey5)));
             Process process2 = PROCESS_BUILDER.start();
@@ -206,7 +206,7 @@ public class CLIITCase extends AbstractITCase {
 
             PROCESS_BUILDER.command(getCommand(
                     new UserCommand().getClass().getAnnotation(Command.class).name(),
-                    UserCommand.UserOptions.READ_BY_ID.getOptionName(),
+                    UserCommand.UserOptions.READ_BY_KEY.getOptionName(),
                     String.valueOf(userKey1), String.valueOf(userKey2),
                     String.valueOf(userKey3), String.valueOf(userKey4), String.valueOf(userKey5)));
             Process process3 = PROCESS_BUILDER.start();

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/anyObject.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/anyObject.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/anyObject.adoc
new file mode 100644
index 0000000..a4554c7
--- /dev/null
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/anyObject.adoc
@@ -0,0 +1,55 @@
+//
+// 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.
+//
+===== Any command
+This command works with <<users-groups-and-any-objects,any objects>>.
+
+[discrete]
+====== Help message
+[source,bash]
+----
+Usage: any [options]
+  Options:
+    --help 
+    --details 
+    --list 
+    --read 
+       Syntax: --read {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]
+    --read-attr-by-schema-type {ANY_OBJECT-KEY} {SCHEMA-TYPE}
+       Schema type: PLAIN / DERIVED / VIRTUAL
+    --read-attr-by-schema {ANY_OBJECT-KEY} {SCHEMA-TYPE} {SCHEMA-NAME}
+       Schema type: PLAIN / DERIVED / VIRTUAL
+    --delete 
+       Syntax: --delete {ANY_OBJECT-KEY} {ANY_OBJECT-KEY} [...]
+----
+
+[discrete]
+====== Options
+
+--details::
+This option shows a table with the amount of available Any Objects and some additional information.
+--list::
+Running the command with this option you will see the list of the Any Objects.
+--read::
+The option to read the any object passed as input.
+--read-attr-by-schema-type::
+The option to read the specified attribute type of the any object passed as input.
+--read-attr-by-schema::
+The option to read the specified attribute name of the any object passed as input.
+--delete::
+The option to delete a specified any object.

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/cli.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/cli.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/cli.adoc
index 98f55e3..157323f 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/cli.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/cli.adoc
@@ -33,6 +33,8 @@ include::user.adoc[]
 
 include::group.adoc[]
 
+include::anyObject.adoc[]
+
 include::role.adoc[]
 
 include::realm.adoc[]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/configuration.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/configuration.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/configuration.adoc
index 3e86789..0d47e35 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/configuration.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/configuration.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Configuration command
-The configuration command retrieves information about the Syncope configuration.
+This command works with <<configuration-parameters,configuration parameters>>.
 
 [discrete]
 ====== Help message

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/connector.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/connector.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/connector.adoc
index 758ac96..fd81414 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/connector.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/connector.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Connector command
-The connector command serves to retrieve information about the connector configuration in Apache Syncope.
+This command works with <<connector-instance-details,connectors>>.
 
 [discrete]
 ====== Help message
@@ -31,11 +30,11 @@ Usage: connector [options]
     --list 
     --list-bundles 
     --list-configuration-properties
-       Syntax: --list-configuration-properties {CONNECTOR-ID} {CONNECTOR-ID} [...]
+       Syntax: --list-configuration-properties {CONNECTOR-KEY} {CONNECTOR-KEY} [...]
     --read 
-       Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]
+       Syntax: --read {CONNECTOR-KEY} {CONNECTOR-KEY} [...]
     --delete 
-       Syntax: --delete {CONNECTOR-ID} {CONNECTOR-ID} [...]
+       Syntax: --delete {CONNECTOR-KEY} {CONNECTOR-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/domain.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/domain.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/domain.adoc
index b4ab63a..120d88d 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/domain.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/domain.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Domain command
-The domain command retrieves information about the configured domains.
+This command works with <<domains,domains>>.
 
 [discrete]
 ====== Help message
@@ -30,7 +29,7 @@ Usage: domain [options]
     --details 
     --list 
     --delete 
-       Syntax: --delete {DOMAIN-NAME} {DOMAIN-NAME} [...]
+       Syntax: --delete {DOMAIN-KEY} {DOMAIN-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/entitlement.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/entitlement.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/entitlement.adoc
index c5b56cd..8c54a67 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/entitlement.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/entitlement.adoc
@@ -18,7 +18,7 @@
 //
 
 ===== Entitlement command
-The entitlement command retrieves information about the entitlments.
+This command works with <<entitlements,entitlements>>.
 
 [discrete]
 ====== Help message
@@ -32,10 +32,10 @@ Usage: entitlement [options]
        Syntax: --list-role {ENTITLEMENT-NAME}
     --read-by-username
        Syntax: --read-by-username {USERNAME}
-    --read-by-userid
-       Syntax: --read-by-userid {USER-ID}
+    --read-by-userkey
+       Syntax: --read-by-userkey {USER-KEY}
     --search-by-role
-       Syntax: --search-by-role {ROLE-ID}
+       Syntax: --search-by-role {ROLE-KEY}
 ----
 
 [discrete]
@@ -47,7 +47,7 @@ Running the command with this option you will see the list of the entitlements.
 Running the command with this option you will see the list of the roles with a certain entitlement.
 --read-by-username::
 The option to read the entitlements of the username passed as input.
---read-by-userid::
-The option to read the entitlements of the userid passed as input.
+--read-by-userkey::
+The option to read the entitlements of the user key passed as input.
 --search-by-role::
 The option to read the entitlements of a certain role.

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/group.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/group.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/group.adoc
index 802a430..38351f1 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/group.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/group.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Group command
-The group command retrieves information about the configured Groups.
+This command works with <<users-groups-and-any-objects,groups>>.
 
 [discrete]
 ====== Help message
@@ -30,13 +29,13 @@ Usage: group [options]
     --details 
     --list 
     --read 
-       Syntax: --read {GROUP-ID} {GROUP-ID} [...]
-    --read-attr-by-schema-type {GROUP-ID} {SCHEMA-TYPE}
+       Syntax: --read {GROUP-KEY} {GROUP-KEY} [...]
+    --read-attr-by-schema-type {GROUP-KEY} {SCHEMA-TYPE}
        Schema type: PLAIN / DERIVED / VIRTUAL
-    --read-attr-by-schema {GROUP-ID} {SCHEMA-TYPE} {SCHEMA-NAME}
+    --read-attr-by-schema {GROUP-KEY} {SCHEMA-TYPE} {SCHEMA-NAME}
        Schema type: PLAIN / DERIVED / VIRTUAL
     --delete 
-       Syntax: --delete {GROUP-ID} {GROUP-ID} [...]
+       Syntax: --delete {GROUP-KEY} {GROUP-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/info.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/info.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/info.adoc
index 2dd992b..01e883d 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/info.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/info.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Info command
-The info command shows some information about the Syncope installation.
+This command reports general information about the current Apache Syncope deployment.
 
 [discrete]
 ====== Help message

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/logger.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/logger.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/logger.adoc
index 76dc6fd..6ebc5a3 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/logger.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/logger.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Logger command
-The logger command retrieves information about the logger configuration in Apache Syncope.
+This command is meant for tweaking runtime logger configuration.
 
 [discrete]
 ====== Help message
@@ -56,6 +55,6 @@ The option to change the value of the logger passed as input.
 This option is especially helpful in production environment when every log is disabled and you need to change them for a 
 while in DEBUG mode.
 --create::
-For the moment the logger command is one of the few command with a create option to add a new logger configuration.
+The option to add a new logger configuration.
 --delete::
 The option to delete a specified logger.

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/notification.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/notification.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/notification.adoc
index 43655f1..a79073a 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/notification.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/notification.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Notification command
-The notification command retrieves information about the configured notifications.
+This command works with <<notifications,notifications>>.
 
 [discrete]
 ====== Help message
@@ -29,9 +28,9 @@ Usage: notification [options]
     --help 
     --list 
     --read 
-       Syntax: --read {NOTIFICATION-ID} 
+       Syntax: --read {NOTIFICATION-KEY} 
     --delete 
-       Syntax: --delete {NOTIFICATION-ID}
+       Syntax: --delete {NOTIFICATION-KEY}
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/policy.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/policy.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/policy.adoc
index d6f283f..807957c 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/policy.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/policy.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Policy command
-The policy command retrieves information about the policies for each type.
+This command works with <<policies,policies>>.
 
 [discrete]
 ====== Help message
@@ -30,11 +29,11 @@ Usage: policy [options]
     --details 
     --list 
        Syntax: --list-policy {POLICY-TYPE} 
-          Policy type: ACCOUNT / PASSWORD / SYNC / PUSH
+          Policy type: ACCOUNT / PASSWORD / PULL / PUSH
     --read 
-       Syntax: --read {POLICY-ID} {POLICY-ID} [...]
+       Syntax: --read {POLICY-KEY} {POLICY-KEY} [...]
     --delete 
-       Syntax: --delete {POLICY-ID} {POLICY-ID} [...]
+       Syntax: --delete {POLICY-KEY} {POLICY-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/question.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/question.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/question.adoc
index 1451aed..624f33d 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/question.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/question.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Question command
-The question command gets information about the user question to retrieve their password.
+This command works with security questions for usage with <<password-reset,password reset>>.
 
 [discrete]
 ====== Help message
@@ -29,9 +28,9 @@ Usage: question [options]
     --help 
     --list 
     --read 
-       Syntax: --read {QUESTION-ID} {QUESTION-ID} [...]
+       Syntax: --read {QUESTION-KEY} {QUESTION-KEY} [...]
     --delete 
-       Syntax: --delete {QUESTION-ID} {QUESTION-ID} [...]
+       Syntax: --delete {QUESTION-KEY} {QUESTION-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/realm.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/realm.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/realm.adoc
index e04e5d5..e6bff74 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/realm.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/realm.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Realm command
-The realm command retrieves information about the configured realm.
+This command works with <<realms,realms>>.
 
 [discrete]
 ====== Help message

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/report.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/report.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/report.adoc
index 7ec96e8..4f21cca 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/report.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/report.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Report command
-The report command retrieves information about the configured reports.
+This command works with <<reports,reports>>.
 
 [discrete]
 ====== Help message
@@ -31,17 +30,17 @@ Usage: report [options]
     --list 
     --list-jobs 
     --read 
-       Syntax: --read {REPORT-ID} {REPORT-ID} [...] 
+       Syntax: --read {REPORT-KEY} {REPORT-KEY} [...] 
     --delete 
-       Syntax: --delete {REPORT-ID} {REPORT-ID} [...]
+       Syntax: --delete {REPORT-KEY} {REPORT-KEY} [...]
     --execute 
-       Syntax: --execute {REPORT-ID} 
+       Syntax: --execute {REPORT-KEY} 
     --read-execution 
-       Syntax: --read-execution {EXECUTION-ID} {EXECUTION-ID} [...]
+       Syntax: --read-execution {EXECUTION-KEY} {EXECUTION-KEY} [...]
     --delete-execution 
-       Syntax: --delete-execution {EXECUTION-ID} {EXECUTION-ID} [...]
+       Syntax: --delete-execution {EXECUTION-KEY} {EXECUTION-KEY} [...]
     --export-execution-result 
-       Syntax: --export-execution-result {EXECUTION-ID} {EXECUTION-ID} [...] {FORMAT}
+       Syntax: --export-execution-result {EXECUTION-KEY} {EXECUTION-KEY} [...] {FORMAT}
           Format: CSV / HTML / PDF / XML / RTF
 ----
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/resource.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/resource.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/resource.adoc
index c17c904..c8433b0 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/resource.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/resource.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Resource command
-The resource command retrieves information about the resources.
+This command works with <<external-resource-details,external resources>>.
 
 [discrete]
 ====== Help message
@@ -30,9 +29,9 @@ Usage: resource [options]
     --details 
     --list 
     --read 
-       Syntax: --read {RESOURCE-NAME} {RESOURCE-NAME} [...]
+       Syntax: --read {RESOURCE-KEY} {RESOURCE-KEY} [...]
     --delete 
-       Syntax: --delete {RESOURCE-NAME} {RESOURCE-NAME} [...]
+       Syntax: --delete {RESOURCE-KEY} {RESOURCE-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/role.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/role.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/role.adoc
index 6f042e6..7214711 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/role.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/role.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Role command
-The role command retrieves information about the roles.
+This command works with <<roles,roles>>.
 
 [discrete]
 ====== Help message
@@ -30,9 +29,9 @@ Usage: role [options]
     --details 
     --list 
     --read 
-       Syntax: --read {ROLE-NAME} {ROLE-NAME} [...]
+       Syntax: --read {ROLE-KEY} {ROLE-KEY} [...]
     --delete 
-       Syntax: --delete {ROLE-NAME} {ROLE-NAME} [...]
+       Syntax: --delete {ROLE-KEY} {ROLE-KEY} [...]
 ----
 
 [discrete]

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/schema.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/schema.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/schema.adoc
index 66c682b..3a32c41 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/schema.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/schema.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Schema command
-The schema command serves retrieves information about the schema categories.
+This command works with <<schema,schemas>>.
 
 [discrete]
 ====== Help message

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/task.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/task.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/task.adoc
index 3dde2ba..d4ddc94 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/task.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/task.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== Task command
-The Task command retrieves information about the Task configuration in Apache Syncope.
+This command works with <<tasks,tasks>>.
 
 [discrete]
 ====== Help message
@@ -34,15 +33,15 @@ Usage: task [options]
     --list-running-jobs
     --list-scheduled-jobs
     --read 
-       Syntax: --read {TASK-ID} {TASK-ID} [...]
+       Syntax: --read {TASK-KEY} {TASK-KEY} [...]
     --read-execution 
-       Syntax: --read-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]
+       Syntax: --read-execution {TASK-EXEC-KEY} {TASK-EXEC-KEY} [...]
     --delete 
-       Syntax: --delete {TASK-ID} {TASK-ID} [...]
+       Syntax: --delete {TASK-KEY} {TASK-KEY} [...]
     --delete-execution 
-       Syntax: --delete-execution {TASK-EXEC-ID} {TASK-EXEC-ID} [...]
+       Syntax: --delete-execution {TASK-EXEC-KEY} {TASK-EXEC-KEY} [...]
     --execute 
-       Syntax: --execute {TASK-ID} {DRY-RUN}
+       Syntax: --execute {TASK-KEY} {DRY-RUN}
           Dry run: true / false
 ----
 
@@ -60,10 +59,10 @@ Running the command with this option you will see the list of the actual runnig
 --read::
 The option to read all the information of a task.
 --read-execution::
-The option to read all the information of executions task.
+The option to read all the information of the specified task execution(s).
 --delete::
 The option to delete specified tasks.
 --delete-execution::
-The option to delete specified execution tasks.
+The option to delete the specified task execution(s).
 --execute::
-The option to execute specified execution tasks.
\ No newline at end of file
+The option to execute the specified task.

http://git-wip-us.apache.org/repos/asf/syncope/blob/d18bdbd5/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/user.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/user.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/user.adoc
index 5e2ce0b..542c5b9 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/user.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/cli/user.adoc
@@ -16,9 +16,8 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-
 ===== User command
-The user command retrieves information about the Users.
+This command works with <<users-groups-and-any-objects,users>>.
 
 [discrete]
 ====== Help message
@@ -32,19 +31,19 @@ Usage: user [options]
     --get-user-key
        Syntax: --get-user-key {USERNAME} {USERNAME} [...]
     --get-username
-       Syntax: --get-username {USER-ID} {USER-ID} [...]
-    --read-by-usernam
-       Syntax: --read-by-usernam {USERNAME} {USERNAME} [...]
-    --read-by-userid
-       Syntax: --read-by-userid {USER-ID} {USER-ID} [...]
+       Syntax: --get-username {USER-KEY} {USER-KEY} [...]
+    --read-by-username
+       Syntax: --read-by-username {USERNAME} {USERNAME} [...]
+    --read-by-userkey
+       Syntax: --read-by-userkey {USER-KEY} {USER-KEY} [...]
     --search-by-attribute
        Syntax: --search-by-attribute {REALM} {ATTR-NAME}={ATTR-VALUE}
     --search-by-role
-       Syntax: --search-by-role {REALM} {ROLE-ID}
+       Syntax: --search-by-role {REALM} {ROLE-KEY}
     --search-by-resource
-       Syntax: --search-by-resource {REALM} {RESOURCE-NAME}
+       Syntax: --search-by-resource {REALM} {RESOURCE-KEY}
     --delete
-       Syntax: --delete {USER-ID} {USER-ID} [...]
+       Syntax: --delete {USER-KEY} {USER-KEY} [...]
     --delete-all 
        Syntax: --delete-all {REALM}
     --delete-by-attribute
@@ -62,9 +61,9 @@ ask you a confirmation before execution, because as you can imagine this operati
 --get-user-key::
 The option to get the user key starting from a username.
 --get-username::
-The option to get the username starting from a user id.
---read-by-userid::
-The option to read user information by their user id.
+The option to get the username starting from a user key.
+--read-by-userkey::
+The option to read user information by their user key.
 --read-by-usernam::
 The option to read user information by their username.
 --search-by-attribute::