Homeโ€บ๐ŸŽฎ Foundationsโ€บModule 11 min read ยท 2/15

Setting Up Your BFG

Tutorial1 exercise

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.