aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 34a8952dc8e47a0d676d8012f6771ebd357ba4da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
#
# ============LICENSE_START==========================================
# org.onap.dmaap
# ===================================================================
# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
# ===================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END============================================
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
#
DMaaP Bus Controller API
=======================

Data Movement as a Platform (DMaaP) Bus Controller provides an API for other ONAP infrastructure components to provision DMaaP resources.
A typical DMaaP resource is a Data Router Feed or a Message Router Topic, and their associated publishers and subscribers.
Other infrastucture resources such as DR Nodes and MR Clusters are also provisioned through this API.

### Build Instructions for a Continuous Integration environment using Jenkins

When this component is included in a Continuous Integration environment, such as structured by the Linux Foundation, the artifacts can be created and deployed via Jenkins.  The following maven targets are currently supported in the Build step:
```
clean install
javadoc:javadoc
sonar:sonar
```

### Build Instructions for external developers

This project is organized as a mvn project for a jar package.
After cloning from this git repo:

```
mvn clean install javadoc:javadoc
```

A description of the API is generated, and found in targets/generated-source/swagger.json.

### Configurable Parameters

Behavior of the API is controlled by settings in a properties file (typically etc/dmaapbc.properties).
The following describes these properties:

```

#
#	Configuration parameters fixed at startup for the DMaaP Bus Controller
#
#
#	URI to retrieve dynamic DR configuration
#
ProvisioningURI:	/internal/prov
#
#	Allow http access to API 
#
HttpAllowed:	true
#
#	The port number for http as seen within the server
#
IntHttpPort:	8080
#
#	The port number for https as seen within the server
#   Set to 0 if no certificate is available yet...
#
IntHttpsPort:	8443
#
#	The external port number for https taking port mapping into account
#
ExtHttpsPort:	443
#
#	The type of keystore for https
#
KeyStoreType:	jks
#
#	The path to the keystore for https
#
KeyStoreFile:	etc/keystore
#
#	The password for the https keystore
#
KeyStorePassword:	changeit
#
#	The password for the private key in the https keystore
#
KeyPassword:	changeit
#
#	The type of truststore for https
#
TrustStoreType:	jks
#
#	The path to the truststore for https
#
TrustStoreFile:	/opt/app/java/jdk/jdk180/jre/security/cacerts
#
#	The password for the https truststore
#
TrustStorePassword:	changeit
#
#	The path to the file used to trigger an orderly shutdown
#
QuiesceFile:	etc/SHUTDOWN
#
#	Enable postgress
#
UsePGSQL:	true
#
#	The host for postgres access
#
DB.host:	HostNotSet
#
#	For postgres access
#
DB.cred:	ValueNotSet
#
#	Name of this environment
#
DmaapName:	DeploymentEnvName
#
#	Name of DR prov server
#
DR.provhost:	dcae-drps.domain.notset.com
#
#	The Role and credentials of the MirrorMaker Provisioner.  This is used by DMaaP Bus Controller to pub to the provisioning topic
#   Not part of 1701
#
#MM.ProvRole: org.openecomp.dmaapBC.MMprov.prov
#MM.ProvUserMechId: idNotSet@namespaceNotSet
#MM.ProvUserPwd: enc:fMxh-hzYZldbtyXumQq9aJU08SslhbM6mXtt
#
#	The Role of the MirrorMaker Agent. This is used by MM to sub to provisioning topic
#
MM.AgentRole: org.openecomp.dmaapBC.MMagent.agent
#################
# AAF Properties:
#
# regarding password encryption:
# In the dependencies that Maven retrieves (e.g., under dcae_dmaapbc/target/deps/ is a jar file cadi-core-version.jar.  Generate the key file with:
#
# java \u2013jar wherever/cadi-core-*.jar keygen keyfilename
# chmod 400 keyfilename
#
# To encrypt a key:
#
# java \u2013jar wherever/cadi-core-*.jar digest password-to-encrypt keyfilename
#
# This will generate a string.  Put \u201Cenc:\u201D on the front of the string, and put the result in this properties file.
#
# Location of the Codec Keyfile which is used to decrypt passwords in this properties file before they are passed to AAF
#
# REF: https://wiki.domain.notset.com/display/cadi/CADI+Deployment
#
CredentialCodecKeyfile:	etc/LocalKey
#
# URL of AAF environment to use.
#
aaf.URL:	https://authentication.simpledemo.openecomp.org:8095/proxy/
#
# TopicMgr mechid@namespace
#
aaf.TopicMgrUser:	idNotSet@namespaceNotSet
#
# TopicMgr password
# 
aaf.TopicMgrPassword:	enc:zyRL9zbI0py3rJAjMS0dFOnYfEw_mJhO
#
# Bus Controller Namespace Admin  mechid@namespace
#
aaf.AdminUser:	idNotSet@namespaceNotSet
#
# Bus Controller Namespace Admin password
#
aaf.AdminPassword:	enc:YEaHwOJrwhDY8a6usetlhbB9mEjUq9m
#
# endof AAF Properties
#################
#################
# PolicyEngine Properties
#
# Flag to turn on/off Authentication
UsePE: false
#
# Argument to decisionAttributes.put("AAF_ENVIRONMENT", X); 
# where X is:  TEST= UAT, PROD = PROD, DEVL = TEST
#
PeAafEnvironment: DEVL
#
# Name of PolicyEngineApi properties file
PolicyEngineProperties: config/PolicyEngineApi.properties
#
# Namespace for URI values for API used to create AAF permissions
# e.g. if ApiNamespace is X.Y..dmaapBC.api then for URI /topics we create an AAF perm X.Y..dmaapBC.api.topics
ApiNamespace: org.onap.dmaap.dbcapi
#
# endof PolicyEngineProperties
#################

```