遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/1441)
<a href="https://www.bestpractices.dev/projects/1441"><img src="https://www.bestpractices.dev/projects/1441/badge"></a>
The ONAP Portal is a platform that provides the ability to integrate different ONAP applications into a centralized Portal Core.
https://wiki.onap.org/display/DW/Developer+Best+Practices
https://wiki.onap.org/display/DW/Development+Procedures+and+Policies describes requirements for acceptable contributions and is linked from the Portal project page. https://wiki.onap.org/display/DW/Java+code+style shows java code style. https://wiki.onap.org/display/DW/Developer+Best+Practices
ONAP requires both a Developer Certificate of Origin (DCO), and a Contributor License Agreement (CLA).
https://wiki.onap.org/display/DW/Contribution+Agreements
https://lfprojects.org/policies/code-of-conduct/ https://wiki.onap.org/display/DW/Portal+Platform+Project
The key roles in the project and their responsibilities are described at
https://wiki.onap.org/display/DW/Community+Offices+and+Governance
Current members are listed at
https://wiki.onap.org/pages/viewpage.action?pageId=8226539
For Portal we have multiple committers and multiple contributors who are listed in https://wiki.onap.org/display/DW/Resources+and+Repositories#ResourcesandRepositories-PortalPlatform All committers have access and rights to maintain the code base, approve and review incoming changes and release a new version of the artifact. This will let the project continue with minimal to no interruption if one person is incapacitated. Also this project is controlled by the Linux foundation so we can add more committers if needed
The project covered in this report have more than 2 persons who actively contribute and maintain code. https://wiki.onap.org/display/DW/Resources+and+Repositories#ResourcesandRepositories-PortalPlatform
Project Proposal and scope: https://wiki.onap.org/pages/viewpage.action?pageId=3247211 Roadmap for next release - https://wiki.onap.org/display/DW/Draft+requirements+for+next+release+-+road+map
Architecture of Portal can be found in https://onap.readthedocs.io/en/latest/submodules/portal.git/docs/platform/architecture.html
https://wiki.onap.org/display/DW/TSC+2018-09-13?preview=%2F41420751%2F41422282%2FONAP+Casanblanca+Security+Testing+V1.pdf
Information on setting up ONAP can be found at https://onap.readthedocs.io/en/latest/guides/onap-developer/settingup/index.html
Documentation is updated on a regular bases when needed. https://onap.readthedocs.io/en/latest/submodules/portal.git/docs/index.html
https://wiki.onap.org/display/DW/Portal+Platform+Project
The project site is configurable for font size/colors.
In next release, providing APIs for internationalization features. https://wiki.onap.org/display/DW/Internationalization+language+support
All major releases are tagged in gerrit and the artifacts are stored with the release information on onap.nexus. So we can access all old versions of the artifact. If and when a upgrade requires certain steps to be followed they are being added to the release documents as needed
Jira is used to track issues. https://jira.onap.org/projects/PORTAL
Vulnerabilities can be reported using the link https://wiki.onap.org/pages/viewpage.action?pageId=6591711 Currently we dont have any vulnerabilities reported, but the wiki page explains on how to report a vulnerability and how to report anonymously if you do not want the credit for it.
Vulnerability handling is documented in https://wiki.onap.org/pages/viewpage.action?pageId=6591711
Google coding style is used in ONAP https://github.com/google/styleguide
maven-checkstyle-plugin
The application does not create native binaries.
All releases are tagged in gerrit(git), and the builds are controlled using jenkins. By providing the git tag information the same image can be build over and over again with same bit-for-bit result.
The applications can be installed either using Docker via HEAT, or Kubernetes via Helm scripts.
Docker containers are used for installation, so the conventions of the host operating system are not relevant.
All the components require only java and maven to begin with for a developer to quickly install and test it. Even for deployment using OOM and the right amount of resources, we can deploy the full Portal/ONAP suite in less than a day. The steps are documented in https://onap.readthedocs.io/en/latest/submodules/oom.git/docs/oom_quickstart_guide.html
The dependencies are listed in the POM.xml files of each project under respective repos. For example: Portal's root pom.xml - https://gerrit.onap.org/r/gitweb?p=portal.git;a=blob;f=pom.xml;h=e7f3360bd26b3acc901a659ec31d66d8bf8ac354;hb=refs/heads/master
We use sonatype CLM https://nexus-iq.wl.linuxfoundation.org/ and https://sonar.onap.org
Maven is used to manage external component versions, and the automated Jenkins build jobs will ensure the deployable artifacts are up to date with the maven changes.
Updating an external component simply involves making an update to the pom.xml file for that project.
We choose free open source solutions in every case and choose up-to-date versions of the components.
https://jenkins.onap.org - on every commit, a verification job runs which runs an automated test suite. The code check-in cannot pass with out jenkins posting a +1 on the review.
We add tests in these cases.
Portal is working toward additional coverage but lack of resources prevent us from acheiving it: https://sonar.onap.org
Contributing guide lines for development is recorded in https://wiki.onap.org/display/DW/Development+Procedures+and+Policies
The code coverage requirement is listed as a developer best practice here: https://wiki.onap.org/display/DW/Code+Coverage+and+Static+Code+Analysis
Build systems run the compile with test flag enabled by default. So any failure in test cases will fail the ci and the merge request.
Portal strives to implement secure design principles. We encrypt data where possible, and run security scans on the code and its dependencies.
We disallow SHA-1 or other insecure cryptographic algorithms.
We support mutiple cryptographic algorithms.
Credentials are separate and can be replaced without code compilation, but still in the public repos.
We use ssh2 internal to the cluster and TLS1.2+ for the external interfaces. But, HTTP port is still open to support few dependent components.
We only allow TLS1.2+
We perform certificate verfication.
We support TLS certification verification before exchange of private information.
The project strives to validate all input, but there are few areas which needs to be addressed.
https://sonarcloud.io/dashboard?id=onap_portal https://sonarcloud.io/dashboard?id=onap_portal-sdk
The project does not produce software written in a memory-unsafe language
后退