遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/4398)
<a href="https://www.bestpractices.dev/projects/4398"><img src="https://www.bestpractices.dev/projects/4398/badge"></a>
The Configuration Persistence Service is an ONAP platform component that is designed to serve as a model-driven data repository for run time data that needs to be persistent.
Here we have detailed other committers that can +2 and merge code https://wiki.onap.org/pages/viewpage.action?pageId=93000029
Few key developers from different organizations are listed below contributing to : CPS : https://github.com/onap/cps • Contributors: https://github.com/toine-at-est , https://github.com/rkashapov-bf, https://github.com/brsak
cps-ncmp-dmi-plugin : https://github.com/onap/cps-ncmp-dmi-plugin • Contributors: https://github.com/toine-at-est , https://github.com/niamhcore, https://github.com/brsak
cps-cps-temporal : https://github.com/onap/cps-cps-temporal • Contributors: https://github.com/toine-at-est , https://github.com/niamhcore, https://github.com/brsak
All files included in CPS contains copyright. Example : • https://github.com/onap/cps • https://github.com/onap/cps-cps-temporal
License statement is included in all files included in CPS. The template used is : SPDX-License-Identifier: Apache-2.0. Example : • https://github.com/onap/cps/blob/master/cps-application/src/main/resources/application.yml • https://github.com/onap/cps-ncmp-dmi-plugin/blob/master/docker-compose/docker-compose.yml
Github is used as the projects source repository. Repo links as shared below: • https://github.com/onap/cps • https://github.com/onap/cps-cps-temporal • https://github.com/onap/cps-ncmp-dmi-plugin • https://github.com/onap/cps-cps-tbdmt
https://jira.onap.org/secure/RapidBoard.jspa?rapidView=228&view=planning&selectedIssue=CPS-365&epics=visible&issueLimit=100
2FA Authentication is enabled for merging in GERRIT for all ONAP
The Onap specifications for code review is used in CPS . It is ensured that there are atleast 2 +1s from unassociated significant contributors and committers before the code is merged. • https://wiki.onap.org/display/DW/Committer+Best+Practices#CommitterBestPractices-BestPractices
The Onap specifications for code review is used in CPS . It is ensured that there are atleast 2 +1s from unassociated significant contributors and committers other that the person who has raised the review before the code is merged. • https://wiki.onap.org/display/DW/Committer+Best+Practices#CommitterBestPractices-BestPractices
cps : https://jenkins.onap.org/job/cps-master-merge-java/ cps-temporal: https://jenkins.onap.org/job/cps-cps-temporal-review-verification-maven-master dmi-plugin: https://jenkins.onap.org/job/cps-cps-temporal-maven-docker-verify-master-mvn36-openjdk11
Unit testing is covered using Groovy and spock tests. These can be executed using mvn test. CSIT tests are included in the application for Integration testing. These tests are using ROBOT framework. • https://github.com/onap/cps/tree/master/csit
CI-CD jobs are incorporated to ensure that all the jobs are executed including verification, SONAR and merge. This link will list all the jobs included for CPS projects. • https://jenkins.onap.org/view/cps/
CSIT Integration test suite is included to test all the REST apis that are developed in CPS . Example : • https://github.com/onap/cps/tree/master/csit The coverage check is tested reported using Jacoco coverage in the sonar • https://sonarcloud.io/component_measures?id=onap_cps&metric=coverage&view=list • https://sonarcloud.io/component_measures?id=onap_cps-cps-temporal&metric=coverage&view=list
Test suites covers the entire code in the branch except for the Unit tests and CSIT Integration tests.
CPS uses Github as the central repository. Verified CPS(https://github.com/onap?q=cps) using the site specified : https://securityheaders.com/ Found all required security hardening headers. // All headers set with non permissive values HTTP Strict Transport Security (HSTS) : max-age=31536000; includeSubdomains; preload X-Content-Type-Options : nosniff X-Frame-Options : deny
ONAP runs nexus IQ report once every release to ensure the security requirements are met https://jenkins.onap.org/view/cps/job/cps-maven-clm-master/
CPS has finalized the security review questionnaire and has been reviewed by the SECCOM committee. See https://wiki.onap.org/display/DW/CPS+-+ONAP+Security+Review+Questionnaire
CPS exposes restful APIs to be used by other services and does not own a GUI. All services are required to authenticate themselves while using the CPS apis. CPS includes security fixes in the software lifecycle. CPS does not have a UI and does not use javascript The application uses Swagger for RESTful API, wherein it is set that Authorization headers are required for accessing API documentation. When CPS is run with docker, the services use usernames and passwords that are stored as environment variables. CPS uses K8s secrets which are generated and stored as the application is deployed. CPS is compliant and compatible with the ongoing service mesh implementation (see https://gerrit.onap.org/r/c/oom/+/124287) for ONAP.
see https://wiki.onap.org/display/DW/CPS+-+ONAP+Security+Review+Questionnaire#CPSONAPSecurityReviewQuestionnaire-Hardening
CPS has a project set up with ONAP Sonarcloud for analysis, see https://sonarcloud.io/component_measures?metric=coverage&view=treemap&id=onap_cps wherein a minimum of 97% code coverage is always maintained by the team. CPS also uses the SonarQube Scanner for Maven which uses the JaCoCo plugin to generate code coverage reports during the build process and track code coverage during run-time.
Instead of run-time assertions, pre-run assertions are included where all the tests including the Integration tests are executed. Only after the successful pre-run tests, the projects are released and deployed on production. CPS uses Groovy for all unit and integration testing which is compiled and executed at runtime. CPS uses its capability to perform runtime assertions, see the following example https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob;f=cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operations/DmiDataOperationsSpec.groovy;h=03825c2bbf34398df77a0028ee0825e96f5a5fbb;hb=3d97a963ce51c4f0ecdb656a3b25bcabf2f6f8b7
后退