
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
dt-cli
Advanced tools
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.
FAQs
Dynatrace CLI
We found that dt-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.