+++ /dev/null
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
-.. http://creativecommons.org/licenses/by/4.0\r
-\r
-.. _generated-configuration:\r
-\r
-Generated configuration\r
-=======================\r
-\r
-The DCAE platform relies on the component specification to generate the\r
-component’s application configuration JSON at deployment time. The\r
-component developer should expect to use this configuration JSON in\r
-their application to provision themselves.\r
-\r
-Pro-tip: As you build your component specification, you can use the\r
-:any:`dcae-cli dev command <walkthrough-dev>` to view what\r
-the resulting application configuration will look like.\r
-\r
-Streams and services\r
---------------------\r
-\r
-For both Docker and CDAP, when your component is deployed, any\r
-``streams`` and ``services/calls`` you specified will be injected into\r
-your configuration under the following well known structure. Your\r
-component is required to parse this information if you have any\r
-connectivity to DMaaP or are calling another DCAE component.\r
-\r
-More details about the DMaaP connection objects are found\r
-:doc:`here <../dcae-cli/dmaap-connection-objects>`.\r
-\r
-This is best served with an example.\r
-\r
-The following component spec snippet (from String Matching):\r
-\r
-::\r
-\r
- "streams":{ \r
- "subscribes": [{\r
- "format": "VES_specification", \r
- "version": "4.27.2", \r
- "type": "message_router",\r
- "config_key" : "mr_input"\r
- }],\r
- "publishes": [{\r
- "format": "VES_specification", \r
- "version": "4.27.2", \r
- "config_key": "mr_output",\r
- "type": "message_router"\r
- }]\r
- },\r
- "services":{ \r
- "calls": [{\r
- "config_key" : "aai_broker_handle",\r
- "verb": "GET",\r
- "request": {\r
- "format": "get_with_query_params",\r
- "version": "1.0.0"\r
- },\r
- "response": {\r
- "format": "aai_broker_response",\r
- "version": "3.0.0"\r
- } \r
- }],\r
- "provides": []\r
- },\r
-\r
-Will turn into the following top level keys in your configuration (for\r
-CDAP, this will be under AppConfig)\r
-\r
-::\r
-\r
- "streams_publishes":{ \r
- "mr_output":{ // notice the config key above\r
- "aaf_password":"XXX",\r
- "type":"message_router",\r
- "dmaap_info":{ \r
- "client_role": null,\r
- "client_id": null,\r
- "location": null,\r
- "topic_url":"XXX"\r
- },\r
- "aaf_username":"XXX"\r
- }\r
- },\r
- "streams_subscribes":{ \r
- "mr_input":{ // notice the config key above\r
- "aaf_password":"XXX",\r
- "type":"message_router",\r
- "dmaap_info":{ \r
- "client_role": null,\r
- "client_id": null,\r
- "location": null,\r
- "topic_url":"XXX"\r
- },\r
- "aaf_username":"XXX"\r
- }\r
- },\r
- "services_calls":{ \r
- "aai_broker_handle":[ // notice the config key above\r
- "SOME_IP:32768" // based on deployment time, just an example\r
- ]\r
- }\r
-\r
-These keys will always be populated regardless of whether they are\r
-empty. So the minimal you will get, in the case of a component that\r
-provides an HTTP service and does not call any services and has no\r
-streams, is:\r
-\r
-::\r
-\r
- "streams_publishes":{},\r
- "streams_subscribes":{},\r
- "services_calls":{}\r
-\r
-Thus your component should expect these well-known top level keys.\r