This release is a pre-release and may not be stable for production use.
dt-cli — Dynatrace developer's toolbox
Dynatrace CLI is a command line utility that assists in developing, signing, and building extensions for Dynatrace Extension Framework 2.0.
dt-cli is currently in ALPHA. But it's evolving quickly with new
features for extension development and cluster management to be added soon.
Features
- Build and sign extensions from source
- Generate development certificates for extension signing
- Generate CA certificates for development
Installation
pip install dt-cli
Usage
Currently there are three basic commands available for working with extensions.
Extension subcommand has two aliases for convenience: dt ext or dt extensions.
-
dt extension gencagenerates CA root certificate and key, required to generate developer certificates and for extension validation. The file containing the certificate (
ca.certis the deafult name) needs to be placed on ActiveGates and monitored hosts that will be executing extensions.Usage: dt extension genca [OPTIONS] creates CA key and certificate, needed to create developer certificate used for extension signing Options: --ca-cert TEXT CA certificate. Default: ./ca.crt --ca-key TEXT CA key. Default: ./ca.key -h, --help Show this message and exit.
-
dt extension gendevcertgenerates a developer certificate used for signing extensions. Please note that there may be multiple developer certificates coming from a single root certificate. It's up to your organization to manage them.
Usage: dt extension gendevcert [OPTIONS] creates developer key and certificate used for extension signing Options: --ca-cert TEXT CA certificate. Default: ./ca.crt --ca-key TEXT CA key. Default: ./ca.key --dev-cert TEXT Developer certificate. Default: ./developer.crt --dev-key TEXT Developer key. Default: ./developer.key -h, --help Show this message and exit.
-
dt extension buildbuilds distributable extension file from a given directory containing extension files (./extensionby default). The extension will be signed with a developer certificate and key.Usage: dt extension build [OPTIONS] builds extension file from the given extension directory (extension in current dir. is the default) Options: --extension-directory TEXT Directory where extension files are. Default: ./extension --target-directory TEXT Directory where extension package should be written. Default: . --certificate TEXT Certificate used for signing. Default: ./developer.crt --private-key TEXT Private key used for signing. Default: ./developer.key --keep-intermediate-files Do not delete the signature and `extension.zip' files after building extension archive -h, --help Show this message and exit.
Development
This tool requires Python 3.8+ and is build with poetry. Before starting, make sure you have a dedicated virtual environment for working with this project. Create your virtual environment in project directory:
python -m venv env
Activate it before proceeding:
source ./env/bin/activate
Install poetry:
$ pip install poetry
Now you can build the project and get the wheel file:
$(env) poetry build
The resulting wheel file can be found in the dist folder, e.g. ./dist/dtcli-0.0.1-py3-none-any.whl
If you have a separate environment where dtcli should be available, you should install the wheel file there. Simply run the following command:
$ pip install dt_cli-0.0.1-py3-none-any.whl
If you want to start using it in the environment where it was built, you just use this poetry command:
$ poetry install
From this moment you can start using the command line tool directly (or from your code, see a dedicated section below):
$ dt --help
Each command contains its own help description, see:
$ dt ext build --help
Testing
Run pytest tests
poetry run pytest --flake8
Run mypy tests
poetry run pytest --mypy dtcli --strict
Run test coverage report
poetry run pytest --cov . --cov-report html
Using dt-cli from your Python code
You may want to use some commands implemented by dt-cli directly in your Python code, e.g. to automatically sign your extension in a CI environment.
Here's an example of building an extension programatically, it assumes dtcli package is already installed and available in your working environment.
from dtcli import building
building.build_extension(
extension_dir_path = './extension',
extension_zip_path = './extension.zip',
extension_zip_sig_path = './extension.zip.sig',
target_dir_path = './dist',
certificate_file_path = './developer.crt',
private_key_file_path = './developer.key',
keep_intermediate_files=False,
)
Contributions
You are welcome to contribute using Pull Requests to the respective repository. Before contributing, please read our Code of Conduct.
License
dt-cli is an Open Source Project. Please see
LICENSE for more information.
Metadata
Release files for dt-cli 0.0.9a0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dt-cli-0.0.9a0.tar.gz | 14.3 kB | Without provenance | Details for dt-cli-0.0.9a0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dt_cli-0.0.9a0-py3-none-any.whl | Python 3 | none | any | Details for dt_cli-0.0.9a0-py3-none-any.whl |
Total release size: 29.7 kB
Release files / dt-cli-0.0.9a0.tar.gz
| Download URL | dt-cli-0.0.9a0.tar.gz |
|---|---|
| Size | 14.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b852b7a8a172f2ee5078668dbb5548251b36f0b00d17ec36f08c11ba707699f
|
|
BLAKE2b-256 checksum How to use checksums |
101f44aa93c3b0c65e72d547ddc1a42490a9c6c5350b8e05c1059c16c79f4512
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure
|
Release files / dt_cli-0.0.9a0-py3-none-any.whl
| Download URL | dt_cli-0.0.9a0-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a24f9ede52b3a7912b331cfb37c2ac8ffb09c95f3d9e5502f11944e8540e7fd5
|
|
BLAKE2b-256 checksum How to use checksums |
8b8511d51d5f8c7db3439482eecb728eaf5b6112169b640dc4469a6ecd7c42b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure
|
Security for dt-cli 0.0.9a0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.