dmaap/buscontroller
Architecture
Capabilities
Bus Controller is a RESTful web service used to provision DMaaP topics on MR (Message Router) and feeds on DR (Data Router), with associated authorization via AAF.
Usage Scenarios
Bus Controller endpoints are used to provision:
an authorized topic on MR, and to create and grant permission for publishers and subscribers.
a feed on DR, with associated user authentication.
Configuration
Refer to README file in buscontroller repo for a list of properties. https://gerrit.onap.org/r/gitweb?p=dmaap/buscontroller.git;a=blob;f=README.md
These properties can be modified by changing the resource file in the helm chart prior to deployment. oom/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/dmaapbc.properties
Installation
Bus Controller is developed using Postgresql. An embedded Jetty server is used to create the REST service. The service is packaged as a Docker container image. Helm charts for Bus Controller are part of the overall dmaap chart set.
Steps for OOM Deployment
Clone the oom repo
cd oom/kubernetes
(optionally, customize the buscontroller configuration - see below)
make dmaap
helm install dmaap –name=dmaap –namespace=mr
Customizing the Bus Controller configuration
The Bus Controller is highly configurable, but by default has settings that should work for a standard ONAP oom deployment. However, if some customization is desired, there are places to change behavior:
The –namespace argument of the helm install step is also refernced to compose the topic namespace used. i.e. the value is appended to org.onap.dmaap. Since Message Router uses org.onap.dmaap.mr by default, we also use –namespace=mr. But this can be changed to a value that matches a different deployment of MR.
oom/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml contains the set of tags used within the charts. These can be modified if necessary.
oom/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env contains some environment settings for the container. These can be modified. For example, to indicate that AAF integration should be enabled, set USE_AAF=true in this file.
oom/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/dmaapbc.properties contains many properties which can be modified. For example, if a differerent Postgresql instance needed to be used, the value could be specified here.
Steps for local development and test
On Intel dev machine, in terminal (> indicates prompt) : 1) Build buscontroller images
- > git clone https://gerrit.onap.org/r/dmaap/buscontroller
anonymous http, can’t push changes
> cd buscontroller > mvn clean install -P docker
builds dmaap-bc and dbc-client images
- Run tests
> cd dmaap-bc/src/main/resources/ > cp docker-databus-controller.conf /var/tmp/
set docker preferences/file sharing to access /var/tmp
- edit docker-compose.yml
- remove “nexus3.onap.org:10001/” from dmaap-bc:image: and dbc-client:image: to
use local images
> docker-compose up -d - create sample.txt file (as above)(content of file not important) > curl http://localhost:30241/webapi/bridge
On Arm: 1) Build buscontroller images
- > git clone https://gerrit.onap.org/r/dmaap/buscontroller
anonymous http, can’t push changes
> cd buscontroller > mvn clean install -P docker -Ddocker.pull.registry=docker.io
ensure we pull Arm version of base image
- Run tests
> cd dmaap-bc/src/main/resources/ > cp docker-databus-controller.conf /var/tmp/
set docker preferences/file sharing to access /var/tmp
- edit docker-compose.yml
- remove “nexus3.onap.org:10001/” from dmaap-bc:image: and dbc-client:image: to
use local images
- replace ‘crunchydata/crunchy-postgres:centos7-10.4-2.0.0’ with
multi-platform ‘postgres:9.6-alpine’ normative image
> docker-compose up -d - create sample.txt file (as above)(content of file not important) > curl http://localhost:30241/webapi/bridge
Offered APIs
DMaaP Bus Controller REST API Download docs
API name |
Swagger JSON |
---|---|
DMaaP Buscontroller API |
DMaaP Bus Controller REST API 1.1.0
Description
Bus Controller provides an API for OpenDCAE components which need to provision underlying DMaaP technologies (Data Router and Message Router). Primary clients for this API are anticipated to be the OpenDCAE Controller, OpenDCAE Orchestrator, OpenDCAE Inventory and the ECOMP Portal.
Objects managed by DMaaP are deployed in a dcaeLocation which is a unique identifier for an OpenStack tenant for a dcaeLayer, opendcae-central (aka ecomp) or opendcae-local-ntc (aka edge).
A dcaeEnvironment (e.g. FTL or prod) has a single DMaaP. A DMaaP is managed by a one or more stateless DMaaP Bus Controller(s), though Bus Controller relies on PGaaS for persistence. Each DMaaP has a single instance of Data Router, which has 1 or more DR_Nodes deployed at each dcaeLocation. DR Clients of type DR_Pub generally publish to a DR_Node that is local to its dcaeLocation. Routing for a Feed is determined by the dcaelocation of its DR_Sub clients.
A DMaaP may have many Message Router instances. Each instance is deployed as an MR_Cluster. One MR_Cluster is deployed at each dcaeLocation. MR_Clients generally communicate to the MR_Cluster at the same dcaeLocation. Replication of messages between MR_Clusters is accomplished by MR Bridge, which is provioned by DMaaP Bus Controller based on Topic attributes.
Therefore, the role of DMaaP Bus Controller is to support other DCAE infrastructure components to dynamically provision DMaaP services on behalf of DMaaP clients, and to assist in any management or discovery activity of its clients.
A convention of this API is to return JSON responses per OpenStack style.
Contact Information
License
Base URL
http://www.[host]:[port]/webapi https://www.[host]:[port]/webapi
BRIDGE
Endpoint for retreiving MR Bridge metrics
GET /bridge
Summary
return BrTopic details
Description
Returns array of `BrTopic` objects. If source and target query params are specified, only report on that bridge. If detail param is true, list topics names, else just a count is returned.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
mmagent |
query |
No |
string |
|||
detail |
query |
No |
boolean |
Request
Responses
Success
Type: BrTopic
Example:
{
"brSource": "somestring",
"brTarget": "somestring",
"mmAgentName": "somestring",
"topicCount": 1
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /bridge
Summary
update MirrorMaker details
Description
replace the topic list for a specific Bridge. Use JSON Body for value to replace whitelist, but if refreshFlag param is true, simply refresh using existing whitelist.If split param is true, spread whitelist over smaller mmagents.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
mmagent |
query |
No |
string |
|||
refresh |
query |
No |
boolean |
|||
split |
query |
No |
boolean |
Request
Responses
Success
Type: BrTopic
Example:
{
"brSource": "somestring",
"brTarget": "somestring",
"mmAgentName": "somestring",
"topicCount": 1
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DCAELOCATIONS
an OpenStack tenant purposed for OpenDCAE (i.e. where OpenDCAE components might be deployed)
POST /dcaeLocations
Summary
return dcaeLocation details
Description
Create some `dcaeLocation` which is a unique identifier for an *OpenStack* tenant purposed for a *dcaeLayer* (ecomp or edge).Request
Responses
Success
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /dcaeLocations/{locationName}
Summary
return dcaeLocation details
Description
delete a dcaeLocationParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
locationName |
path |
Yes |
string |
Request
Responses
successful operation
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Success
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dcaeLocations/{locationName}
Summary
return dcaeLocation details
Description
Returns a specific `dcaeLocation` object with specified tagParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
locationName |
path |
Yes |
string |
Request
Responses
Success
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dcaeLocations
Summary
return dcaeLocation details
Description
Returns array of `dcaeLocation` objects. All objects managed by DMaaP are deployed in some `dcaeLocation` which is a unique identifier for an *OpenStack* tenant purposed for a *dcaeLayer* (ecomp or edge).Request
Responses
Success
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dcaeLocations/{locationName}
Summary
return dcaeLocation details
Description
update the openStackAvailabilityZone of a dcaeLocationParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
locationName |
path |
Yes |
string |
Request
Responses
Success
Type: DcaeLocation
Example:
{
"central": true,
"clli": "somestring",
"dcaeLayer": "somestring",
"dcaeLocationName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"local": true,
"openStackAvailabilityZone": "somestring",
"status": "EMPTY",
"subnet": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DMAAP
V2 Endpoint for this instance of DMaaP object containing values for this OpenDCAE deployment
POST /dmaap_v2
Summary
return dmaap details
Description
Create a new DMaaP set system wide configuration settings for the *dcaeEnvironment*. Deprecated with introduction of persistence in 1610.Request
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
POST /dmaap
Summary
return dmaap details
Description
Create a new DMaaP set system wide configuration settings for the *dcaeEnvironment*. Deprecated with introduction of persistence in 1610.Request
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dmaap_v2
Summary
return dmaap details
Description
returns the `dmaap` object, which contains system wide configuration settingsRequest
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dmaap
Summary
return dmaap details
Description
returns the `dmaap` object, which contains system wide configuration settingsRequest
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dmaap_v2
Summary
return dmaap details
Description
Update system settings for *dcaeEnvironment*.Request
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dmaap
Summary
return dmaap details
Description
Update system settings for *dcaeEnvironment*.Request
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DR_NODES
Endpoint for a Data Router Node server
POST /dr_nodes
Summary
return DR_Node details
Description
create a `DR_Node` in a *dcaeLocation*. Note that multiple `DR_Node`s may exist in the same `dcaeLocation`.Request
Responses
Success
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /dr_nodes/{fqdn}
Summary
No Content
Description
Delete a single `DR_Node` object.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
fqdn |
path |
Yes |
string |
Request
Responses
successful operation
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Success
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_nodes/{fqdn}
Summary
return DR_Node details
Description
Retrieve a single `DR_Node` object.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
fqdn |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_nodes
Summary
return DR_Node details
Description
Returns array of `DR_Node` object array. Need to add filter by dcaeLocation.Request
Responses
Success
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dr_nodes/{fqdn}
Summary
return DR_Node details
Description
Update a single `DR_Node` object.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
fqdn |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Node
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"hostName": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"status": "EMPTY",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DR_PUBS
Endpoint for a Data Router client that implements a Publisher
POST /dr_pubs
Summary
return DR_Pub details
Description
create a DR Publisher in the specified environment.Request
Responses
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /dr_pubs/{pubId}
Summary
return DR_Pub details
Description
delete a DR Publisher in the specified environment. Delete a `DR_Pub` object by pubIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
pubId |
path |
Yes |
string |
Request
Responses
successful operation
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_pubs/{pubId}
Summary
return DR_Pub details
Description
returns a DR Publisher in the specified environment. Gets a `DR_Pub` object by pubIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
pubId |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_pubs
Summary
return DR_Pub details
Description
Returns array of `DR_Pub` objects. Add filter for feedId.Request
Responses
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dr_pubs/{pubId}
Summary
return DR_Pub details
Description
update a DR Publisher in the specified environment. Update a `DR_Pub` object by pubIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
pubId |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DR_SUBS
Endpoint for a Data Router client that implements a Subscriber
POST /dr_subs
Summary
return DR_Sub details
Description
Create a `DR_Sub` object.Request
Responses
Success
Type: DR_Sub
Example:
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /dr_subs/{subId}
Summary
return DR_Sub details
Description
Delete a `DR_Sub` object, selected by subIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
subId |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Sub
Example:
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_subs/{subId}
Summary
return DR_Sub details
Description
Retrieve a `DR_Sub` object, selected by subIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
subId |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Sub
Example:
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /dr_subs
Summary
return DR_Sub details
Description
Returns array of `DR_Sub` objects. Add filter for feedId.Request
Responses
Success
Type: DR_Sub
Example:
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /dr_subs/{subId}
Summary
return DR_Sub details
Description
Update a `DR_Sub` object, selected by subIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
subId |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Sub
Example:
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
FEEDS
Endpoint for a Data Router Feed
POST /feeds
Summary
return Feed details
Description
Create a of `Feed` object.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
useExisting |
query |
No |
string |
Request
Responses
Success
Type: Feed
Example:
{
"asprClassification": "somestring",
"bytes": [
"somestring",
"somestring"
],
"feedDescription": "somestring",
"feedId": "somestring",
"feedName": "somestring",
"feedVersion": "somestring",
"formatUuid": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"publishURL": "somestring",
"pubs": [
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
},
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
],
"status": "EMPTY",
"subs": [
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
},
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
],
"subscribeURL": "somestring",
"suspended": true
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /feeds/{id}
Summary
return Feed details
Description
Delete a `Feed` object, specified by id.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
id |
path |
Yes |
string |
Request
Responses
successful operation
Type: Feed
Example:
{
"asprClassification": "somestring",
"bytes": [
"somestring",
"somestring"
],
"feedDescription": "somestring",
"feedId": "somestring",
"feedName": "somestring",
"feedVersion": "somestring",
"formatUuid": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"publishURL": "somestring",
"pubs": [
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
},
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
],
"status": "EMPTY",
"subs": [
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
},
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
],
"subscribeURL": "somestring",
"suspended": true
}
Success
Type: Feed
Example:
{
"asprClassification": "somestring",
"bytes": [
"somestring",
"somestring"
],
"feedDescription": "somestring",
"feedId": "somestring",
"feedName": "somestring",
"feedVersion": "somestring",
"formatUuid": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"publishURL": "somestring",
"pubs": [
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
},
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
],
"status": "EMPTY",
"subs": [
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
},
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
],
"subscribeURL": "somestring",
"suspended": true
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /feeds/{id}
Summary
return Feed details
Description
Retrieve a `Feed` object, specified by id.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
id |
path |
Yes |
string |
Request
Responses
Success
Type: DR_Pub
Example:
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /feeds
Summary
return Feed details
Description
Returns array of `Feed` objects.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
feedName |
query |
No |
string |
|||
version |
query |
No |
string |
|||
match |
query |
No |
string |
Request
Responses
Success
Type: Feed
Example:
{
"asprClassification": "somestring",
"bytes": [
"somestring",
"somestring"
],
"feedDescription": "somestring",
"feedId": "somestring",
"feedName": "somestring",
"feedVersion": "somestring",
"formatUuid": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"publishURL": "somestring",
"pubs": [
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
},
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
],
"status": "EMPTY",
"subs": [
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
},
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
],
"subscribeURL": "somestring",
"suspended": true
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /feeds/{id}
Summary
return Feed details
Description
Update a `Feed` object, specified by id.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
id |
path |
Yes |
string |
Request
Responses
Success
Type: Feed
Example:
{
"asprClassification": "somestring",
"bytes": [
"somestring",
"somestring"
],
"feedDescription": "somestring",
"feedId": "somestring",
"feedName": "somestring",
"feedVersion": "somestring",
"formatUuid": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"publishURL": "somestring",
"pubs": [
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
},
{
"dcaeLocationName": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"pubId": "somestring",
"status": "EMPTY",
"username": "somestring",
"userpwd": "somestring"
}
],
"status": "EMPTY",
"subs": [
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
},
{
"bytes": [
"somestring",
"somestring"
],
"dcaeLocationName": "somestring",
"deliveryURL": "somestring",
"feedId": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"logURL": "somestring",
"owner": "somestring",
"status": "EMPTY",
"subId": "somestring",
"suspended": true,
"use100": true,
"username": "somestring",
"userpwd": "somestring"
}
],
"subscribeURL": "somestring",
"suspended": true
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
INFO
Endpoint for this instance of DBCL. Returns health info.
GET /info
Summary
return info details
Description
returns the `info` objectRequest
Responses
Success
Type: Dmaap
Example:
{
"accessKeyOwner": "somestring",
"bridgeAdminTopic": "somestring",
"dmaapName": "somestring",
"drProvUrl": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"loggingUrl": "somestring",
"nodeKey": "somestring",
"status": "EMPTY",
"topicNsRoot": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
MR_CLIENTS
Endpoint for a Message Router Client that implements a Publisher or a Subscriber
POST /mr_clients
Summary
Associate an MR_Client object to a Topic
Description
Create a `MR_Client` object.The `dcaeLocation` attribute is used to match an `MR_Cluster` object with the same value, with the intent of localizing message traffic. In legacy implementation, the `clientRole` is granted appropriate permission in AAF. Newer implementions may instead specify an AAF Identity, which will be added to the appropriate `Topic` role.Request
Responses
Success
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /mr_clients/{subId}
Summary
Delete an MR_Client object
Description
Delete a `MR_Client` object, specified by clientIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
subId |
path |
Yes |
string |
Request
Responses
successful operation
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Success
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /mr_clients
Summary
return MR_Client details
Description
Returns array of `MR_Client` objects.Request
Responses
Success
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /mr_clients/{subId}
Summary
return MR_Client details
Description
Retrieve a `MR_Client` object, specified by clientIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
subId |
path |
Yes |
string |
Request
Responses
Success
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /mr_clients/{clientId}
Summary
Update an MR_Client object
Description
Update a `MR_Client` object, specified by clientIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
clientId |
path |
Yes |
string |
Request
Responses
Success
Type: MR_Client
Example:
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
MR_CLUSTERS
Endpoint for a Message Router servers in a Cluster configuration
POST /mr_clusters
Summary
return MR_Cluster details
Description
Create an `MR_Cluster` object.Request
Responses
Success
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /mr_clusters/{clusterId}
Summary
return MR_Cluster details
Description
Delete an `MR_Cluster` object, specified by clusterId.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
clusterId |
path |
Yes |
string |
Request
Responses
successful operation
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Success
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /mr_clusters/{clusterId}
Summary
return MR_Cluster details
Description
Retrieve an `MR_Cluster` object, specified by clusterId.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
clusterId |
path |
Yes |
string |
Request
Responses
Success
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /mr_clusters
Summary
return MR_Cluster details
Description
Returns array of `MR_Cluster` objects.Request
Responses
Success
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /mr_clusters/{clusterId}
Summary
return MR_Cluster details
Description
Update an `MR_Cluster` object, specified by clusterId.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
clusterId |
path |
Yes |
string |
Request
Responses
Success
Type: MR_Cluster
Example:
{
"dcaeLocationName": "somestring",
"fqdn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"replicationGroup": "somestring",
"sourceReplicationPort": "somestring",
"status": "EMPTY",
"targetReplicationPort": "somestring",
"topicPort": "somestring",
"topicProtocol": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
TOPICS
Endpoint for retreiving MR Topics
POST /topics
Summary
Create a Topic object
Description
Create `Topic` object.For convenience, the message body may populate the `clients` array, in which case each entry will be added as an `MR_Client`. Beginning in ONAP Dublin Release, dbcapi will create two AAF Roles by default, one each for the publisher and subscriber per topic. MR_Clients can then specify an AAF Identity to be added to the appropriate default Role, avoiding the need to create Role(s) in advance.Parameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
useExisting |
query |
No |
string |
Request
Responses
Success
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
DELETE /topics/{topicId}
Summary
return Topic details
Description
Delete a `Topic` object, identified by topicIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
topicId |
path |
Yes |
string |
Request
Responses
successful operation
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Success
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /topics/{topicId}
Summary
return Topic details
Description
Retrieve a `Topic` object, identified by topicIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
topicId |
path |
Yes |
string |
Request
Responses
Success
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
GET /topics
Summary
return Topic details
Description
Returns array of `Topic` objects.Request
Responses
Success
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
PUT /topics/{topicId}
Summary
return Topic details
Description
Update a `Topic` object, identified by topicIdParameters
Name |
Located in |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|---|
topicId |
path |
Yes |
string |
Request
Responses
Success
Type: Topic
Example:
{
"clients": [
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
},
{
"action": [
"somestring",
"somestring"
],
"clientIdentity": "somestring",
"clientRole": "somestring",
"dcaeLocationName": "somestring",
"fqtn": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"mrClientId": "somestring",
"status": "EMPTY",
"topicURL": "somestring"
}
],
"formatUuid": "somestring",
"fqtn": "somestring",
"fqtnStyle": "FQTN_NOT_SPECIFIED",
"globalMrURL": "somestring",
"lastMod": "2015-01-01T15:00:00.000Z",
"owner": "somestring",
"partitionCount": "somestring",
"publisherRole": "somestring",
"replicationCase": "REPLICATION_NOT_SPECIFIED",
"replicationCount": "somestring",
"status": "EMPTY",
"subscriberRole": "somestring",
"tnxEnabled": "somestring",
"topicDescription": "somestring",
"topicName": "somestring",
"version": "somestring"
}
Error
Type: ApiError
Example:
{
"code": 1,
"fields": "somestring",
"is2xx": true,
"message": "somestring"
}
Data Structures
ApiError Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
code |
No |
integer |
int32 |
||
fields |
No |
string |
|||
is2xx |
No |
boolean |
|||
message |
No |
string |
BrTopic Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
brSource |
No |
string |
|||
brTarget |
No |
string |
|||
mmAgentName |
No |
string |
|||
topicCount |
No |
integer |
int32 |
DR_Node Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
dcaeLocationName |
No |
string |
|||
fqdn |
No |
string |
|||
hostName |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
version |
No |
string |
DR_Pub Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
dcaeLocationName |
No |
string |
|||
feedId |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
pubId |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
username |
No |
string |
|||
userpwd |
No |
string |
DR_Sub Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
bytes |
No |
array of string |
|||
dcaeLocationName |
No |
string |
|||
deliveryURL |
No |
string |
|||
feedId |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
logURL |
No |
string |
|||
owner |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
subId |
No |
string |
|||
suspended |
No |
boolean |
|||
use100 |
No |
boolean |
|||
username |
No |
string |
|||
userpwd |
No |
string |
DcaeLocation Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
central |
No |
boolean |
|||
clli |
No |
string |
|||
dcaeLayer |
No |
string |
|||
dcaeLocationName |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
local |
No |
boolean |
|||
openStackAvailabilityZone |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
subnet |
No |
string |
Dmaap Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
accessKeyOwner |
No |
string |
|||
bridgeAdminTopic |
No |
string |
|||
dmaapName |
No |
string |
|||
drProvUrl |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
loggingUrl |
No |
string |
|||
nodeKey |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
topicNsRoot |
No |
string |
|||
version |
No |
string |
Feed Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
asprClassification |
No |
string |
|||
bytes |
No |
array of string |
|||
feedDescription |
No |
string |
|||
feedId |
No |
string |
|||
feedName |
No |
string |
|||
feedVersion |
No |
string |
|||
formatUuid |
No |
string |
|||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
logURL |
No |
string |
|||
owner |
No |
string |
|||
publishURL |
No |
string |
|||
pubs |
No |
array of DR_Pub |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
subs |
No |
array of DR_Sub |
|||
subscribeURL |
No |
string |
|||
suspended |
No |
boolean |
MR_Client Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
action |
No |
array of string |
one or more actions from the set (‘pub’, ‘sub’, ‘view’) for which this client needs Permission |
||
clientIdentity |
No |
string |
an AAF identity to be associated to an appropriate topic Role |
||
clientRole |
No |
string |
an AAF Role to be granted an appropriate Permission. If specified, takes precedence over clientIdentity, for backwards compatibility. |
||
dcaeLocationName |
No |
string |
a tag indicating a logical deployment site |
||
fqtn |
No |
string |
Fully Qualified Topic Name constructed by dbcapi |
||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
mrClientId |
No |
string |
a unique identifier generated by dbcapi for this client |
||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
topicURL |
No |
string |
the URL for a MR instance - typically in the same dcaeLocation - that this client should use to access the topic |
MR_Cluster Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
dcaeLocationName |
No |
string |
|||
fqdn |
No |
string |
|||
lastMod |
No |
string |
date-time |
||
replicationGroup |
No |
string |
|||
sourceReplicationPort |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
targetReplicationPort |
No |
string |
|||
topicPort |
No |
string |
|||
topicProtocol |
No |
string |
MirrorMaker Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
mmName |
No |
string |
|||
sourceCluster |
No |
string |
|||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
targetCluster |
No |
string |
|||
topicCount |
No |
integer |
int32 |
||
topics |
No |
array of string |
|||
whitelistUpdateJSON |
No |
string |
Topic Model Structure
Name |
Required |
Type |
Format |
Properties |
Description |
---|---|---|---|---|---|
clients |
No |
array of MR_Client |
an array of MR_Client objects associated to this Topic |
||
formatUuid |
No |
string |
a reference to an identifier that describes a data format used for this Topic |
||
fqtn |
No |
string |
Fully Qualified Topic Name constructed by dbcapi, following the rules for fqtnStyle |
||
fqtnStyle |
No |
string |
{‘enum’: [‘FQTN_NOT_SPECIFIED’, ‘FQTN_LEGACY_FORMAT’, ‘FQTN_PROJECTID_FORMAT’, ‘FQTN_PROJECTID_VERSION_FORMAT’]} |
the construction rule for the fqtn field |
|
globalMrURL |
No |
string |
the URL of an outside MR instance |
||
lastMod |
No |
string |
date-time |
datestamp for last update to this object |
|
owner |
No |
string |
a label used to identify who requested this Topic to be provisioned. In the future this may be an AAF Identity. |
||
partitionCount |
No |
string |
the kafka attribute for specifying the number of partitions |
||
publisherRole |
No |
string |
a value generated by dbcapi, this AAF Role has permission to publish to this Topic |
||
replicationCase |
No |
string |
{‘enum’: [‘REPLICATION_NOT_SPECIFIED’, ‘REPLICATION_NONE’, ‘REPLICATION_EDGE_TO_CENTRAL’, ‘REPLICATION_EDGE_TO_CENTRAL_TO_GLOBAL’, ‘REPLICATION_CENTRAL_TO_EDGE’, ‘REPLICATION_CENTRAL_TO_GLOBAL’, ‘REPLICATION_GLOBAL_TO_CENTRAL’, ‘REPLICATION_GLOBAL_TO_CENTRAL_TO_EDGE’, ‘REPLICATION_EDGE_TO_FQDN’, ‘REPLICATION_FQDN_TO_EDGE’, ‘REPLICATION_FQDN_TO_GLOBAL’, ‘REPLICATION_GLOBAL_TO_FQDN’, ‘REPLICATION_EDGE_TO_FQDN_TO_GLOBAL’, ‘REPLICATION_GLOBAL_TO_FQDN_TO_EDGE’]} |
An indicator for how this Topic should be replicated when there are more than one MR_Cluster instances |
|
replicationCount |
No |
string |
the kafka attribute for specifying replication within an MR_Cluster instance |
||
status |
No |
string |
{‘enum’: [‘EMPTY’, ‘NEW’, ‘STAGED’, ‘VALID’, ‘INVALID’, ‘DELETED’]} |
||
subscriberRole |
No |
string |
a value generated by dbcapi, this AAF Role has permission to subscribe to this Topic |
||
tnxEnabled |
No |
string |
|||
topicDescription |
No |
string |
a description of what this Topic is used for |
||
topicName |
No |
string |
the short name used by humans, and utilized to construct the FQTN |
||
version |
No |
string |
a hook for any versioning needed for managing a Topic over time |
Consumed APIs
Bus Controller consumes the following APIs:
the Message Router topic creation API
the AAF authorization API to create and grant permissions
the DR Provisioning API to create feeds and subscribers
Logging
Where to Access Information
Bus Controller uses logback framework to generate logs found under logs/ONAP. Logs are organized into files:
application.log - contains general logs
error.log - contains errors
audit.log - contains transactions for audit trail
server.log - contains jetty server specific logging
Error / Warning Messages
Logging to error.log will distinguish critical errors from warnings.
Delivery
Bus Controller is not involved in the active transport of data. It is for provisioning only.
Security
Table of Contents
Roles and Permissions
UseAAF
flag is set.org.onap.dmaap-bc.api
.mr
which is reflected in instance part of every created permission under DMaaP BC API./dmaap
endpoint where additionally set of permissions for boot
instance is defined:org.onap.dmaap-bc.api.dmaap|boot|DELETE
org.onap.dmaap-bc.api.dmaap|boot|GET
org.onap.dmaap-bc.api.dmaap|boot|POST
org.onap.dmaap-bc.api.dmaap|boot|PUT
org.onap.dmaap-bc.api.Controller
org.onap.dmaap-bc.api.Inventory
org.onap.dmaap-bc.api.Metrics
org.onap.dmaap-bc.api.Orchestrator
org.onap.dmaap-bc.api.PortalUser
- Predefined roles brief description:
Controller - contains all permissions to DMaaP BC REST api, and should be assigned to identities which requires full admin rights to DMaaP BC, like
dmaap-bc
service identity itself.Inventory - role defined for functions which require ReadOnly access to the resources provided on DMaaP BC api.
Metrics - role designed to be used by external function which examines the counts of topics that were replicating between different MR instances. Main permission of this role is to read from DMaaP BC bridge endpoint.
Orchestrator - main role containing all permissions, which client micro-service might need. One of the example functions is
dmaap plugin
which is part of DCAE. The difference between this and Controller role is that Orchestrator is not responsible for deploying new k8s cluster or a message-router into that cluster, so it has limited, RO access to dmaap and dcaeLocations endpoints.PortalUser - role designed to be used in DMaaP Bus Controller Web App, which is based on the ONAP Portal SDK. If the UI app is deployed and available in ONAP Portal, portal users which will use DMaaP BC Web App shall be assigned to this role.
Bus Controller API security options
dmaapbc.properties
responsible for configuring DMaaP BC API security option.enableCADI, useAAF, ApiPermission.Class
. Below table describes purpose of each property:Property |
Values |
Description |
---|---|---|
enableCADI |
true/false |
If set to true CADI filter is enabled on BC REST api and authorization is performed through connected AAF instance. Otherwise legacy authorization mechanism is used, which depends on api policy defined with ApiPermission.Class property setting. |
useAAF |
true/false |
The purpose of this flag is to configure if specific namespaces, roles, and permissions should be created in AAF instance when calling some of DMaaP BC api endpoints. Setting it to true will cause automatic operation in AAF:
|
ApiPermission.Class |
|
when CADI filter is not in use, API security is fulfilled with policy defined by class given in this property. Currently available options are:
This property allows to define custom policy,
for example to external authorization system
by implementing |
Note
aaf_user_expires
property (value in ms) in DMaaP BC cadi.properties
file.Security properties combination and its implications
Note
Properties combination |
Security result |
Use Case |
---|---|---|
enableCADI = true
useAAF = true
ApiPermission.Class N/A
|
AAF is in use for DMaaP-BC and DMaaP-MR
can also rely on AAF.
CADI filter is in use, authorization data
caching is in use, function can authorize
using x509 certificate or Basic Auth.
|
DMaaP-BC - secured with AAF
DMaaP-MR - secured with AAF
|
enableCADI = true
useAAF = false
ApiPermission.Class N/A
|
AAF is not in use for resources
configuration.
CADI filter is in use, authorization data
caching is in use, function can authorize
using x509 certificate or Basic Auth.
|
DMaaP-BC - secured with AAF
DMaaP-MR - unsecured
|
enableCADI = false
useAAF = true
ApiPermission.Class =
<pckg>.AafLurAndFish
|
AAF is in use for DMaaP-BC and DMaaP-MR
can also rely on AAF.
Legacy authorization is in use, no caching
for authorization data, function can
authorize using Basic Auth only.
|
DMaaP-BC - secured with AAF
DMaaP-MR - secured with AAF
|
enableCADI = false
useAAF = false
ApiPermission.Class =
<pckg>.AafLurAndFish
|
AAF is not in use for resources
configuration.
Legacy authorization is in use, no caching
for authorization data, function can
authorize using Basic Auth only.
|
DMaaP-BC - secured with AAF
DMaaP-MR - unsecured
|
enableCADI = false
useAAF = true
ApiPermission.Class =
<pckg>.AllowAll
|
AAF is in use for DMaaP-BC resources and
DMaaP-MR can also rely on AAF.
No authentication and authorization is
performed on DMaaP BC REST api
|
DMaaP-BC - unsecured
DMaaP-MR - secured with AAF
|
enableCADI = false
useAAF = false
ApiPermission.Class =
<pckg>.AllowAll
|
AAF is not in use for resources
configuration.
No authentication and authorization is
performed on DMaaP BC REST api
|
DMaaP-BC - unsecured
DMaaP-MR - unsecured
|
SSL DMaaP Certificates and Configuration
Configuration related to ssl can be found in the dmaapbc.properties
.
File is located in the /opt/app/dmaapbc/etc
on the dmaap-bc pod. Directory contains also truststore and keystore files used in the ssl setup.
Each change in the configuration file requires restart of the application container
#
# 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: <keystore_password>
#
# The password for the private key in the https keystore
#
KeyPassword: <key_password>
#
# The type of truststore for https
#
TrustStoreType: jks
#
# The path to the truststore for https
#
TrustStoreFile: etc/org.onap.dmaap-bc.trust.jks
#
# The password for the https truststore
#
TrustStorePassword: <truststore_password>
AAF configuration
Usage of AAF can be turned on/off by setting UseAAF
flag to true/false
in the dmaapbc.properties
file. By default AAF usage is turned on.
Property cadi.properties
points to absolute path of the property file generated by AAF for the DmaaP BC application (dmaap-bc@dmaap-bc.onap.org
user).
This file is one of the AAF configuration files enabling authentication and authorization for DMaaP BC REST API.
#################
# AAF Properties:
UseAAF: true
#################
#
# path to cadi.properties
#
cadi.properties: /opt/app/osaaf/local/org.onap.dmaap-bc.props
- Complete AAF configuration consist of following files:
org.onap.dmaap-bc.props - main configuration file
org.onap.dmaap-bc.location.props - geographic coordinates of the application
org.onap.dmaap-bc.cred.props - properties related to credentials, keystore and truststore
org.onap.dmaap-bc.keyfile - keyfile
org.onap.dmaap-bc.p12 - keystore
org.onap.dmaap-bc.trust.jks - truststore
/opt/app/dmaapbc/etc
directory.org.onap.dmaap-bc.props
links together all property files by defining them in the cadi_prop_files
property./opt/app/osaaf/local/
directory.ln -s /opt/app/dmaapbc/etc /opt/app/osaaf/local
User configured and used in DMaaP BC
dmaap-bc@dmaap-bc.onap.org
It is main user for the DMaaP BC application. It has permissions to validate if user accessing DMaaP BC REST api has appropriate permissions to perform an action.
AAF Permissions
List Permissions by User[dmaap-bc@dmaap-bc.onap.org]
--------------------------------------------------------------------------------
PERM Type Instance Action
--------------------------------------------------------------------------------
org.onap.dmaap-bc.api.access * read
org.onap.dmaap-bc.certman local request,ignoreIPs,showpass
org.onap.dmaap-dr.feed * *
org.onap.dmaap-dr.sub * *
org.onap.dmaap.mr.access * *
org.onap.dmaap.mr.topic * *
org.onap.dmaap.mr.topic * view
org.onap.dmaap.mr.topicFactory :org.onap.dmaap.mr.topic:org.onap.dmaap.mr create,destroy
dmaap-bc-topic-mgr@dmaap-bc-topic-mgr.onap.org
When UseAAF
is set to true then creating topic also will create required perms in AAF. The perms will be created in org.onap.dmaap.mr
namespace.
User dmaap-bc-topic-mgr
is used in the process of creating such permissions.
- Example:
- Topic name:
aSimpleTopic
- Permissions
- org.onap.dmaap.mr.topic|:topic.org.onap.dmaap.mr.aSimpleTopic|puborg.onap.dmaap.mr.topic|:topic.org.onap.dmaap.mr.aSimpleTopic|suborg.onap.dmaap.mr.topic|:topic.org.onap.dmaap.mr.aSimpleTopic|view
AAF Permissions
List Permissions by User[dmaap-bc-topic-mgr@dmaap-bc-topic-mgr.onap.org]
---------------------------------------------------------------------------------------
PERM Type Instance Action
---------------------------------------------------------------------------------------
org.onap.dmaap-dr.feed * *
org.onap.dmaap-dr.sub * *
org.onap.dmaap.mr.PNF_READY.access * *
org.onap.dmaap.mr.PNF_REGISTRATION.access * *
org.onap.dmaap.mr.access * *
org.onap.dmaap.mr.dgl_ready.access * *
org.onap.dmaap.mr.mirrormaker * admin
org.onap.dmaap.mr.mirrormaker * user
org.onap.dmaap.mr.topic * view
org.onap.dmaap.mr.topic :topic.org.onap.dmaap.mr.mirrormakeragent pub
org.onap.dmaap.mr.topic :topic.org.onap.dmaap.mr.mirrormakeragent sub
org.onap.dmaap.mr.topicFactory :org.onap.dmaap.mr.topic:org.onap.dmaap.mr create
org.onap.dmaap.mr.topicFactory :org.onap.dmaap.mr.topic:org.onap.dmaap.mr destroy
aaf_admin@people.osaaf.org
This user is used in the process of the post-installation during which appropriate namespaces and permissions are created in AAF.
Release Notes
Istanbul
Abstract
This document provides the release notes for the Istanbul release.
Summary
Repo merges, package updates and dbc-clients changes
Release Data
DMaaP Bus Controller Project |
|
Docker images |
|
Release designation |
9.0.0 Istanbul |
Release date |
2021-10-14 |
New features
Consolidated BC repos - DMAAP-1544
Package upgrades - DMAAP-1608
Update dbc-client script - DMAAP-1561
Known Limitations, Issues and Workarounds
System Limitations
Known Vulnerabilities
Workarounds
Security Notes
References
For more information on the ONAP Honolulu release, please see:
Quick Links:
Honolulu
Abstract
This document provides the release notes for the Honolulu release.
Summary
Mainly Security changes to update Project Lead details, and update outdated packages
Release Data
DMaaP Bus Controller Project |
|
Docker images |
|
Release designation |
8.0.0 Honolulu |
Release date |
2021-04-01 (TBD) |
New features
Updated log4j (Listed in “Known Vulternabilities” below) - DMAAP-1515
Update Project Lead details - DMAAP-1538
Known Limitations, Issues and Workarounds
System Limitations
Known Vulnerabilities
CVE-2019-17571
Workarounds
Security Notes
References
For more information on the ONAP Honolulu release, please see:
Quick Links:
Guilin
Abstract
This document provides the release notes for the Guilin release.
Summary
Release Data
DMaaP Bus Controller Project |
|
Docker images |
|
Release designation |
7.0.0 guilin |
Release date |
2020-11-18 |
New features
Known Limitations, Issues and Workarounds
System Limitations
Known Vulnerabilities
CVE-2018-11307
CVE-2018-12022
CVE-2018-12023
CVE-2019-17571
CVE-2016-2510
CVE-2017-18640
Workarounds
Security Notes
References
For more information on the ONAP Guilin release, please see:
Quick Links:
Frankfurt
Abstract
This document provides the release notes for the Frankfurt release.
Summary
The Frankfurt release focused on improved packaging and deployment.
Release Data
DMaaP Bus Controller Project |
|
Docker images |
|
Release designation |
6.0.0 frankfurt |
Release date |
2020-05-14 (TBD) |
New features
Implement boolean flag in OOM to disable HTTP ports
Dynamic cert distribution from OOM AAF. The dmaap-bc pod now utilizes an initContainer to acquire SSL certificates from AAF
the core library, dbcapi, now utilizes Java 11 and new base images were required, so we consider this a major release increment.
Known Limitations, Issues and Workarounds
System Limitations
Known Vulnerabilities
CVE-2018-11307
CVE-2018-12022
CVE-2018-12023
CVE-2019-17571
CVE-2016-2510
CVE-2017-18640
Workarounds
Security Notes
References
For more information on the ONAP Frankfurt release, please see:
Quick Links:
El Alto
Version: 1.1.5
- Release Date
2019-06-06 (El Alto)
New Features
No new features
- Bug Fixes
NA
- Known Issues
NA
Security Notes DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the Dublin.
Quick Links:
- Upgrade Notes
NA
- Deprecation Notes
NA
Dublin
Version: 1.1.5
- Release Date
2019-06-06
New Features
DMaaP Provisioning via Bus Controller
- Bug Fixes
NA
- Known Issues
NA
Security Notes DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the Dublin.
Quick Links:
Upgrade Notes NA
Deprecation Notes
Casablanca
Version: 1.0.23
- Release Date
2018-10-18
New Features
configMap for properties
AAF integration
- Bug Fixes
NA
- Known Issues
NA
Security Notes DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the project.
Quick Links:
Upgrade Notes NA
Deprecation Notes