Skip to main content

Forces

Forces is the product responsible for the client-side part of the DevSecOps agent. On the other hand, Integrates is responsible for the back-end and the web interface.

Public Oath

  1. A container image with the tag new is available in Docker Hub under the fluidattacks/forces identifier.
  2. A customer can follow the Agent Installation Steps to run Forces successfully.
  3. The container image, the CLI, and the Agent installation steps are backwards compatible.
  4. In the event that backward incompatible changes are needed, a proper notification and sufficient time is given to the End Users to adopt the new changes.

Architecture

  1. Forces is a CLI application written in Python.

    It reports/logs debugging information to Bugsnag, where developers can consume it to improve exception handling and improve the program's logic to protect against crashes, and communicates with the ARM (Integrates) through the API in order to fetch the End User information, and to upload execution logs that the End User can inspect through the web interface.

  2. The CLI application is packaged into a container image that is deployed to Docker Hub using two tags:

    • new, for production use, deployed from the trunk branch.
    • <name>atfluid, for development use and testing purposes, deployed from the developer branch.
  3. Forces is also tested in a schedule using the Compute component of Common.

tip

You can right-click on the image below to open it in a new tab, or save it to your computer.

Architecture of Forces

Contributing

Please read the contributing page first.

Development Environment

Follow the steps in the Development Environment section of our documentation.

When prompted for an AWS role, choose dev, and when prompted for a Development Environment, pick integratesForces.

Local Environment

CLI Application

Just run:

universe $ m . /integrates/forces

This will build and run the Forces CLI application, including the changes you've made to the source code.

Container

Just run:

# Build the container image (a tarball):
universe $ m . /integrates/forces/container

# Load the tarball into the local Docker repository:
universe $ docker load < ~/.cache/makes/out-integrates-forces-container

# Run the container image:
universe $ docker run --rm container-image:latest forces

This will build and run the Forces container image, including the changes you've made to the source code.