Skip to content

Melts

Melts is a common component that allows downloading client source code repositories. It is mainly used by Fluid Attacks’ hackers.

Using Melts

  1. Make sure you have the following tools installed in your system:

  2. Make sure you have an API token from the ARM, and that you set its value in an environment variable named INTEGRATES_API_TOKEN.

  3. Now you can use melts by calling:

    Terminal window
    m gitlab:fluidattacks/universe@trunk /common/melts
  4. Repositories in a given group can be downloaded with

    Terminal window
    m gitlab:fluidattacks/universe@trunk /common/melts pull-repos --group {group_name}

    To download a specific repository, run

    Terminal window
    m gitlab:fluidattacks/universe@trunk /common/melts pull-repos --group {group_name} --root {nickname}

Troubleshooting

In case you encounter any errors while using Melts, there are a couple of things you can try to fix them:

  • The first thing you should do is follow the installation instructions again.
  • The next thing you can check is if your INTEGRATES_API_TOKEN hasn’t expired, for this you only need to repeat the steps shown here for updating your API token, and be aware of when it will expire next.
  • Another thing that may be causing issues is a conflict in your environment variables that are taken when you log into AWS, so you can try deleting this information and logging in again. In order to do this use the command rm -rf ~/.aws/credentials before logging in, if that doesn’t work then use rm -rf ~/.okta* as well. After doing this and logging in with the appropriate credentials and choosing the correct role, if applicable, you should have solved any problems regarding permissions.
  • If none of these work, get in contact with the Fluid Attacks team sending an e-mail to help@fluidattacks.com to assist you with any problems.

Architecture

Architecture-light Architecture-dark
  1. Melts is a CLI written in Python.
  2. It is distributed to the End Users using Makes.
  3. It downloads repositories from clients.
  4. It communicates with the Integrates API to pull data required for downloading such repositories.
  5. It reports execution bugs to Bugsnag.

Contributing

Please read the contributing page first.

Development Environment

Configure your Development Environment.

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

Local Environment

Run this command within the universe repository:

Terminal window
m . /common/melts

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