Skip to content

relizaio/rearm

Repository files navigation

Releases: Release Version License: AGPL v3 Website Website Documentation

Build: Build Status OpenSSF Best Practices

Social: Discord LinkedIn

ReARM - Supply Chain Security and Asset Management for Releases, SBOMs, xBOMs, Security Artifacts - Community Edition

ReARM.Demo.Video.mp4

About

ReARM is an abbreviation for "Reliza's Artifact and Release Management". It is a DevSecOps and Supply Chain Security tool to organize product releases with their metadata, including various Bills of Materials (SBOMs / xBOMs).

ReARM maintains xBOM documents per each release. See here how ReARM's SBOM-related features compare with previous generation of tooling.

ReARM stores xBOMs on OCI-compatible storage. ReARM is developed by Reliza. Read about project history on our blog.

Project links

ReARM Product Status Information

  • ReARM itself - Public Beta
  • Transparency Exchange API (TEA) implementation - in the process of implementation of TEA Beta 1 - Public Alpha available on ReARM Demo Instance (see below for details)

Motivation

ReARM is a xBOM management system that allows organizations to maintain compliance within various regulatory frameworks, including:

While highlighting regulatory pressure, we strive to make sure that ReARM bears minimum or no overhead on developers and more so provides real value in terms of managing technology releases and their metadata. In other words, our goal is creating a product that would be useful for developers and managers, while also solving the compliance problem.

Present Capabilities

  1. Storage and retrieval of SBOMs / xBOMs for software and hardware, per release, including signatures and signing details
  2. Seamless creation of aggregated BOMs on Component and Product Release levels
  3. Maintaining representation of organization's products and components with branches and releases
  4. Automated creation of release versions and changelogs between releases
  5. Integration with Dependency-Track for analysis of vulnerabilities and policies, including license policy, while optimizing Dependency-Track performance via data deduplication
  6. Search for presence of dependencies in organization's software based on Dependency-Track data
  7. Integration with various CI systems (including GitHub Actions, Azure DevOps, Jenkins, GitLab CI and others) to produce BOMs and upload them with other release metadata to ReARM
  8. Release approval logic with triggers based on approvals and / or vulnerabilities or policy violations (Commercial Edition only)
  9. Marketing release workflow (Commercial Edition only)

Future Capabilities (Medium-Term Roadmap)

  1. Release-level changelog for changes in SBOM dependencies
  2. Better handling and prescribed workflows for Attestations
  3. Extended options to configure retrieved aggregated BOMs (via tagging and detailed component analysis, i.e., option to exclude Test dependencies)
  4. Options to exchange BOM data with public or specific people or organizations only (via both Transparency Exchange API and ReARM own capabilities)

Releases

ReARM follows Trunk Based Development (TBD) methodology. This means that maintainers commit directly to the main branch where possible. Consumers should use releases marked as SHIPPED (or GENERAL_AVAILABILITY).

Refer to ReARM Community Edition Product on ReARM Demo Instance for the constantly updated list of ReARM releases. SHIPPED releases are also published under GitHub Releases in this repository.

Helm chart and docker compose files tagged to a release contain a list of specific images that correspond to particular release.

Transparency Exchange API

Creators of ReARM are part of active contributors of Transparency Exchange API (TEA) that aims to build standard API for exchanging supply chain artifacts and intelligence.

A lot of core ReARM ideas are shared as a part of the TEA workgroup with permissive Open Source licensing.

ReARM currently supports most of TEA Beta 1 functionality and we are working to expand and improve support. Refer to usage and status documentation on ReARM Documentation Website here.

Related Projects

Public Demo

Public Demo is available at https://demo.rearmhq.com. When you register for the demo, you get read-only account for the Demo organization and can browse several existing demo Components, Products, Releases. You may then also create your own organization and try organizing storage for your own release metadata (Documentation for this coming soon). Note, that while your data on Public Demo is private, it is subject to deletion at any time and without notice.

Installation, Tutorials, Documentation

Refer to the project documentation: https://docs.rearmhq.com

This documentation is built using vitepress and checked in to this repository under documentation_site. If you spot any issues or would like to propose additions, please open issues or Pull Requests accordingly.

Developing ReARM

Generate TEA-overlay from TEA OpenAPI spec

OpenAPI Spec can be found here - https://github.com/CycloneDX/transparency-exchange-api/blob/main/spec/openapi.yaml

And then copied into tea-spec/ directory in this repository as well.

To generate initial tea-server spring service, run

npx @openapitools/openapi-generator-cli generate -i tea-spec/openapi.yaml -g spring -o tea-server/ --additional-properties=useSpringBoot3=true

Then rename model files to Tea prefix (from ReARM repo root directory):

./scripts/rename_with_tea.sh ./tea-server/src/main/java/org/openapitools/model

Local Development

  1. Create a docker container for database:
docker run --name rearm-postgres -d -p 5440:5432 -e POSTGRES_PASSWORD=relizaPass postgres:16

This part will be continued (TODO).

Contact Reliza

Easiest way to contact us is through our Discord Community - find #rearm channel there and either post in this channel or send a direct message to maintainers.

You can also send us an email to [email protected].