blob: dfd4980fb42c6553ef5d33a504350a2b243c1501 [file] [log] [blame]
.. 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. Heres 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 thats |
| | | 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
~~~~~~~~~
Heres 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
~~~~~~~~~~
Heres 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 its 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).