Intents โ Cross-App Navigation
Intents let apps navigate to other Dynatrace apps with context. Three ways to trigger:
IntentButton (declarative)
import { IntentButton } from "@dynatrace/strato-components/buttons";
<IntentButton payload={{ "dt.query": "fetch dt.entity.host | limit 10" }}>
Open in Notebooks
</IntentButton>
sendIntent (programmatic)
import { sendIntent, IntentPayload } from "@dynatrace-sdk/navigation";
const intent: IntentPayload = {
"dt.query": "fetch logs | filter loglevel == \"ERROR\" | limit 100"
};
sendIntent(intent);
Receiving Intents
Declare what intents the app accepts in app.config.json:
{
"app": {
"intents": {
"dt.custom.my-action": {
"description": "Open my custom view",
"params": {
"entityId": { "type": "string" }
}
}
}
}
}
๐ก Intents are how Dynatrace apps talk to each other. When triggered, the AppShell shows an "Open with" dialog letting the user choose which app handles it.
๐ Try it: Add an IntentButton to your app: <IntentButton payload={{ "dt.query": "fetch dt.entity.host" }}>Open in Notebooks</IntentButton>. Click it โ your app navigates to Notebooks with the query pre-filled. That's cross-app navigation.