The dt-app CLI
One command to scaffold a new app:
node --version # Need 22+
npx dt-app@latest create --environment-url https://YOUR-ENV.apps.dynatrace.com
๐ก Two official templates available: --template default (full starter with DQL) or --template empty (minimal skeleton). See Dynatrace/dt-app-templates.
AI Resources Manager (aimgr)
Dynatrace also provides aimgr for managing AI agent skills across tools:
# Install aimgr
curl -fsSL https://raw.githubusercontent.com/dynatrace-oss/ai-config-manager/main/scripts/install.sh | sh
# Install Dynatrace skills for your AI agent
aimgr repo add gh:dynatrace/dynatrace-for-ai
aimgr install skill/dt-dql-essentials
Project Structure
my-app/
โโโ ui/app/ โ React frontend
โ โโโ App.tsx โ Root + routing
โ โโโ pages/ โ Page components
โโโ api/ โ Serverless functions
โโโ app.config.json โ Metadata, scopes, CSP
โโโ package.json
app.config.json
{
"environmentUrl": "https://abc12345.apps.dynatrace.com",
"app": {
"name": "My App",
"version": "0.0.1",
"id": "my.first.app",
"scopes": [
{ "name": "storage:metrics:read", "comment": "Read metrics" },
{ "name": "storage:entities:read", "comment": "Read entities" }
]
}
}
โ ๏ธ Without the right scopes, DQL queries return empty results or errors.
Common Scopes
storage:metrics:read โ DQL timeseries queries
storage:entities:read โ DQL entity fetch
storage:logs:read โ Log queries
storage:events:read โ Event queries
app-engine:apps:run โ Required for all apps
Dev Server
cd my-app && npx dt-app dev
๐ก The dev server proxies API calls to your DT environment โ useDql queries hit real data immediately. Hot reload built in.
๐ง Quick Check
What file defines your app's permissions and metadata?
What's Next
Module 2 โ Write code: pages, Strato components, routing.