.. 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. |