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