Add multi-oxm using schemaIngest library
[aai/data-router.git] / FUNCTIONS.md
1 # ONAP Functions
2
3 The _Synapse_ data router comes packaged with a set of functionality that needs to be configured (as described at [Synapse README](./README.md)). This section describes specific functionality that _Synapse_ is capable of fulfilling given the appropriate configuration.
4
5 ## Entity Change Event
6
7 ### Interfaces
8
9 _Synapse_ pulls from message bus 
10 Purpose:
11 - Get every create/update/delete events coming from _AAI Resources_
12
13 _Synapse_ -> Search data Service port 9509 (REST)
14 Purposes: 
15  - Update secondary database with information pulled from the message bus
16
17 ### Configuration
18
19 ##### Contents of the /opt/app/datarouter-service/dynamic/conf Directory
20
21 _entity-event-policy.xml_
22
23 In order to take advantage of the entity change event functionality the following configuration spring bean file should be present with the appropriate fields filled in:
24
25         <beans xmlns="http://www.springframework.org/schema/beans"
26         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
27         xsi:schemaLocation="
28                         http://www.springframework.org/schema/beans
29                         http://www.springframework.org/schema/beans/spring-beans.xsd">
30
31         <bean id="eepConfig" class="org.onap.aai.datarouter.policy.EntityEventPolicyConfig" >
32                 <property name="sourceDomain" value="{domain-origin}" />
33            <property name="searchBaseUrl" value="https://{search-service-host}:{search-service-port}" />
34            <property name="searchEndpoint" value="services/search-data-service/v1/search/indexes/" />
35            <property name="searchEndpointDocuments" value = "documents" />
36            <property name="searchEntitySearchIndex" value="{entity-search-index-name}" />
37            <property name="searchTopographySearchIndex" value="{topographical-search-index-name}" />
38            <property name="searchEntityAutoSuggestIndex" value="{entity-auto-suggest-index-name}" />
39            <property name="searchAggregationVnfIndex" value="{aggregation-vnf-index-name}" />
40            <property name="searchCertName" value="{search-service-certificate-name}" />
41            <property name="searchKeystorePwd" value="OBF:{obfuscated-keystore-password}" />
42            <property name="searchKeystore" value="{keystore-name}" />
43         </bean>
44
45         <bean id="entityEventPolicy" class="org.onap.aai.datarouter.policy.EntityEventPolicy" init-method="startup" >
46             <constructor-arg ref="eepConfig"/>
47         </bean>
48         </beans>
49
50 Description of configuration fields:
51
52 sourceDomain: AAI adds a domain tag against all entity change event records published to the event bus. If the configured sourceDomain does not match with the domain value provided in the entity change event, that event is silently discarded.
53 searchBaseURL: the URL for the search service that this version of Synapse should send entity change records to. The format should be https://host:port. 
54 searchEndpoint: the base endpoint for the indexes resource on the search service. There should be no need to modify this value from the default unless the version of the search service API changes.
55 searchEndpointDocuments: the resource path identifier for documents in the search service. This value is appended to the searchEndpoint to build up the resource path for documents. There should be no need to modfiy this value from the default.
56 searchEntitySearchIndex: the name of the index in search service that will hold the entity change record.
57 searchTopographySearchIndex: the index name for storing topographical data in the search service. This index holds geographic coordinates for entities, and is used to plot points on a map within the AAIUI. 
58 searchEntityAutoSuggestIndex: the index name for storing auto-suggestion data in the search service. Data stored in this index is used in AAIUI to populate VNF search suggestions.
59 searchAggregationVnfIndex: the index name for storing VNF data in the search service. Data stored in this index is used in AAIUI to populate summary information about VNFs on certain attributes like provisioning status and orchestration status.
60 searchCertName: the name of the search service certificate file. Synapse looks for this file in the /opt/app/datarouter-service/app-config/auth directory.
61 searchKeystorePwd: the obsfuscated password for the configured keystore file. This keystore password should be obfuscated using the Jetty password obfuscation tool. 
62 searchKeystore: the name of the Synapse data router service keystore file. Synapse looks for this file in the /opt/app/datarouter-service/app-config/auth directory.
63
64 ##### Contents of the /opt/app/datarouter-service/dynamic/routes Directory
65
66 The purpose of this configuration directory is to maintain Camel route files specific to _Synapse_ use cases.
67 The following option files should be present in this directory on the host machine:
68
69 _entity-event.route_
70
71 In order to take advantage of the entity change event functionality the following configuration Apache Camel route file should be present with the appropriate fields filled in:
72
73         <route xmlns="http://camel.apache.org/schema/spring" trace="true">
74           <from uri="event-bus:{event-bus-client-name}/?eventTopic={event-topic}&amp;groupName={consumer-group-name}&amp;groupId={consumer-group-id}&amp;url={dmaap-url}" />
75           <to uri="bean:entityEventPolicy?method=process"/>
76         </route>
77
78 Description of configuration fields:
79
80 event-bus-client-name: a unique name identifying this consumer of the event bus
81 event-topic: the name of the topic that this client should consume from
82 groupName: the consumer group name for this client. The name here should be carefully considered. If this client is added to an existing consumer group, then the client will become responsible for a set of partitions on the topic.
83 groupId: a unique identifier for this client among the consumer group
84 dmaap-url: a set of one or more comma separated urls of dmaap servers that this client should attempt to connect to ie: http://dmaap1:3904,http://dmaap2:3904