Dynatrace CLI is a command line utility that assists in signing, building and uploading extensions for Dynatrace Extension Framework 2.0.
What's the difference between monaco and dt-cli?
dt
command line, on the other hand, is a tool for performing imperative step-by-step configuration. You explicitly invoke commands to modify the state.pip install dt-cli
(optional) If you don't already have a developer certificate
Generate CA key and certificate
$ dt ext genca
CA private key passphrase []:
Repeat for confirmation:
Generating CA...
Wrote CA private key: ./ca.key
Wrote CA certificate: ./ca.pem
Generate developer key and certificate from the CA
$ dt ext generate-developer-pem --ca-crt ca.pem --ca-key ca.key -o dev.pem
Name: Ext
Loading CA private key ca.key
Loading CA certificate ca.pem
Generating developer certificate...
Wrote developer certificate: dev.pem
Wrote developer private key: dev.pem
Upload your CA certificate to the Dynatrace credential vault
See: Add your root certificate to the Dynatrace credential vault
Upload your CA certificate to OneAgent or ActiveGate hosts that will run your extension
Build and sign the extension
$ dt ext assemble
Building extension.zip from extension/
Adding file: extension/dashboards/overview_dashboard.json as dashboards/overview_dashboard.json
Adding file: extension/extension.yaml as extension.yaml
Adding file: extension/activationSchema.json as activationSchema.json
$ dt ext sign --key dev.pem
Successfully signed the extension bundle at bundle.zip
(optional) Validate the assembled and signed bundle with your Dynatrace tenant
$ dt ext validate bundle.zip --tenant-url https://<tenantid>.live.dynatrace.com --api-token <token>
Extension validation successful!
Upload the extension to your Dynatrace tenant
$ dt ext upload bundle.zip --tenant-url https://<tenantid>.live.dynatrace.com --api-token <token>
Extension upload successful!
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',
dev_passphrase=None,
keep_intermediate_files=False,
)
See our CONTRIBUTING guidelines and instructions.
You are welcome to contribute using Pull Requests to the respective repository. Before contributing, please read our Code of Conduct.
dt-cli
is an Open Source Project. Please see
LICENSE for more information.