Contributioning to SDC

Prerequisites

Make sure to get familiar with: Developing ONAP. From future SDC dev point of view, most interesting parts are:

JIRA

SDC issues are tracked on ONAP JIRA: https://jira.onap.org/secure/RapidBoard.jspa?rapidView=71&projectKey=SDC

Jenkins

JIRA project CI: https://jenkins.onap.org/view/sdc/

Gerrit

Chenage proposals for SDC projects are available here: https://gerrit.onap.org/r/#/admin/projects/?filter=sdc

Coding Policy

ONAP Development Guides

Official development guides of ONAP: Development Guides

Contribution

license guideline

ONAP FUSS guide lines: Rules for implementing FOSS in a project

Clarification

any file that is being committed must have a a licensing header based on the ONAP guideline.

as SDC seed code came from AT&T

almost all the licensing headers will look in the following meaner:

/*

 * Copyright (c) 2018 AT&T Intellectual Property.

  *

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

 */


in case you are modifying an existing file you will need to add the flowing to the license header:

/*

 Copyright (c) 2018 AT&T Intellectual Property.

  * Modifications Copyright (c) 2018 <Company copy right> Property.

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

 */


Automatic copy right addition:

Eclipse

Intlij


Code guide lines TBD

Role of SDC in ONAP - component use cases

TODO describe/link to sdc onbaording demo, describe design time

High level architecture

Architecture is described on another subpage: SDC Architecture

Subprojects

SDC is a huge component. In the road-map there is a plan to split SDC into smaller projects. To make it smooth in the future, we dont introduce new dependencies between groups of sub-projects. You can find a project and its group in the table below. There is also an informal agreement that committers have their responsibilities and focuses. If you make a change (of course, affecting subprojects from one group...), please make sure to add reviewers specialized in affected area - this will prevent the situation of having +2 without a merge. Reviewers and their responsibilities are listed below:

Committers And Roles

Subprojects


GroupComponentDescription
1CatalogasdctoolCollection of standalone utilities used in different projects: import, export, migration etc.
2
catalog-be
Business logic of the app. Compiles to WAR.
3
catalog-dao

Manages persistance layer:

  • Titan Graph DB
  • Cassandra
  • Elastic search

// Contains dead Neo4j code. It may replace titan

4
catalog-fe
Proxy between ui and backend. Contains business logic as well.
5
catalog-model
Connection layer, serves models to other projects
6
catalog-ui

7
common-app-api
Utils and logic shared between frontend and backend.
8
common-be

9
docs

10
security-utils

11
sdc-titan-cassandra

12
sdc-toscaTOSCA parser based on jtosca. Complies with ONAP SDC TOSCA model(?)
13
sdc-workflow-designer
Graphic tool for service lifecycle management
14
services

15
ui-ci
16
sdc-os-chef

17
test-apis-ci
18
utils
19Onboarding
build-tools

20
common
21
dox-sequence-diagram-ui

22
services

23
onboarding
24
openecomp-bdd

25
openecomp-be

26
openecomp-ui

27Other
jtosca
Generic TOSCA parser based on 1.1 spec
28
onap-ui

29
dcae-d

30
sdc-distribution-client

31
sdc-docker-base
Docker creation project

Dependencies

SDC is a standalone application that, as such, does not require any other components to start. Deployed SDC enables to import or create an asset (design time). In order to take advantage of it (deploy a service) other components are required. For a start, please see SDC Dependencies

Interfaces - API and clients

Distribution Client

Docs available in Architecture Integration Document: SDC Distribution client AID

APIs

APIs are available on the page generated from SDC repo: http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/offeredapis.html

Documentation available in another pages: SDC API

Documentation

Documentation generated from code repository: http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/index.html

User interface

Onap home page for design related issues: Design

Tutorials

Deployment

// TODO Local deployment for devs


Useful links and resources

NameURLComment