diff --git a/docs/sections/components/architecture/service-discovery.rst b/docs/sections/components/architecture/service-discovery.rst
index 1eeaef8..315f452 100755
--- a/docs/sections/components/architecture/service-discovery.rst
+++ b/docs/sections/components/architecture/service-discovery.rst
@@ -11,7 +11,7 @@
 and is using `Consul <https://www.consul.io/>`__ as the service registry
 solution.
 
-Service registration
+Service Registration
 --------------------
 
 All components are required to register with Consul in order to be
diff --git a/docs/sections/components/architecture/services.rst b/docs/sections/components/architecture/services.rst
deleted file mode 100755
index 9cfd084..0000000
--- a/docs/sections/components/architecture/services.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-‘Services’ Overview
-===================
-
-DCAE Services run on the DCAE platform. A service performs either
-monitors the virtualized network services or does analytics. A service
-is composed of one or more components, and performs a business need.
-
-Services are created in a ‘Service Design and Creation’ tool called
-‘Service Assurance Flow Designer’ by a Service Designer. This is done by
-\* 1. ‘compose’ing a service from the available SDC catalog components
-(actually from the TOSCA models representing the components), then \* 2.
-’submit’ing the service, which generates a Cloudify blueprint, is then
-automatically uploaded to INVENTORY, and then deployed by DEPLOYMENT
-HANDLER (once a DTI Event is triggered for the service). It should be
-noted that some service flows, specifally ’closed-loop’ flows, are not
-initiated by DTI, but are done by CLAMP.
diff --git a/docs/sections/components/component-json-schema.rst b/docs/sections/components/component-json-schema.rst
index 9cd5e4f..9ad5456 100644
--- a/docs/sections/components/component-json-schema.rst
+++ b/docs/sections/components/component-json-schema.rst
@@ -9,737 +9,745 @@
 ::
 
  {
-   "$schema": "http://json-schema.org/draft-04/schema#",
-   "title": "Component specification schema",
-   "type": "object",
-   "properties": {
-     "self": {
-       "type": "object",
-       "properties": {
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "description": {
-           "type": "string"
-         },
-         "component_type": {
-           "type": "string",
-           "enum": [
-             "docker",
-             "cdap"
-           ]
-         },
-         "name": {
-           "$ref": "#/definitions/name"
-         }
-       },
-       "required": [
-         "version",
-         "name",
-         "description",
-         "component_type"
-       ]
-     },
-     "streams": {
-       "type": "object",
-       "properties": {
-         "publishes": {
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "oneOf": [
-                 { "$ref": "#/definitions/publisher_http" },
-                 { "$ref": "#/definitions/publisher_message_router" },
-                 { "$ref": "#/definitions/publisher_data_router" }
-             ]
-           }
-         },
-         "subscribes": {
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "oneOf": [
-                 { "$ref": "#/definitions/subscriber_http" },
-                 { "$ref": "#/definitions/subscriber_message_router" },
-                 { "$ref": "#/definitions/subscriber_data_router" }
-             ]
-           }
-         }
-       },
-       "required": [
-         "publishes",
-         "subscribes"
-       ]
-     },
-     "services": {
-       "type": "object",
-       "properties": {
-         "calls": {
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "$ref": "#/definitions/caller"
-           }
-         },
-         "provides": {
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "$ref": "#/definitions/provider"
-           }
-         }
-       },
-       "required": [
-         "calls",
-         "provides"
-       ]
-     },
-    "parameters" : {
-       "anyOf" : [
-         {"$ref": "#/definitions/docker-parameters"},
-         {"$ref": "#/definitions/cdap-parameters"}
-       ]
-     },
-     "auxilary": {
-       "oneOf" : [
-         {"$ref": "#/definitions/auxilary_cdap"},
-         {"$ref": "#/definitions/auxilary_docker"}
-       ]
-     },
-     "artifacts": {
-       "type": "array",
-       "description": "List of component artifacts",
-       "items": {
-         "$ref": "#/definitions/artifact"
-       }
-     }
-   },
-   "required": [
-     "self",
-     "streams",
-     "services",
-     "parameters",
-     "auxilary",
-     "artifacts"
-   ],
-   "additionalProperties": false,
-   "definitions": {
-     "cdap-parameters": {
-       "description" : "There are three seperate ways to pass parameters to CDAP: app config, app preferences, program preferences. These are all treated as optional.",
-       "type": "object",
-       "properties" : {
-         "program_preferences": {
-           "description" : "A list of {program_id, program_type, program_preference} objects where program_preference is an object passed into program_id of type program_type",
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "$ref": "#/definitions/program_preference"
-           }
-         },
-         "app_preferences" : {
-           "description" : "Parameters Passed down to the CDAP preference API",
-           "type": "array",
-             "uniqueItems": true,
-             "items": {
-               "$ref": "#/definitions/parameter"
-             }
-         },
-         "app_config" : {
-           "description" : "Parameters Passed down to the CDAP App Config",
-           "type": "array",
-             "uniqueItems": true,
-             "items": {
-               "$ref": "#/definitions/parameter"
-             }
-         }
-       }
-     },
-     "program_preference": {
-       "type": "object",
-       "properties": {
-         "program_type": {
-           "$ref": "#/definitions/program_type"
-         },
-         "program_id": {
-           "type": "string"
-         },
-         "program_pref":{
-           "description" : "Parameters that the CDAP developer wants pushed to this program's preferences API. Optional",
-             "type": "array",
-             "uniqueItems": true,
-             "items": {
-               "$ref": "#/definitions/parameter"
-             }
-         }
-       },
-       "required": ["program_type", "program_id", "program_pref"]
-     },
-     "program_type": {
-       "type": "string",
-       "enum": ["flows","mapreduce","schedules","spark","workflows","workers","services"]
-     },
-     "docker-parameters": {
-       "type": "array",
-       "uniqueItems": true,
-       "items": {
-         "$ref": "#/definitions/parameter"
-       }
-     },
-     "parameter": {
-       "type": "object",
-       "properties": {
-         "name": {
-           "type": "string"
-         },
-         "value": {
-           "description": "Default value for the parameter"
-         },
-         "description": {
-           "description": "Description for the parameter.",
-           "type": "string"
-         },
-         "type": {
-           "description": "The required data type for the parameter.",
-           "type": "string",
-           "enum": [ "string", "number", "boolean", "datetime" ]
-         },
-         "required": {
-           "description": "An optional key that declares a parameter as required (true) or not (false). Default is true.",
-           "type": "boolean",
-           "default": true
-         },
-         "constraints": {
-           "description": "The optional list of sequenced constraint clauses for the parameter.",
-           "type": "array",
-           "items": {
-             "$ref": "#/definitions/parameter-constraints"
-           }
-         },
-         "entry_schema": {
-             "description": "used for complex data type in the future. 'type' must be map or array for entry_schema to kick_in. ",
-             "type": "string"
-         },
-         "designer_editable": {
-           "description": "An optional key that declares a parameter to be editable by designer (true) or not (false). Default is true.",
-           "type": "boolean",
-           "default": true
-         },
-         "policy_editable": {
-           "description": "An optional key that declares a parameter to be editable by policy (true) or not (false). Default is true.",
-           "type": "boolean",
-           "default": false
-         },
-         "sourced_at_deployment": {
-           "description": "An optional key that declares a parameter's value to be assigned at deployment time (true). Default is false.",
-           "type": "boolean",
-           "default": false
-         },
-         "policy_schema" :{
-           "type": "array",
-           "uniqueItems": true,
-           "items": {"$ref": "#/definitions/policy_schema_parameter"}
-         }
-       },
-       "required": [
-         "name",
-         "value",
-         "description"
-       ],
-       "additionalProperties": false,
-       "dependencies": { "policy_schema": ["policy_editable"]}
-     },
-     "policy_schema_parameter": {
-         "type": "object",
-         "properties": {
-             "name": {
-                 "type": "string"
-             },
-             "value": {
-                 "description": "Default value for the parameter"
-             },
-             "description": {
-                 "description": "Description for the parameter.",
-                 "type": "string"
-             },
-             "type": {
-                 "description": "The required data type for the parameter.",
-                 "type": "string",
-                 "enum": [ "string", "number", "boolean", "datetime", "list", "map" ]
-             },
-             "required": {
-                 "description": "An optional key that declares a parameter as required (true) or not (false). Default is true.",
-                 "type": "boolean",
-                 "default": true
-             },
-             "constraints": {
-                 "description": "The optional list of sequenced constraint clauses for the parameter.",
-                 "type": "array",
-                 "items": {
-                     "$ref": "#/definitions/parameter-constraints"
-                 }
-             },
-             "entry_schema": {
-                 "description": "The optional key that is used to declare the name of the Datatype definition for entries of certain types. entry_schema must be defined when the type is either list or map. If the type is list and the entry type is a simple type (string, number, boolean, datetime), follow with a simple string to describe the entry type. If the type is list and the entry type is a map, follow with an array to describe the keys for the entry map. If the type is list and the entry type is also list, this is not currently supported here. If the type is map, then follow with an array to describe the keys for this map. ",
-                 "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/policy_schema_parameter"}
-             }
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "title": "Component specification schema",
+  "type": "object",
+  "properties": {
+    "self": {
+      "type": "object",
+      "properties": {
+        "version": {
+          "$ref": "#/definitions/version"
         },
-         "required": [
-             "name",
-             "type"
-             ],
-       "additionalProperties": false
-     },
-     "parameter-constraints": {
-       "type": "object",
-       "additionalProperties": false,
-       "properties": {
-         "equal": {
-           "description": "Constrains a property or parameter to a value equal to (‘=’) the value declared."
-         },
-         "greater_than": {
-           "description": "Constrains a property or parameter to a value greater than (‘>’) the value declared.",
-           "type": "number"
-         },
-         "greater_or_equal": {
-           "description": "Constrains a property or parameter to a value greater than or equal to (‘>=’) the value declared.",
-           "type": "number"
-         },
-         "less_than": {
-           "description": "Constrains a property or parameter to a value less than (‘<’) the value declared.",
-           "type": "number"
-         },
-         "less_or_equal": {
-           "description": "Constrains a property or parameter to a value less than or equal to (‘<=’) the value declared.",
-           "type": "number"
-         },
-         "valid_values": {
-           "description": "Constrains a property or parameter to a value that is in the list of declared values.",
-           "type": "array"
-         },
-         "length": {
-           "description": "Constrains the property or parameter to a value of a given length.",
-           "type": "number"
-         },
-         "min_length": {
-           "description": "Constrains the property or parameter to a value to a minimum length.",
-           "type": "number"
-         },
-         "max_length": {
-           "description": "Constrains the property or parameter to a value to a maximum length.",
-           "type": "number"
-         }
-       }
-     },
-     "stream_message_router": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "config_key": {
-           "type": "string"
-         },
-         "type": {
-           "description": "Type of stream to be used",
-           "type": "string",
-           "enum": [
-             "message router", "message_router"
-           ]
-         }
+        "description": {
+          "type": "string"
+        },
+        "component_type": {
+          "type": "string",
+          "enum": [
+            "docker",
+            "cdap"
+          ]
+        },
+        "name": {
+          "$ref": "#/definitions/name"
+        }
+      },
+      "required": [
+        "version",
+        "name",
+        "description",
+        "component_type"
+      ]
+    },
+    "streams": {
+      "type": "object",
+      "properties": {
+        "publishes": {
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "oneOf": [
+                { "$ref": "#/definitions/publisher_http" },
+                { "$ref": "#/definitions/publisher_message_router" },
+                { "$ref": "#/definitions/publisher_data_router" }
+            ]
+          }
+        },
+        "subscribes": {
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "oneOf": [
+                { "$ref": "#/definitions/subscriber_http" },
+                { "$ref": "#/definitions/subscriber_message_router" },
+                { "$ref": "#/definitions/subscriber_data_router" }
+            ]
+          }
+        }
+      },
+      "required": [
+        "publishes",
+        "subscribes"
+      ]
+    },
+    "services": {
+      "type": "object",
+      "properties": {
+        "calls": {
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/caller"
+          }
+        },
+        "provides": {
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/provider"
+          }
+        }
+      },
+      "required": [
+        "calls",
+        "provides"
+      ]
+    },
+   "parameters" : {
+      "anyOf" : [
+        {"$ref": "#/definitions/docker-parameters"},
+        {"$ref": "#/definitions/cdap-parameters"}
+      ]
+    },
+    "auxilary": {
+      "oneOf" : [
+        {"$ref": "#/definitions/auxilary_cdap"},
+        {"$ref": "#/definitions/auxilary_docker"}
+      ]
+    },
+    "artifacts": {
+      "type": "array",
+      "description": "List of component artifacts",
+      "items": {
+        "$ref": "#/definitions/artifact"
+      }
+    }
+  },
+  "required": [
+    "self",
+    "streams",
+    "services",
+    "parameters",
+    "auxilary",
+    "artifacts"
+  ],
+  "additionalProperties": false,
+  "definitions": {
+    "cdap-parameters": {
+      "description" : "There are three seperate ways to pass parameters to CDAP: app config, app preferences, program preferences. These are all treated as optional.",
+      "type": "object",
+      "properties" : {
+        "program_preferences": {
+          "description" : "A list of {program_id, program_type, program_preference} objects where program_preference is an object passed into program_id of type program_type",
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/program_preference"
+          }
+        },
+        "app_preferences" : {
+          "description" : "Parameters Passed down to the CDAP preference API",
+          "type": "array",
+            "uniqueItems": true,
+            "items": {
+              "$ref": "#/definitions/parameter"
+            }
+        },
+        "app_config" : {
+          "description" : "Parameters Passed down to the CDAP App Config",
+          "type": "array",
+            "uniqueItems": true,
+            "items": {
+              "$ref": "#/definitions/parameter"
+            }
+        }
+      }
+    },
+    "program_preference": {
+      "type": "object",
+      "properties": {
+        "program_type": {
+          "$ref": "#/definitions/program_type"
+        },
+        "program_id": {
+          "type": "string"
+        },
+        "program_pref":{
+          "description" : "Parameters that the CDAP developer wants pushed to this program's preferences API. Optional",
+            "type": "array",
+            "uniqueItems": true,
+            "items": {
+              "$ref": "#/definitions/parameter"
+            }
+        }
+      },
+      "required": ["program_type", "program_id", "program_pref"]
+    },
+    "program_type": {
+      "type": "string",
+      "enum": ["flows","mapreduce","schedules","spark","workflows","workers","services"]
+    },
+    "docker-parameters": {
+      "type": "array",
+      "uniqueItems": true,
+      "items": {
+        "$ref": "#/definitions/parameter"
+      }
+    },
+    "parameter": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "type": "string"
+        },
+        "value": {
+          "description": "Default value for the parameter"
+        },
+        "description": {
+          "description": "Description for the parameter.",
+          "type": "string"
+        },
+        "type": {
+          "description": "The required data type for the parameter.",
+          "type": "string",
+          "enum": [ "string", "number", "boolean", "datetime" ]
+        },
+        "required": {
+          "description": "An optional key that declares a parameter as required (true) or not (false). Default is true.",
+          "type": "boolean",
+          "default": true
+        },
+        "constraints": {
+          "description": "The optional list of sequenced constraint clauses for the parameter.",
+          "type": "array",
+          "items": {
+            "$ref": "#/definitions/parameter-constraints"
+          }
+        },
+        "entry_schema": {
+            "description": "used for complex data type in the future. 'type' must be map or array for entry_schema to kick_in. ",
+            "type": "string"
+        },
+        "designer_editable": {
+          "description": "A required property that declares a parameter as editable by designer in SDC Tool (true) or not (false).",
+          "type": "boolean"
+        },
+        "policy_editable": {
+          "description": "A required property that declares a parameter as editable by DevOps in Policy UI (true) or not (false).",
+          "type": "boolean"
+        },
+        "sourced_at_deployment": {
+          "description": "A required property that declares that a parameter is assigned at deployment time (true) or not (false).",
+          "type": "boolean"
+        },
+        "policy_schema" :{
+          "type": "array",
+          "uniqueItems": true,
+          "items": {"$ref": "#/definitions/policy_schema_parameter"}
+        }
+      },
+      "required": [
+        "name",
+        "value",
+        "description",
+        "designer_editable",
+        "policy_editable",
+        "sourced_at_deployment"
+      ],
+      "additionalProperties": false,
+      "dependencies": { "policy_schema": ["policy_editable"]}
+    },
+    "policy_schema_parameter": {
+        "type": "object",
+        "properties": {
+            "name": {
+                "type": "string"
+            },
+            "value": {
+                "description": "Default value for the parameter"
+            },
+            "description": {
+                "description": "Description for the parameter.",
+                "type": "string"
+            },
+            "type": {
+                "description": "The required data type for the parameter.",
+                "type": "string",
+                "enum": [ "string", "number", "boolean", "datetime", "list", "map" ]
+            },
+            "required": {
+                "description": "An optional key that declares a parameter as required (true) or not (false). Default is true.",
+                "type": "boolean",
+                "default": true
+            },
+            "constraints": {
+                "description": "The optional list of sequenced constraint clauses for the parameter.",
+                "type": "array",
+                "items": {
+                    "$ref": "#/definitions/parameter-constraints"
+                }
+            },
+            "entry_schema": {
+                "description": "The optional key that is used to declare the name of the Datatype definition for entries of certain types. entry_schema must be defined when the type is either list or map. If the type is list and the entry type is a simple type (string, number, boolean, datetime), follow with a simple string to describe the entry type. If the type is list and the entry type is a map, follow with an array to describe the keys for the entry map. If the type is list and the entry type is also list, this is not currently supported here. If the type is map, then follow with an array to describe the keys for this map. ",
+                "type": "array", "uniqueItems": true, "items": {"$ref": "#/definitions/policy_schema_parameter"}
+            }
        },
-       "required": [
-         "format",
-         "version",
-         "config_key",
-         "type"
-       ]
-     },
-     "publisher_http": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "config_key": {
-           "type": "string"
-         },
-         "type": {
-           "description": "Type of stream to be used",
-           "type": "string",
-           "enum": [
-             "http",
-             "https"
-           ]
-         }
-       },
-       "required": [
-         "format",
-         "version",
-         "config_key",
-         "type"
-       ]
-     },
-     "publisher_message_router": {
-       "$ref": "#/definitions/stream_message_router"
-     },
-     "publisher_data_router": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "config_key": {
-           "type": "string"
-         },
-         "type": {
-           "description": "Type of stream to be used",
-           "type": "string",
-           "enum": [
-             "data router", "data_router"
-           ]
-         }
-       },
-       "required": [
-         "format",
-         "version",
-         "config_key",
-         "type"
-       ]
-     },
-     "subscriber_http": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "route": {
-           "type": "string"
-         },
-         "type": {
-           "description": "Type of stream to be used",
-           "type": "string",
-           "enum": [
-             "http",
-             "https"
-           ]
-         }
-       },
-       "required": [
-         "format",
-         "version",
-         "route",
-         "type"
-       ]
-     },
-     "subscriber_message_router": {
-       "$ref": "#/definitions/stream_message_router"
-     },
-     "subscriber_data_router": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         },
-         "route": {
-           "type": "string"
-         },
-         "type": {
-           "description": "Type of stream to be used",
-           "type": "string",
-           "enum": [
-             "data router", "data_router"
-           ]
-         },
-         "config_key": {
-           "description": "Data router subscribers require config info to setup their endpoints to handle requests. For example, needs username and password",
-           "type": "string"
-         }
-       },
-       "required": [
-         "format",
-         "version",
-         "route",
-         "type",
-         "config_key"
-       ]
-     },
-     "provider" : {
-       "oneOf" : [
-         {"$ref": "#/definitions/docker-provider"},
-         {"$ref": "#/definitions/cdap-provider"}
-       ]
-     },
-     "cdap-provider" : {
-       "type": "object",
-       "properties" : {
-          "request": {
-            "$ref": "#/definitions/formatPair"
-          },
-          "response": {
-            "$ref": "#/definitions/formatPair"
-          },
-          "service_name" : {
-            "type" : "string"
-          },
-          "service_endpoint" : {
-            "type" : "string"
-          },
-          "verb" : {
-            "type": "string",
-            "enum": ["GET", "PUT", "POST", "DELETE"]
-         }
-       },
-       "required" : [
-         "request", 
-         "response",
-         "service_name",
-         "service_endpoint",
-         "verb"
-         ]
-     },
-     "docker-provider": {
-       "type": "object",
-       "properties": {
+        "required": [
+            "name",
+            "type"
+            ],
+      "additionalProperties": false
+    },
+    "parameter-constraints": {
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "equal": {
+          "description": "Constrains a property or parameter to a value equal to ('=') the value declared."
+        },
+        "greater_than": {
+          "description": "Constrains a property or parameter to a value greater than ('>') the value declared.",
+          "type": "number"
+        },
+        "greater_or_equal": {
+          "description": "Constrains a property or parameter to a value greater than or equal to ('>=') the value declared.",
+          "type": "number"
+        },
+        "less_than": {
+          "description": "Constrains a property or parameter to a value less than '<') the value declared.",
+          "type": "number"
+        },
+        "less_or_equal": {
+          "description": "Constrains a property or parameter to a value less than or equal to ('<=') the value declared.",
+          "type": "number"
+        },
+        "valid_values": {
+          "description": "Constrains a property or parameter to a value that is in the list of declared values.",
+          "type": "array"
+        },
+        "length": {
+          "description": "Constrains the property or parameter to a value of a given length.",
+          "type": "number"
+        },
+        "min_length": {
+          "description": "Constrains the property or parameter to a value to a minimum length.",
+          "type": "number"
+        },
+        "max_length": {
+          "description": "Constrains the property or parameter to a value to a maximum length.",
+          "type": "number"
+        }
+      }
+    },
+    "stream_message_router": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        },
+        "config_key": {
+          "type": "string"
+        },
+        "type": {
+          "description": "Type of stream to be used",
+          "type": "string",
+          "enum": [
+            "message router", "message_router"
+          ]
+        }
+      },
+      "required": [
+        "format",
+        "version",
+        "config_key",
+        "type"
+      ]
+    },
+    "publisher_http": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        },
+        "config_key": {
+          "type": "string"
+        },
+        "type": {
+          "description": "Type of stream to be used",
+          "type": "string",
+          "enum": [
+            "http",
+            "https"
+          ]
+        }
+      },
+      "required": [
+        "format",
+        "version",
+        "config_key",
+        "type"
+      ]
+    },
+    "publisher_message_router": {
+      "$ref": "#/definitions/stream_message_router"
+    },
+    "publisher_data_router": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        },
+        "config_key": {
+          "type": "string"
+        },
+        "type": {
+          "description": "Type of stream to be used",
+          "type": "string",
+          "enum": [
+            "data router", "data_router"
+          ]
+        }
+      },
+      "required": [
+        "format",
+        "version",
+        "config_key",
+        "type"
+      ]
+    },
+    "subscriber_http": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        },
+        "route": {
+          "type": "string"
+        },
+        "type": {
+          "description": "Type of stream to be used",
+          "type": "string",
+          "enum": [
+            "http",
+            "https"
+          ]
+        }
+      },
+      "required": [
+        "format",
+        "version",
+        "route",
+        "type"
+      ]
+    },
+    "subscriber_message_router": {
+      "$ref": "#/definitions/stream_message_router"
+    },
+    "subscriber_data_router": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        },
+        "route": {
+          "type": "string"
+        },
+        "type": {
+          "description": "Type of stream to be used",
+          "type": "string",
+          "enum": [
+            "data router", "data_router"
+          ]
+        },
+        "config_key": {
+          "description": "Data router subscribers require config info to setup their endpoints to handle requests. For example, needs username and password",
+          "type": "string"
+        }
+      },
+      "required": [
+        "format",
+        "version",
+        "route",
+        "type",
+        "config_key"
+      ]
+    },
+    "provider" : {
+      "oneOf" : [
+        {"$ref": "#/definitions/docker-provider"},
+        {"$ref": "#/definitions/cdap-provider"}
+      ]
+    },
+    "cdap-provider" : {
+      "type": "object",
+      "properties" : {
          "request": {
            "$ref": "#/definitions/formatPair"
          },
          "response": {
            "$ref": "#/definitions/formatPair"
          },
-         "route": {
-           "type": "string"
+         "service_name" : {
+           "type" : "string"
          },
-         "verb": {
+         "service_endpoint" : {
+           "type" : "string"
+         },
+         "verb" : {
            "type": "string",
            "enum": ["GET", "PUT", "POST", "DELETE"]
-         }
-       },
-       "required": [
-         "request",
-         "response",
-         "route"
-       ]
-     },
-     "caller": {
-       "type": "object",
-       "properties": {
-         "request": {
-           "$ref": "#/definitions/formatPair"
-         },
-         "response": {
-           "$ref": "#/definitions/formatPair"
-         },
-         "config_key": {
-           "type": "string"
-         }
-       },
-       "required": [
-         "request",
-         "response",
-         "config_key"
-       ]
-     },
-     "formatPair": {
-       "type": "object",
-       "properties": {
-         "format": {
-           "$ref": "#/definitions/name"
-         },
-         "version": {
-           "$ref": "#/definitions/version"
-         }
-       }
-     },
-     "name": {
-       "type": "string"
-     },
-     "version": {
-       "type": "string",
-       "pattern": "^(\\d+\\.)(\\d+\\.)(\\*|\\d+)$"
-     },
-     "artifact": {
-       "type": "object",
-       "description": "Component artifact object",
-       "properties": {
-         "uri": {
-           "type": "string",
-           "description": "Uri to artifact"
-         },
-         "type": {
-           "type": "string",
-           "enum": ["jar", "docker image"]
-         }
-       },
-       "required": ["uri", "type"]
-     },
- 
-     "auxilary_cdap": {
-       "title": "cdap component specification schema",
-       "type": "object",
-       "properties": {
-         "streamname": {
-           "type": "string"
-         },
-         "artifact_name" : {
-           "type": "string"
-         },
-         "artifact_version" : {
-           "type": "string",
-           "pattern": "^(\\d+\\.)(\\d+\\.)(\\*|\\d+)$"
-         },
-         "namespace":{
-           "type": "string",
-           "description" : "optional"
-         },
-         "programs": {
-           "type": "array",
-           "uniqueItems": true,
-           "items": {
-             "$ref": "#/definitions/cdap_program"
-           }
-         }
-       },
-       "required": [
-         "streamname",
-         "programs",
-         "artifact_name",
-         "artifact_version"
-       ]
-     },
-     "cdap_program_type": {
-       "type": "string",
-       "enum": ["flows","mapreduce","schedules","spark","workflows","workers","services"]
-     },
-     "cdap_program": {
-       "type": "object",
-       "properties": {
-         "program_type": {
-           "$ref": "#/definitions/cdap_program_type"
-         },
-         "program_id": {
-           "type": "string"
-         }
-       },
-       "required": ["program_type", "program_id"]
-     },
- 
-     "auxilary_docker": {
-       "title": "Docker component specification schema",
-       "type": "object",
-       "properties": {
-         "healthcheck": {
-           "description": "Define the health check that Consul should perfom for this component",
-           "type": "object",
-           "oneOf": [
-             { "$ref": "#/definitions/docker_healthcheck_http" },
-             { "$ref": "#/definitions/docker_healthcheck_script" }
-           ]
-         },
-         "ports": {
-           "description": "Port mapping to be used for Docker containers. Each entry is of the format <container port>:<host port>.",
-           "type": "array",
-           "items": {
-             "type": "string"
-           }
-         },
-         "volumes": {
-           "description": "Volume mapping to be used for Docker containers. Each entry is of the format below",
-           "type": "array",
-           "items": {
-           "type": "object",
-             "properties": {
-               "host":{
-               "type":"object",
-                 "path": {"type": "string"}
-               },
-               "container":{
-               "type":"object",
-                 "bind": { "type": "string"},
-                 "mode": { "type": "string"}
-               }
+        }
+      },
+      "required" : [
+        "request", 
+        "response",
+        "service_name",
+        "service_endpoint",
+        "verb"
+        ]
+    },
+    "docker-provider": {
+      "type": "object",
+      "properties": {
+        "request": {
+          "$ref": "#/definitions/formatPair"
+        },
+        "response": {
+          "$ref": "#/definitions/formatPair"
+        },
+        "route": {
+          "type": "string"
+        },
+        "verb": {
+          "type": "string",
+          "enum": ["GET", "PUT", "POST", "DELETE"]
+        }
+      },
+      "required": [
+        "request",
+        "response",
+        "route"
+      ]
+    },
+    "caller": {
+      "type": "object",
+      "properties": {
+        "request": {
+          "$ref": "#/definitions/formatPair"
+        },
+        "response": {
+          "$ref": "#/definitions/formatPair"
+        },
+        "config_key": {
+          "type": "string"
+        }
+      },
+      "required": [
+        "request",
+        "response",
+        "config_key"
+      ]
+    },
+    "formatPair": {
+      "type": "object",
+      "properties": {
+        "format": {
+          "$ref": "#/definitions/name"
+        },
+        "version": {
+          "$ref": "#/definitions/version"
+        }
+      }
+    },
+    "name": {
+      "type": "string"
+    },
+    "version": {
+      "type": "string",
+      "pattern": "^(\\d+\\.)(\\d+\\.)(\\*|\\d+)$"
+    },
+    "artifact": {
+      "type": "object",
+      "description": "Component artifact object",
+      "properties": {
+        "uri": {
+          "type": "string",
+          "description": "Uri to artifact"
+        },
+        "type": {
+          "type": "string",
+          "enum": ["jar", "docker image"]
+        }
+      },
+      "required": ["uri", "type"]
+    },
+
+    "auxilary_cdap": {
+      "title": "cdap component specification schema",
+      "type": "object",
+      "properties": {
+        "streamname": {
+          "type": "string"
+        },
+        "artifact_name" : {
+          "type": "string"
+        },
+        "artifact_version" : {
+          "type": "string",
+          "pattern": "^(\\d+\\.)(\\d+\\.)(\\*|\\d+)$"
+        },
+        "namespace":{
+          "type": "string",
+          "description" : "optional"
+        },
+        "programs": {
+          "type": "array",
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/cdap_program"
+          }
+        }
+      },
+      "required": [
+        "streamname",
+        "programs",
+        "artifact_name",
+        "artifact_version"
+      ]
+    },
+    "cdap_program_type": {
+      "type": "string",
+      "enum": ["flows","mapreduce","schedules","spark","workflows","workers","services"]
+    },
+    "cdap_program": {
+      "type": "object",
+      "properties": {
+        "program_type": {
+          "$ref": "#/definitions/cdap_program_type"
+        },
+        "program_id": {
+          "type": "string"
+        }
+      },
+      "required": ["program_type", "program_id"]
+    },
+
+    "auxilary_docker": {
+      "title": "Docker component specification schema",
+      "type": "object",
+      "properties": {
+        "healthcheck": {
+          "description": "Define the health check that Consul should perfom for this component",
+          "type": "object",
+          "oneOf": [
+            { "$ref": "#/definitions/docker_healthcheck_http" },
+            { "$ref": "#/definitions/docker_healthcheck_script" }
+          ]
+        },
+        "ports": {
+          "description": "Port mapping to be used for Docker containers. Each entry is of the format <container port>:<host port>.",
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        },
+        "reconfigs": {
+           "properties": {  
+             "dti": {
+                "description": "Script command that will be executed for reconfiguration",
+                "type": "string"
              }
-           }
-         }
-       },
-       "required": [
-         "healthcheck"
-       ],
-       "additionalProperties": false
-     },
-     "docker_healthcheck_http": {
-       "properties": {
-         "type": {
-           "description": "Consul health check type",
-           "type": "string",
-           "enum": [
-             "http",
-             "https"
-           ]
-         },
-         "interval": {
-           "description": "Interval duration in seconds i.e. 10s",
-           "default": "15s",
-           "type": "string"
-         },
-         "timeout": {
-           "description": "Timeout in seconds i.e. 10s",
-           "default": "1s",
-           "type": "string"
-         },
-         "endpoint": {
-           "description": "Relative endpoint used by Consul to check health by making periodic HTTP GET calls",
-           "type": "string"
-         }
-       },
-       "required": [
-         "type",
-         "endpoint"
-         ]
-     },
-     "docker_healthcheck_script": {
-       "properties": {
-         "type": {
-           "description": "Consul health check type",
-           "type": "string",
-           "enum": [
-             "script",
-             "docker"
-           ]
-         },
-         "interval": {
-           "description": "Interval duration in seconds i.e. 10s",
-           "default": "15s",
-           "type": "string"
-         },
-         "timeout": {
-           "description": "Timeout in seconds i.e. 10s",
-           "default": "1s",
-           "type": "string"
-         },
-         "script": {
-           "description": "Script command that will be executed by Consul to check health",
-           "type": "string"
-         }
-       },
-       "required": [
-         "type",
-         "script"
-         ]
-       }
-     }
-   }
+           } 
+        }, 
+        "volumes": {
+          "description": "Volume mapping to be used for Docker containers. Each entry is of the format below",
+          "type": "array",
+          "items": {
+          "type": "object",
+            "properties": {
+              "host":{
+              "type":"object",
+                "path": {"type": "string"}
+              },
+              "container":{
+              "type":"object",
+                "bind": { "type": "string"},
+                "mode": { "type": "string"}
+              }
+            }
+          }
+        }
+      },
+      "required": [
+        "healthcheck"
+      ],
+      "additionalProperties": false
+    },
+    "docker_healthcheck_http": {
+      "properties": {
+        "type": {
+          "description": "Consul health check type",
+          "type": "string",
+          "enum": [
+            "http",
+            "https"
+          ]
+        },
+        "interval": {
+          "description": "Interval duration in seconds i.e. 10s",
+          "default": "15s",
+          "type": "string"
+        },
+        "timeout": {
+          "description": "Timeout in seconds i.e. 10s",
+          "default": "1s",
+          "type": "string"
+        },
+        "endpoint": {
+          "description": "Relative endpoint used by Consul to check health by making periodic HTTP GET calls",
+          "type": "string"
+        }
+      },
+      "required": [
+        "type",
+        "endpoint"
+        ]
+    },
+    "docker_healthcheck_script": {
+      "properties": {
+        "type": {
+          "description": "Consul health check type",
+          "type": "string",
+          "enum": [
+            "script",
+            "docker"
+          ]
+        },
+        "interval": {
+          "description": "Interval duration in seconds i.e. 10s",
+          "default": "15s",
+          "type": "string"
+        },
+        "timeout": {
+          "description": "Timeout in seconds i.e. 10s",
+          "default": "1s",
+          "type": "string"
+        },
+        "script": {
+          "description": "Script command that will be executed by Consul to check health",
+          "type": "string"
+        }
+      },
+      "required": [
+        "type",
+        "script"
+        ]
+      }
+    }
+  }
diff --git a/docs/sections/components/component-specification/cdap-specification.rst b/docs/sections/components/component-specification/cdap-specification.rst
index 022b46d..2b26442 100755
--- a/docs/sections/components/component-specification/cdap-specification.rst
+++ b/docs/sections/components/component-specification/cdap-specification.rst
@@ -23,8 +23,7 @@
 -----------------------------
 
 -  The integration of DMD is likely to significantly change the
-   :any:`Interfaces <interfaces>` section in this specification, see
-   :any:`DMaaP abstraction <dmaap-abstraction>`.
+   :any:`Interfaces <interfaces>` section in this specification.
 
 .. _parameters:
 
@@ -34,7 +33,7 @@
 There is a ``parameters`` section in your component specification. This
 section contains three optional keys: `app_config <#appconfig>`__,
 `app_preferences <#apppreferences>`__, and
-`propram_preferences <#programpreferences>`__:
+`program_preferences <#programpreferences>`__:
 
 ::
 
@@ -146,7 +145,7 @@
 for ``program_id``.
 
 NOTE: for CDAP, this section is very likely to change when DMD is
-available. The *future* vision, as per :any:`DMaaP intentionally abstracted <dmaap-abstraction>` is
+available. The *future* vision is
 that you would publish your data as a series of files on HDFS, and DMD
 will pick them up and send them to the appropriate DMaaP feeds or
 directly when needed.
diff --git a/docs/sections/components/component-specification/common-specification.rst b/docs/sections/components/component-specification/common-specification.rst
index a29610f..ae846bd 100755
--- a/docs/sections/components/component-specification/common-specification.rst
+++ b/docs/sections/components/component-specification/common-specification.rst
@@ -11,6 +11,32 @@
 pointed out below. Elements that are very different, and described in
 the CDAP or Docker specific pages.
 
+.. _metaschema: 
+
+Meta Schema Definition
+----------------------
+
+The component specification is represented (and validated) against this
+`Component Spec json
+schema <https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/cli.git;a=blob;f=component-json-schemas/component-specification/dcae-cli-v1/component-spec-schema.json;h=27d0403af67eac00e03ab89437d5f07aa06fbee3;hb=HEAD>`__
+and described below:
+
+The “Meta Schema” implementation defines how component specification
+JSON schemas can be written to define user input. It is itself a JSON
+schema (thus it is a “meta schema”). It requires the name of the
+component entry, component type (either ‘cdap’ or ‘docker’) and a
+description under “self” object. The meta schema version must be
+specified as the value of the “version” key. Then the input schema
+itself is described.
+
+There are four types of schema descriptions objects - jsonschema for
+inline standard JSON Schema definitions of JSON inputs, delimitedschema
+for delimited data input using a JSON description defined by AT&T,
+unstructured for unstructured text, and reference that allows a pointer
+to another artifact for a schema. The reference allows for XML and Protocol Buffer schema,
+but can be used as a pointer to JSON, Delimited Format, and Unstructured
+schemas as well.
+
 .. _metadata:
 
 Component Metadata
@@ -27,7 +53,7 @@
 
     "self": {
         "version": "1.0.0",
-        "name": "asimov.component.kpi_anomaly",
+        "name": "yourapp.component.kpi_anomaly",
         "description": "Classifies VNF KPI data as anomalous",
         "component_type": "docker"
     },
@@ -109,7 +135,9 @@
    feed, it could be a direct stream of data being routed via HTTP too.
    It abstractly refers to a sequence of data leaving a publisher.
 -  Streams have anonymous publish/subscribe semantics, which decouples
-   the production of information from its consumption.
+   the production of information from its consumption.  Like the component 
+   specification, the data format specification is represented/validated against this
+   `Data Format json schema <https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/cli.git;a=blob;f=component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json;h=be1568291300305c7adb9a8d244d39f9e6ddadbd;hb=HEAD>`__
 -  In general, components are not aware of who they are communicating
    with.
 -  Instead, components that are interested in data, subscribe to the
@@ -178,7 +206,7 @@
     ...
     }
 
-This describes that ``asimov.component.kpi_anomaly`` exposes an HTTP
+This describes that ``yourapp.component.kpi_anomaly`` exposes an HTTP
 endpoint called ``/data`` which accepts requests that have the data
 format of ``dcae.vnf.kpi`` version ``1.0.0``.
 
@@ -290,7 +318,7 @@
 to the provisioned feed. Developers must also provide a ``config_key``
 because there is dynamic configuration information associated with the
 feed that the application will need e.g. username and password. See the
-page on :doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+page on :any:`DMaaP connection objects <dmaap-data-router>` for more details on
 the configuration information.
 
 Example (not tied to the larger example):
@@ -318,16 +346,16 @@
     "streams": {
     ...
         "publishes": [{
-            "format": "asimov.format.integerClassification",
+            "format": "yourapp.format.integerClassification",
             "version": "1.0.0",
             "config_key": "prediction",
             "type": "http"
         }]
     },
 
-This describes that ``asimov.component.kpi_anomaly`` publishes by making
+This describes that ``yourapp.component.kpi_anomaly`` publishes by making
 POST requests to streams that support the data format
-``asimov.format.integerClassification`` version ``1.0.0``.
+``yourapp.format.integerClassification`` version ``1.0.0``.
 
 ``publishes`` Schema:
 
@@ -408,8 +436,8 @@
 Message router publishers are http clients of DMaap message_router.
 Developers must provide a ``config_key`` because there is dynamic
 configuration information associated with the feed that the application
-will need to receive e.g. topic url, username, password. See the page on
-:doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+needs to receive e.g. topic url, username, password. See the page on
+:any:`DMaaP connection objects <dmaap-message-router>` for more details on
 the configuration information.
 
 Example (not tied to the larger example):
@@ -435,7 +463,7 @@
 data router. Developers must also provide a ``config_key`` because there
 is dynamic configuration information associated with the feed that the
 application will need to receive e.g. publish url, username, password.
-See the page on :doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+See the page on :any:`DMaaP connection objects <dmaap-data-router>` for more details on
 the configuration information.
 
 Example (not tied to the larger example):
@@ -537,7 +565,7 @@
     ...
     }
 
-This describes that ``asimov.component.kpi_anomaly`` will make HTTP
+This describes that ``yourapp.component.kpi_anomaly`` will make HTTP
 calls to a downstream component that accepts requests of data format
 ``dcae.vnf.meta`` version ``1.0.0`` and is expecting the response to be
 ``dcae.vnf.kpi`` version ``1.0.0``.
@@ -649,17 +677,17 @@
                 "version": "1.0.0"
                 },
             "response": {
-                "format": "asimov.format.integerClassification",
+                "format": "yourapp.format.integerClassification",
                 "version": "1.0.0"
                 }
         }]
     },
 
-This describes that ``asimov.component.kpi_anomaly`` provides a service
+This describes that ``yourapp.component.kpi_anomaly`` provides a service
 interface and it is exposed on the ``/score-vnf`` HTTP endpoint. The
 endpoint accepts requests that have the data format ``dcae.vnf.meta``
 version ``1.0.0`` and gives back a response of
-``asimov.format.integerClassification`` version ``1.0.0``.
+``yourapp.format.integerClassification`` version ``1.0.0``.
 
 ``provides`` Schema for a Docker component:
 
@@ -807,6 +835,8 @@
 |             |    | ‘POST’    |
 +-------------+----+-----------+
 
+.. _common-specification-parameters:
+
 Parameters
 ----------
 
@@ -926,7 +956,7 @@
 |              |    | at this  |      |
 |              |    | time     |      |
 +--------------+----+----------+------+
-| designer_ed\ | bo\| An       | true |
+| designer_ed\ | bo\| An       |      |
 | itable       | ol\| optional |      |
 |              | ea\| key that |      |
 |              | n  | declares |      |
@@ -941,8 +971,8 @@
 |              |    | or not   |      |
 |              |    | (false)  |      |
 +--------------+----+----------+------+
-| sourced_at_d\| bo\| An       | fals\|
-| eployment    | ol\| optional | e    |
+| sourced_at_d\| bo\| An       |      |
+| eployment    | ol\| optional |      |
 |              | ea\| key that |      |
 |              | n  | declares |      |
 |              |    | a        |      |
@@ -957,7 +987,7 @@
 |              |    | time     |      |
 |              |    | (true)   |      |
 +--------------+----+----------+------+
-| policy_edit\ | bo\| An       | true |
+| policy_edit\ | bo\| An       |      |
 | able         | ol\| optional |      |
 |              | ea\| key that |      |
 |              | n  | declares |      |
@@ -1374,23 +1404,8 @@
 Generated Application Configuration
 -----------------------------------
 
-The above example for component ``asimov.component.kpi_anomaly`` will
-get transformed into the following application configuration JSON that
-is fully resolved and provided at runtime by calling the
-``config binding service``:
+The Platform generates configuration for the component (based on the component spec) at deployment time. The generated application configuration will be made up of the Parameters, Streams, and Services sections, after any provisioning for streams and services. The component developer can see what this configuration will look like by reviewing the :any:`component dev command <dcae-cli-run-the-dev-command>`.
 
-.. code:: json
-
-    {
-        "streams_publishes": {
-            "prediction": ["10.100.1.100:32567"]
-        },
-        "streams_subscribes": {},
-        "threshold": 0.75,
-        "services_calls": {
-            "vnf-db": ["10.100.1.101:32890"]
-        }
-    }
 
 .. _artifacts:
 
@@ -1416,3 +1431,12 @@
 +---------------+--------+--------------------------------------------+
 | type          | string | *Required*. ``docker image`` or ``jar``    |
 +---------------+--------+--------------------------------------------+
+
+.. _component_spec:
+
+Working with Component Specs
+============================
+ 
+Components can be added to the onboarding catalog (which first validates the component spec) by using the :doc:`dcae_cli Tool <../dcae-cli/quickstart/>` 
+Here you can also list the components, show the contents of a component, publish the component, validate the generated configuration for the component, deploy (run) and undeploy the component. For a list of these capabilities, see :any:`Component Commands <dcae_cli_component_commands>`
+
diff --git a/docs/sections/components/component-specification/component-specification.rst b/docs/sections/components/component-specification/component-specification.rst
index 759f3dc..56649d3 100644
--- a/docs/sections/components/component-specification/component-specification.rst
+++ b/docs/sections/components/component-specification/component-specification.rst
@@ -10,7 +10,7 @@
    ./common-specification.rst
    ./cdap-specification.rst
    ./docker-specification.rst
-   ./generated-configuration.rst
+   ./dmaap-connection-objects.rst
    ./streams-grid.rst
    ./configuration-grid.rst
 
diff --git a/docs/sections/components/component-specification/configuration-grid.rst b/docs/sections/components/component-specification/configuration-grid.rst
index 956e1ff..da9b4ab 100755
--- a/docs/sections/components/component-specification/configuration-grid.rst
+++ b/docs/sections/components/component-specification/configuration-grid.rst
@@ -4,312 +4,118 @@
 Configuration Quick Reference
 =============================
 
-The following types of configuration are supported by the DCAE Platform.
+Default Values
+^^^^^^^^^^^^^^
 
-+---------+---------+----------+---------+-----------+---+
-| Input   | Default | Designer | Clamp   | Policy    | R\|
-| Sources | Values  | Input    | Input   | Input     | u\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | m\|
-|         |         |          |         |           | e |
-|         |         |          |         |           | I\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | p\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | t |
-+=========+=========+==========+=========+===========+===+
-| Notes   |         | This     | This    |           |   |
-|         |         | applies  | applies |           |   |
-|         |         | only to  | only to |           |   |
-|         |         | componen\| compone\|           |   |
-|         |         | ts       | nts     |           |   |
-|         |         | that are | that    |           |   |
-|         |         | self-ser\| are     |           |   |
-|         |         | vice     | part of |           |   |
-|         |         | (support\| a       |           |   |
-|         |         | ed       | closed-\|           |   |
-|         |         | by SDC)  | loop    |           |   |
-|         |         |          | interfa\|           |   |
-|         |         |          | ce      |           |   |
-+---------+---------+----------+---------+-----------+---+
-| Who     | Compone\| Service  | CLAMP   | Operatio\ | R\|
-| provide\| nt      | Designer |         | ns        | u\|
-| s?      | Develop |          |         |           | n\|
-|         | er      |          |         |           | t\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | m\|
-|         |         |          |         |           | e |
-|         |         |          |         |           | P\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | f\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | m |
-+---------+---------+----------+---------+-----------+---+
-| When/Wh\| During  | At       | At      | Anytime   | W\|
-| ere     | onboard\| design   | install\| – in the  | h\|
-| it is   | ing     | time –   | ation   | POLICY    | e\|
-| provide | – in    | in the   | – in    | GUI       | n |
-| d       | the     | SDC UI   | the     |           | t\|
-|         | compone\|          | CLAMP   |           | h\|
-|         | nt      |          | UI      |           | e |
-|         | specifi\|          |         |           | c\|
-|         | cation  |          |         |           | o\|
-|         |         |          |         |           | m\|
-|         |         |          |         |           | p\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | i\|
-|         |         |          |         |           | s |
-|         |         |          |         |           | d\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | p\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | y\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | d |
-+---------+---------+----------+---------+-----------+---+
-| Compone\| For     | ‘designe\|         | ‘policy-\ | ‘\|
-| nt      | CDAP:   | r-editab\|         | editable\ | s\|
-| Specifi\| ‘value’ | le’      |         | ’         | o\|
-| cation  | Name    | must be  |         | must be   | u\|
-| Details | and KV  | set to   |         | set to    | r\|
-|         | pairs   | ‘true’   |         | ‘true’    | c\|
-|         | in      | for      |         | and       | e\|
-|         | AppConf\| variable |         | ‘policy_s\| d\|
-|         | ig      | in       |         | chema’    | _\|
-|         | or      | ‘paramet\|         | must be   | a\|
-|         | AppPref\| er’      |         | provided  | t\|
-|         | erences | section. |         | for       | _\|
-|         | For     |          |         | variable  | \ |
-|         | Docker: |          |         | in        | d\|
-|         | ‘value’ |          |         | ‘paramet\ | e\|
-|         | is      |          |         | er’       | p\|
-|         | provide |          |         | section   | l\|
-|         | d       |          |         |           | o\|
-|         | for     |          |         |           | y\|
-|         | variabl\|          |         |           | m\|
-|         | e       |          |         |           | e\|
-|         | in      |          |         |           | n\|
-|         | ‘parame\|          |         |           | t\|
-|         | ter’    |          |         |           | ’ |
-|         | section |          |         |           | m\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | s\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | b\|
-|         |         |          |         |           | e |
-|         |         |          |         |           | s\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | t\|
-|         |         |          |         |           | o |
-|         |         |          |         |           | ‘\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | e |
-|         |         |          |         |           | ’\|
-|         |         |          |         |           | f\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | r |
-|         |         |          |         |           | v\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | b\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | ‘ |
-|         |         |          |         |           | p\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | m\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | ’ |
-|         |         |          |         |           | s\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | c\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | n |
-+---------+---------+----------+---------+-----------+---+
+The component developer can provide default values for any ``parameter``
+in the component specification. These defaults will be passed to the
+component in its generated configuration.
 
-+---------+---------+----------+---------+-----------+---+
-| How it  | This is | This     | This    | This      | T\|
-| is used | passed  | override\| overrid\| override\ | h\|
-|         | to the  | s        | es      | s         | i\|
-|         | compone\| any      | any     | any       | s |
-|         | nt      | values   | values  | values    | o\|
-|         | in the  | previous\| previou\| previous\ | v\|
-|         | generat\| ly       | sly     | ly        | e\|
-|         | ed      | set, but | set,    | set, but  | r\|
-|         | configu\| can be   | but can | can be    | r\|
-|         | ration  | overridd\| be      | overridd\ | i\|
-|         | if not  | en       | overrid\| en        | d\|
-|         | overrid\| by CLAMP | den     | at any    | e\|
-|         | den.    | or       | by      | point     | s |
-|         |         | POLICY.  | POLICY. | thereaft\ | a\|
-|         |         |          |         | er.       | n\|
-|         |         |          |         |           | y |
-|         |         |          |         |           | v\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | s |
-|         |         |          |         |           | p\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | v\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | s\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | y |
-|         |         |          |         |           | s\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | , |
-|         |         |          |         |           | b\|
-|         |         |          |         |           | u\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | c\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | n |
-|         |         |          |         |           | b\|
-|         |         |          |         |           | e |
-|         |         |          |         |           | o\|
-|         |         |          |         |           | v\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | d\|
-|         |         |          |         |           | d\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | n |
-|         |         |          |         |           | a\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | a\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | y |
-|         |         |          |         |           | p\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | n\|
-|         |         |          |         |           | t |
-|         |         |          |         |           | t\|
-|         |         |          |         |           | h\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | r\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | a\|
-|         |         |          |         |           | f\|
-|         |         |          |         |           | t\|
-|         |         |          |         |           | e\|
-|         |         |          |         |           | r |
-|         |         |          |         |           | b\|
-|         |         |          |         |           | y |
-|         |         |          |         |           | P\|
-|         |         |          |         |           | o\|
-|         |         |          |         |           | l\|
-|         |         |          |         |           | i\|
-|         |         |          |         |           | c\|
-|         |         |          |         |           | y\|
-|         |         |          |         |           | . |
-+---------+---------+----------+---------+-----------+---+
-| Additio\| For     |          |         | For       |   |
-| nal     | CDAP:   |          |         | Docker:   |   |
-| Info    | ‘value’ |          |         | In the    |   |
-| for     | is      |          |         | auxiliar\ |   |
-| Compone\| provide\|          |         | y         |   |
-| nt      | d       |          |         | section:  |   |
-| Develop\| for     |          |         | {“policy  |   |
-| er      | variabl\|          |         | ”:        |   |
-|         | e       |          |         | {“trigge\ |   |
-|         | in the  |          |         | r_type”:  |   |
-|         | ‘AppCon\|          |         | “policy”  |   |
-|         | fig’    |          |         | ,“script\ |   |
-|         | or      |          |         | _path”:   |   |
-|         | ‘AppPre\|          |         | “/opt/ap\ |   |
-|         | ference\|          |         | p/reconf\ |   |
-|         | s’      |          |         | igure.sh\ |   |
-|         | section\|          |         | ”}        |   |
-|         | s       |          |         | } Script  |   |
-|         | For     |          |         | interfac\ |   |
-|         | Docker: |          |         | e         |   |
-|         | ‘value’ |          |         | must be   |   |
-|         | is      |          |         | “opt/app\ |   |
-|         | provide\|          |         | /reconfi\ |   |
-|         | d       |          |         | gure.sh”  |   |
-|         | for     |          |         | $trigger\ |   |
-|         | variabl\|          |         | _type     |   |
-|         | e       |          |         | $updated\ |   |
-|         | in      |          |         | _policie\ |   |
-|         | ‘parame\|          |         | s         |   |
-|         | ter’    |          |         | $updated\ |   |
-|         | section |          |         | _appl_co\ |   |
-|         |         |          |         | nfig"     |   |
-|         |         |          |         | where     |   |
-|         |         |          |         | $updated\ |   |
-|         |         |          |         | _policie\ |   |
-|         |         |          |         | s         |   |
-|         |         |          |         | is a      |   |
-|         |         |          |         | json      |   |
-|         |         |          |         | provided  |   |
-|         |         |          |         | by the    |   |
-|         |         |          |         | Policy    |   |
-|         |         |          |         | Handler   |   |
-|         |         |          |         | and       |   |
-|         |         |          |         | $update_a\|   |
-|         |         |          |         | ppl_con\  |   |
-|         |         |          |         | fig       |   |
-|         |         |          |         | is the    |   |
-|         |         |          |         | post-mer\ |   |
-|         |         |          |         | ged       |   |
-|         |         |          |         | appl\     |   |
-|         |         |          |         | config    |   |
-|         |         |          |         | which     |   |
-|         |         |          |         | may       |   |
-|         |         |          |         | contain   |   |
-|         |         |          |         | unresolv\ |   |
-|         |         |          |         | ed        |   |
-|         |         |          |         | configur\ |   |
-|         |         |          |         | ation     |   |
-|         |         |          |         | that      |   |
-|         |         |          |         | didn’t    |   |
-|         |         |          |         | come      |   |
-|         |         |          |         | from      |   |
-|         |         |          |         | policy.   |   |
-|         |         |          |         | Suggesti\ |   |
-|         |         |          |         | on        |   |
-|         |         |          |         | is for    |   |
-|         |         |          |         | script    |   |
-|         |         |          |         | to call   |   |
-|         |         |          |         | CONFIG    |   |
-|         |         |          |         | BINDING   |   |
-|         |         |          |         | SERVICE   |   |
-|         |         |          |         | to        |   |
-|         |         |          |         | resolve   |   |
-|         |         |          |         | any       |   |
-|         |         |          |         | configur\ |   |
-|         |         |          |         | ation.    |   |
-+---------+---------+----------+---------+-----------+---+
+Overridden/Entered Values
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Depending on the other properties set for the parameter, the default
+value can be overridden at ‘design-time’, ‘deploy-time’ or once the
+microservice is running (‘run-time’). (*In the future, when Policy is
+supported, configuration will also be able to be provided/changed in the
+Policy UI at any time).*
+
+
++--------+--------+--------+--------+------------+
+|        | Design\| CLAMP  | Policy | Deploy-Time|
+|        | -Time  | Input  | Input  | Input      |
+|        | Input  |        | (futur\|            |
+|        |        |        | e)     |            |
++========+========+========+========+============+
+| Descri\| Applie\| Applie\| (not   | Applies to |
+| ption  | s      | s      | yet    | manually   |
+|        | to SDC | to     | suppor\| deployed   |
+|        | self-s\| compon\| ted)   | services   |
+|        | ervice | ents   |        |            |
+|        | compon\| deploy\|        |            |
+|        | ents   | ed     |        |            |
+|        |        | by     |        |            |
+|        |        | CLAMP  |        |            |
++--------+--------+--------+--------+------------+
+| Input  | Servic\| CLAMP  | Operat\| DevOps     |
+| provid\| e      |        | ions   |            |
+| ed     | Design |        |        |            |
+| by     | er     |        |        |            |
++--------+--------+--------+--------+------------+
+| How it | In the | In the | In the | In the DCAE|
+| is     | SDC UI | CLAMP  | POLICY | Dashboard  |
+| provid\|        | UI     | GUI    | (or Jenkins|
+| ed     |        |        |        | job)       |
++--------+--------+--------+--------+------------+
+| Compon\| ‘desig\| None.  | ‘polic\| ‘sourced\  |
+| ent    | ner-ed\| Develo\| y_edit\| _at_deploy\|
+| Specif\| itable\| per    | able’  | ment’ must |
+| icatio\| ’      | provid\| must   | be set to  |
+| n      | set to | es     | be set | ‘true’     |
+| Detail\| ‘true’ | CLAMP  | to     |            |
+| s      |        | an     | ‘true’ |            |
+|        |        | email  | and    |            |
+|        |        | with   | ‘polic\|            |
+|        |        | parame\| y_sche\|            |
+|        |        | ters   | ma’    |            |
+|        |        | to be  | must   |            |
+|        |        | suppor\| be     |            |
+|        |        | ted    | provid\|            |
+|        |        |        | ed     |            |
+|        |        |        |        |            |
+|        |        |        |        |            |
++--------+--------+--------+--------+------------+
+| Additi\|        |        | For    |            |
+| onal   |        |        | Docker |            |
+| Info   |        |        | only:  |            |
+| for    |        |        | In the |            |
+| Compon\|        |        | auxili\|            |
+| ent    |        |        | ary    |            |
+| Develo\|        |        | sectio\|            |
+| per    |        |        | n:     |            |
+|        |        |        | {“poli\|            |
+|        |        |        | cy”:   |            |
+|        |        |        | {“trig\|            |
+|        |        |        | ger_ty\|            |
+|        |        |        | pe”:   |            |
+|        |        |        | “polic\|            |
+|        |        |        | y”,“sc\|            |
+|        |        |        | ript_p\|            |
+|        |        |        | ath”:  |            |
+|        |        |        | “/opt/\|            |
+|        |        |        | app/re\|            |
+|        |        |        | config\|            |
+|        |        |        | ure.sh |            |
+|        |        |        | ”}     |            |
+|        |        |        | }      |            |
+|        |        |        | Script |            |
+|        |        |        | interf\|            |
+|        |        |        | ace    |            |
+|        |        |        | would  |            |
+|        |        |        | then   |            |
+|        |        |        | be     |            |
+|        |        |        | “/opt/\|            |
+|        |        |        | app/re\|            |
+|        |        |        | config\|            |
+|        |        |        | ure.sh |            |
+|        |        |        | ”      |            |
+|        |        |        | $trigg\|            |
+|        |        |        | er_typ\|            |
+|        |        |        | e      |            |
+|        |        |        | $updat\|            |
+|        |        |        | ed_pol\|            |
+|        |        |        | icy"   |            |
+|        |        |        | where  |            |
+|        |        |        | $updat\|            |
+|        |        |        | ed_pol\|            |
+|        |        |        | icy    |            |
+|        |        |        | is     |            |
+|        |        |        | json   |            |
+|        |        |        | provid\|            |
+|        |        |        | ed     |            |
+|        |        |        | by the |            |
+|        |        |        | Policy |            |
+|        |        |        | Handle\|            |
+|        |        |        | r.     |            |
++--------+--------+--------+--------+------------+
+
diff --git a/docs/sections/components/component-specification/dmaap-connection-objects.rst b/docs/sections/components/component-specification/dmaap-connection-objects.rst
new file mode 100755
index 0000000..dfd4980
--- /dev/null
+++ b/docs/sections/components/component-specification/dmaap-connection-objects.rst
@@ -0,0 +1,276 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _dmaap-connection-objects:
+
+DMaaP connection objects
+========================
+
+DMaaP Connection Objects are JSON objects that:
+
+1. At Runtime - this is generated by the DCAE Platform and passed to the
+   component in its application_configuration to be used to connect to
+   the DMaaP feed or topic. Components will receive the entire object
+   with all properties populated (default will be \`null) unless
+   specified otherwise.
+2. During dcae_cli testing - this is provided through the command-line
+   argument ``--dmaap-file`` to test the component with manually
+   provisioned feeds and topics. Developers are not required to provide
+   the entire object. The required properties are labeled below with
+   “*Required as input*”.
+
+.. _dmaap-message-router:
+
+Message Router
+--------------
+
+Publishers and subscribers have the same generated
+``Dmaap Connection Object`` structure. Here’s an example for any given
+config-key: (This is what will be in application_configuration)
+
+.. code:: json
+
+    {
+        "type": "message_router",
+        "aaf_username": "some-user",
+        "aaf_password": "some-password",
+        "dmaap_info": {
+            "client_role": "com.dcae.member",
+            "client_id": "1500462518108",
+            "location": "mtc00",
+            "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
+        }
+    }
+
+At the top-level:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| type                           | string  | *Required as input*. Must |
+|                                |         | be ``message_router`` for |
+|                                |         | message router topics     |
++--------------------------------+---------+---------------------------+
+| aaf_username                   | string  | AAF username message      |
+|                                |         | router clients use to     |
+|                                |         | authenticate with secure  |
+|                                |         | topics                    |
++--------------------------------+---------+---------------------------+
+| aaf_password                   | string  | AAF password message      |
+|                                |         | router clients use to     |
+|                                |         | authenticate with secure  |
+|                                |         | topics                    |
++--------------------------------+---------+---------------------------+
+| dmaap_info                     | JSON    | *Required as input*.      |
+|                                | object  | Contains the topic        |
+|                                |         | connection details        |
++--------------------------------+---------+---------------------------+
+
+The ``dmaap_info`` object contains:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| client_role                    | string  | AAF client role that’s    |
+|                                |         | requesting publish or     |
+|                                |         | subscribe access to the   |
+|                                |         | topic                     |
++--------------------------------+---------+---------------------------+
+| client_id                      | string  | Client id for given AAF   |
+|                                |         | client                    |
++--------------------------------+---------+---------------------------+
+| location                       | string  | DCAE location for the     |
+|                                |         | publisher or subscriber,  |
+|                                |         | used to set up routing    |
++--------------------------------+---------+---------------------------+
+| topic_url                      | string  | *Required as input*. URL  |
+|                                |         | for accessing the topic   |
+|                                |         | to publish or receive     |
+|                                |         | events                    |
++--------------------------------+---------+---------------------------+
+
+The –dmaap-file argument (to the component ``run`` or ``dev`` command),
+must minimally contain:
+
+.. code:: json
+
+    {
+        "type": "message_router",
+        "dmaap_info": {
+            "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
+        }
+    }
+
+.. _dmaap-data-router:
+
+Data Router
+-----------
+
+Publisher
+~~~~~~~~~
+
+Here’s an example of what the generated ``Dmaap Connection Object`` for
+Data Router Publisher looks like: (This is what will be in
+application_configuration)
+
+.. code:: json
+
+    {
+        "type": "data_router",
+        "dmaap_info": {
+            "location": "mtc00",
+            "publish_url": "https://we-are-data-router.us/feed/xyz",
+            "log_url": "https://we-are-data-router.us/feed/xyz/logs",
+            "username": "some-user",
+            "password": "some-password",
+            "publisher_id": "123456"
+        } 
+    }
+
+At the top-level:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| type                           | string  | *Required as input*. Must |
+|                                |         | be ``data_router`` for    |
+|                                |         | data router feeds         |
++--------------------------------+---------+---------------------------+
+| dmaap_info                     | JSON    | *Required as input*.      |
+|                                | object  | Contains the feed         |
+|                                |         | connection details        |
++--------------------------------+---------+---------------------------+
+
+The ``dmaap_info`` object contains:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| location                       | string  | DCAE location for the     |
+|                                |         | publisher, used to set up |
+|                                |         | routing                   |
++--------------------------------+---------+---------------------------+
+| publish_url                    | string  | *Required as input*. URL  |
+|                                |         | to which the publisher    |
+|                                |         | makes Data Router publish |
+|                                |         | requests                  |
++--------------------------------+---------+---------------------------+
+| log_url                        | string  | URL from which log data   |
+|                                |         | for the feed can be       |
+|                                |         | obtained                  |
++--------------------------------+---------+---------------------------+
+| username                       | string  | Username the publisher    |
+|                                |         | uses to authenticate to   |
+|                                |         | Data Router               |
++--------------------------------+---------+---------------------------+
+| password                       | string  | Password the publisher    |
+|                                |         | uses to authenticate to   |
+|                                |         | Data Router               |
++--------------------------------+---------+---------------------------+
+| publisher_id                   | string  | Publisher id in Data      |
+|                                |         | Router                    |
++--------------------------------+---------+---------------------------+
+
+The –dmaap-file argument (to the component ``run`` or ``dev`` command),
+must minimally contain:
+
+.. code:: json
+
+    {
+        "type": "data_router",
+        "dmaap_info": {
+            "publish_url": "https://we-are-data-router.us/feed/xyz"
+        }
+    }
+
+Subscriber
+~~~~~~~~~~
+
+Here’s an example of what the generated ``Dmaap Connection Object`` for
+a Data Router Subscriber looks like: (This is what will be passed in
+application_configuration)
+
+.. code:: json
+
+    {
+        "type": "data_router",
+        "dmaap_info": {
+            "location": "mtc00",
+            "delivery_url": "https://my-subscriber-app.dcae:8080/target-path",
+            "username": "some-user",
+            "password": "some-password",
+            "subscriber_id": "789012"
+        } 
+    }
+
+At the top-level:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| type                           | string  | *Required as input*. Must |
+|                                |         | be ``data_router`` for    |
+|                                |         | data router feeds         |
++--------------------------------+---------+---------------------------+
+| dmaap_info                     | JSON    | *Required as input*.      |
+|                                | object  | Contains the feed         |
+|                                |         | connection details        |
++--------------------------------+---------+---------------------------+
+
+The ``dmaap_info`` object contains:
+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| location                       | string  | DCAE location for the     |
+|                                |         | subscriber, used to set   |
+|                                |         | up routing                |
++--------------------------------+---------+---------------------------+
+| delivery_url                   | string  | URL to which the Data     |
+|                                |         | Router should deliver     |
+|                                |         | files                     |
++--------------------------------+---------+---------------------------+
+| username                       | string  | Username Data Router uses |
+|                                |         | to authenticate to the    |
+|                                |         | subscriber when           |
+|                                |         | delivering files          |
++--------------------------------+---------+---------------------------+
+| password                       | string  | Password Data Router uses |
+|                                |         | to authenticate to the    |
+|                                |         | subscriber when           |
+|                                |         | delivering files          |
++--------------------------------+---------+---------------------------+
+| subscriber_id                  | string  | Subscriber id in Data     |
+|                                |         | Router                    |
++--------------------------------+---------+---------------------------+
+
+The –dmaap-file argument (to the component ``run`` or ``dev`` command),
+must minimally contain:
+
+.. code:: json
+
+    {
+        "type": "data_router",
+        "dmaap_info": {
+        }
+    }
+
+It is the recommended security practice that ``username`` and
+``password`` are specified. You cannot provide the ``delivery_url`` in
+your dmaap-file, because it’s not constructed until deployment time.
+Therefore, after the test deployment, go back to the Data Router Feed
+and provide the delivery_url (in order to start receiving the feeds).
+
+Data Router Example
+~~~~~~~~~~~~~~~~~~~
+
+(After the Data Router feed has been manually provisioned)
+
+::
+
+    $ dcae_cli component run --dmaap-file $dmaap_file $component-name
+    DCAE.Run | WARNING | Your component is a data router subscriber. Here are the delivery urls:
+
+            some-sub-dr: http://135.205.226.128:32838/identity
+
+(Update the Data Router Feed to provide the delivery_url).
diff --git a/docs/sections/components/component-specification/docker-specification.rst b/docs/sections/components/component-specification/docker-specification.rst
index 38612e1..01e1153 100755
--- a/docs/sections/components/component-specification/docker-specification.rst
+++ b/docs/sections/components/component-specification/docker-specification.rst
@@ -23,58 +23,38 @@
 -----------------
 
 ``auxiliary`` contains Docker specific details like health check, port
-mapping, volume mapping, and policy reconfiguration script details.
+mapping, volume mapping and policy reconfiguration script details.
+(Policy reconfiguration is not yet supported).
 
-+-------------+----+----------+
-| Name        | Ty\| Descript\|
-|             | pe | ion      |
-+=============+====+==========+
-| healthcheck | JS\| *Require\|
-|             | ON | d*.      |
-|             | ob\| Health   |
-|             | je\| check    |
-|             | ct | definiti\|
-|             |    | on       |
-|             |    | details  |
-+-------------+----+----------+
-| ports       | JS\| each     |
-|             | ON | array    |
-|             | ar\| item     |
-|             | ra\| maps a   |
-|             | y  | containe\|
-|             |    | r        |
-|             |    | port to  |
-|             |    | the host |
-|             |    | port.    |
-|             |    | See      |
-|             |    | example  |
-|             |    | below.   |
-+-------------+----+----------+
-| volume      | JS\| each     |
-|             | ON | array    |
-|             | ar\| item     |
-|             | ra\| contains |
-|             | y  | a host   |
-|             |    | and      |
-|             |    | containe\|
-|             |    | r        |
-|             |    | object.  |
-|             |    | See      |
-|             |    | example  |
-|             |    | below.   |
-+-------------+----+----------+
-| policy      | JS\| *Require\|
-|             | ON | d*.      |
-|             | ar\| Policy   |
-|             | ra\| script   |
-|             | y  | details  |
-+-------------+----+----------+
++--------------------------------+---------+---------------------------+
+| Name                           | Type    | Description               |
++================================+=========+===========================+
+| healthcheck                    | JSON    | *Required*. Health check  |
+|                                | object  | definition details        |
++--------------------------------+---------+---------------------------+
+| ports                          | JSON    | each array item maps a    |
+|                                | array   | container port to the     |
+|                                |         | host port. See example    |
+|                                |         | below.                    |
++--------------------------------+---------+---------------------------+
+| volume                         | JSON    | each array item contains  |
+|                                | array   | a host and container      |
+|                                |         | object. See example       |
+|                                |         | below.                    |
++--------------------------------+---------+---------------------------+
+| *Planned for 1806*             |         |                           |
++--------------------------------+---------+---------------------------+
+| policy                         | JSON    | *Required*. Policy        |
+|                                | array   | reconfiguration script    |
+|                                |         | details                   |
++--------------------------------+---------+---------------------------+
 
 Health Check Definition
 ~~~~~~~~~~~~~~~~~~~~~~~
 
 The platform uses Consul to perform periodic health check calls. Consul
-provides different types of `check definitions <https://www.consul.io/docs/agent/checks.html>`_. The
+provides different types of `check
+definitions <https://www.consul.io/docs/agent/checks.html>`__. The
 platform currently supports http and docker health checks.
 
 When choosing a value for interval, consider that too frequent
@@ -85,47 +65,28 @@
 
 When choosing a value for timeout, consider that too small a number will
 result in increasing timeout failures, and too large a number will
-result in a delay in the notification of resource problem. A suggestion
-is to start with 5s and workd from there.
+result in a delay in the notification of the resource problem. A
+suggestion is to start with 5s and work from there.
 
 http
 ^^^^
 
-+-------------+----+----------+
-| Property    | Ty\| Descript\|
-| Name        | pe | ion      |
-+=============+====+==========+
-| type        | st\| *Require\|
-|             | ri\| d*.      |
-|             | ng | ``http`` |
-+-------------+----+----------+
-| interval    | st\| Interval |
-|             | ri\| duration |
-|             | ng | in       |
-|             |    | seconds  |
-|             |    | i.e.     |
-|             |    | ``60s``  |
-+-------------+----+----------+
-| timeout     | st\| Timeout  |
-|             | ri\| in       |
-|             | ng | seconds  |
-|             |    | i.e.     |
-|             |    | ``5s``   |
-+-------------+----+----------+
-| endpoint    | st\| *Require\|
-|             | ri\| d*.      |
-|             | ng | GET      |
-|             |    | endpoint |
-|             |    | provided |
-|             |    | by the   |
-|             |    | componen\|
-|             |    | t        |
-|             |    | for      |
-|             |    | Consul   |
-|             |    | to call  |
-|             |    | to check |
-|             |    | health   |
-+-------------+----+----------+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| type                           | string  | *Required*. ``http``      |
++--------------------------------+---------+---------------------------+
+| interval                       | string  | Interval duration in      |
+|                                |         | seconds i.e. ``60s``      |
++--------------------------------+---------+---------------------------+
+| timeout                        | string  | Timeout in seconds i.e.   |
+|                                |         | ``5s``                    |
++--------------------------------+---------+---------------------------+
+| endpoint                       | string  | *Required*. GET endpoint  |
+|                                |         | provided by the component |
+|                                |         | for Consul to call to     |
+|                                |         | check health              |
++--------------------------------+---------+---------------------------+
 
 Example:
 
@@ -143,43 +104,25 @@
 docker script example
 ^^^^^^^^^^^^^^^^^^^^^
 
-+-------------+----+------------+
-| Property    | Ty\| Descript\  |
-| Name        | pe | ion        |
-+=============+====+============+
-| type        | st\| *Require\  |
-|             | ri\| d*.        |
-|             | ng | ``docker`` |
-+-------------+----+------------+
-| interval    | st\| Interval   |
-|             | ri\| duration   |
-|             | ng | in         |
-|             |    | seconds    |
-|             |    | i.e.       |
-|             |    | ``15s``    |
-+-------------+----+------------+
-| timeout     | st\| Timeout    |
-|             | ri\| in         |
-|             | ng | seconds    |
-|             |    | i.e.       |
-|             |    | ``1s``     |
-+-------------+----+------------+
-| script      | st\| *Require\  |
-|             | ri\| d*.        |
-|             | ng | Full       |
-|             |    | path of    |
-|             |    | script     |
-|             |    | that       |
-|             |    | exists     |
-|             |    | in the     |
-|             |    | Docker     |
-|             |    | containe\  |
-|             |    | r          |
-|             |    | to be      |
-|             |    | executed   |
-+-------------+----+------------+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| type                           | string  | *Required*. ``docker``    |
++--------------------------------+---------+---------------------------+
+| interval                       | string  | Interval duration in      |
+|                                |         | seconds i.e. ``15s``      |
++--------------------------------+---------+---------------------------+
+| timeout                        | string  | Timeout in seconds i.e.   |
+|                                |         | ``1s``                    |
++--------------------------------+---------+---------------------------+
+| script                         | string  | *Required*. Full path of  |
+|                                |         | script that exists in the |
+|                                |         | Docker container to be    |
+|                                |         | executed                  |
++--------------------------------+---------+---------------------------+
 
-Consul will use the `Docker exec API <https://docs.docker.com/engine/api/v1.29/#tag/Exec>`_ to
+Consul will use the `Docker exec
+API <https://docs.docker.com/engine/api/v1.29/#tag/Exec>`__ to
 periodically call your script in your container. It will examine the
 script result to identify whether your component is healthy. Your
 component is considered healthy when the script returns ``0`` otherwise
@@ -201,6 +144,13 @@
 Ports
 ~~~~~
 
+This method of exposing/mapping a local port to a host port is NOT
+RECOMMENDED because of the possibility of port conflicts. If multiple
+instances of a docker container will be running, there definitely will
+be port conflicts. Use at your own risk. (The preferred way to expose a
+port is to do so in the Dockerfile as described
+:any:`here <dcae-cli-docker-ports>`).
+
 .. code:: json
 
     "auxilary": {
@@ -238,19 +188,19 @@
 
 The ``container`` object contains:
 
-+----------------------+----------------------+----------------------+
-| Property Name        | Type                 | Description          |
-+======================+======================+======================+
-| bind                 | string               | path to the          |
-|                      |                      | container volume     |
-+----------------------+----------------------+----------------------+
-| mode                 | string               | “ro” - indicates     |
-|                      |                      | read-only volume     |
-|                      |                      | “” - indicates that  |
-|                      |                      | the container can    |
-|                      |                      | write into the bind  |
-|                      |                      | mount                |
-+----------------------+----------------------+----------------------+
++-----------------------+-----------------------+-----------------------+
+| Property Name         | Type                  | Description           |
++=======================+=======================+=======================+
+| bind                  | string                | path to the container |
+|                       |                       | volume                |
++-----------------------+-----------------------+-----------------------+
+| mode                  | string                | “ro” - indicates      |
+|                       |                       | read-only volume      |
++-----------------------+-----------------------+-----------------------+
+|                       | “” - indicates that   |
+|                       | the contain can write |
+|                       | into the bind mount   |
++-----------------------+-----------------------+-----------------------+
 
 The ``host`` object contains:
 
@@ -280,39 +230,24 @@
 In the example above, the container volume “/tmp/docker.sock” maps to
 host volume “/var/run/docker.sock”.
 
-Policy
-~~~~~~
+
+Policy (not yet supported)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Policy changes made in the Policy UI will be provided to the Docker
 component by triggering a script that is defined here.
 
-+-------------+----+------------+
-| Property    | Ty\| Descript\  |
-| Name        | pe | ion        |
-+=============+====+============+
-| reconfigure | st\| *Require\  |
-| _type       | ri\| d*.        |
-|             | ng | Current    |
-|             |    | value      |
-|             |    | supporte   |
-|             |    | d          |
-|             |    | is         |
-|             |    | ``policy`` |
-+-------------+----+------------+
-| script_path | st\| *Require\  |
-|             | ri\| d*.        |
-|             | ng | Current    |
-|             |    | value      |
-|             |    | for        |
-|             |    | ‘policy’   |
-|             |    | reconfig\  |
-|             |    | ure_type   |
-|             |    | must be    |
-|             |    | “/opt/ap\  |
-|             |    | p/reconf\  |
-|             |    | igure.sh   |
-|             |    | ”          |
-+-------------+----+------------+
++--------------------------------+---------+---------------------------+
+| Property Name                  | Type    | Description               |
++================================+=========+===========================+
+| reconfigure_type               | string  | *Required*. Current value |
+|                                |         | supported is ``policy``   |
++--------------------------------+---------+---------------------------+
+| script_path                    | string  | *Required*. Current value |
+|                                |         | for ‘policy’              |
+|                                |         | reconfigure_type must be  |
+|                                |         | “/opt/app/reconfigure.sh” |
++--------------------------------+---------+---------------------------+
 
 Example:
 
@@ -328,59 +263,22 @@
 The docker script interface is as follows: \`/opt/app/reconfigure.sh
 $reconfigure_type {“updated policies”: , “application config”: }
 
-+-----+----+---------------------------+
-| Na\ | Ty\| Descript\                 |
-| me  | pe | ion                       |
-+=====+====+===========================+
-| re\ | st\| “policy”                  |
-| co\ | ri\|                           |
-| nf\ | ng |                           |
-| ig\ |    |                           |
-| ur\ |    |                           |
-| e_t\|    |                           |
-| y\  |    |                           |
-| pe\ |    |                           |
-+-----+----+---------------------------+
-| up\ | js\| TBD                       |
-| da\ | on |                           |
-| te\ |    |                           |
-| d_p\|    |                           |
-| o\  |    |                           |
-| li\ |    |                           |
-| ci\ |    |                           |
-| es  |    |                           |
-+-----+----+---------------------------+
-| up\ | js\| complete                  |
-| da\ | on | generate\                 |
-| te\ |    | d                         |
-| d_a\|    | app_conf\                 |
-| p\  |    | ig,                       |
-| pl\ |    | not                       |
-| _c\ |    | fully-re\                 |
-| on\ |    | solved,                   |
-| fi\ |    | but                       |
-| g   |    | ``policy-enabled``        |
-|     |    | paramete\                 |
-|     |    | rs                        |
-|     |    | have                      |
-|     |    | been                      |
-|     |    | updated.                  |
-|     |    | In order                  |
-|     |    | to get                    |
-|     |    | the                       |
-|     |    | complete                  |
-|     |    | updated                   |
-|     |    | app_conf\                 |
-|     |    | ig,                       |
-|     |    | the                       |
-|     |    | componen\                 |
-|     |    | t                         |
-|     |    | would                     |
-|     |    | have to                   |
-|     |    | call                      |
-|     |    | ``config-binding-service``|
-|     |    | .                         |
-+-----+----+---------------------------+
++--------------+--------------+----------------------------------------+
+| Name         | Type         | Description                            |
++==============+==============+========================================+
+| reconfigure_ | string       | “policy”                               |
+| type         |              |                                        |
++--------------+--------------+----------------------------------------+
+| updated_poli | json         | TBD                                    |
+| cies         |              |                                        |
++--------------+--------------+----------------------------------------+
+| updated_appl | json         | complete generated app_config, not     |
+| _config      |              | fully-resolved, but ``policy-enabled`` |
+|              |              | parameters have been updated. In order |
+|              |              | to get the complete updated            |
+|              |              | app_config, the component would have   |
+|              |              | to call ``config-binding-service``.    |
++--------------+--------------+----------------------------------------+
 
 Docker Component Spec - Complete Example
 ----------------------------------------
@@ -390,7 +288,7 @@
     {
         "self": {
             "version": "1.0.0",
-            "name": "asimov.component.kpi_anomaly",
+            "name": "yourapp.component.kpi_anomaly",
             "description": "Classifies VNF KPI data as anomalous",
             "component_type": "docker"
         },
@@ -402,7 +300,7 @@
                 "type": "http"
             }],
             "publishes": [{
-                "format": "asimov.format.integerClassification",
+                "format": "yourapp.format.integerClassification",
                 "version": "1.0.0",
                 "config_key": "prediction",
                 "type": "http"
@@ -427,7 +325,7 @@
                     "version": "1.0.0"
                     },
                 "response": {
-                    "format": "asimov.format.integerClassification",
+                    "format": "yourapp.format.integerClassification",
                     "version": "1.0.0"
                     }
             }]
@@ -448,7 +346,7 @@
             }
         },
         "artifacts": [{
-            "uri": "fake.nexus.com/dcae/kpi_anomaly:1.0.0",
+            "uri": "fake.nexus.att.com/dcae/kpi_anomaly:1.0.0",
             "type": "docker image"
         }]
     }
diff --git a/docs/sections/components/component-specification/generated-configuration.rst b/docs/sections/components/component-specification/generated-configuration.rst
deleted file mode 100755
index ba5ae4a..0000000
--- a/docs/sections/components/component-specification/generated-configuration.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-.. _generated-configuration:
-
-Generated configuration
-=======================
-
-The DCAE platform relies on the component specification to generate the
-component’s application configuration JSON at deployment time. The
-component developer should expect to use this configuration JSON in
-their application to provision themselves.
-
-Pro-tip: As you build your component specification, you can use the
-:any:`dcae-cli dev command <walkthrough-dev>` to view what
-the resulting application configuration will look like.
-
-Streams and services
---------------------
-
-For both Docker and CDAP, when your component is deployed, any
-``streams`` and ``services/calls`` you specified will be injected into
-your configuration under the following well known structure. Your
-component is required to parse this information if you have any
-connectivity to DMaaP or are calling another DCAE component.
-
-More details about the DMaaP connection objects are found
-:doc:`here <../dcae-cli/dmaap-connection-objects>`.
-
-This is best served with an example.
-
-The following component spec snippet (from String Matching):
-
-::
-
-    "streams":{  
-        "subscribes": [{
-          "format": "VES_specification",  
-          "version": "4.27.2",    
-          "type": "message_router",
-          "config_key" : "mr_input"
-        }],
-        "publishes": [{
-          "format": "VES_specification",  
-          "version": "4.27.2",    
-          "config_key": "mr_output",
-          "type": "message_router"
-         }]
-      },
-      "services":{  
-        "calls": [{
-          "config_key" : "aai_broker_handle",
-          "verb": "GET",
-          "request": {
-            "format": "get_with_query_params",
-            "version": "1.0.0"
-          },
-          "response": {
-            "format": "aai_broker_response",
-            "version": "3.0.0"
-          } 
-        }],
-        "provides": []
-      },
-
-Will turn into the following top level keys in your configuration (for
-CDAP, this will be under AppConfig)
-
-::
-
-       "streams_publishes":{  
-          "mr_output":{                // notice the config key above
-             "aaf_password":"XXX",
-             "type":"message_router",
-             "dmaap_info":{  
-                "client_role": null,
-                "client_id": null,
-                "location": null,
-                "topic_url":"XXX"
-             },
-             "aaf_username":"XXX"
-          }
-       },
-       "streams_subscribes":{  
-          "mr_input":{                 // notice the config key above
-             "aaf_password":"XXX",
-             "type":"message_router",
-             "dmaap_info":{  
-                "client_role": null,
-                "client_id": null,
-                "location": null,
-                "topic_url":"XXX"
-             },
-             "aaf_username":"XXX"
-          }
-       },
-       "services_calls":{  
-          "aai_broker_handle":[        // notice the config key above
-             "SOME_IP:32768"   // based on deployment time, just an example
-          ]
-       }
-
-These keys will always be populated regardless of whether they are
-empty. So the minimal you will get, in the case of a component that
-provides an HTTP service and does not call any services and has no
-streams, is:
-
-::
-
-        "streams_publishes":{},
-        "streams_subscribes":{},
-        "services_calls":{}
-
-Thus your component should expect these well-known top level keys.
diff --git a/docs/sections/components/component-specification/start-here.rst b/docs/sections/components/component-specification/start-here.rst
deleted file mode 100755
index d3f5a12..0000000
--- a/docs/sections/components/component-specification/start-here.rst
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docs/sections/components/component-type-cdap.rst b/docs/sections/components/component-type-cdap.rst
index 0f5150f..f2dce6c 100755
--- a/docs/sections/components/component-type-cdap.rst
+++ b/docs/sections/components/component-type-cdap.rst
@@ -65,10 +65,7 @@
 Shown below is our *vision* for how DMaaP is abstracted from component
 developers:
 
-.. figure:: ../images/dmdvision.png
-   :alt: Screenshot
-
-   Screenshot
+.. figure:: ./images/dmdvision.png
 
 Today, this is a vision; it is not in place. Today, each CDAP app is
 built with built in assumptions about where they are getting their data
@@ -84,7 +81,7 @@
 hand—the analytic.
 
 This also allows each CDAP application to have a standard set of
-interfaces: HTTP and HDFS: |Screenshot|
+interfaces: HTTP and HDFS: 
 
-.. |Screenshot| image:: ../images/io.png
+.. figure::  ./images/io.png
 
diff --git a/docs/sections/components/component-type-docker.rst b/docs/sections/components/component-type-docker.rst
index 449e58a..bb6a5a7 100755
--- a/docs/sections/components/component-type-docker.rst
+++ b/docs/sections/components/component-type-docker.rst
@@ -13,36 +13,41 @@
 to be able to deploy your component including:
 
 -  :any:`Component specification <docker-specification>`
--  :doc:`Data formats <data-formats>`
--  :any:`Auxiliary component specification <docker-auxiliary-details>`
--  :any:`Docker image <docker-on-the-platform>`
+-  :any:`One or more Data Formats <data-formats>` \*unless they already exist
+-  `Docker image <#docker-on-the-platform>`__
 
 In addition, components will have to be enhanced to be compliant with
 the DCAE platform in order to correctly be deployed and be managed. This
 page will discuss the changes which are grouped into the following
 categories:
 
--  :any:`Service registration <service-registration>`
--  :any:`Configuration management on the new platform <docker-configuration>`
--  :any:`Operational concerns <operational-concerns>`
+-  `Service Registration <#service-registration>`__
+-  `Configuration management on the new platform <#configuration-management>`__
+-  `Docker on the Platform <#docker-on-the-platform>`__
+-  `Operational concerns <#operational-concerns>`__
+
+Additional considerations are:
+
+-  `Policy Reconfiguration <#policy-reconfiguration>`__
 
 To help component developers to make and to test the changes needed to
 have components run on the platform, a command-line tool called
 :doc:`dcae-cli <dcae-cli/quickstart>` is provided by the platform team.
+(Testing withing the dcae_cli tool is not yet available for Policy).
 
-.. _service-registration:
-
-Service registration
+Service Registration
 --------------------
 
-Every :doc:`Docker component is registered <architecture/service-discovery>` with the platform’s
+Every :doc:`Docker component is registered <../components/architecture/service-discovery>` with the platform’s
 service discovery layer. Docker components are not expected to make the
 explicit make registration calls because that is done by through a
 platform 3rd party registration service. A couple things are needed from
 component developers in order for this registration to occur
 successfully:
 
-1. Docker images must be created from a Dockerfile that has an `EXPOSE <https://docs.docker.com/engine/reference/builder/#/expose>`_ instruction. This applies to components that listen on a port.
+1. Docker images must be created from a Dockerfile that has an
+   `EXPOSE <https://docs.docker.com/engine/reference/builder/#/expose>`__
+   instruction. This applies to components that listen on a port.
 2. Component healthcheck details must be provided in the Docker
    auxiliary component specification
 
@@ -53,46 +58,69 @@
 their Dockerfile that port using the ``EXPOSE`` instruction before
 building the image. Warning! At the current time, you can not expose
 multiple ports in your Dockerfile or registration *will not work*
-correctly.
+correctly. Warning! Be sure to choose a port that is available. This may
+vary by environment.
 
 Health check
 ~~~~~~~~~~~~
 
-Component developers are required to provide a way for the platform to periodically check the health of their running components. The platform uses Consul to perform these periodic calls. Consul provides different types of `check definitions <https://www.consul.io/docs/agent/checks.html>`_. The details of the definition used by your component is to be provided through the :any:`Docker auxiliary specification <docker-auxiliary-details>`.
+Component developers are required to provide a way for the platform to
+periodically check the health of their running components. The platform
+uses Consul to perform these periodic calls. Consul provides different
+types of `check
+definitions <https://www.consul.io/docs/agent/checks.html>`__. The
+details of the definition used by your component is to be provided
+through the :any:`Docker auxiliary specification <docker-auxiliary-details>`.
 
-.. _docker-configuration:
+Configuration Management
+------------------------
 
-Configuration
--------------
-
-The component’s application configuration is generated from the
-submitted component specification into a JSON representation. The DCAE
-platform will provide the configuration JSON by making it available on a
-remote HTTP service. Components are required to pull their configuration
-JSON at application startup. The configuration JSON is stored under the
+All configuration for a component is stored in CONSUL under the
 components uniquely generated name which is provided by the environment
-variable ``HOSTNAME``.
+variable ``HOSTNAME`` as well as ``SERVICE_NAME``. It is then made
+available to the component via a remote HTTP service call to CONFIG
+BINDING SERVICE.
+
+The main entry in CONSUL for the component contains its
+``generated application configuration``. This is based on the submitted
+component specification, and consists of the ``interfaces`` (streams and
+services/calls) and ``parameters`` sections. Other entries may exist as
+well, under specific keys, such as :dmaap . Each key represents a
+specific type of information and is also available to the component by
+calling CONFIG BINDING SERVICE. More on this below.
+
+Components are required to pull their
+``generated application configuration`` at application startup. The
+component must provide an initialization script that retrieves the
+application configuration and reference that script in its Dockerfile.
+Other calls can be made to CONFIG BINDING SERVICE to retrieve DMaaP, 
+or Pollicy Reconfiguration (not yet supported).
 
 You can see more details on the generated application configuration
-:any:`here <docker-specification>`.
+:any:`here <dcae-cli-view-the-platform>`
 
-Config binding service
+.. _config_binding_service:
+
+Config Binding Service
 ~~~~~~~~~~~~~~~~~~~~~~
 
 The config binding service is a platform HTTP service that is
-responsible for providing clients with a fully resolved configuration
-JSON at runtime. Components should make an HTTP GET on:
+responsible for providing clients with its fully resolve configuration
+JSON at startup, and also other configurations objects 
+when requested.
+
+At runtime, components should make an HTTP GET on:
 
 ::
 
     <config binding service hostname>:<port>/service_component/NAME
 
-For Docker components, NAME should be set to ``HOSTNAME``, which was
-provided as an ENV variable inside of your container.
+For Docker components, NAME should be set to ``HOSTNAME``, which is
+provided as an ENV variable to the container.
 
 The binding service integrates with the streams and services section of
-your component specification. For example, if you specify that you call
-a service:
+the component specification. For example, if you specify that you call a
+service:
 
 ::
 
@@ -112,8 +140,8 @@
     }
 
 Then the config binding service will find all available IP addresses of
-services meeting your needs, and provide them to you under your
-``config_key``:
+services meeting the containers needs, and provide them to the container
+under your ``config_key``:
 
 ::
 
@@ -130,15 +158,111 @@
 Consul’s service discovery to get
 ``<config binding service hostname>:<port>``.
 
-Policy Reconfiguration
-~~~~~~~~~~~~~~~~~~~~~~
+Generated Application Configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-*(Draft and subject to change)*
+The DCAE platform uses the component specification to generate the
+component’s application configuration provided at deployment time. The
+component developer should expect to use this configuration JSON in the
+component.
 
-Components must provide a way to receive policy reconfiguration, that
-is, configuration parameters that have been updated via the Policy UI.
-The component developer provides a docker script (defined in the :any:`Docker auxiliary specification <docker-specification>`)
-that will be triggered when this occurs.
+Pro-tip: As you build the component specification, use the :any:`dcae-cli dev command <dcae-cli-view-the-platform>`
+to see what the resulting application configuration will look like.
+
+For both Docker and CDAP, when the component is deployed, any
+``streams`` and ``services/calls`` specified, will be injected into the
+configuration under the following well known structure, along with all
+``parameters``. (``services/provides`` is not passed in to the
+application config). Your component is required to parse this
+information if it has any DMaaP connections or interfaces with another
+DCAE component.
+
+This is best served by an example.
+
+The following component spec snippet (from String Matching):
+
+::
+
+    "streams":{  
+        "subscribes": [{
+          "format": "VES_specification",  
+          "version": "4.27.2",    
+          "type": "message_router",
+          "config_key" : "mr_input"
+        }],
+        "publishes": [{
+          "format": "VES_specification",  
+          "version": "4.27.2",    
+          "config_key": "mr_output",
+          "type": "message_router"
+         }]
+      },
+      "services":{  
+        "calls": [{
+          "config_key" : "aai_broker_handle",
+          "verb": "GET",
+          "request": {
+            "format": "get_with_query_params",
+            "version": "1.0.0"
+          },
+          "response": {
+            "format": "aai_broker_response",
+            "version": "3.0.0"
+          } 
+        }],
+        "provides": []
+      },
+
+Will result in the following top level keys in the configuration (for
+CDAP, this will be under AppConfig)
+
+::
+
+       "streams_publishes":{  
+          "mr_output":{                // notice the config key above
+             "aaf_password":"XXX",
+             "type":"message_router",
+             "dmaap_info":{  
+                "client_role": null,
+                "client_id": null,
+                "location": null,
+                "topic_url":"https://YOUR_HOST:3905/events/com.att.dcae.dmaap.FTL2.DCAE-CL-EVENT" // just an example
+             },
+             "aaf_username":"XXX"
+          }
+       },
+       "streams_subscribes":{  
+          "mr_input":{                 // notice the config key above
+             "aaf_password":"XXX",
+             "type":"message_router",
+             "dmaap_info":{  
+                "client_role": null,
+                "client_id": null,
+                "location": null,
+                "topic_url":"https://YOUR_HOST:3905/events/com.att.dcae.dmaap.FTL2.TerrysStringMatchingTest" // just an example
+             },
+             "aaf_username":"XXX"
+          }
+       },
+       "services_calls":{  
+          "aai_broker_handle":[        // notice the config key above
+             "135.205.226.128:32768"   // based on deployment time, just an example
+          ]
+       }
+
+These keys will always be populated whether they are empty or not. So
+the minimum configuration you will get, (in the case of a component that
+provides an HTTP service, doesn’t call any services, and has no streams,
+is:
+
+::
+
+        "streams_publishes":{},
+        "streams_subscribes":{},
+        "services_calls":{}
+
+Thus your component should expect these well-known top level keys.
+
 
 DMaaP
 ~~~~~
@@ -147,18 +271,52 @@
 topics or data router feeds. This is defined in the component
 specification under the ``streams`` section where you can specify
 whether your component is expected to subscribe or to publish to a
-:any:`message router topic <message-router>` or to a :any:`data router feed <data-router>`.
-Given a composition with components that use DMaaP, the platform will
-provision the topic or feed and provide the necessary :any:`connection details <dcae-cli/dmaap-connection-objects>` at runtime for each DMaaP
-dependent component. These connection details will be provided through
-your application’s :any:`generated configuration <component-specification/generated-configuration>`.
+:any:`message router <message-router>`
+topic or to a :any:`data router <data-router>`
+feed. Given a composition with components that use DMaaP, the platform
+will provision the topic or feed and provide the necessary :doc:`connection
+details <./component-specification/dmaap-connection-objects>`
+at runtime for each DMaaP dependent component. These connection details
+are provided through your application’s generated configuration.
 
 In order to test DMaaP connections in onboarding, the developer
 (currently) must provision all test topics and feeds manually and
-provide the :any:`dcae-cli with the connection details <dmaap-testing>` when deploying your
+provide the :any:`dcae-cli with the connection details <dcae-cli-walkthrough-dmaap-testing>` when deploying your
 application.
 
-.. _docker-on-the-platform:
+Even thought the DMaaP connection information is included in the
+generated application configuration, it may be obtained by doing a call
+as in this example:
+
+::
+
+    curl http://<config binding service>:<port>/dmaap/jm416b.d345ada1-cc31-4121-a741-9007b9f64808.1-0-1.dcae-collectors-cli-pm
+
+This would return the following:
+
+::
+
+    {"cli_gamma_cisco_pm_config_stat": 
+        {
+        "publish_url": "https://YOUR_HOST/publish/1362", 
+        "username": "mtl5-0", 
+        "log_url": null, 
+        "location": "mtl5-0", 
+        "password": "i5qji048hdm2e38f0bg872tnqd", 
+        "publisher_id": "1234"
+        }
+    }
+
+Policy Reconfiguration
+~~~~~~~~~~~~~~~~~~~~~~
+
+*(not yet supported)*
+
+Components must provide a way to receive policy reconfiguration, that
+is, configuration parameters that have been updated via the Policy UI.
+The component developer provides a docker script (defined in the :any:`Docker
+auxiliary specification <docker-auxiliary-details>`)
+that will be triggered when this occurs.
 
 Docker on the platform
 ----------------------
@@ -170,54 +328,73 @@
 repository. This requires tagging your build with the full name of you
 image which includes the Nexus repository name.
 
-Use the Docker command-line to `tag <https://docs.docker.com/engine/reference/commandline/tag/>`_ your Docker image where the *target image* must contain the registry host name and port.
+Use the Docker command-line to
+`tag <https://docs.docker.com/engine/reference/commandline/tag/>`__ your
+Docker image where the *target image* must contain the registry host
+name and port.
 
-For example, an application called laika has been tagged for an example
+For example, an application called yourapp has been tagged for an example
 Nexus registry:
 
 ::
 
-    $ docker images
-    REPOSITORY                                                                               TAG                 IMAGE ID            CREATED             SIZE
-    YOUR_NEXUS_DOCKER_REGISTRY/laika                                                 0.4.0               154cc382df61        7 weeks ago         710.5 MB
-    laika                                                                                    0.4.0               154cc382df61        7 weeks ago         710.5 MB
+    YOUR_NEXUS_DOCKER_REGISTRY/yourapp                                                 0.4.0               154cc382df61        7 weeks ago         710.5 MB
+    yourapp                                                                                    0.4.0               154cc382df61        7 weeks ago         710.5 MB
 
-Note, the Docker registry that is used may require a login to
-authenticate.
+The solutioning evironment’s Nexus host for the Docker registry is
+``YOUR_NEXSUS_HOST:18443``. You must run
+``docker login YOUR_NEXSUS_HOST:18443`` to access the registry.
+Please contact the DCAE platform team to provide you with the
+credentials.
 
 ::
 
-    docker login YOUR_NEXUS_DOCKER_REGISTRY
+    docker login YOUR_NEXSUS_HOST:18443
 
 Tag your image:
 
 ::
 
-    docker tag laika:0.4.0 YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0
+    docker tag yourapp:0.4.0 YOUR_NEXSUS_HOST:18443/dcae-platform/yourapp:0.4.0
 
 Or build and tag:
 
 ::
 
-    docker build -t YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0 .
+    docker build -t YOUR_NEXSUS_HOST:18443/dcae-platform/yourapp:0.4.0 .
 
-After tagging, upload your image to the remote registry using the Docker `push command <https://docs.docker.com/engine/reference/commandline/push/>`_ .
-Note that the registry may require a login. Use the Docker `login command <https://docs.docker.com/engine/reference/commandline/login/>`_
+After tagging, upload your image to the remote registry using the Docker
+`push
+command <https://docs.docker.com/engine/reference/commandline/push/>`__.
+Note that the registry may require a login. Use the Docker `login
+command <https://docs.docker.com/engine/reference/commandline/login/>`__
 before pushing in that case.
 
 ::
 
-    docker push YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0
+    docker push YOUR_NEXSUS_HOST:18443/dcae-platform/yourapp:0.4.0
 
-*NOTE* Replace ``laika`` with your application’s name. Replace the
-``0.4.0`` version with your application’s version.
+*NOTE* Replace ``dcae-platform`` with the group directory that is
+applicable to your image. Replace ``yourapp`` with your application’s
+name. Replace the ``0.4.0`` version with your application’s version.
+
+Dockerfile
+~~~~~~~~~~
+
+The Dockerfile must contain the name of the container’s initialization
+script. This will be called when the container is deployed, and must
+call Config Binding Service as described in `Config Binding
+Service <#config-binding-service>`__
+
+.. _dcae-cli-docker-ports:
 
 Ports
 ~~~~~
 
-On the DCAE platform, Docker components are run with the ``--publish-all`` or ``-P`` argument. This means the Docker container
+On the DCAE platform, Docker components are run with the
+``--publish-all`` or ``-P`` argument. This means the Docker container
 for your component will be listening on a random port and that random
-port will be mapped to the port :any:`you exposed <service-registration>`.
+port will be mapped to the port `you exposed <#service-registration>`__.
 
 Envs
 ~~~~
@@ -225,58 +402,24 @@
 The platform provides a set of environment variables into each Docker
 container:
 
-+----------------------------+----+----------+
-| Na\                        | Ty\| Descript\|
-| me                         | pe | ion      |
-+============================+====+==========+
-| ``HOSTNAME``               | st\| Unique   |
-|                            | ri\| name of  |
-|                            | ng | the      |
-|                            |    | componen\|
-|                            |    | t        |
-|                            |    | instance |
-|                            |    | that is  |
-|                            |    | generate\|
-|                            |    | d        |
-+----------------------------+----+----------+
-| ``CONSOL_HOST``            | st\| Hostname |
-|                            | ri\| of the   |
-|                            | ng | platform\|
-|                            |    | ’s       |
-|                            |    | Consul   |
-|                            |    | instance |
-|                            |    |          |
-|                            |    |          |
-+----------------------------+----+----------+
-| ``CONFIG_BINDING_SERVICE`` | st\| Hostname |
-|                            | ri\| of the   |
-|                            | ng | platform\|
-|                            |    | ’s       |
-|                            |    | config   |
-|                            |    | binding  |
-|                            |    | service  |
-|                            |    | instance |
-|                            |    |          |
-|                            |    |          |
-|                            |    |          |
-|                            |    |          |
-|                            |    |          |
-+----------------------------+----+----------+
-| ``DOCKER_HOSTS``           | st\| Host of  |
-|                            | ri\| the      |
-|                            | ng | target   |
-|                            |    | platform |
-|                            |    | Docker   |
-|                            |    | host to  |
-|                            |    | run the  |
-|                            |    | containe\|
-|                            |    | r        |
-|                            |    | on       |
-+----------------------------+----+----------+
++--------------+--------------+----------------------------------------+
+| Name         | Type         | Description                            |
++==============+==============+========================================+
+| ``HOSTNAME`` | string       | Unique name of the component instance  |
+|              |              | that is generated                      |
++--------------+--------------+----------------------------------------+
+| ``CONSUL_HOS | string       | Hostname of the platform’s Consul      |
+| T``          |              | instance                               |
++--------------+--------------+----------------------------------------+
+| ``CONFIG_BIN | string       | Hostname of the platform’s config      |
+| DING_SERVICE |              | binding service instance               |
+| ``           |              |                                        |
++--------------+--------------+----------------------------------------+
+| ``DOCKER_HOS | string       | Host of the target platform Docker     |
+| T``          |              | host to run the container on           |
++--------------+--------------+----------------------------------------+
 
-.. _operational-concerns:
-
-Operational concerns
+Operational Concerns
 --------------------
 
 Logging
@@ -291,29 +434,32 @@
 To use the ``docker logs`` command for your deployed running Docker
 container,
 
-1. You must have Docker installed on your local machine
-2. Have the generated name of your component. This is generated for you
+-  You must have Docker installed on your local machine
+-  Have the generated name of your component. This is generated for you
    when you execute ``dcae_cli component dev`` or
    ``dcae_cli component run``.
-3. Find the target Docker host using the ``dcae_cli profiles show``
+-  Find the target Docker host using the ``dcae_cli profiles show``
    command:
 
 ::
 
-    $ dcae_cli profiles show YOUR_PROFILE_NAME
+    $ dcae_cli profiles show solutioning
     {
-        ...
+        "cdap_broker": "cdap_broker",
+        "config_binding_service": "config_binding_service",
+        "consul_host": "YOUR_CONSUL_HOST",
         "docker_host": "YOUR_DOCKER_HOST:2376"
     }
 
-4. Set your Docker client to point to the target Docker host:
+-  Set your Docker client to point to the target Docker host:
 
 ::
 
     $ export DOCKER_HOST="tcp://YOUR_DOCKER_HOST:2376"
 
-5. Use the ``docker logs`` command:
+-  Use the ``docker logs`` command:
 
 ::
 
     $ docker logs <generated component name>
+
diff --git a/docs/sections/components/data-formats.rst b/docs/sections/components/data-formats.rst
index ecb019c..bf2ffbf 100755
--- a/docs/sections/components/data-formats.rst
+++ b/docs/sections/components/data-formats.rst
@@ -3,258 +3,65 @@
 
 .. _data-formats:
 
+
 Data Formats
 ============
 
-| Because the DCAE designer composes your component with others at
-  service design time, in most cases you do not know what specific
-  component(s) your component will send data to during runtime. Thus, it
-  is vital that DCAE has a language of describing the data passed
-  between components, so that it is known which components are
-  composable with others. Data formats are descriptions of data—they are
-  the data contract between your component and other components. You
-  need to describe the available outputs and assumed inputs of your
-  components as data formats. These data descriptions are onboarded into
-  ASDC, and each receives a UUID. If component X outputs data format
-  DF-Y, and another component Z specifies DF-Y as their input data
-  format, then X is said to be *composable* with that component. The
-  data formats are referenced in the component specifications by the
-  data format’s id and version.
-| The vision is to have a repository of shared data formats that
-  developers and teams can re-use and also provide them the means to
-  extend and create new custom data formats.
+Data formats are descriptions of data; they are the data contract
+between your component and other components. When the components are
+‘composed’ into services in the SDC tool, they can only be matched with
+components that have compatible data formats. Data formats will be
+onboarded to SDC and assigned a UUID at that time. This UUID is then
+used to ensure compatibility amoung components. (If component X outputs
+data format ‘DF-Y’, and another component Z specifies ‘DF-Y’ as its
+input data format, then X is said to be ``composable`` with component
+Z).
 
-.. _dataformat_metadata:
+Since data formats will be shared across components, the onboarding
+catalog should be checked first to see if the desired data format is
+available before creating one. The vision is to have a repository of
+shared data formats that developers and teams can re-use and also
+provide them the means to extend and create new custom data formats. A
+data format is referenced by its data format id and version number.
+
+JSON schema
+-----------
+
+  The data format specification is represented (and validated) against
+  this `Data Format json schema <https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/cli.git;a=blob;f=component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json;h=66aa2ab77449e3cafc6afb5c959c5eb793ad86c1;hb=HEAD>`__
+  and described below:
 
 Meta Schema Definition
-----------------------
+~~~~~~~~~~~~~~~~~~~~~~
 
 The “Meta Schema” implementation defines how data format JSON schemas
 can be written to define user input. It is itself a JSON schema (thus it
 is a “meta schema”). It requires the name of the data format entry, the
 data format entry version and allows a description under “self” object.
 The meta schema version must be specified as the value of the
-“dataformatversion” key. Then the input schema itself is described.
-There are four types of schema descriptions objects - jsonschema for
-inline standard JSON Schema definitions of JSON inputs, delimitedschema
-for delimited data input using a defined JSON description, unstructured
-for unstructured text, and reference that allows a pointer to another
-artifact for a schema. The reference allows for XML schema, but can be
-used as a pointer to JSON, Delimited Format, and Unstructured schemas as
-well.
+“dataformatversion” key. Then the input schema itself is described as
+one of the four types listed below:
 
-The current Meta Schema implementation is defined below:
++------------------+---------------------------------------------------+
+| Type             | Description                                       |
++==================+===================================================+
+| jsonschema       | inline standard JSON Schema definitions of JSON   |
+|                  | inputs                                            |
++------------------+---------------------------------------------------+
+| delimitedschema  | delimited data input using a JSON description and |
+|                  | defined delimiter                                 |
++------------------+---------------------------------------------------+
+| unstructured     | unstructured text, and reference that allows a    |
+|                  | pointer to another artifact for a schema.         |
++------------------+---------------------------------------------------+
+| reference        | allows for XML and Protocol Buffers schema,       |
+|                  | but can be used to reference other JSON,          |
+|                  | delimitedschema and unstructured schemas as well. |
++------------------+---------------------------------------------------+
 
-::
 
-    {
-        "$schema": "http://json-schema.org/draft-04/schema#",
-        "title": "Data format specification schema Version 1.0",
-        "type": "object",
-        "oneOf": [{
-            "properties": {
-                "self": {
-                    "$ref": "#/definitions/self"
-                },
-                "dataformatversion": {
-                    "$ref": "#/definitions/dataformatversion"
-                },
-                "reference": {
-    
-                    "type": "object",
-                    "description": "A reference to an external schema - name/version is used to access the artifact",
-                    "properties": {
-                        "name": {
-                            "$ref": "#/definitions/name"
-                        },
-                        "version": {
-                            "$ref": "#/definitions/version"
-                        },
-                        "format": {
-                            "$ref": "#/definitions/format"
-                        }
-                    },
-                    "required": [
-                        "name",
-                        "version",
-                        "format"
-                    ],
-                    "additionalProperties": false
-                }
-            },
-            "required": ["self", "dataformatversion", "reference"],
-            "additionalProperties": false
-        }, {
-            "properties": {
-                "self": {
-                    "$ref": "#/definitions/self"
-                },
-                "dataformatversion": {
-                    "$ref": "#/definitions/dataformatversion"
-                },
-                "jsonschema": {
-                    "$schema": "http://json-schema.org/draft-04/schema#",
-                    "description": "The actual JSON schema for this data format"
-                }
-    
-            },
-            "required": ["self", "dataformatversion", "jsonschema"],
-            "additionalProperties": false
-        }, {
-            "properties": {
-                "self": {
-                    "$ref": "#/definitions/self"
-                },
-                "dataformatversion": {
-                    "$ref": "#/definitions/dataformatversion"
-                },
-                "delimitedschema": {
-                    "type": "object",
-                    "description": "A JSON schema for delimited files",
-                    "properties": {
-                        "delimiter": {
-                            "enum": [",", "|", "\t", ";"]
-                        },
-                        "fields": {
-                            "type": "array",
-                            "description": "Array of field descriptions",
-                            "items": {
-                                "$ref": "#/definitions/field"
-                            }
-                        }
-                    },
-                    "additionalProperties": false
-                }
-            },
-            "required": ["self", "dataformatversion", "delimitedschema"],
-            "additionalProperties": false
-        }, {
-            "properties": {
-                "self": {
-                    "$ref": "#/definitions/self"
-                },
-                "dataformatversion": {
-                    "$ref": "#/definitions/dataformatversion"
-                },
-                "unstructured": {
-                    "type": "object",
-                    "description": "A JSON schema for unstructured text",
-                    "properties": {
-                        "encoding": {
-                            "type": "string",
-                            "enum": ["ASCII", "UTF-8", "UTF-16", "UTF-32"]
-                        }
-                    },
-                    "additionalProperties": false
-    
-                }
-            },
-            "required": ["self", "dataformatversion", "unstructured"],
-            "additionalProperties": false
-        }],
-        "definitions": {
-            "name": {
-                "type": "string"
-            },
-            "version": {
-                "type": "string",
-                "pattern": "^(\\d+\\.)(\\d+\\.)(\\*|\\d+)$"
-            },
-            "self": {
-                "description": "Identifying Information for the Data Format - name/version can be used to access the artifact",
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "$ref": "#/definitions/name"
-                    },
-                    "version": {
-                        "$ref": "#/definitions/version"
-                    },
-                    "description": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "name",
-                    "version"
-                ],
-                "additionalProperties": false
-            },
-            "format": {
-                "description": "Reference schema type",
-                "type": "string",
-                "enum": [
-                    "JSON",
-                    "Delimited Format",
-                    "XML",
-                    "Unstructured"
-                ]
-            },
-            "field": {
-                "description": "A field definition for the delimited schema",
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "fieldtype": {
-                        "description": "the field type - from the XML schema types",
-                        "type": "string",
-                        "enum": ["string", "boolean",
-                            "decimal", "float", "double",
-                            "duration", "dateTime", "time",
-                            "date", "gYearMonth", "gYear",
-                            "gMonthDay", "gDay", "gMonth",
-                            "hexBinary", "base64Binary",
-                            "anyURI", "QName", "NOTATION",
-                            "normalizedString", "token",
-                            "language", "IDREFS", "ENTITIES",
-                            "NMTOKEN", "NMTOKENS", "Name",
-                            "NCName", "ID", "IDREF", "ENTITY",
-                            "integer", "nonPositiveInteger",
-                            "negativeInteger", "long", "int",
-                            "short", "byte",
-                            "nonNegativeInteger", "unsignedLong",
-                            "unsignedInt", "unsignedShort",
-                            "unsignedByte", "positiveInteger"
-    
-                        ]
-                    },
-                    "fieldPattern": {
-                        "description": "Regular expression that defines the field format",
-                        "type": "integer"
-                    },
-                    "fieldMaxLength": {
-                        "description": "The maximum length of the field",
-                        "type": "integer"
-                    },
-                    "fieldMinLength": {
-                        "description": "The minimum length of the field",
-                        "type": "integer"
-                    },
-                    "fieldMinimum": {
-                        "description": "The minimum numeric value of the field",
-                        "type": "integer"
-                    },
-                    "fieldMaximum": {
-                        "description": "The maximum numeric value of the field",
-                        "type": "integer"
-                    }
-                },
-                "additionalProperties": false
-            },
-            "dataformatversion": {
-                "type": "string",
-                "enum": ["1.0.0"]
-            }
-        }
-    }
-
-Examples
------------
+Example Schemas
+---------------
 
 By reference example - Common Event Format 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -416,3 +223,16 @@
             }]
         }
     }
+
+Note: The referenced data format (in this case, a schema named “Common
+Event Format” with version of “25.0.0”) must already exist in the
+onboarding catalog.
+
+Working with Data Formats
+-------------------------
+
+Data Formats can be added to the onboarding catalog (which first
+validates them) by using the :doc:`dcae_cli Tool <dcae-cli/quickstart/>`.
+Here you can also list all of your data formats, show the contents of a
+data format, publish your data format, and even generate a data format
+from a input sample file. For a list of these capabilities, see :any:`Data Format Commands <dcae_cli_data_format>`.
diff --git a/docs/sections/components/dcae-cli/commands.rst b/docs/sections/components/dcae-cli/commands.rst
new file mode 100644
index 0000000..d34ba43
--- /dev/null
+++ b/docs/sections/components/dcae-cli/commands.rst
@@ -0,0 +1,590 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _dcae_cli_commands:
+
+dcae_cli Commands
+=================
+
+The dcae_cli tool has four command groups. Each has several
+sub-commands.
+
+``catalog``
+-----------
+
+The ``catalog`` command lists and shows resources (components and
+data_formats) in the ‘onboarding’ catalog (regardless of the owner). A
+resource can have a status of ``staged`` or ``published``. By default,
+only ``published`` resources are displayed. To see ``staged`` resources,
+add the –expanded argument.
+
++-----------------------------------------------+-----------------------+
+| Catalog Status                                | Meaning               |
++===============================================+=======================+
+| staged                                        | resource has be added |
+|                                               | (and validated), but  |
+|                                               | is under development  |
++-----------------------------------------------+-----------------------+
+| staged data_formats can only be referenced in |
+| their owners component specs                  |
++-----------------------------------------------+-----------------------+
+| staged components can only be deployed by     |
+| their owners                                  |
++-----------------------------------------------+-----------------------+
+| published                                     | resource has been     |
+|                                               | tested and can be     |
+|                                               | shared                |
++-----------------------------------------------+-----------------------+
+| published data_formats can be used in         |
+| anyone’s component spec                       |
++-----------------------------------------------+-----------------------+
+| published components and be deployed by       |
+| anyone                                        |
++-----------------------------------------------+-----------------------+
+
+::
+
+    $ dcae_cli catalog --help
+    Usage: dcae_cli catalog [OPTIONS] COMMAND [ARGS]...
+
+    Options:
+      --help  Show this message and exit.
+
+    Commands:
+      list      Lists resources in the onboarding catalog
+      show      Provides more information about resource
+
+List onboarding catalog contents
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli catalog list
+    Components:
+    +--------------------------------+---------+--------+---------------------------------------------------------------------+--------+-----------+------------+
+    | Name                           | Version | Type   | Description                                                         | Owner  | Status    | Published  |
+    +--------------------------------+---------+--------+---------------------------------------------------------------------+--------+-----------+------------+
+    | DcaeSyslogCollector            | 2.0.0   | docker | DCAE Control Plane Syslog Collector                                 | sh1986 | published | 2017-08-04 |
+    | cdap.dmaap.spec.example        | 0.2.0   | cdap   | dmaap spec example. Not a functioning application, only for showing | tc677g | published | 2017-07-24 |
+    |                                |         |        | how to pub/sub dmaap. Pretend this is like MAP with VES in and ou.. |        |           |            |
+    | cdap.event.proc.enrich.app     | 1.0.3   | cdap   | CDAP Event Processing Enrich application                            | an4828 | published | 2017-09-20 |
+    | cdap.event.proc.map.app        | 1.0.3   | cdap   | CDAP Event Processing Map application                               | an4828 | published | 2017-09-20 |
+
+    ...
+
+    Data formats:
+    +--------------------------------------------+---------+-----------------------------------------------------------------------+--------+-----------+------------+
+    | Name                                       | Version | Description                                                           | Owner  | Status    | Published  |
+    +--------------------------------------------+---------+-----------------------------------------------------------------------+--------+-----------+------------+
+    | FOI_PM_VHSS_data_format                    | 1.0.0   | CSV pipe delimited data format for VHSS PM files                      | sr229c | published | 2017-09-05 |
+    | Map_input                                  | 1.0.0   | The input format for Mapper, that in 1707 is the UCSNMP Collector     | an4828 | published | 2017-07-18 |
+    |                                            |         | output format, but will support more formats later                    |        |           |            |
+    | Syslog Collector Parsed Json Message       | 1.0.0   | Post processed/parsed collected syslog message                        | sh1986 | published | 2017-08-04 |
+    | Syslog Collector Syslog Message Input      | 1.0.0   | The input message for the DCAE syslog collector is free/unstructured  | sh1986 | published | 2017-08-04 |
+    |                                            |         | text                                                                  |        |           |            |
+    | myapp Alert Definition                     | 1.0.0   | The format of the output event from myapp                               | an4828 | published | 2017-08-10 |
+    | VES_specification                          | 5.28.4  | VES spec for 5.4                                                      | vv770d | published | 2017-09-19 |
+
+    ...
+
+Show the contents of an item in the catalog
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli catalog show FOI_PM_VHSS_data_format
+
+    Data format
+    -----------
+    {
+        "dataformatversion": "1.0.0", 
+        "delimitedschema": {
+            "delimiter": "|", 
+            "fields": [
+                {
+                    "description": "System ID", 
+                    "fieldtype": "string", 
+                    "name": "SYSTEM"
+                }, 
+                {
+                    "description": "Date", 
+                    "fieldtype": "string", 
+                    "name": "DATE"
+                }, 
+                {
+                    "description": "Time", 
+                    "fieldtype": "string", 
+                    "name": "TIME"
+                }, 
+
+    ...
+
+.. _dcae_cli_component_commands:
+
+--------------
+
+``component``
+-------------
+
+The ``component`` command is for validating (adding), listing, showing,
+verifying generated configuration, running, undeploying, and publishing
+components that YOU own.
+
+::
+
+    $ dcae_cli component --help
+    Usage: dcae_cli component [OPTIONS] COMMAND [ARGS]...
+
+    Options:
+      --help  Show this message and exit.
+
+    Commands:
+      add
+      dev       Set up component in development for...
+      list      Lists components in the onboarding catalog.
+      publish   Pushes COMPONENT to the onboarding catalog
+      run       Runs the latest version of COMPONENT.
+      show      Provides more information about COMPONENT
+      undeploy  Undeploys the latest version of COMPONENT.
+
+--------------
+
+.. _dcae_cli_add_a_component:
+
+Add a Component
+~~~~~~~~~~~~~~~
+
+A component must be added to the onboarding catalog in order to be
+tested by the dcae_cli tool. The process of adding a component also
+validates it’s component specification. In order to add a component, the
+component docker image (or CDAP jar) must exist locally.
+
+Components in the onboarding catalog can be run by others, once they are
+``published.`` ``Published`` components cannot be modified or deleted.
+Rather a new version can be created instead.
+
+Validated component specs are used later to generate Tosca models and
+Cloudify Blueprints for the component, which makes them available for
+use in the SDC Tool for creating services.
+
+::
+
+    $ dcae_cli component add --help
+    Usage: dcae_cli component add [OPTIONS] COMPONENT-SPECIFICATION
+
+    Options:
+      --update  Updates a previously added component if it has not been already
+                published
+      --help    Show this message and exit.
+
+::
+
+    $ dcae_cli component add component-spec.json 
+
+--------------
+
+List Components
+~~~~~~~~~~~~~~~
+
+List components in the onboarding catalog that owned by YOUR userid..
+
+::
+
+    $ dcae_cli component list
+    Active profile: solutioning
+    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | Name                    | Version | Type   | Description                                                   | Status | Modified                   | #Deployed |
+    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | cdap.helloworld.endnode | 0.8.0   | cdap   | cdap test component                                           | staged | 2017-05-23 04:14:35.588075 | 0         |
+    | sandbox.platform.yourapp| 0.5.0   | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-05-23 04:07:44.065610 | 0         |
+    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+
+The fields ``Name``, ``Version``, ``Type``, ``Description`` are
+referenced from the component specification’s ``self`` JSON. Use the
+“–deployed” argument to see more details on deploymed components
+
+--------------
+
+.. _dcae_cli_run_a_component:
+
+Run a Component
+~~~~~~~~~~~~~~~
+
+The ``run`` operation is to be used for running your application in its
+container remotely on the activated environment. Docker containers have
+the additional option to run locally on your development machine. If the
+component uses Dmaap, you can specify the Dmaap Connection Object as
+well. Refer to :doc:`Dmaap Connection Object <../component-specification/dmaap-connection-objects>`.
+
+When you run a component via the dcae_cli Tool, remember the blueprint
+has not been created and is not used for deployment.
+
+In order to run the component, the data formats and component must have
+been added to the onboarding catalog.
+
+**DOCKER NOTE:** Make sure the Docker image has been uploaded to the
+shared registry.
+
+A docker component can be run in either ``attached`` or ``unattached``
+mode. (Default is unattached).
+
++------------------+---------------------------------------------------+
+| Mode             | Description                                       |
++==================+===================================================+
+| attached         | component is run in the ‘foreground’, container   |
+|                  | logs are streamed to stdout. Ctrl-C is used to    |
+|                  | terminate the dcae_cli session.                   |
++------------------+---------------------------------------------------+
+| unattached       | component is run in the ‘background’, container   |
+|                  | logs are viewed via ``docker logs`` command,      |
+|                  | container runs until undeployed with dcae_cli     |
+|                  | ``undeploy`` command.                             |
++------------------+---------------------------------------------------+
+
+Run a component in attached mode:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run --attached sandbox.platform.yourapp:0.5.0
+
+    DCAE.Docker | INFO | Running image 'registry.proto.server.com/dcae-rework/yourapp:0.4.0' as 'user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp'
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO | Consul host: yourconsulhost.com
+
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO | service name: mh677g.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp
+
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO | Generated config: {'multiplier': 3}
+
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO |  * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
+
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO | 135.205.226.140 - - [24/May/2017 03:37:57] "GET /health HTTP/1.1" 200 -
+
+    DCAE.Docker.user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp | INFO | 135.205.226.140 - - [24/May/2017 03:38:12] "GET /health HTTP/1.1" 200 -
+
+Hit Ctrl-C to terminate session.
+
+::
+
+    ^CDCAE.Docker | INFO | Stopping container 'user1.b7287639-37f5-4f25-8d54-8a2087f4c8da.0-5-0.sandbox-platform-yourapp' and cleaning up...
+
+Run a component in unattached mode:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run sandbox.platform.yourapp:0.5.0
+    DCAE.Docker | INFO | Running image 'registry.proto.server.com/dcae-rework/yourapp:0.4.0' as 'user1.4811da0e-08d5-429f-93bf-bf6814924577.0-5-0.sandbox-platform-yourapp'
+    DCAE.Run | INFO | Deployed /user1.4811da0e-08d5-429f-93bf-bf6814924577.0-5-0.sandbox-platform-yourapp
+
+**NOTE** You must undeploy this component when finished testing. This is
+important to conserve resources in the environment.
+
+Run a component that subscribes to Dmaap MR or DR
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run --attached --dmaap-file $dmaap-connection-file sandbox.platform.yourapp:0.5.0 
+
+--------------
+
+Undeploy a Component
+~~~~~~~~~~~~~~~~~~~~
+
+The ``undeploy`` command is used to undeploy any instance of a specified
+component/version that you have deployed. This includes cleaning up the
+configuration.
+
+::
+
+    $ dcae_cli component undeploy sandbox.platform.yourapp:0.5.0
+    DCAE.Undeploy | WARNING | Undeploying components: 1
+    DCAE.Undeploy | WARNING | Undeployed components: 1
+
+--------------
+
+Publish a component
+~~~~~~~~~~~~~~~~~~~
+
+| Once a component has been tested, it should be published in the
+  onboarding catalog using the ``publish`` sub-command .
+| Publishing will change the status of the component (from ``staged`` to
+  ``published``), indicating that it has been tested, and making it
+  accessible for other developers to use.
+
+**Note** Before a component can be published, all data_formats that it
+references must be published.
+
+::
+
+    dcae_cli component publish sandbox.platform.yourapp:0.5.0
+
+--------------
+
+Show a Component
+~~~~~~~~~~~~~~~~
+
+This will print out the contents of a component and is useful to copy a
+component spec.
+
+::
+
+    $ dcae_cli component show
+
+--------------
+
+.. _dcae-cli-run-the-dev-command:
+
+Run the ``dev`` command
+~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``dev`` command is used as part of a process to see the platform
+generated configuration. It established the environment variables and is
+best explained
+:any:`here <dcae-cli-view-the-platform>`.
+
+::
+
+    $ dcae_cli component dev component-spec.json
+    Ready for component development
+
+--------------
+
+.. _dcae_cli_data_format:
+
+``data_format``
+---------------
+
+The ``data_format`` command is for validating (adding), listing,
+showing, publishing data_formats that YOU own. data_formats can also be
+generated with this command.
+
+::
+
+    $ dcae_cli data_format --help
+    Usage: dcae_cli data_format [OPTIONS] COMMAND [ARGS]...
+
+    Options:
+      --help  Show this message and exit.
+
+    Commands:
+      add       Tracks a data format file DATA_FORMAT-SPECIFICATION...
+      generate  Create schema from a file or directory...
+      list      Lists all your data formats
+      publish   Publishes data format to make available to others...
+      show      Provides more information about FORMAT
+
+--------------
+
+.. _dcae_cli_add_a_data_format:
+
+Add a Data Format
+~~~~~~~~~~~~~~~~~
+
+A data_format must be in the onboarding catalog in order to be
+referenced in the component specification. The process of adding a
+data_format also validates it. Data_formats in the onboarding catalog
+can be run by others, once they are ``published.`` ``Published``
+data_formats cannot be modified or deleted. Rather a new version can be
+created instead.
+
+::
+
+    $ dcae_cli data_format add --help
+    Usage: dcae_cli data_format add [OPTIONS] DATA_FORMAT-SPECIFICATION
+
+    Options:
+      --update  Updates a previously added data_format if it has not been already
+                published
+      --help    Show this message and exit.
+
+::
+
+    dcae_cli data_format add health.json
+
+--------------
+
+List Data Formats
+~~~~~~~~~~~~~~~~~
+
+Only data_formats owned by YOUR userid will be shown.
+
+::
+
+    $ dcae_cli data_format list
+
+    Data formats for user1
+    +---------------------------------+---------+-------------------------------------------+--------+----------------------------+
+    | Name                            | Version | Description                               | Status | Modified                   |
+    +---------------------------------+---------+-------------------------------------------+--------+----------------------------+
+    | sandbox.platform.yourapp.health | 0.1.0   | Data format used for the /health endpoint | staged | 2017-05-23 04:02:38.952799 |
+    +---------------------------------+---------+-------------------------------------------+--------+----------------------------+
+
+The fields ``name``, ``version``, ``description`` are referenced from
+the data format specification’s ``self`` JSON. ``Status`` represents the
+status of the data format in the catalog. See `Publish a Data
+Format <#publish-a-data-format>`__ for more info.
+
+--------------
+
+Show a Data Format
+~~~~~~~~~~~~~~~~~~
+
+This will print out the contents of a data_format and is useful for
+copying a data_format.
+
+::
+
+    $ dcae_cli data_format show
+
+--------------
+
+Publish a Data Format
+~~~~~~~~~~~~~~~~~~~~~
+
+| Once a data_format has been tested (by referencing it in a component
+  spec that has been tested), it should be published in the onboarding
+  catalog using the ``publish`` sub-command .
+| Publishing will change the status of the data_format (from ``staged``
+  to ``published``), indicating that it has been tested, and making it
+  accessible for other developers to use.
+
+::
+
+    $ dcae_cli data_format publish data_format.json
+
+--------------
+
+Generate a Data Format
+~~~~~~~~~~~~~~~~~~~~~~
+
+If you already have a valid input or output file, you can use the
+generate command to create the it’s data format specification.
+
+::
+
+    $ dcae_cli data_format generate name:version file-or-dir-path
+
+--------------
+
+``profiles``
+------------
+
+The\ ``profiles`` command is for creating, deleting, listing, showing,
+activating, and updating (set) profiles. The profile contains
+environment variables used to connect to different environments. This is
+used in the running and deployment of a component using the
+``dcae_cli component run`` or ``dev`` command.
+
+::
+
+    $ dcae_cli profiles --help
+    Usage: dcae_cli profiles [OPTIONS] COMMAND [ARGS]...
+
+    Options:
+      --help  Show this message and exit.
+
+    Commands:
+      activate  Sets profile NAME as the active profile
+      create    Creates a new profile NAME initialized with...
+      delete    Deletes profile NAME
+      list      Lists available profiles
+      set       Updates profile NAME such that KEY=VALUE
+      show      Prints the profile dictionary
+
+--------------
+
+List the available profiles
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli profiles list
+    *  solutioning
+       1710
+       1802
+
+The \* identifies the active profile. ``dcae-cli`` is currently
+installed with profiles for the ``solutioning``, ``1710``, and ``1802``
+environments. They are intended for the following:
+
++-----------------------------------+-----------------------------------+
+| Environment                       | Description                       |
++===================================+===================================+
+| solutioning                       | default environment; used for     |
+|                                   | initial component developer       |
+|                                   | testing with the dcae_cli tool.   |
++-----------------------------------+-----------------------------------+
+| 1710                              | FTL3 (Functional Testing Lab 3)   |
+|                                   | environment, which represents the |
+|                                   | 1710 release.                     |
++-----------------------------------+-----------------------------------+
+| 1802                              | FTL3a (Functional Testing Lab 3a) |
+|                                   | environment, which represents the |
+|                                   | 1802 release.                     |
++-----------------------------------+-----------------------------------+
+
+--------------
+
+Show the details of a profile
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli profiles show solutioning
+    {
+        "cdap_broker": "cdap_broker",
+        "config_binding_service": "config_binding_service",
+        "consul_host": "yourconsulhost.com",
+        "docker_host": "yourdockerhost.com:2376"
+    }
+
+--------------
+
+.. _dcae_cli_activate_profile:
+
+Activate a profile
+~~~~~~~~~~~~~~~~~~
+
+To switch among profiles, use the activate sub-command. A subsequent
+``list`` will reveal the change made.
+
+::
+
+    $ dcae_cli profiles activate test
+
+--------------
+
+Create a new profile
+~~~~~~~~~~~~~~~~~~~~
+
+If you want to work in a different environment using the dcae_cli tool,
+you can make your own profile. (The environment must be a working DCAE
+Platform environment).
+
+::
+
+    $ dcae_cli profiles create new-profile
+
+After creating you would assign the variables with the ``set``
+sub-command. Then activate it to use.
+
+--------------
+
+Set variables in a profile
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli profiles set $profile $key $value 
+
+--------------
+
+Delete a profile
+~~~~~~~~~~~~~~~~
+
+::
+
+    $ dcae_cli profiles delete new-profile
+
+
diff --git a/docs/sections/components/dcae-cli/dcae-cli-tool.rst b/docs/sections/components/dcae-cli/dcae-cli-tool.rst
index 6f564ce..477fc34 100644
--- a/docs/sections/components/dcae-cli/dcae-cli-tool.rst
+++ b/docs/sections/components/dcae-cli/dcae-cli-tool.rst
@@ -8,6 +8,6 @@
    :maxdepth: 1
 
    ./quickstart.rst
+   ./commands.rst
    ./walkthrough.rst
-   ./dmaap-connection-objects.rst
 
diff --git a/docs/sections/components/dcae-cli/dmaap-connection-objects.rst b/docs/sections/components/dcae-cli/dmaap-connection-objects.rst
deleted file mode 100755
index cad3b0c..0000000
--- a/docs/sections/components/dcae-cli/dmaap-connection-objects.rst
+++ /dev/null
@@ -1,415 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-DMaaP connection objects
-========================
-
-DMaaP connection objects are JSON objects that:
-
-1. Components should expect at runtime in their application
-   configuration and is to be used to connect to the appropriate DMaaP
-   feed or topic.
-2. Developers must provide through the command-line argument
-   ``--dmaap-file`` to test their component with manually provisioned
-   feeds and topics.
-
-This page is a reference to the specific structure that each type of
-DMaaP stream requires.
-
-Note for #1 that components should expect the entire object with all
-properties at runtime where the default will be ``null`` unless
-specified otherwise.
-
-Note for #2 that developers are not required to provide the entire
-object. The required properties will be labeled with “*required as
-input*”.
-
-.. _dmaap-message-router:
-
-Message router
---------------
-
-Publishers and subscribers both have the same JSON object structure.
-Here’s an example:
-
-.. code:: json
-
-    {
-        "type": "message_router",
-        "aaf_username": "some-user",
-        "aaf_password": "some-password",
-        "dmaap_info": {
-            "client_role": "com.dcae.member",
-            "client_id": "1500462518108",
-            "location": "mtc00",
-            "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
-        }
-    }
-
-
-At the top-level:
-
-+-------------+----+--------------------+
-| Property    | Ty\| Descript\          |
-| Name        | pe | ion                |
-+=============+====+====================+
-| type        | st\| *Require\          |
-|             | ri\| d \                |
-|             | ng | as \               |
-|             |    | input*.            |
-|             |    | Must be            |
-|             |    | ``message_router`` |
-|             |    | for                |
-|             |    | message            |
-|             |    | router             |
-|             |    | topics             |
-+-------------+----+--------------------+
-| aaf_usernam\| st\| AAF                |
-| e           | ri\| username           |
-|             | ng | message            |
-|             |    | router             |
-|             |    | clients            |
-|             |    | use to             |
-|             |    | authenti\          |
-|             |    | cate               |
-|             |    | with               |
-|             |    | secure             |
-|             |    | topics             |
-+-------------+----+--------------------+
-| aaf_passwor\| st\| AAF                |
-| d           | ri\| password           |
-|             | ng | message            |
-|             |    | router             |
-|             |    | clients            |
-|             |    | use to             |
-|             |    | authenti\          |
-|             |    | cate               |
-|             |    | with               |
-|             |    | secure             |
-|             |    | topics             |
-+-------------+----+--------------------+
-| dmaap_info  | JS\| *Require\          |
-|             | ON | d \                |
-|             | ob\| as \               |
-|             | je\| input*.            |
-|             | ct | Contains           |
-|             |    | the                |
-|             |    | topic              |
-|             |    | connecti\          |
-|             |    | on                 |
-|             |    | details            |
-+-------------+----+--------------------+
-
-The ``dmaap_info`` object contains:
-
-+-------------+----+----------+
-| Property    | Ty\| Descript\|
-| Name        | pe | ion      |
-+=============+====+==========+
-| client_role | st\| AAF      |
-|             | ri\| client   |
-|             | ng | role     |
-|             |    | that’s   |
-|             |    | requesti\|
-|             |    | ng       |
-|             |    | publish  |
-|             |    | or       |
-|             |    | subscrib\|
-|             |    | e        |
-|             |    | access   |
-|             |    | to the   |
-|             |    | topic    |
-+-------------+----+----------+
-| client_id   | st\| Client   |
-|             | ri\| id for   |
-|             | ng | given    |
-|             |    | AAF      |
-|             |    | client   |
-+-------------+----+----------+
-| location    | st\| DCAE     |
-|             | ri\| location |
-|             | ng | for the  |
-|             |    | publishe\|
-|             |    | r        |
-|             |    | or       |
-|             |    | subscrib\|
-|             |    | er,      |
-|             |    | used to  |
-|             |    | set up   |
-|             |    | routing  |
-+-------------+----+----------+
-| topic_url   | st\| *Require\|
-|             | ri\| d \      |
-|             | ng | as \     |
-|             |    | input*.  |
-|             |    | URL for  |
-|             |    | accessin\|
-|             |    | g        |
-|             |    | the      |
-|             |    | topic to |
-|             |    | publish  |
-|             |    | or       |
-|             |    | receive  |
-|             |    | events   |
-+-------------+----+----------+
-
-Here’s an example of the minimal JSON that must be provided as an input:
-
-.. code:: json
-
-    {
-        "type": "message_router",
-        "dmaap_info": {
-            "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
-        }
-    }
-
-.. _dmaap-data-router:
-
-Data router
------------
-
-Publisher
-~~~~~~~~~
-
-Here’s an example of what the JSON object connection for data router
-publisher looks like:
-
-.. code:: json
-
-    {
-        "type": "data_router",
-        "dmaap_info": {
-            "location": "mtc00",
-            "publish_url": "https://we-are-data-router.us/feed/xyz",
-            "log_url": "https://we-are-data-router.us/feed/xyz/logs",
-            "username": "some-user",
-            "password": "some-password",
-            "publisher_id": "123456"
-        } 
-    }
-
-At the top-level:
-
-+-------------+----+----------------+
-| Property    | Ty\| Descript\      |
-| Name        | pe | ion            |
-+=============+====+================+
-| type        | st\| *Require\      |
-|             | ri\| d \            |
-|             | ng | as \           |
-|             |    | input*.        |
-|             |    | Must be        |
-|             |    | ``data_router``|
-|             |    | for data       |
-|             |    | router         |
-|             |    | feeds          |
-+-------------+----+----------------+
-| dmaap_info  | JS\| *Require\      |
-|             | ON | d \            |
-|             | ob\| as \           |
-|             | je\| input*.        |
-|             | ct | Contains       |
-|             |    | the            |
-|             |    | topic          |
-|             |    | connecti\      |
-|             |    | on             |
-|             |    | details        |
-+-------------+----+----------------+
-
-The ``dmaap_info`` object contains:
-
-+-------------+----+----------+
-| Property    | Ty\| Descript\|
-| Name        | pe | ion      |
-+=============+====+==========+
-| location    | st\| DCAE     |
-|             | ri\| location |
-|             | ng | for the  |
-|             |    | publishe\|
-|             |    | r,       |
-|             |    | used to  |
-|             |    | set up   |
-|             |    | routing  |
-+-------------+----+----------+
-| publish_url | st\| *Require\|
-|             | ri\| d \      |
-|             | ng | as \     |
-|             |    | input*.  |
-|             |    | URL to   |
-|             |    | which    |
-|             |    | the      |
-|             |    | publishe\|
-|             |    | r        |
-|             |    | makes    |
-|             |    | Data     |
-|             |    | Router   |
-|             |    | publish  |
-|             |    | requests |
-+-------------+----+----------+
-| log_url     | st\| URL from |
-|             | ri\| which    |
-|             | ng | log data |
-|             |    | for the  |
-|             |    | feed can |
-|             |    | be       |
-|             |    | obtained |
-+-------------+----+----------+
-| username    | st\| Username |
-|             | ri\| the      |
-|             | ng | publishe\|
-|             |    | r        |
-|             |    | uses to  |
-|             |    | authenti\|
-|             |    | cate     |
-|             |    | to Data  |
-|             |    | Router   |
-+-------------+----+----------+
-| password    | st\| Password |
-|             | ri\| the      |
-|             | ng | publishe\|
-|             |    | r        |
-|             |    | uses to  |
-|             |    | authenti\|
-|             |    | cate     |
-|             |    | to Data  |
-|             |    | Router   |
-+-------------+----+----------+
-| publisher_i | st\| Publishe\|
-| d           | ri\| r        |
-|             | ng | id in    |
-|             |    | Data     |
-|             |    | Router   |
-+-------------+----+----------+
-
-Here’s an example of the minimal JSON that must be provided as an input:
-
-.. code:: json
-
-    {
-        "type": "data_router",
-        "dmaap_info": {
-            "publish_url": "https://we-are-data-router.us/feed/xyz"
-        }
-    }
-
-Subscriber
-~~~~~~~~~~
-
-Here’s an example of what the JSON object connection for data router
-subscriber looks like:
-
-.. code:: json
-
-    {
-        "type": "data_router",
-        "dmaap_info": {
-            "location": "mtc00",
-            "delivery_url": "https://my-subscriber-app.dcae:8080/target-path",
-            "username": "some-user",
-            "password": "some-password",
-            "subscriber_id": "789012"
-        } 
-    }
-
-At the top-level:
-
-+-------------+----+----------------+
-| Property    | Ty\| Descript\      |
-| Name        | pe | ion            |
-+=============+====+================+
-| type        | st\| *Require\      |
-|             | ri\| d              |
-|             | ng | as \           |
-|             |    | input*.        |
-|             |    | Must be        |
-|             |    | ``data_router``|
-|             |    | for data       |
-|             |    | router         |
-|             |    | feeds          |
-+-------------+----+----------------+
-| dmaap_info  | JS\| *Require\      |
-|             | ON | d \            |
-|             | ob\| as \           |
-|             | je\| input*.        |
-|             | ct | Contains       |
-|             |    | the            |
-|             |    | topic          |
-|             |    | connecti\      |
-|             |    | on             |
-|             |    | details        |
-+-------------+----+----------------+
-
-The ``dmaap_info`` object contains:
-
-+--------------+----+----------+
-| Property     | Ty\| Descript\|
-| Name         | pe | ion      |
-+==============+====+==========+
-| location     | st\| DCAE     |
-|              | ri\| location |
-|              | ng | for the  |
-|              |    | publishe\|
-|              |    | r,       |
-|              |    | used to  |
-|              |    | set up   |
-|              |    | routing  |
-+--------------+----+----------+
-| delivery_ur\ | st\| URL to   |
-| l            | ri\| which    |
-|              | ng | the Data |
-|              |    | Router   |
-|              |    | should   |
-|              |    | deliver  |
-|              |    | files    |
-+--------------+----+----------+
-| username     | st\| Username |
-|              | ri\| Data     |
-|              | ng | Router   |
-|              |    | uses to  |
-|              |    | authenti\|
-|              |    | cate     |
-|              |    | to the   |
-|              |    | subscrib\|
-|              |    | er       |
-|              |    | when     |
-|              |    | deliveri\|
-|              |    | ng       |
-|              |    | files    |
-+--------------+----+----------+
-| password     | st\| Password |
-|              | ri\| Data     |
-|              | ng | Router   |
-|              |    | uses to  |
-|              |    | authenti\|
-|              |    | cate     |
-|              |    | to the   |
-|              |    | subscrib\|
-|              |    | er       |
-|              |    | when     |
-|              |    | deliveri\|
-|              |    | ng       |
-|              |    | files    |
-+--------------+----+----------+
-| subscriber_i\| st | Subscrib\|
-| d            | ri | er       |
-|              | ng | id in    |
-|              |    | Data     |
-|              |    | Router   |
-+--------------+----+----------+
-
-Here’s an example of the minimal JSON that must be provided as an input:
-
-.. code:: json
-
-    {
-        "type": "data_router",
-        "dmaap_info": {
-        }
-    }
-
-Developers are recommended to use ``username`` and ``password`` since
-this is the recommended security practice.
-
-Note that the dcae-cli will construct the ``delivery_url`` when
-deploying the component since this can only be known at deployment time.
diff --git a/docs/sections/components/dcae-cli/quickstart.rst b/docs/sections/components/dcae-cli/quickstart.rst
index 6037033..47b9ac1 100755
--- a/docs/sections/components/dcae-cli/quickstart.rst
+++ b/docs/sections/components/dcae-cli/quickstart.rst
@@ -3,86 +3,125 @@
 
 .. _quickstart:
 
-Quickstart
-==========
+Overview
+========
 
-The ``dcae-cli`` is a Python command-line tool built to aide component
-developers with the development and testing of their micro-service
-component for the DCAE platform. It will help developers do functional
-and integration testing of their components locally and on remote
-environments as simple as possible.
+The ``dcae-cli`` is a Python command-line tool for component developers.
+With it, the developer can :
 
-The tool requires the component developers to create a valid component
-specification for their component which is used by the tool. This same
-component specification will be published in the :any:`onboarding catalog <glossary-onboarding-catalog>` at the end of development
-and testing.
+-  validate the data formats and component specifications
+-  publish the validated data formats and component specifications into
+   the ``onboarding catalog``
+-  access the ``onboarding catalog`` to search for existing data formats
+   (for possible reuse) and component specs
+-  deploy a component onto a local or remote DCAE platform for
+   functional and pair-wise testing (This is done without Cloudify)
 
-.. The git repository can be found `here <ONAP%20LINK%20TBD>`__
+The git repository for the dcae_cli tool can be found
+`here <https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/cli.git>`__
 
-Pre-requisite
--------------
+Pre-requisites
+--------------
 
 For Docker
 ~~~~~~~~~~
 
-There are two options for development with Docker: developing locally on
-your machine which requires Docker to be installed and developing
-remotely by deploying onto remote infrastructure.
+There are two options for development with Docker:
 
 For local development
 ^^^^^^^^^^^^^^^^^^^^^
 
--  You must install `Docker
-   engine <https://docs.docker.com/engine/installation/>`__ locally on
+-  Install `Docker engine <https://docs.docker.com/engine/installation/>`__ locally on
    your machine.
--  You must know the *external ip* of where the Docker engine is
-   running. The external ip is needed so that service discovery will
-   wire up correctly.
+-  Know the *external ip* of where the Docker engine is running. The
+   external ip is needed so that service discovery will connect to it.
 
-   -  For OSX users, this means making sure the VirtualBox VM that is
+   -  *(For OSX users, this means making sure the VirtualBox VM that is
       running your Docker engine has a bridged adapter and getting the
-      ip of that adapter.
+      ip of that adapter).*
 
 For remote development
 ^^^^^^^^^^^^^^^^^^^^^^
 
-You need access to a remote host with Docker engine installed with
-remote API access. You must have the associated connection information:
-domain name or IP and port (should be either 2375 or 2376). This
-information should be set in :any:`an active profile <setting-profile>`.
+-  Have access to a remote host with Docker engine installed and with
+   remote API access.
+-  Have the associated connection information:
+
+   -  domain name or IP and port (port should be either 2375 or 2376).
+      Use this information to establish an active
+      :any:`profile <dcae_cli_activate_profile>`.
 
 For CDAP
 ~~~~~~~~
 
-TBD
+None at this time.
 
-Install
--------
+Python, Pip, Virtualenv
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Install python, pip (9.0.1 or higher), and virtualenv if they are not
+installed. Do these when not in a VPN to avoid possible network issues.
 
 ::
 
-    pip install --extra-index-url https://YOUR_NEXUS_PYPI_SERVER/simple dcae-cli
+      sudo apt-get -f install python
+      sudo apt-get -f install python-pip
+      sudo pip install virtualenv
 
-To do an upgrade, use the ``--upgrade`` flag.
+Set up a virtual environment and activate
+
+::
+
+      virtualenv cli_tool
+      source cli_tool/biin/activate 
+
+Install dcae_cli
+----------------
+
+::
+
+    pip install onap-dcae-cli
+
+Check dcae_cli version
+----------------------
+
+You can verify the version of the dcae-cli with the following command.
+To get the latest version of the dcae_cli tool,
+
+::
+
+    $ dcae_cli --version
+
+Upgrade dcae_cli
+----------------
+
+Periodically, upgrade the dcae_cli to get the latest version
+
+::
+
+    pip install --upgrade onap-dcae-cli
 
 Configuration
-~~~~~~~~~~~~~
+-------------
 
-When you run the tool for the first time, the tool will create a
-`configuration
+When running the tool for the first time, a `configuration
 directory <http://click.pocoo.org/5/api/#click.get_app_dir>`__ and
-generate a configuration file.
+configuration file will be created.
 
-Configuration is first sourced from an remote server that the platform
-team manages. This is overlaid with configuration details that you will
-be prompted to input particularly your user id.
+The configuration is first sourced from a remote server that is managed
+by the platform team. You will be prompted to enter your ATTUID to
+complete this process.
 
-``--reinit``
-^^^^^^^^^^^^
+Re-initializing Configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Configuration can be re-initialized or reset. There is a ``--reinit``
 flag that is to be used to re-initialize your configuration and your
-environment profiles.
+environment profiles. You may be instructed to re-initialize after
+certain updates are made to the dcae_cli tool. When you re-initialize
+the configuration, your configuration will be added to or updated from
+the platform configuration and profiles. No profiles will be deleted via
+the reinit process.
 
 To re-initialize:
 
@@ -90,10 +129,11 @@
 
     $ dcae_cli --reinit
 
-Verify
-~~~~~~
+Verify Installation
+-------------------
 
-Verify that its installed:
+To Verify that the dcae_cli tool is installed, run the following command
+and look for the output below.
 
 ::
 
@@ -112,11 +152,5 @@
       data_format
       profiles
 
-Version
--------
+Refer to :doc:`dcae_cli Commands <./commands>`.
 
-You can verify the version of the dcae-cli with the following command:
-
-::
-
-    $ dcae_cli --version
diff --git a/docs/sections/components/dcae-cli/walkthrough.rst b/docs/sections/components/dcae-cli/walkthrough.rst
index d33c35f..559ba3a 100755
--- a/docs/sections/components/dcae-cli/walkthrough.rst
+++ b/docs/sections/components/dcae-cli/walkthrough.rst
@@ -6,481 +6,200 @@
 Walk-through
 ============
 
-The goal of this quickstart is to provide an overview of the
-functionalities of the ``dcae-cli`` and walk you through the
-capabilities:
+This section demonstrates the flow and usage of the dcae_cli tool to
+onboard a typical component to the DCAE platform. The commands are
+explained in more detail in :doc:`dcae_cli Commands <commands>`.
 
--  `Adding data formats <#adding-data-formats>`__
--  `Adding component <#adding-component>`__
--  `Setting profile <#setting-profile>`__
--  `Development and testing <#development-and-testing>`__
--  `Publishing component <#publishing-component>`__
--  `Shared catalog <#shared-catalog>`__
+-  `Add (and validate) a data format <#add-a-data-format>`__
+-  `Add (and validate) the component <#add-the-component>`__
+-  `View the platform generated
+   configuration <#view-the-platform-generated-configuration>`__
+-  `If needed, Create the dmaap file for Dmaap Testing <#create-the-input-file-for-dmaap-testing>`__
+-  `If needed, Create the input file for *Sourced at Deployment* Testing <#create-the-input-file-for-sourced-at-deployment-testing>`__
+-  `Run the component <#run-the-component>`__
+-  :any:`Undeploy the component <dcae_cli_undeploy_the_component>`
+-  :any:`Publish the component and data_format <dcae_cli_publish_the_component_and_data_format>` to let others
+   know its ready for reuse
+-  `List the Catalog Contents <#list-the-catalog-contents>`__ to see
+   your published resources
 
-.. This walk-through uses example projects: COMMENTED OUT FOR NOW TBD
-.. 
-.. -  `laika <ONAP%20URL%20TBD>`__
-.. -  `CDAP examples <ONAP%20URL%20TBD>`__
 
-.. _adding-data-formats:
+--------------
 
-Adding data formats
--------------------
-
-``data_format`` is the sub-command that is used to execute operations
-that manage `data formats <../data-formats.md>`__.
+Add a Data Format
+-----------------
 
 ::
 
-    $ dcae_cli data_format --help
-    Usage: dcae_cli data_format [OPTIONS] COMMAND [ARGS]...
+    $ dcae_cli data_format add $HOME/yourapp/data-formats/health.json
 
-    Options:
-      --help  Show this message and exit.
-
-    Commands:
-      add      Tracks a data format file SPECIFICATION...
-      generate Generates a data format file from JSON input examples
-      list     Lists all your data formats
-      publish  Publishes data format to make publicly...
-      show     Provides more information about FORMAT
-
-Your data format must be in the catalog in order to use in the component
-specification. Check the catalog using the ``data_format list``
-sub-command:
+Verify that the data_format was added
 
 ::
 
-    $ dcae_cli data_format list
+    $ dcae_cli data_format list | grep yourapp                                                                                              
+    | sandbox.platform.yourapp.health | 0.1.0   | Data format used for the /health endpoint                   | staged    | 2017-11-07 21:48:47.736518 |
 
-    Data formats for mh677g
-    +------+---------+-------------+--------+----------+
-    | Name | Version | Description | Status | Modified |
-    +------+---------+-------------+--------+----------+
-    |      |         |             |        |          |
-    +------+---------+-------------+--------+----------+
+(Note: Each of the data formats for your component need to be added,
+unless already existing in the onboarding catalog )
 
-The fields ``name``, ``version``, ``description`` are referenced from
-the data format JSON from the ``self`` JSON.
+--------------
 
-There are no data formats so you must add the data formats that your
-component specification references. Use the ``data_format add``
-sub-command:
-
-Here’s an example command:
+Add the Component
+-----------------
 
 ::
 
-    dcae_cli data_format add health.json
+    $ dcae_cli component add $HOME/yourapp/component-spec.json
 
-Verify that it was added:
+Verify that the component was added
 
 ::
 
-    $ dcae_cli data_format list
-
-    Data formats for mh677g
-    +-------------------------------+---------+-------------------------------------------+--------+----------------------------+
-    | Name                          | Version | Description                               | Status | Modified                   |
-    +-------------------------------+---------+-------------------------------------------+--------+----------------------------+
-    | sandbox.platform.laika.health | 0.1.0   | Data format used for the /health endpoint | staged | 2017-05-23 04:02:38.952799 |
-    +-------------------------------+---------+-------------------------------------------+--------+----------------------------+
-
-Go ahead and add other referenced data formats.
-
-If you have JSON input you can generate a data format like this:
-
-::
-
-    $ dcae_cli data_format --keywords generate myname:1.0.0  myjsoninputfile
-
-where ``myname`` is the name of your data format, ``1.0.0`` is an
-example version, and ``myjsoninputfile`` is an example JSON input file
-(a directory of input JSON files can also be provided). The
-``--keywords`` option adds additional data attributes that can be
-completed to provide a more detailed data characterization. In any event
-the output should be reviewed for accuracy. The data format is written
-to stdout.
-
-.. _adding-component:
-
-Adding component
-----------------
-
-``component`` is the sub-command that is used to work with operations
-for components:
-
-::
-
-    $ dcae_cli component --help
-    Usage: dcae_cli component [OPTIONS] COMMAND [ARGS]...
-
-    Options:
-      --help  Show this message and exit.
-
-    Commands:
-      add
-      dev       Set up component in development for...
-      list      Lists components in the public catalog.
-      publish   Pushes COMPONENT to the public catalog
-      run       Runs the latest version of COMPONENT.
-      show      Provides more information about COMPONENT
-      undeploy  Undeploys the latest version of COMPONENT.
-
-Your component must be accessible from the catalog in order for it to be
-used. Check the catalog using the ``component list`` sub-command:
-
-::
-
-    $ dcae_cli component list
+    $ dcae_cli component list 
     Active profile: solutioning
 
-    +------+---------+------+-------------+--------+----------+-----------+
-    | Name | Version | Type | Description | Status | Modified | #Deployed |
-    +------+---------+------+-------------+--------+----------+-----------+
-    |      |         |      |             |        |          |           |
-    +------+---------+------+-------------+--------+----------+-----------+
+    +-------------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | Name                          | Version | Type   | Description                                                   | Status | Modified                   | #Deployed |
+    +-------------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | sandbox.platform.yourapp      | 0.7.0   | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-11-08 20:27:34.168854 | 0         |
+    +-------------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
 
-    Use the "--deployed" option to see more details on deployments
+--------------
 
-The fields ``name``, ``version``, ``type``, ``description`` are
-referenced from the component specification’s ``self`` JSON.
+.. _dcae-cli-view-the-platform:
 
-There are no components so you must add your component. Use the
-``component add`` sub-command. The command is the same for docker and
-cdap components:
+View the platform generated configuration
+-----------------------------------------
+
+The ``component dev`` command is useful during onboarding. Running this
+command is part of a multi-step process that sets up a temporary test
+environment, generates your application configuration, makes it
+available in that environment, and allows you to view that configuration
+to help with debugging.
+
+Here is a step-by-step example based on a component specification called
+``component-spec.json``.
+
+Step 1 - Run the component dev command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(This creates a file called env_$ENV (in the current directory)- where
+$ENV is the name of the active profile. Note: SERVICE_NAME and HOSTNAME
+always resolve to the same value).
 
 ::
 
-    $ dcae_cli component add --help
-    Usage: dcae_cli component add [OPTIONS] SPECIFICATION
-
-    Options:
-      --update  Updates a locally added component if it has not been already
-                pushed
-      --help    Show this message and exit.
-
-*Note* use the ``--update`` flag to replace existing staged instances.
-
-The ``component dev`` sub-command can be useful in validating and
-experimenting when crafting your component specification. See details
-about ``dev`` under `Development and
-testing <#development-and-testing>`__.
-
-Once we add the components laika and helloworld, let’s verify that they
-got added ok:
-
-::
-
-    $ dcae_cli component list
-    Active profile: solutioning
-
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-    | Name                    | Version | Type   | Description                                                   | Status | Modified                   | #Deployed |
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-    | cdap.helloworld.endnode | 0.8.0   | cdap   | cdap test component                                           | staged | 2017-05-23 04:14:35.588075 | 0         |
-    | sandbox.platform.laika  | 0.5.0   | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-05-23 04:07:44.065610 | 0         |
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-
-    Use the "--deployed" option to see more details on deployments
-
-.. _setting-profile:
-
-Setting profile
----------------
-
-``profile`` is the sub-command that is used to manage profiles. These
-profiles contain environment variables used to connect to different
-environments. This is used in the running and deployment of your
-component using the ``dcae_cli component run`` command. The ``dcae-cli``
-ships with profiles for ``solutioning`` and ``rework``.
-
-::
-
-    $ dcae_cli profiles --help
-    Usage: dcae_cli profiles [OPTIONS] COMMAND [ARGS]...
-
-    Options:
-      --help  Show this message and exit.
-
-    Commands:
-      activate  Sets profile NAME as the active profile
-      create    Creates a new profile NAME initialized with...
-      delete    Deletes profile NAME
-      list      Lists available profiles
-      set       Updates profile NAME such that KEY=VALUE
-      show      Prints the profile dictionary
-
-To see what variables a profile contains, you can use the ``show``
-command, as in ``dcae_cli profiles show PROFILE_NAME``
-
-Use the ``create`` sub-command to create your own profile and assign new
-values using the ``set`` command. Afterwards you will need to
-``activate`` the profile you wish to use. First take a look at which
-profile is active:
-
-::
-
-    $ dcae_cli profiles list
-       rework
-    *  solutioning
-
-The active profile is ``solutioning`` so to activate *rework* to use
-``rework``:
-
-::
-
-    $ dcae_cli profiles activate rework
-
-Check
-
-::
-
-    $ dcae_cli profiles list
-    *  rework
-       solutioning
-
-.. _development-and-testing:
-
-Development and testing
------------------------
-
-The following operations under the sub-command ``component`` are aimed
-to help developers with testing:
-
--  ``run``
--  ``undeploy``
--  ``dev``
-
-``run``
-~~~~~~~
-
-The ``run`` operation is to be used for running your application in its
-container remotely on the activated environment. Docker containers have
-the additional option to run locally on your development machine.
-
-In order to run your application, you must have added your data formats
-and your component to your catalog.
-
-Let’s verify that your component is in the catalog:
-
-::
-
-    $ dcae_cli component list                                                                                       
-    Active profile: solutioning
-
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-    | Name                    | Version | Type   | Description                                                   | Status | Modified                   | #Deployed |
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-    | cdap.helloworld.endnode | 0.8.0   | cdap   | cdap test component                                           | staged | 2017-05-23 04:14:35.588075 | 0         |
-    | sandbox.platform.laika  | 0.5.0   | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-05-23 04:07:44.065610 | 0         |
-    +-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
-
-    Use the "--deployed" option to see more details on deployments
-
-Docker
-^^^^^^
-
-**NOTE** Make sure your Docker image has been uploaded to the shared
-registry.
-
-For Docker containers, you can run either attached or unattached.
-Attached means that the dcae-cli tool will launch the container and not
-terminate. The dcae-cli while attached will stream in the logs of the
-Docker container. Doing a Ctrl-C will terminate the run session which
-means undeploy your container and force a clean up automatically.
-
-Running unattached means simply deploy your container. You will need to
-execute ``undeploy`` when you are done testing. #### CDAP
-
-**NOTE** Make sure your CDAP jar has been uploaded to Nexus.
-
-TODO
-
-``undeploy``
-~~~~~~~~~~~~
-
-The ``undeploy`` operation is to be used to undeploy any instances of a
-specified component, version that you have deployed. This includes
-cleaning up of configuration.
-
-Let’s undeploy ``sandbox.platform.laika`` that was deployed from the
-previous section:
-
-::
-
-    $ dcae_cli component undeploy sandbox.platform.laika:0.5.0
-    DCAE.Undeploy | WARNING | Undeploying components: 1
-    DCAE.Undeploy | WARNING | Undeployed components: 1
-
-.. _walkthrough-dev:
-
-``dev``
-~~~~~~~
-
-The ``dev`` operation is a convenient operation that can be useful for
-the development and testing of your component. It can be used to:
-
--  Help validate your experimental component specification before
-   uploading to the catalog
--  Generate the application configuration from the component
-   specification and make it available in a test environment. This
-   allows you to view your resulting configuration for local development
-   and to help debug potential related issues.
-
-Let’s say you have a component specification called
-``component-spec.json``:
-
-::
-
-    $ dcae_cli component dev component-spec.json 
+    $ dcae_cli component dev component-spec.json
     Ready for component development
 
-    Setup these environment varibles. Run "source env_solutioning":
+    Setup these environment variables. Run "source env_solutioning":
 
-    export DOCKER_HOST=SOME_DOCKER_HOST:2376
+    export DOCKER_HOST=yourdockerhost.com:2376
     export SERVICE_CHECK_INTERVAL=15s
     export CONFIG_BINDING_SERVICE=config_binding_service
-    export HOSTNAME=mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika
-    export CONSUL_HOST=SOME_CONSUL_HOST
+    export HOSTNAME=user12.b599cf0e-75e8-484b-b8e2-557576d77036.0-7-0.sandbox-platform-yourapp
+    export CONSUL_HOST=yourconsulhost.com
     export CDAP_BROKER=cdap_broker
-    export SERVICE_NAME=mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika
+    export SERVICE_NAME=user12.b599cf0e-75e8-484b-b8e2-557576d77036.0-7-0.sandbox-platform-yourapp
     export SERVICE_CHECK_TIMEOUT=1s
     export SERVICE_CHECK_HTTP=/health
 
     Press any key to stop and to clean up
 
-Your application configuration is now available under the name
-``mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika``.
+Step 2 - Setup the environment
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-To view the resulting configuration, you can ``curl`` a request to the
-config binding service or programmatically fetch your configuration
-within your application.
-
-You need to first query Consul to get the ip and port of config binding
-service:
+In another window, setup the temporary testing environment, by executing
+the environment file created above.
 
 ::
 
-    curl http://$CONSUL_HOST:8500/v1/catalog/service/$CONFIG_BINDING_SERVICE
+    $ source env_solutioning
+
+(The application configuration is now available under the SERVICE_NAME
+shown above -
+``user12.b599cf0e-75e8-484b-b8e2-557576d77036.0-7-0.sandbox-platform-yourapp``).
+
+Step 3 - Query CONSUL
+~~~~~~~~~~~~~~~~~~~~~
+
+Query CONSUL to get the IP/PORT of CONFIG BINDING SERVICE
+
+::
+
+    $ curl http://$CONSUL_HOST:8500/v1/catalog/service/$CONFIG_BINDING_SERVICE
     [
       {
-        "ID": "983d5c94-c508-4a8a-9be3-5912bd09786b",
-        "Node": "realsolcnsl00",
-        "Address": "10.226.1.22",
+        "ID": "bfbc220d-4603-7f90-ec2e-611d3c330f20",
+        "Node":"docker00",
+        "Address": "10.226.1.15",
+        "Datacenter":"solutioning-central",
         "TaggedAddresses": {
-          "lan": "10.226.1.22",
-          "wan": "10.226.1.22"
+          "lan":"10.226.1.15",
+          "wan":"10.226.1.15"
         },
         "NodeMeta": {},
-        "ServiceID": "5f371f295c90:config_binding_service:10000",
+        "ServiceID": "472b116f9035:config_binding_service:10000",
         "ServiceName": "config_binding_service",
         "ServiceTags": [],
-        "ServiceAddress": "XXXX",
-        "ServicePort": 32770,
+        "ServiceAddress":"135.205.226.126",
+        "ServicePort":10000,
         "ServiceEnableTagOverride": false,
-        "CreateIndex": 487,
-        "ModifyIndex": 487
+        "CreateIndex":1078990,
+        "ModifyIndex":1078990
       }
     ]
 
-.. _dmaap-testing:
-
-DMaaP testing
-~~~~~~~~~~~~~
-
-Currently, the dcae-cli does not have the capability of provisioning
-topics. In order to do testing with message router topics or with data
-router feeds, the developer must provision the topic or the feed
-manually and provide the connection details in the form of a JSON in a
-file to the dcae-cli. This file is to be passed in when using the
-``run`` and ``dev`` commands with the option ``--dmaap-file``.
-
-The structure of the DMaaP JSON is an object of config keys to matching
-topic or feed connection details. Config keys are the ``config_key``
-values specified in your component specification streams section where
-the streams must be type message router or data router. Information
-about the associated connection details can be found on `this
-page <dmaap-connection-objects.md>`__. Please check it out.
-
-For example, if you have a component specification that has the
-following streams entry:
-
-.. code:: json
-
-    "streams": {
-        "publishes": [{
-            "format": "ves",
-            "version": "1.0.0",
-            "type": "message router",
-            "config_key": "ves_connection"
-        }]
-    }
-
-Then to deploy and to run your component, you must use the
-``--dmaap-file`` command and pass in a JSON that looks like:
-
-.. code:: json
-
-    {
-        "ves_connection": {
-            "type": "message_router",
-            "dmaap_info": {
-                "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
-            }
-        }
-    }
-
-The provided DMaaP JSON is used to simulate the output of provisioning
-and will be used to merge with the generated application configuration
-at runtime.
-
-Your final application config will look like:
-
-.. code:: json
-
-    {
-        "streams_publishes": {
-            "ves_connection": {
-                "type": "message_router",
-                "dmaap_info": {
-                    "topic_url": "https://we-are-message-router.us:3905/events/some-topic"
-                }
-            }
-        }
-    }
-
-Data router subscribers
-^^^^^^^^^^^^^^^^^^^^^^^
-
-Note for data router subscriber testing, you will need the delivery url
-in order to provision the subscriber to the feed. This is constructed at
-deployment time and will be provided by the dcae-cli after you deploy
-your component. The delivery urls will be displayed to the screen:
+Fetch the generated configuration from CONFIG BINDING SERVICE using the
+‘serviceaddress’ and ‘serviceport’ from above along with $SERVICE_NAME
+from earlier.
 
 ::
 
-    DCAE.Run | WARNING | Your component is a data router subscriber. Here are the delivery urls: 
+    $ curl http://135.205.226.126:10000/service_component/user12.b599cf0e-75e8-484b-b8e2-557576d77036.0-7-0.sandbox-platform-yourapp
 
-            some-sub-dr: http://SOME_IP:32838/identity
+    {"streams_subscribes": {}, "services_calls": {}, "multiplier": 3, "streams_publishes": {}}
 
-*Sourced at deployment* testing
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------
+
+.. _dcae-cli-walkthrough-dmaap-testing:
+
+Create the input file for Dmaap Testing
+---------------------------------------
+
+Currently, the dcae-cli tool does not have the capability to provision
+topics or feeds. Therefore, in order to test with ``message router`` or
+``data router`` feeds, the developer must manually provision the topic
+or feed and then provide the connection details in the form of a DMaap
+JSON file for testing. This file is then passed in on the
+``component run`` or ``component dev`` commands by using the argument
+``--dmaap-file``.
+
+The structure of the DMaaP JSON is an object of config keys with the
+topic or feed connection details. The config keys are the ``config_key``
+values specified in the component specification streams section where
+the streams must be type ``message router`` or ``data router``. This
+file corresponds to the ``Dmaap Connection Object`` which is generated
+by the platform and provided to the component at runtime. The exception
+is that ``delivery_url`` cannot be provided in the dmaap-file because it
+is not created until the component is deployed. Refer to :any:`Dmaap Connection Object <dmaap-connection-objects>`, for details on creating the dmaap-file for testing.
+
+--------------
+
+Create the input file for *Sourced at Deployment* Testing
+---------------------------------------------------------
 
 Components may have configuration parameters whose values are to be
-sourced at deployment time. For example, there are components whose
-configuration parameters are to come from DTI events which are only
-available when the component is getting deployed. These configuration
-parameters must be setup correctly in the `component
-specification <http://localhost:8000/components/component-specification/docker-specification/#configuration-parameters>`__
+sourced at deployment time. This is established in the
+:any:`component specification <common-specification-parameters>`
 by setting the property ``sourced_at_deployment`` to ``true`` for each
-and every parameter that is expected to come in at deployment time.
+applicable parameter.
 
-Once your component specification has been updated correctly, you must
-use the ``--inputs-file`` command-line argument when running the
-commands ``dev`` or ``run`` with your component. This is to simulate
-providing the dynamic, deployment time values for those parameters
-marked as ``sourced_at_deployment``.
+Then, use the ``--inputs-file`` command-line argument when running the
+component ``dev`` or ``run`` command for your component. This is to
+simulate providing the dynamic, deployment time values for those
+parameters marked as ``sourced_at_deployment``.
 
 For example, if your component specification has the following
 configuration parameters:
@@ -497,7 +216,7 @@
         "value": 5
     }]
 
-You would have to pass in an inputs file that looks like:
+Pass in an input file that looks like:
 
 ::
 
@@ -505,7 +224,7 @@
         "vnf-ip": "10.100.1.100"
     }
 
-Your application configuration would look like:
+The application configuration would look like:
 
 ::
 
@@ -514,52 +233,162 @@
         "static-param": 5
     }
 
-Publishing component
---------------------
-
-Once components have their component specifications crafted and
-validated and have been tested, components should be published in the
-shared onboarding catalog using the ``publish`` sub-command for both
-data formats and components. You must publish all data formats of a
-component before publishing a component.
-
-Publishing will change the status of a component, be made accessible for
-other developers to use, and will generate the associated TOSCA models
-for use in designing of compositions.
-
-::
-
-    dcae_cli component publish sandbox.platform.laika:0.5.0
-
-Shared catalog
 --------------
 
-``catalog`` is the sub-command used to access and to browse the shared
-onboarding catalog to view components and data formats that have been
-published and that are being worked on. Components and data formats have
-two statuses ``staged`` and ``published``.
+Run the component
+-----------------
 
-Staged means that the resource has been simply added and is under
-development. It is to be used only by the owner. Published means that
-the resource has been fully developed and tested and is ready to be
-shared.
+The ``run`` operation is to be used for running your application in its
+container remotely on the activated environment. Docker containers have
+the additional option to run locally on your development machine. If the
+component uses Dmaap, you can specify the Dmaap Connection Object as
+well. Refer to :any:`Dmaap Connection Object <dmaap-connection-objects>`.
 
-Published components can be deployed by non-owners and published data
-formats can be used in component specifications of non-owners.
+In order to run the component, the data formats and component must have
+been added to the onboarding catalog.
 
-There are two available operations:
+To verify what’s in the catalog:
 
 ::
 
-    $ dcae_cli catalog --help
-    Usage: dcae_cli catalog [OPTIONS] COMMAND [ARGS]...
+    $ dcae_cli catalog list --expanded                                                                                      
+    Active profile: solutioning
+    +---------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | Name                      | Version | Type   | Description                                                   | Status | Modified                   | #Deployed |
+    +---------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
+    | sandbox.platform.yourapp  | 0.7.0   | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-11-08 20:27:34.168854 | 0         |
+    +---------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+
 
-    Options:
-      --help  Show this message and exit.
+For Docker
 
-    Commands:
-      list
-      show
+**NOTE** Make sure the Docker image has been uploaded to the shared
+registry.
 
-Staged components can be viewed under the ``list`` operation using the
-``--expanded`` flag.
+A docker component can be run in either ``attached`` or ``unattached``
+mode. (Default is unattached).
+
++------------------+---------------------------------------------------+
+| Mode             | Description                                       |
++==================+===================================================+
+| attached         | component is run in the ‘foreground’, container   |
+|                  | logs are streamed to stdout. Ctrl-C is used to    |
+|                  | terminate the dcae_cli session.                   |
++------------------+---------------------------------------------------+
+| unattached       | component is run in the ‘background’, container   |
+|                  | logs are viewed via ``docker logs`` command,      |
+|                  | container runs until undeployed with dcae_cli     |
+|                  | ``undeploy`` command.                             |
++------------------+---------------------------------------------------+
+
+Run a component in attached mode:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run --attached sandbox.platform.yourapp:0.7.0
+    DCAE.Docker | INFO | Running image 'nexus01.server.com:18443/repository/solutioning01-mte2-docker/dcae-platform/yourapp:0.7.0' as 'user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp'
+    DCAE.Docker.user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp | INFO | Consul host: yourconsulhost.com
+
+    DCAE.Docker.user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp | INFO | service name: user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp
+
+    DCAE.Docker.user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp | INFO | get_config returned the following configuration: {"streams_subscribes": {}, "multiplier": 3, "services_calls": {}, "streams_publishes": {}}
+
+    DCAE.Docker.user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp | INFO |  * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
+
+    DCAE.Docker.user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp | INFO | 135.205.226.156 - - [08/Nov/2017 23:27:30] "GET /health HTTP/1.1" 200 -
+
+
+    Hit Ctrl-C to terminate session.
+
+    ^C
+    DCAE.Docker | INFO | Stopping container 'user12.dbb13a3c-d870-487e-b584-89929b856b5c.0-7-0.sandbox-platform-yourapp' and cleaning up...
+
+Run a component in unattached mode:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run sandbox.platform.yourapp:0.7.0
+    DCAE.Docker | INFO | Running image 'nexus01.server.com:18443/repository/solutioning01-mte2-docker/dcae-platform/yourapp:0.7.0' as 'user12.22629ebd-417e-4e61-a9a0-f0cb16d4cef2.0-7-0.sandbox-platform-yourapp'
+    DCAE.Run | INFO | Deployed user12.22629ebd-417e-4e61-a9a0-f0cb16d4cef2.0-7-0.sandbox-platform-yourapp. Verifying..
+    DCAE.Run | INFO | Container is up and healthy
+
+**NOTE** You must undeploy this component when finished testing. This is
+important to conserve resources in the environment.
+
+Run a component that subscribes to Dmaap Message Router or Data Router
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run $component-that-uses-dmamp --dmaap-file $dmaap-connection-object
+
+Run a component that expects input that is ``sourced at deployment``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    $ dcae_cli -v component run $component-that-expects-dti --inputs-file $input-file-to-simulate-dti
+
+--------------
+
+
+.. _dcae_cli_undeploy_the_component:
+
+Undeploy the component
+----------------------
+
++-----------------------------------------------------------------+
+| The ``undeploy`` command is used to undeploy any instance of a  |
+| specified component/version that you have deployed. This        |
+| includes cleaning up the configuration.                         |
++-----------------------------------------------------------------+
+| Undeploy ``sandbox.platform.yourapp:0.7.0`` that was deployed     |
+| above:                                                          |
++-----------------------------------------------------------------+
+| ``$ dcae_cli -v component undeploy sandbox.platform.yourapp:0.7.0 |
+|  DCAE.Undeploy | WARNING | Undeploying components: 1 DCAE.Undep |
+| loy | WARNING | Undeployed components: 1``                      |
++-----------------------------------------------------------------+
+
+.. _dcae_cli_publish_the_component_and_data_format:
+
+Publish the component and data_format
+-------------------------------------
+
+Once a component has been tested, it (and the data_format(s)) should be
+published in the onboarding catalog using the ``publish`` sub-command
+for both the ``data_format`` and ``component`` command.
+
+**Note** Before a component can be published, all data_formats that it
+references must be published.
+
+Publishing will change the status of a component or data_format,
+indicating that it has been tested, make accessible for other developers
+to use.
+
+::
+
+    $ dcae_cli data_format publish sandbox.platform.yourapp:0.7.0
+    Data format has been published
+
+    $dcae_cli component publish sandbox.platform.yourapp:0.7.0
+    Component has been published
+
+--------------
+
+List the catalog contents
+-------------------------
+
+::
+
+    $dcae_cli catalog list
+
+    $ dcae_cli data_format list | grep sandbox
+    | sandbox.platform.yourapp         | 0.7.0   | docker | Web service used as a stand-alone test DCAE service compone..      | user12    | published | 2017-11-13 |
+    | sandbox.platform.yourapp.health            | 0.1.0  | Data format used for the /health endpoint                          | published | 2017-11-13 17:48:10.121588 |
+    | sandbox.platform.any                       | 0.1.0  | Data format used when no data format is required.                  | published | 2017-11-13 17:47:51.622607 |
+    | sandbox.platform.yourapp.identity.response | 0.1.0  | Data format used for the /identity endpoint response which should  | published | 2017-11-13 17:47:43.234715 |
+    | sandbox.platform.yourapp.identity.request  | 0.1.0  | Data format used for the /identity endpoint request. This is       | published | 2017-11-13 17:47:36.693643 |
+    | sandbox.platform.yourapp.rollcall.response | 0.1.0  | Data format used for the /rollcall endpoint respon..               | published | 2017-11-13 17:46:30.026846 |
+
diff --git a/docs/sections/components/glossary.rst b/docs/sections/components/glossary.rst
index 6c048cf..1ad4fcd 100644
--- a/docs/sections/components/glossary.rst
+++ b/docs/sections/components/glossary.rst
@@ -3,35 +3,208 @@
 
 .. _glossary:
 
+
 Glossary
 ========
 
-.. _glossary-asdc:
+A&AI - Active and Available Inventory
+-------------------------------------
 
-ASDC
+Inventory DB for all network components
+
+CLAMP
+-----
+
+Non DCAE Platform Component - Controls the input and processing for
+Closed Loop services.
+
+Closed Loop
+-----------
+
+Services designed to monitor and report back to a controlling function
+that automatically deals with the event reported without human
+interaction.
+
+CDAP
 ----
 
-The ECOMP resource catalog. We assume the existince and usage of ASDC, though for near term testing purposes, we use a mock version of the catalog. 
-We assume all DCAE artifacts: components like collectors, CDAP applications, data formats (see below), etc, are onboarded and searchable in the catalog. 
-Further, we assume that every catalog artifact has a *UUID*, a globally unique identifier that identifies that artifact. 
+Opensource Platform for development of Big Data platforms using Hadoop.
+Some DCAE service components are written utilizing CDAP.
 
-.. _glossary-component:
+Cloudify
+--------
+
+Open Source application and network orchestration framework, based on
+TOSCA used in DCAE to deploy platform and service components from
+Cloudify Blueprints. Refer to :doc:`Architecture <./architecture/pieces>`
+for more information.
+
+Cloudify Blueprints
+-------------------
+
+YAML formatted file used by Cloudify to deploy platform and service
+components. Contains all the information needed for installation.
+
+Consul
+------
+
+Opensource Platform Component that supports Service Discovery,
+Configuration, and Healthcheck. Refer to
+:doc:`Architecture <./architecture/pieces>` for more information.
 
 Component
 ---------
 
-Refers to a DCAE service component which is a single micro-service that is written to be run by the DCAE platform and to be composeable to form a DCAE service.
+Refers to a DCAE service component which is a single micro-service that
+is written to be run by the DCAE platform and to be composeable to form
+a DCAE service. That composition occurs in the SDC.
 
-.. _glossary-data-format:
+Config Binding Service
+----------------------
 
-Data format
+DCAE Platform Component - Service Components use Config Binding Service
+to access Consul and retrieve configuration variables.
+
+Component Specification
+-----------------------
+
+JSON formatted file that fully describes a component and its interfaces
+
+Data Format / Data Format Specification
+---------------------------------------
+
+JSON formatted file that fully describes a components input or output
+
+dcae_cli Tool
+-------------
+
+Tool used for development and testing. It validates the component and
+data format specifications against their respective schemas and provides
+the capability to view platform generated configuration for the
+component.
+
+Deployment Handler
+------------------
+
+DCAE Platform Component - talks to
+Cloudify to deploy components.
+
+Design-Time
 -----------
 
-Artifact that describes a data structure and schema.
+Refers to when the System Designer uses the SDC Tool to compose services
+from components in the SDC catalog. The Designer can provide input to
+assign/override defaults for configuration for any parameter with the
+property ‘designer_editable’ set to ‘true’.
 
-.. _glossary-onboarding-catalog:
+Deploy-Time
+-----------
+
+Refers to when a service is being deployed. This can be done
+automatically via the SDC Tool, or manually via the DCAE Dashboard or
+CLAMP UI. When manually deployed, DevOps can provide input to
+assign/override defaults for configuration for any parameter with the
+property ‘sourced_at_deployment’ set to ‘true’.
+
+Docker
+------
+
+Opensource Platform for development of containerized applications in the
+cloud. Many DCAE service components and all DCAE collectors are written
+utilizing Docker.
+
+Dmaap
+-----
+
+A data transportation service platform that supports message-based
+topics and file-based feeds. Runs locally at the Edge and Centrally.
+
+Inventory
+---------
+
+DCAE Platform Component - Postgres DB containing Cloudify Blueprints for
+platform and service components.
 
 Onboarding catalog
 ------------------
 
-The onboarding catalog is the intermediary store for project details, component specifications and data formats.  This is to be used by component developers through the `dcae-cli` to browse and to launch existing components and push their own component artifacts in preparation to move their component to the ASDC resource catalog.
+Catalog used exclusively by the dcae_cli tool during development and
+testing. Contains validated components and data_formats to be used among
+developers during development and testing.
+
+Policy (not yet implemented)
+----------------------------
+
+Refers to the setting of configuration parameters for a component, by
+Operations via the Policy UI.
+
+Policy Handler (not yet implemented)
+------------------------------------
+
+DCAE Platform Component that received Policy updates from Policy UI
+
+Policy UI (not yet implemented)
+-------------------------------
+
+Non DCAE Component - Policy User Interace where Operations assigns
+values to configuraton specified for this.
+
+Run-Time
+--------
+
+Refers to the when a service is running on the platform. 
+
+SCH - Service Change Handler
+----------------------------
+
+DCAE Platform Component - Receives updates from SDC and updates
+Inventory
+
+SDC - Service Design and Creation - (formerly ASDC)
+---------------------------------------------------
+
+Tool used by Service Designers to compose services from SDC catalog
+artifacts. Once services are created, Cloudify Blueprints can be
+generated to deployment and installation.
+
+SDC Catalog
+-----------
+
+Catalog of composable Components and Data Formats to be used in the SDC
+Tool to create services. Currently, there is no access to the SDC
+Catalog from the dcae_cli tool. Artifacts are manually placed there
+after testing. Every catalog artifact has a ``UUID``, a globally unique
+identifier that identifies that artifact.
+
+Self-Service
+------------
+
+Refers to services that are supported by SDC, and that are automatically
+installed as a result of a Service Designer’s composition and submission
+of a service. Only a handful of services are ‘self-service’ currently.
+Most require manual effort to generate the Tosca Model files and
+Cloudify Blueprints.
+
+Service Component
+-----------------
+
+Microservice that provides network monitoring or analytic function on
+the DCAE platform.
+
+Service
+-------
+
+Generally composed of multiple service components, which is deployed to
+the DCAE platform.
+
+Tosca Model
+-----------
+
+Model generated from validately component specification, (stored in SDC
+catalog for Self-Service components), and used as input to generate
+Cloudify Blueprints
+
+VNF - Virtualized Network Function
+----------------------------------
+
+A network function that runs on one or more virtualized machines.
diff --git a/docs/sections/components/images/IO.graffle b/docs/sections/components/images/IO.graffle
new file mode 100644
index 0000000..47c18b2
--- /dev/null
+++ b/docs/sections/components/images/IO.graffle
Binary files differ
diff --git a/docs/sections/components/images/dmd vision.graffle b/docs/sections/components/images/dmd vision.graffle
new file mode 100644
index 0000000..c6ad0d5
--- /dev/null
+++ b/docs/sections/components/images/dmd vision.graffle
Binary files differ
diff --git a/docs/sections/components/images/dmdvision.png b/docs/sections/components/images/dmdvision.png
new file mode 100644
index 0000000..cc6f195
--- /dev/null
+++ b/docs/sections/components/images/dmdvision.png
Binary files differ
diff --git a/docs/sections/components/images/io.png b/docs/sections/components/images/io.png
new file mode 100644
index 0000000..26c5eba
--- /dev/null
+++ b/docs/sections/components/images/io.png
Binary files differ
diff --git a/docs/sections/components/intro.rst b/docs/sections/components/intro.rst
index 8a31e84..db7175c 100755
--- a/docs/sections/components/intro.rst
+++ b/docs/sections/components/intro.rst
@@ -4,29 +4,30 @@
 .. _intro:
 
 
-Component Developer Overview
-============================
+Overview
+========
 
 DCAE components are services that provide a specific functionality and
-are written to be composable with other DCAE service components. The
-DCAE platform is responsible for running and managing DCAE service
-components reliably.
+are generally written to be composable with other DCAE components,
+although a component can run independently as well. The DCAE platform is
+responsible for running and managing DCAE service components reliably.
 
 Currently, the DCAE platform supports two types of components, CDAP
 applications and Docker containers. For each, there are requirements
 that must be met for the component to integrate into the DCAE platform
-(see :doc:`CDAP <component-type-cdap>` and :doc:`Docker <component-type-docker>`.
+(see :doc:`CDAP <component-type-cdap>` and
+:doc:`Docker <component-type-docker>`).
 
-Components requires one or more data formats.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+A Component requires one or more data formats.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Components are software applications that do some function. Components
-don’t run independently, they depend upon other components. A
+A component is a software application that performs a function. It
+doesn’t run independently; it depends upon other components. A
 component’s function could require connecting to other components to
 fulfill that function. A component could also be providing its function
 as a service through an interface for other components to use.
 
-Components cannot connect to or be connected with any other component.
+A component cannot connect to or be connected with any other component.
 The upstream and downstream components must *speak* the same vocabulary
 or *data format*. The output of an one component must match another
 component’s input. This is necessary for components to function
@@ -42,8 +43,7 @@
 
 The component specification is a JSON artifact that fully specifies the
 component, it’s interfaces, and configuration. It’s standardized for
-CDAP and Docker applications and is validated using a :any:`JSON
-schema <dcae-component-schema>`.
+CDAP and Docker applications and is validated using a :doc:`JSON schema <./component-json-schema>`.
 
 The component specification fully specifies all the configuration
 parameters of the component. This is used by the designer and by policy
@@ -80,18 +80,26 @@
 ----------
 
 Onboarding is a process that ensures that the component is compliant
-with the DCAE platform rules. A command-line tool called :doc:`dcae-cli <dcae-cli/quickstart>` is provided to help with onboarding. The high level summary of the onboarding process is:
+with the DCAE platform rules. A command-line tool called
+:doc:`dcae-cli <./dcae-cli/quickstart>` is provided to
+help with onboarding. The high level summary of the onboarding process
+is:
 
 1. Defining the :doc:`data formats <data-formats>` if they don’t already
    exist.
-2. Define the :doc:`component specification <component-specification/common-specification>`. See :doc:`Docker <component-specification/docker-specification>` and :doc:`CDAP <component-specification/cdap-specification>`.
-3. Use the dcae_cli tool to :any:`add the data formats <adding-data-formats>`
-   and :any:`add the component <adding-component>` to
-   the onboarding catalog. This process will validate them as well.
-4. Use the dcae_cli tool to :any:`deploy <development-and-testing>`
-   the component. (The component is deployed to the environment
-   indicated in :any:`profile <setting-profile>`).
+2. Defining the :doc:`component specification <./component-specification/common-specification>`.
+   See :doc:`docker <./component-specification/docker-specification>` and
+   :doc:`CDAP <./component-specification/cdap-specification>`.
+3. Use the dcae_cli tool to :any:`add the data formats <dcae_cli_add_a_data_format>` and
+   :any:`add the component <dcae_cli_add_a_component>` to the
+   onboarding catalog. This process will validate them as well.
+4. Use the dcae_cli tool to
+   :any:`deploy <dcae_cli_run_a_component>` the
+   component. (The component is deployed to the environment indicated in
+   the :any:`profile <dcae_cli_activate_profile>`
+   section).
 5. Test the component. Also do pairwise-test the component with any
    other components it connects with.
 6. Publish the component and data formats into the Service Design and
-   Creation (SDC) ‘catalog’. (Currently, this is a manual step).
+   Creation (SDC) ‘catalog’. (Currently, this is a manual step, not done
+   via the dcae_cli tool).
