Skip to main content

For interacting with the Chariot API

Project description

Praetorian CLI and SDK

Python Version pip Version License Contributor Covenant Open Source Libraries Contributions Welcome

:link: Chariot Platform :book: Documentation :bookmark: PyPI :computer: Chariot UI

Table of Contents

Description

Praetorian CLI and SDK are open-source tools for interacting with our products and services. Currently, they support access to Chariot, our offensive security platform.
The SDK exposes the full set of APIs that the Chariot UI uses.
The CLI is a fully-featured companion to the Chariot UI.

Getting Started

Prerequisites

  • Python v3.8 or above
  • pip v23.0 or above

Installation

Install the Python package using this command:

pip install praetorian-cli

Signing up

  1. Register for an account for Chariot using the instructions in our documentation.
  2. Download the keychain file using this link.
  3. Place the keychain file at ~/.praetorian/keychain.ini.
  4. Add your username and password to the keychain file. Your file should read like this:
[United States]
name = chariot
client_id = 795dnnr45so7m17cppta0b295o
api = https://d0qcl2e18h.execute-api.us-east-2.amazonaws.com/chariot
username = lara.lynch@acme.com
password = 8epu9bQ2kqb8qwd.GR

Using the CLI

The CLI is a command and option utility for access to the full suite of Chariot API. See documentation for commands using the help option:

praetorian chariot --help

As an example, run the following command to retrieve the list of all seeds in your account:

praetorian chariot list seeds

To get detailed information about a specific seed, run:

praetorian chariot get seed <SEED_KEY>

To try one of our plugin scripts, run:

praetorian chariot get seed <SEED_KEY> --plugin list_assets

For more examples, visit our documentation.

Using plugins

The CLI has a plugin engine for implementing more complex workflows.

There are two types of plugins:

  • Scripts: Invoked using the --plugin option, they perform additional processing on the data returned by the CLI command.
  • Commands: Invoked using the plugin <plugin_name> command, they are standalone commands that extend the CLI with a relatively complex workflow.

Examples of plugin scripts

For example, this command uses my-process-domain.py to further process the data from praetorian chariot get seed:

praetorian chariot get seed <SEED_KEY> --plugin ~/code/my-process-domain.py

The CLI also comes with some built-in scripts in this directory. They are invoked by name:

praetorian chariot get seed <SEED_KEY> --plugin list_assets

Examples of plugin commands

Plugin commands add end-to-end functions as commands grouped under plugin. To see a list of them:

praetorian chariot plugin --help

Different Praetorian teams extend the CLI using plugin commands. For example this command is used by our team in the creation of client reports using internal templates:

praetorian chariot plugin report

You can find the list of plugin commands that comes with the CLI in this directory

If you have ideas on new plugin commands and scripts, contribute them!

For developing plugins, you can refer to this readme file.

Developer SDK

The Praetorian SDK is installed along with the praetorian-cli package. Integrate the SDK into your own Python application with the following steps:

  1. Include the dependency praetorian-cli in your project.
  2. Import the Chariot class from praetorian_cli.sdk.chariot import Chariot.
  3. Import the Keychain class from praetorian_cli.sdk.keychain import Keychain.
  4. Call any function of the Chariot class, which expose the full backend API. See example below:
from praetorian_cli.sdk.chariot import Chariot
from praetorian_cli.sdk.keychain import Keychain

chariot = Chariot(Keychain())
chariot.add('seed', dict(name='example.com', dns='example.com'))

The best place to explore the SDK is the handlers of the CLI

Contributing

We welcome contributions from the community, from plugins, to the core CLI and SDK. To contribute, fork this repository and following the GitHub instructions to create pull requests.

By contributing, you agree to our Code of Conduct.

Support

If you have any questions or need support, please open an issue or reach out via support@praetorian.com.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

praetorian_cli-1.1.2.tar.gz (24.1 kB view hashes)

Uploaded Source

Built Distribution

praetorian_cli-1.1.2-py3-none-any.whl (32.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page