You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by kd...@apache.org on 2018/01/10 20:27:14 UTC

nifi-registry git commit: NIFIREG-94 Cleaned up build WARNINGs and updated AsciiDoc headings

Repository: nifi-registry
Updated Branches:
  refs/heads/master fe6a434b1 -> 5042c8935


NIFIREG-94 Cleaned up build WARNINGs and updated AsciiDoc headings

This closes #76.

Signed-off-by: Kevin Doran <kd...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi-registry/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-registry/commit/5042c893
Tree: http://git-wip-us.apache.org/repos/asf/nifi-registry/tree/5042c893
Diff: http://git-wip-us.apache.org/repos/asf/nifi-registry/diff/5042c893

Branch: refs/heads/master
Commit: 5042c893513969625c9611d35c341c6c8fa58be8
Parents: fe6a434
Author: Andrew Lim <an...@gmail.com>
Authored: Mon Jan 8 12:53:32 2018 -0500
Committer: Kevin Doran <kd...@apache.org>
Committed: Wed Jan 10 15:26:27 2018 -0500

----------------------------------------------------------------------
 .../src/main/asciidoc/administration-guide.adoc |  66 +++---
 .../src/main/asciidoc/user-guide.adoc           | 209 +++++++------------
 2 files changed, 104 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-registry/blob/5042c893/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
----------------------------------------------------------------------
diff --git a/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc b/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
index 8ea3f49..ca29e34 100644
--- a/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
+++ b/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
@@ -14,13 +14,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 //
-Apache NiFi Registry System Administrator's Guide
-=================================================
+= Apache NiFi Registry System Administrator's Guide
 Apache NiFi Team <de...@nifi.apache.org>
 :homepage: http://nifi.apache.org
 
-System Requirements
--------------------
+== System Requirements
 
 NiFi Registry has the following minimum system requirements:
 
@@ -34,8 +32,7 @@ NiFi Registry has the following minimum system requirements:
 ** Mozilla FireFox: Current & (Current - 1)
 ** Safari:  Current & (Current - 1)
 
-How to install and start NiFi Registry
---------------------------------------
+== How to install and start NiFi Registry
 
 * Linux/Unix/OS X
 ** Decompress and untar into desired installation directory
@@ -61,8 +58,7 @@ When NiFi Registry first starts up, the following files and directories are crea
 
 See the <<system_properties>> section of this guide for more information about NiFi Registry configuration files.
 
-Security Configuration
-----------------------
+== Security Configuration
 
 NiFi Registry provides several different configuration options for security purposes. The most important properties are those under the
 "security properties" heading in the _nifi-registry.properties_ file. In order to run securely, the following properties must be set:
@@ -87,8 +83,7 @@ should run on. If it is desired that the HTTPS interface be accessible from all
 NOTE: It is important when enabling HTTPS that the `nifi.registry.web.http.port` property be unset.
 
 [[user_authentication]]
-User Authentication
--------------------
+== User Authentication
 
 A secured instance of NiFi Registry cannot be accessed anonymously, so a method of user authentication must be configured.
 
@@ -109,8 +104,7 @@ Identity Providers are configured using two properties in the 'nifi-registry.pro
 NOTE: NiFi Registry can only be configured to use one Identity Provider at a given time.
 
 [[ldap_identity_provider]]
-Lightweight Directory Access Protocol (LDAP)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+=== Lightweight Directory Access Protocol (LDAP)
 
 Below is an example and description of configuring a Identity Provider that integrates with a Directory Server to authenticate users.
 
@@ -179,8 +173,7 @@ compatibility. USE_DN will use the full DN of the user entry if possible. USE_US
 |==================================================================================================================================================
 
 [[kerberos_identity_provider]]
-Kerberos
-~~~~~~~~
+=== Kerberos
 
 Below is an example and description of configuring an Identity Provider that integrates with a Kerberos Key Distribution Center (KDC) to authenticate users.
 
@@ -210,15 +203,14 @@ nifi.registry.security.user.identity.provider=kerberos-identity-provider
 
 See also <<kerberos_service>> to allow single sign-on access via client Kerberos tickets.
 
-[[multi-tenant-authorization]]
-Authorization
--------------
+[[authorization]]
+== Authorization
+
 After you have configured NiFi Registry to run securely and with an authentication mechanism, you must configure who has access to the system and their level of access.
 This is done by defining policies that give users and groups permissions to perform a particular action. These policies are defined in an 'authorizer'.
 
 [[authorizer-configuration]]
-Authorizer Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~
+=== Authorizer Configuration
 
 An 'authorizer' manages known users and their access policies. Authorizers are configured using two properties in the 'nifi-registry.properties' file:
 
@@ -226,8 +218,7 @@ An 'authorizer' manages known users and their access policies. Authorizers are c
 * The `nifi.registry.security.authorizer` property indicates which of the configured authorizers in the 'authorizers.xml' file to use.
 
 [[authorizers-setup]]
-Authorizers.xml Setup
-~~~~~~~~~~~~~~~~~~~~~
+=== Authorizers.xml Setup
 
 The 'authorizers.xml' file is used to define and configure available authorizers.  The default authorizer is the StandardManagedAuthorizer.  The managed authorizer is comprised of a UserGroupProvider
 and a AccessPolicyProvider.  The users, group, and access policies will be loaded and optionally configured through these providers.  The managed authorizer will make all access decisions based on
@@ -308,8 +299,7 @@ The default Authorizer is the StandardManagedAuthorizer, however, you can develo
 * Access Policy Provider - The identifier for an Access Policy Provider defined above.
 
 [[initial-admin-identity]]
-Initial Admin Identity  (New NiFi Registry Instance)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+==== Initial Admin Identity  (New NiFi Registry Instance)
 
 If you are setting up a secured NiFi Registry instance for the first time, you must manually designate an “Initial Admin Identity” in the 'authorizers.xml' file.
 This initial admin user is granted access to the UI and given the ability to create additional users, groups, and policies.
@@ -563,8 +553,7 @@ from an attribute in a LDAP entry based on the 'User Identity Attribute'. The 'N
 'Initial User Identity' properties.
 
 
-Encrypted Passwords in Configuration Files
-------------------------------------------
+== Encrypted Passwords in Configuration Files
 
 In order to facilitate the secure setup of NiFi Registry, you can use the `encrypt-config` command line utility to encrypt raw configuration values
 that NiFi Registry decrypts in memory on startup. This extensible protection scheme transparently allows NiFi Registry to use raw values in operation,
@@ -577,8 +566,7 @@ NOTE: The `encrypt-config` tool for NiFi Registry is implemented as an additiona
 assume you have downloaded the binary for the nifi-toolkit.
 
 [[encrypt-config_tool]]
-Encrypt-Config Tool
-~~~~~~~~~~~~~~~~~~~
+=== Encrypt-Config Tool
 
 The `encrypt-config` command line tool can be used to encrypt NiFi Registry configuration by invoking the tool with the following command:
 
@@ -678,9 +666,8 @@ same master key already present in your 'bootstrap.conf', then run the tool with
 ./bin/encrypt-config.sh nifi-registry -b bootstrap.conf -r nifi-registry.properties
 ----
 
-[encrypt_config_property_migration]
-Sensitive Property Key Migration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[sensistive_property_key_migration]
+=== Sensitive Property Key Migration
 
 In order to change the key used to encrypt the sensitive values, provide the new key or password using the `-k` or `-p` flags as usual,
 and provide the existing key or password using `--old-key` or `--old-password` respectively. This will allow the toolkit to decrypt the
@@ -693,8 +680,8 @@ for each phase (old vs. new), and any combination is sufficient:
 * old password -> new password
 
 [[bootstrap_properties]]
-Bootstrap Properties
---------------------
+== Bootstrap Properties
+
 The _bootstrap.conf_ file in the _conf_ directory allows users to configure settings for how NiFi Registry should be started. This includes parameters, such as the size of the Java Heap, what Java command to run, and Java System Properties.
 
 Here, we will address the different properties that are made available in the file. Any changes to this file will take effect only after NiFi Registry has been stopped and restarted.
@@ -711,8 +698,8 @@ Here, we will address the different properties that are made available in the fi
 
 
 [[proxy_configuration]]
-Proxy Configuration
--------------------
+== Proxy Configuration
+
 ​When running Apache NiFi Registry behind a proxy there are a couple of key items to be aware of during deployment.
 
 * NiFi Registry is comprised of a number of web applications (web UI, web API, documentation), so the mapping needs to be configured for the *root path*.
@@ -758,8 +745,8 @@ Please refer the documentation of the proxy for guidance for your deployment env
 ....
 
 [[kerberos_service]]
-Kerberos Service
-----------------
+== Kerberos Service
+
 NiFi Registry can be configured to use Kerberos SPNEGO (or "Kerberos Service") for authentication. In this scenario, users will hit the REST endpoint `/access/token/kerberos`
 and the server will respond with a `401` status code and the challenge response header `WWW-Authenticate: Negotiate`. This communicates to the browser to use the GSS-API
 and load the user's Kerberos ticket and provide it as a Base64-encoded header value in the subsequent request. It will be of the form `Authorization: Negotiate YII...`.
@@ -773,8 +760,7 @@ NiFi Registry will only respond to Kerberos SPNEGO negotiation over an HTTPS con
 See <<kerberos_properties>> for complete documentation.
 
 [[kerberos_service_notes]]
-Notes
-~~~~~
+=== Notes
 
 * Kerberos is case-sensitive in many places and the error messages (or lack thereof) may not be sufficiently explanatory.
   Check the case sensitivity of the service principal in your configuration files. The convention is `HTTP/fully.qualified.domain@REALM`.
@@ -811,8 +797,8 @@ root@kdc:~#
 ....
 
 [[system_properties]]
-System Properties
------------------
+== System Properties
+
 The _nifi-registry.properties_ file in the _conf_ directory is the main configuration file for controlling how NiFi Registry runs. This section
 provides an overview of the properties in this file and includes some notes on how to configure it in a way that will make upgrading easier.
 *After making changes to this file, restart NiFi Registry in order for the changes to take effect.*

http://git-wip-us.apache.org/repos/asf/nifi-registry/blob/5042c893/nifi-registry-docs/src/main/asciidoc/user-guide.adoc
----------------------------------------------------------------------
diff --git a/nifi-registry-docs/src/main/asciidoc/user-guide.adoc b/nifi-registry-docs/src/main/asciidoc/user-guide.adoc
index 4566c39..fb3f71e 100644
--- a/nifi-registry-docs/src/main/asciidoc/user-guide.adoc
+++ b/nifi-registry-docs/src/main/asciidoc/user-guide.adoc
@@ -14,14 +14,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 //
-Apache NiFi Registry User Guide
-===============================
+= Apache NiFi Registry User Guide
 Apache NiFi Team <de...@nifi.apache.org>
 :homepage: http://nifi.apache.org
 
 
-Introduction
-------------
+== Introduction
 Apache NiFi Registry—a subproject of Apache NiFi—is a complementary application that provides a central location for storage and management of shared resources across one or more instances of NiFi and/or MiNiFi.
 
 The first implementation of the Registry supports versioned flows.  Process group level dataflows created in NiFi can be placed under version control and stored in a registry. The registry organizes where flows are stored and manages the permissions to access, create, modify or delete them.
@@ -29,8 +27,7 @@ The first implementation of the Registry supports versioned flows.  Process grou
 See the link:administration-guide.html[System Administrator’s Guide] for information about Registry system requirements, installation, and configuration. Once NiFi Registry is installed, use a supported web browser to view the UI.
 
 
-Browser Support
----------------
+== Browser Support
 [options="header"]
 |======================
 |Browser  |Version
@@ -54,8 +51,8 @@ In most environments, all of the UI is visible in your browser. However, the UI
 
 NOTE: The minimum recommended screen size is 1080px X 445px.
 
-Terminology
------------
+== Terminology
+
 *Flow*: A process group level NiFi dataflow that has been placed under version control and saved to the Registry.
 
 *Bucket*: A container that stores and organizes flows.
@@ -64,8 +61,8 @@ Terminology
 
 
 [[User_Interface]]
-NiFi Registry User Interface
-----------------------------
+== NiFi Registry User Interface
+
 The NiFi Registry UI displays the shared resources available and provides mechanisms for creating and administering users/groups, buckets and policies.
 
 When the application is started, the user is able to navigate to the UI by going to the default address of `http://<hostname>:18080/nifi-registry` in a web browser. There are no permissions configured by default, so anyone is able to view and modify the flows and buckets. For information on securing the system, see the link:administration-guide.html[System Administrator’s Guide].
@@ -77,8 +74,8 @@ image::nifi-registry-components.png["NiFi Registry Components"]
 The Buckets menu is available at the top left of the screen.  It allows the user to display flows based on which bucket they are contained in.  On the top right of the screen is the Settings button (image:iconSettings.png["Settings Icon"]) which accesses functionality for managing users, groups, buckets and policies.  Next to the Settings button is the Help button (image:iconHelp.png["Help Icon"]) which accesses the NiFi Registry Documentation.
 
 [[logging-in]]
-Logging In
-----------
+== Logging In
+
 If NiFi Registry is configured to run securely, users will have to be granted permissions to buckets by an administrator. For information on configuring NiFi Registry to run securely, see the link:administration-guide.html[System Administrator’s Guide].
 
 If the user is logging in with their username/password they will be presented with a screen to do so.
@@ -86,9 +83,9 @@ If the user is logging in with their username/password they will be presented wi
 image::loginRegistry.png["NiFi Registry Login"]
 
 
-Manage Flows
-------------
-==== View a Flow
+== Manage Flows
+
+=== View a Flow
 Flows in all buckets are listed in the main window of the UI by default.  If the registry is secured, only the flows in the buckets that the user has access to are listed.
 
 image::flows_all.png["All Flows"]
@@ -103,7 +100,7 @@ image::flow_change_log.png["Flow Change Log"]
 
 The Change Log includes all versions that were saved for a flow.  Clicking on the version reveals details about when the version was saved, which user committed the save, and any comments entered by the user.
 
-===== Sorting & Filtering Flows
+==== Sorting & Filtering Flows
 Flows can be sorted alphabetically by Name (ascending or descending) or by Update (newest or oldest) using the drop-down at the top right of the UI.
 
 image::flows_sort_menu.png["Flows Sort Menu"]
@@ -120,28 +117,25 @@ Here is an example filtering by flow name:
 
 image::flows_filter_by_name.png["Flows Filter By Name"]
 
-==== Delete a Flow
+=== Delete a Flow
 To delete a flow from the registry:
 
 1. Click on the flow to see its details.
-
 2. Select the "Actions" drop-down and click the "Delete" menu option.
-
++
 image::flow_delete_action.png["Flow Delete Action"]
-
-[start=3]
 3. Select "Delete" to confirm.
-
++
 image::flow_delete_confirm.png["Flow Delete Confirm"]
 
 WARNING:  It is possible to delete a flow that is actively being used in NiFi.
 
 
-Manage Buckets
---------------
+== Manage Buckets
+
 To manage buckets, enter the Administration section of the Registry by clicking the Settings button (image:iconSettings.png["Settings Icon"]) on the top right of the UI.  The Buckets window appears by default.
 
-==== Sorting & Filtering Buckets
+=== Sorting & Filtering Buckets
 Buckets can be sorted alphabetically by Name (ascending or descending) using the up/down arrows.
 
 image::buckets_sort_by_name.png["Buckets Sort By Name"]
@@ -156,56 +150,45 @@ Here is an example filtering by bucket name:
 
 image::buckets_filter_by_name.png["Buckets Filter By Name"]
 
-==== Create a Bucket
+=== Create a Bucket
 1. Select the "New Bucket" button.
-
++
 image::new_bucket_button.png["New Bucket Button"]
-
-[start=2]
 2. Enter the desired bucket name and select the "Create" button.
-
++
 image::new_bucket_dialog.png["New Bucket Dialog"]
 
 NOTE: To quickly create multiple buckets, check "Keep this dialog open after creating bucket".
 
 
-==== Delete a Bucket
+=== Delete a Bucket
 1. Select the Delete button (image:iconDelete.png["Delete Icon"]) in the row of the bucket.
-
++
 image::delete_bucket_single.png["Delete Single Bucket"]
-
-[start=2]
 2. From the Delete Bucket dialog, select "Delete".
-
++
 image::delete_bucket_dialog.png["Delete Bucket Dialog"]
 
-==== Delete Multiple Buckets
+=== Delete Multiple Buckets
 1. Select the checkboxes in the rows of the desired buckets to delete.
-
++
 image::check_multiple_buckets.png["Check Multiple Buckets"]
-
-[start=2]
 2. Select the "Actions" drop-down and click the "Delete" option.
-
++
 image::delete_multiple_buckets.png["Delete Multiple Buckets"]
-
-[start=3]
 3. From the Delete Buckets dialog, select "Delete".
-
++
 image::delete_buckets_dialog.png["Delete Buckets Dialog"]
 
-
-==== Edit a Bucket Name
+=== Edit a Bucket Name
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the bucket.
-
++
 image::manage_bucket.png["Manage Bucket"]
-
-[start=2]
 2. Enter a new name for the bucket and select the "Save" button.
-
++
 image::bucket_nav_name_edit.png["Edit Bucket Name"]
 
-==== Bucket Policies
+=== Bucket Policies
 Bucket policies define user privileges on buckets/flows in the Registry and in NiFi.  The available permissions are:
 
 * *All* - In the Registry, the assigned user is able to view and delete flows in the bucket. In NiFi, the selected user is able to import flows from the bucket and commit changes to flows in the bucket.
@@ -220,41 +203,33 @@ NOTE: Users would typically have Read permissions at a minimum.  A user with Wri
 
 NOTE: If a user has a bucket policy and the group that the user is in also has a policy, all policies are used to determine access.  For example, assume User1 is in Group1, User1 has READ privileges on Bucket1 and Group1 has READ privileges on Bucket2. In this scenario, User1 will have READ privileges on both Bucket1 and Bucket2.
 
-===== Create a Bucket Policy
+==== Create a Bucket Policy
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the bucket.
-
 2. Select the "New Policy" button.
-
++
 image::new_bucket_policy_create.png["Create New Bucket Policy"]
-
-[start=3]
 3. Select a user, check the desired permissions and select the "Apply" button:
-
++
 image::new_bucket_policy_user_permission.png["New Bucket Policy User and Permissions"]
-
-[start=4]
 4. The policy is added to the bucket:
-
++
 image::new_bucket_policy_added.png["New Bucket Policy Added"]
 
-===== Delete a Bucket Policy
+==== Delete a Bucket Policy
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the bucket.
-
 2. Select the Delete button (image:iconDelete.png["Delete Icon"]) in the row of the policy.
-
++
 image::delete_bucket_policy.png["Delete Policy"]
-
-[start=3]
 3. From the Delete Policy dialog, select "Delete".
-
++
 image::delete_bucket_policy_dialog.png["Delete Policy Dialog"]
 
 
-Manage Users & Groups
----------------------
+== Manage Users & Groups
+
 To manage users/groups, enter the Administration section of the Registry by clicking the Settings button (image:iconSettings.png["Settings Icon"]) on the top right of the UI.  Select Users from the top menu to open the Users window.
 
-==== Sorting & Filtering Users/Groups
+=== Sorting & Filtering Users/Groups
 Users/groups can be sorted alphabetically by Name (ascending or descending) using the up/down arrows.
 
 image::users_sort_by_name.png["Users Sort By Name"]
@@ -270,59 +245,49 @@ Here is an example of filtering by user name:
 
 image::users_filter_by_name.png["Users Filter By Name"]
 
-==== Add a User
+=== Add a User
 1. Select the "Add User" button.
-
++
 image::add_user_button.png["Add User"]
-
-[start=2]
 2. Enter the desired username or appropriate Identity information. Select the "Add" button.
-
++
 image::add_user_dialog.png["New User Dialog"]
 
 NOTE: To quickly create multiple users, check "Keep this dialog open after adding user".
 
-==== Delete a User
+=== Delete a User
 1. Select the Delete button (image:iconDelete.png["Delete Icon"]) in the row of the user.
-
++
 image::delete_user_single.png["Delete Single User"]
-
-[start=2]
 2. From the Delete User dialog, select "Delete".
-
++
 image::delete_user_dialog.png["Delete User Dialog"]
 
-==== Delete Multiple Users
+=== Delete Multiple Users
 1. Select the checkboxes in the rows of the desired users to delete.
-
++
 image::check_multiple_users.png["Check Multiple Users"]
-
-[start=2]
 2. Select the "Actions" drop-down and click the "Delete" option.
-
++
 image::delete_multiple_users.png["Delete Multiple Users"]
-
-[start=3]
 3. From the Delete Users dialog, select "Delete".
-
++
 image::delete_users_groups_dialog.png["Delete Users Dialog"]
 
 
-==== Edit a User Name
+=== Edit a User Name
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the user.
-
++
 image::manage_user.png["Manage User"]
-
-[start=2]
 2. Enter a new user name and select the "Save" button.
-
++
 image::user_nav_name_edit.png["Edit User Name"]
 
 WARNING: Some users cannot have their names edited.  For example, those defined by LDAP.  These users will be specially highlighted in the list.
 
 image::users_non_configurable.png["Non-configurable Users"]
 
-==== Special Privileges
+=== Special Privileges
 Special privileges are additional permissions that allow a user to manage or access certain aspects of the Registry.  The special privileges are:
 
 * *Can manage buckets* - Allow a user to manage all buckets in the registry, as well as provide the user access to all buckets from a connected system (e.g., NiFi).
@@ -333,86 +298,68 @@ Special privileges are additional permissions that allow a user to manage or acc
 
 * *Can proxy user requests* - Allow a connected system (e.g., NiFi) to process requests of authorized users of that system.
 
-===== Grant Special Privileges to a User
+==== Grant Special Privileges to a User
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the user.
-
++
 image::manage_user.png["Manage User"]
-
-[start=2]
 2. Check the desired privileges:
-
++
 image::user_special_privileges.png["User Special Privileges"]
-
-[start=3]
 3. Changes made to special privileges are automatically saved.
 
-Manage Groups
--------------
+== Manage Groups
 
-==== Add an Empty Group
+=== Add an Empty Group
 1. With no users checked, select the "Actions" drop-down and click the "Create new group" option.
-
++
 image::create_new_group.png["Create New Group"]
-
-[start=2]
 2. Enter a name for the Group and select the "Create" button.
-
++
 image::create_new_group_dialog.png["Create New Group Dialog"]
 
 NOTE: To quickly create multiple empty groups, check the "Keep this dialog open after creating user" checkbox.
 
 
-==== Add User to a Group
+=== Add User to a Group
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the user.
-
 2. Select the "Add To Group" button.
-
++
 image::user_nav_add_to_group.png["Add User to Group"]
-
-[start=3]
 3. In the "Add User to Groups" dialog, select the group(s) to add the user to.  Select the "Add" button when all desired groups have been selected.
-
++
 image::add_user_to_groups_dialog.png["Add User to Groups Dialog"]
-
-[start=4]
 4.  The user is added to the group:
-
++
 image::group_added.png["Group Added"]
 
 NOTE:  Groups cannot contain other groups.
 
-==== Create a New Group with Selected Users
+=== Create a New Group with Selected Users
 1. Select the checkboxes in the rows of the desired users. From the "Actions" drop-down, click the "Create new group" option.
-
++
 image::select_users_create_new_group.png["Select Users for New Group"]
-
-[start=2]
 2. Enter a name for the Group and select the "Create" button.
-
++
 image::select_users_create_new_group_dialog.png["Create New Group Dialog"]
-
-[start=3]
 3. The new group is created with the selected users as members:
-
++
 image::select_users_new_group_added.png["New Group Added with Selected Users"]
 
-==== Remove a User from a Group
+=== Remove a User from a Group
 There are two ways to remove a user from a group.
 
-===== User Window
+==== User Window
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the user.
-
 2. In the Membership section of the window, select the Remove button (image:iconDelete.png["Delete Icon"]) in the row of the group.
-
++
 image::remove_group_from_user.png["Remove Group From User"]
 
-===== Group Window
+==== Group Window
 1. Select the Manage button (image:iconManage.png["Manage Icon"]) in the row of the group. The Members tab is selected by default.
-
 2. In the Membership section of the window, select the Remove button (image:iconDelete.png["Delete Icon"]) in the row of the user.
-
++
 image::remove_user_from_group.png["Remove User From Group"]
 
-==== Other Group Level Actions
+=== Other Group Level Actions
 
 Editing group names, deleting groups, adding policies to/deleting policies from groups and granting special privileges to groups follow similar procedures described earlier for corresponding user level actions.