@datadog/action-catalog
v0.0.1
Published
TypeScript client library for Datadog's Actions Catalog. Provides fully typed functions for executing actions across 50+ integrations.
Readme
@datadog/action-catalog
TypeScript client library for Datadog's Actions Catalog. Provides fully typed functions for executing actions across 50+ integrations including AWS, Azure, GCP, GitHub, Slack, Jira, PagerDuty, Datadog APIs, and more.
Installation
npm install @datadog/action-catalog
# or
yarn add @datadog/action-catalogSetup
Before calling any action functions, you must register an execution implementation. This allows the library to work in any runtime environment.
import { setExecuteActionImplementation } from '@datadog/action-catalog/action-execution';
setExecuteActionImplementation(async (actionId, request) => {
// Your implementation for executing actions against the Datadog API
const response = await fetch(
`https://api.datadoghq.com/api/v2/actions/${actionId}/execute`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'DD-API-KEY': process.env.DD_API_KEY,
'DD-APPLICATION-KEY': process.env.DD_APP_KEY,
},
body: JSON.stringify(request),
},
);
return response.json();
});Usage
Import action functions from integration-specific entry points. Each function is fully typed with request inputs and response outputs.
import { listObjects } from '@datadog/action-catalog/aws/s3';
import { createMonitor } from '@datadog/action-catalog/dd/monitor';
import { deleteChat } from '@datadog/action-catalog/slack/chat';
// List S3 objects
const objects = await listObjects({
inputs: {
bucket: 'my-bucket',
region: 'us-east-1',
},
});
// Create a Datadog monitor
const monitor = await createMonitor({
inputs: {
name: 'High CPU Alert',
monitorType: 'metric alert',
message: 'CPU usage is above 90%',
},
});
// Delete a Slack message
await deleteChat({
inputs: {
channel: 'C1234567890',
ts: '1234567890.123456',
teamId: 'T1234567890',
},
});Supported Integrations
Each integration is available as a separate import path under @datadog/action-catalog/<integration>/<module>:
| Integration | Import Path | Description |
| -------------- | ---------------------------------------------------------------------- | ----------------------------- |
| AWS | aws/s3, aws/ec2, aws/lambda, aws/ecs, aws/rds, ... | 40+ AWS service modules |
| Azure | azure/vm, azure/aks, azure/functions, azure/sql, ... | Azure cloud services |
| GCP | gcp/compute, gcp/container, gcp/functions, gcp/sql, ... | Google Cloud services |
| Datadog | dd/monitor, dd/dashboard, dd/logs, dd/incidents, ... | Datadog platform APIs |
| GitHub | github/repos, github/pulls, github/issues, github/actions, ... | GitHub API operations |
| GitLab | gitlab/projects, gitlab/pipelines, gitlab/mergerequests, ... | GitLab API operations |
| Slack | slack/chat, slack/conversations, slack/reactions, ... | Slack API operations |
| Jira | jira/jira | Jira issue management |
| PagerDuty | pagerduty/pagerduty, pagerduty/integration | Incident management |
| OpsGenie | opsgenie/opsgenie | Alert and incident management |
| ServiceNow | servicenow/servicenow | IT service management |
| Cloudflare | cloudflare/cloudflare, cloudflare/workers, ... | Cloudflare services |
| Linear | linear/issues, linear/projects, linear/teams, ... | Project management |
| ClickUp | clickup/tasks, clickup/spaces, clickup/goals, ... | Project management |
| Okta | okta/okta | Identity management |
| OpenAI | openai/openai | AI/ML APIs |
| Anthropic | anthropic/anthropic | AI/ML APIs |
| HTTP | http/http | Generic HTTP requests |
See the full list of available integrations in the Datadog Actions Catalog documentation.
API Pattern
Every action function follows the same pattern:
function actionName(request: { inputs: ActionInputs }): Promise<ActionOutputs>;inputs— The parameters for the action, fully typed per action.- Returns — A Promise resolving to the typed action response.
License
MIT
