Metadata-Version: 2.1
Name: tanzanite
Version: 2022.3.0
Summary: An open source purpleteaming and CTF platform.
Home-page: https://github.com/davedittrich/tanzanite
License: Apache-2.0
Keywords: education,security,ctf,purpleteam,fastapi
Author: Dave Dittrich
Author-email: dave.dittrich@gmail.com
Maintainer: Dave Dittrich
Maintainer-email: dave.dittrich@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Dist: Jinja2 (==2.11.3)
Requires-Dist: MarkupSafe (==2.0.1)
Requires-Dist: PyJWT (>=2.3.0,<3.0.0)
Requires-Dist: SQLAlchemy-Utils (>=0.38.1,<0.39.0)
Requires-Dist: Sphinx (>=4.3.2,<5.0.0)
Requires-Dist: aiofiles (>=0.8.0,<0.9.0)
Requires-Dist: alembic (>=1.4.2,<2.0.0)
Requires-Dist: celery (>=4.4.2,<5.0.0)
Requires-Dist: databases[postgresql,sqlite] (>=0.5.3,<0.6.0)
Requires-Dist: email-validator (>=1.0.5,<2.0.0)
Requires-Dist: emails (>=0.6,<0.7)
Requires-Dist: fastapi (>=0.54.1,<0.55.0)
Requires-Dist: gunicorn (>=20.0.4,<21.0.0)
Requires-Dist: httpx (>=0.22.0,<0.23.0)
Requires-Dist: isort (>=5.10.1,<6.0.0)
Requires-Dist: itsdangerous (>=2.1.0,<3.0.0)
Requires-Dist: jinja2 (>=2.11.2,<3.0.0)
Requires-Dist: passlib[bcrypt] (>=1.7.2,<2.0.0)
Requires-Dist: poetry2setup (>=1.0.0,<2.0.0)
Requires-Dist: psycopg2-binary (>=2.8.5,<3.0.0)
Requires-Dist: pydantic (>=1.9.0,<2.0.0)
Requires-Dist: pytest (>=5.4.1,<6.0.0)
Requires-Dist: python-dotenv (>=0.19.2,<0.20.0)
Requires-Dist: python-jose[cryptography] (>=3.1.0,<4.0.0)
Requires-Dist: python-multipart (>=0.0.5,<0.0.6)
Requires-Dist: python-secrets (>=22.1.0,<23.0.0)
Requires-Dist: raven (>=6.10.0,<7.0.0)
Requires-Dist: requests (>=2.23.0,<3.0.0)
Requires-Dist: setuptools (>=60.9.3,<61.0.0)
Requires-Dist: sphinx-rtd-theme (>=1.0.0,<2.0.0)
Requires-Dist: sqlalchemy (>=1.3.16,<2.0.0)
Requires-Dist: tenacity (>=6.1.0,<7.0.0)
Requires-Dist: uvicorn (>=0.17.1,<0.18.0)
Project-URL: Documentation, https://github.com/davedittrich/tanzanite
Project-URL: Repository, https://github.com/davedittrich/tanzanite
Description-Content-Type: text/x-rst

.. tanzanite documentation main file, created by
   cookiecutter on 2021-09-24.

tanzanite
=========

|Versions| |Contributors| |License| |Docs|

.. |Versions| image:: https://img.shields.io/pypi/pyversions/tanzanite.svg
   :target: https://pypi.org/project/tanzanite
.. |Contributors| image:: https://img.shields.io/github/contributors/davedittrich/tanzanite.svg
   :target: https://github.com/davedittrich/tanzanite/graphs/contributors
.. |License| image:: https://img.shields.io/github/license/davedittrich/tanzanite.svg
   :target: https://github.com/davedittrich/tanzanite/blob/main/LICENSE.txt
.. |Docs| image:: https://readthedocs.org/projects/tanzanite/badge/?version=latest
   :target: https://tanzanite.readthedocs.io

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

* Version: 2022.3.0
* GitHub repo: https://github.com/davedittrich/tanzanite/
* License: Apache Software License 2.0


.. README_FEATURES:

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>

.. |copy|   unicode:: U+000A9 .. COPYRIGHT SIGN

Copyright |copy| 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>.


.. _cliff: https://github.com/openstack/cliff
.. _FastAPI: https://fastapi.tiangolo.com/
.. _Python Secrets: https://pypi.org/project/python-secrets
.. _sqlalchemy: https://www.sqlalchemy.org
.. _sqlite3: https://sqlite.org/cli.html
.. _Sphinx: http://www.sphinx-doc.org/
.. _Sphinx integration: https://docs.openstack.org/cliff/latest/user/sphinxext.html
.. _ReadTheDocs: https://readthedocs.com
.. _pytest: https://docs.pytest.org/en/stable/
.. _bandit: https://bandit.readthedocs.io
.. _bats-core: https://bats-core.readthedocs.io
.. _dependabot: https://docs.github.com/en/code-security/supply-chain-security/configuring-dependabot-security-updates
.. _VSCode: https://code.visualstudio.com
.. _Tox: https://tox.readthedocs.io/
.. _bump2version: https://github.com/c4urself/bump2version
.. _GitHub Actions: https://docs.github.com/en/actions/learn-github-actions/introduction-to-github-actions
.. _PyPI: https://pypi.org/
.. _Test PyPI: https://test.pypi.org
.. _Cookiecutter: https://github.com/cookiecutter/cookiecutter


.. EOF

