Page tree
Skip to end of metadata
Go to start of metadata

Development for the toolbelt is aimed to be accessible for everyone! This set of articles contains documentation on how to develop new commands for the toolbelt using argus-cli and argus-api.

Getting started

Use the following links to get more extensive help on developing for the toolbelt!

Introduction to Argus Toolbelt Development

Extensive how-to on creating your first command using argus-tooblelt.


Using Argus API in commands

A guide on how to use the Argus API with Argus CLI

Example command

The following is a simple command for printing case-numbers when searching a case.

from argus_cli.plugin import register_command, run  # Function for registering a command to the cli
from argus_cli.utils import formatting  # Common helper for creating nice outputs
from argus_api.api.cases.v2.case import advanced_case_search  # The case search endpoint

from argus_plugins import argus_cli_module
from argus_plugins.cases.utils import get_customer_id


# Register the command
@register_command(module=argus_cli_module)
# The command with arguments for title and customer (which automatically translates a customer name to it's ID)
def search(title: str, customer: get_customer_id):
    """Search for a case

    :param title: Title to search for
    :param customer: Customer to base the search on
    """
    # Get cases based on a customer and keyword
    cases = advanced_case_search(
        customerID=[customer],
        keywords = [title]
    )["data"]  # We only care about the data the endpoint returned. Not the metadata about the response.

    # Prints the ID and subject in CSV format
    print(formatting.csv(cases, headers=["id", "subject"]))

# Allow for running by simply executing the file
if __name__ == "__main__":
    run(search)
Result
$ ./my_command.py Email mnemonic
id,subject
23,Suspect Email
42,Wierd Email
Result
$ ./my_command.py --help
usage: my_command.py [-h] [--apikey APIKEY] [--debug]
                          [--environment ENVIRONMENT]
                          title customer

positional arguments:
  title                 Title to search for
  customer              Customer to base the search on

optional arguments:
  -h, --help            show this help message and exit
  --apikey APIKEY
  --debug
  --environment ENVIRONMENT
  • No labels