Developer Documentation
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)
./my_command.py Email mnemonic
id,subject
23,Suspect Email
42,Weird Email
./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