Skip to main content

Versions Contributors License Docs

Tanzanite is an open source platform for managing users and compute instances when running purpleteam training sessions, cyber exercises, and “capture the flag” contests.

Features

  • The tanzanite platform provides two user interfaces on the front end.

    • The first is a general Python command line interface (CLI) built on the OpenStack cliff (Command Line Interface Formulation Framework).

      • cliff provides many useful features like modularizing subcommands into groups, built-in help for internally documenting commands, and producing output in clean tabular form or in one of several data formats you can feed into other tools or automation platforms.

      • The CLI not only makes developing and testing API features faster and easier, but it also enables better integration with other open source tools through scripting and provides a quick remote interface for those running an exercise or CTF.

    • The second is a basic web application GUI.

      • The web app is served by FastAPI along with the API using Jinja2 HTML templates.

      • The built-in OpenAPI schema interface will help you write your own custom GUI or integrate Tanzanite with your own web application front end.

  • Both of these front ends access the backend database, compute instance management, and related services via an API based on the FastAPI framework.

    • Configuration settings and storage of sensitive data on the backend uses a Python Secrets (psec) environment. This decouples storage of secrets from source code, making it easier and safer to develop and test new features or proprietary enhancements to the system.

    • The sqlalchemy SQL toolkit and Object Relational Mapper are used for generalizing access to local or remote databases. Local database support for testing and interactive debugging uses sqlite3, while Postgres is supported for more robust production deployments.

  • The platform is parially self-documenting through integration of Sphinx documentation for generation both locally and through ReadTheDocs. CLI commands are documented using cliff autoprogram Sphinx integration, giving you the same output you get using the --help flag on the command line.

  • The source repository comes preconfigured for unit testing with pytest, Python security vulnerability scanning with bandit, integration and system testing with BATS (bats-core), and Python library dependency security scanning with GitHub’s dependabot.

  • Support for testing against multiple versions of Python is handled by Tox.

  • Interactive development and debugging is supported by pre-configuration of VSCode, allowing easy debugging of the CLI client components, the web application components and server backend, or even the client components and server at the same time.

  • Version numbering for development and test versions follows a date-based versioning scheme tracking Git repository status. Version number bumping is managed using bump2version.

  • Development and production testing and release workflows are processed by GitHub Actions with automatic package publication to PyPI or Test PyPI when you push a new version tag on the main branch, or a special rc tag on the develop branch.

Contact

Dave Dittrich <dave.dittrich@gmail.com>

Copyright © 2019-2021 Dave Dittrich. All rights reserved.

Credits

This package was created with Cookiecutter from the <https://github.com/davedittrich/cookiecutter-cliffapp-template> project template. It derives some of its features and inspiration from <https://github.com/veit/cookiecutter-namespace-template> and <https://github.com/audreyfeldroy/cookiecutter-pypackage>.

Release files for tanzanite 2022.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tanzanite 2022.3.1
File Size Uploaded
tanzanite-2022.3.1.tar.gz 35.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tanzanite 2022.3.1
File Interpreter ABI Platform
tanzanite-2022.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 70.0 MB

Release files / tanzanite-2022.3.1.tar.gz

Download URL tanzanite-2022.3.1.tar.gz
Size 35.0 MB
Tags Source
SHA-256 checksum
How to use checksums
bd10c3d7e77b5db2f9b64d6084b8edfc4755490c2dde096b9f215537c807fd15
BLAKE2b-256 checksum
How to use checksums
059220b4c6a1b4b69e57469f4f17151542efb7d5380aa9fa14fe4af92f228670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12

Release files / tanzanite-2022.3.1-py3-none-any.whl

Download URL tanzanite-2022.3.1-py3-none-any.whl
Size 35.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4205301bfcd7946376d766f4eaf6ed08a83eba782cda7b3fccfd11065404dfee
BLAKE2b-256 checksum
How to use checksums
a41e9955ad2252a4eaac269c114e253153d2293ade62849135b089bc2591b0d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12

Release history Release notifications | RSS feed

This release

2022.3.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page