Skip to content

Commit 473ea94

Browse files
feat(blocks): add dagster block
1 parent e8f7fe0 commit 473ea94

File tree

17 files changed

+1288
-0
lines changed

17 files changed

+1288
-0
lines changed

apps/docs/components/icons.tsx

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,29 @@ export function ConditionalIcon(props: SVGProps<SVGSVGElement>) {
124124
)
125125
}
126126

127+
export function CredentialIcon(props: SVGProps<SVGSVGElement>) {
128+
return (
129+
<svg {...props} viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
130+
<circle cx='8' cy='15' r='4' stroke='currentColor' strokeWidth='1.75' />
131+
<path d='M11.83 13.17L20 5' stroke='currentColor' strokeWidth='1.75' strokeLinecap='round' />
132+
<path
133+
d='M18 7l2 2'
134+
stroke='currentColor'
135+
strokeWidth='1.75'
136+
strokeLinecap='round'
137+
strokeLinejoin='round'
138+
/>
139+
<path
140+
d='M15 10l2 2'
141+
stroke='currentColor'
142+
strokeWidth='1.75'
143+
strokeLinecap='round'
144+
strokeLinejoin='round'
145+
/>
146+
</svg>
147+
)
148+
}
149+
127150
export function NoteIcon(props: SVGProps<SVGSVGElement>) {
128151
return (
129152
<svg
@@ -4845,6 +4868,21 @@ export function SSHIcon(props: SVGProps<SVGSVGElement>) {
48454868
)
48464869
}
48474870

4871+
export function DagsterIcon(props: SVGProps<SVGSVGElement>) {
4872+
return (
4873+
<svg {...props} viewBox='0 0 147 147' fill='none' xmlns='http://www.w3.org/2000/svg'>
4874+
<path
4875+
d='M73.5 0C32.9 0 0 32.9 0 73.5S32.9 147 73.5 147 147 114.1 147 73.5 114.1 0 73.5 0z'
4876+
fill='#4F43DD'
4877+
/>
4878+
<path
4879+
d='M109.6 52.4L87 39.7c-1.9-1.1-4.3-1.1-6.2 0l-7.3 4.2-7.3-4.2c-1.9-1.1-4.3-1.1-6.2 0L37.4 52.4c-1.9 1.1-3.1 3.1-3.1 5.3v25.4c0 2.2 1.2 4.2 3.1 5.3l7.3 4.2v8.5c0 2.2 1.2 4.2 3.1 5.3l22.6 13.1c1.9 1.1 4.3 1.1 6.2 0l22.6-13.1c1.9-1.1 3.1-3.1 3.1-5.3v-8.5l7.3-4.2c1.9-1.1 3.1-3.1 3.1-5.3V57.7c0-2.2-1.2-4.2-3.1-5.3zm-12 40.4l-16.4 9.5v-8.5l16.4-9.5v8.5zm-6.2-19l-10.2 5.9-10.2-5.9 10.2-5.9 10.2 5.9zm-22.6 27.5l-16.4-9.5v-8.5l16.4 9.5v8.5zm-22.6-35.9l16.4-9.5 10.2 5.9-16.4 9.5-10.2-5.9zm13.1 24.4l-10.2-5.9V75l10.2 5.9v8.9zm22.6 0V81l10.2-5.9v8.8l-10.2 5.9zm9.5-24.4L74.9 74.9l-10.2-5.9 16.4-9.5 10.2 5.9z'
4880+
fill='white'
4881+
/>
4882+
</svg>
4883+
)
4884+
}
4885+
48484886
export function DatabricksIcon(props: SVGProps<SVGSVGElement>) {
48494887
return (
48504888
<svg {...props} viewBox='0 0 241 266' fill='none' xmlns='http://www.w3.org/2000/svg'>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
CloudflareIcon,
3131
ConfluenceIcon,
3232
CursorIcon,
33+
DagsterIcon,
3334
DatabricksIcon,
3435
DatadogIcon,
3536
DevinIcon,
@@ -213,6 +214,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
213214
cloudflare: CloudflareIcon,
214215
confluence_v2: ConfluenceIcon,
215216
cursor_v2: CursorIcon,
217+
dagster: DagsterIcon,
216218
databricks: DatabricksIcon,
217219
datadog: DatadogIcon,
218220
devin: DevinIcon,
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
title: Dagster
3+
description: Orchestrate data pipelines and manage job runs on Dagster+
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="dagster"
10+
color="#191A23"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Connect to Dagster+ to launch job runs, monitor run status, list available jobs across repositories, and terminate in-progress runs. Requires a Dagster Cloud API token.
16+
17+
18+
19+
## Tools
20+
21+
### `dagster_launch_run`
22+
23+
Launch a Dagster job run in your Dagster+ deployment.
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `organizationName` | string | Yes | Dagster+ organization name \(subdomain, e.g., "myorg"\) |
30+
| `deploymentName` | string | Yes | Dagster+ deployment name \(e.g., "prod"\) |
31+
| `apiKey` | string | Yes | Dagster Cloud API token |
32+
| `repositoryLocationName` | string | Yes | Repository location \(code location\) name |
33+
| `repositoryName` | string | Yes | Repository name within the code location |
34+
| `jobName` | string | Yes | Name of the job to launch |
35+
| `runConfigJson` | string | No | Run configuration as a JSON object \(optional\) |
36+
| `tags` | string | No | Tags as a JSON array of \{key, value\} objects \(optional\) |
37+
38+
#### Output
39+
40+
| Parameter | Type | Description |
41+
| --------- | ---- | ----------- |
42+
| `runId` | string | The globally unique ID of the launched run |
43+
44+
### `dagster_get_run`
45+
46+
Get the status and details of a Dagster run by its ID.
47+
48+
#### Input
49+
50+
| Parameter | Type | Required | Description |
51+
| --------- | ---- | -------- | ----------- |
52+
| `organizationName` | string | Yes | Dagster+ organization name \(subdomain\) |
53+
| `deploymentName` | string | Yes | Dagster+ deployment name \(e.g., "prod"\) |
54+
| `apiKey` | string | Yes | Dagster Cloud API token |
55+
| `runId` | string | Yes | The ID of the run to retrieve |
56+
57+
#### Output
58+
59+
| Parameter | Type | Description |
60+
| --------- | ---- | ----------- |
61+
| `runId` | string | Run ID |
62+
| `jobName` | string | Name of the job this run belongs to |
63+
| `status` | string | Run status \(QUEUED, NOT_STARTED, STARTING, MANAGED, STARTED, SUCCESS, FAILURE, CANCELING, CANCELED\) |
64+
| `startTime` | number | Run start time as Unix timestamp |
65+
| `endTime` | number | Run end time as Unix timestamp |
66+
| `runConfigYaml` | string | Run configuration as YAML |
67+
| `tags` | json | Run tags as array of \{key, value\} objects |
68+
69+
### `dagster_list_runs`
70+
71+
List recent Dagster runs, optionally filtered by job name.
72+
73+
#### Input
74+
75+
| Parameter | Type | Required | Description |
76+
| --------- | ---- | -------- | ----------- |
77+
| `organizationName` | string | Yes | Dagster+ organization name \(subdomain\) |
78+
| `deploymentName` | string | Yes | Dagster+ deployment name \(e.g., "prod"\) |
79+
| `apiKey` | string | Yes | Dagster Cloud API token |
80+
| `jobName` | string | No | Filter runs by job name \(optional\) |
81+
| `limit` | number | No | Maximum number of runs to return \(default 20\) |
82+
| `cursor` | string | No | Pagination cursor from a previous list_runs response |
83+
84+
#### Output
85+
86+
| Parameter | Type | Description |
87+
| --------- | ---- | ----------- |
88+
| `runs` | json | Array of runs with runId, jobName, status, startTime, endTime |
89+
|`runId` | string | Run ID |
90+
|`jobName` | string | Job name |
91+
|`status` | string | Run status |
92+
|`startTime` | number | Start time as Unix timestamp |
93+
|`endTime` | number | End time as Unix timestamp |
94+
| `cursor` | string | Pagination cursor to retrieve the next page |
95+
| `hasMore` | boolean | Whether more runs are available |
96+
97+
### `dagster_list_jobs`
98+
99+
List all jobs across repositories in a Dagster+ deployment.
100+
101+
#### Input
102+
103+
| Parameter | Type | Required | Description |
104+
| --------- | ---- | -------- | ----------- |
105+
| `organizationName` | string | Yes | Dagster+ organization name \(subdomain\) |
106+
| `deploymentName` | string | Yes | Dagster+ deployment name \(e.g., "prod"\) |
107+
| `apiKey` | string | Yes | Dagster Cloud API token |
108+
| `repositoryLocationName` | string | No | Filter by repository location name \(optional\) |
109+
110+
#### Output
111+
112+
| Parameter | Type | Description |
113+
| --------- | ---- | ----------- |
114+
| `jobs` | json | Array of jobs with name, repositoryName, repositoryLocationName, and description |
115+
|`name` | string | Job name |
116+
|`repositoryName` | string | Repository name |
117+
|`repositoryLocationName` | string | Repository location name |
118+
|`description` | string | Job description |
119+
120+
### `dagster_terminate_run`
121+
122+
Terminate an in-progress Dagster run.
123+
124+
#### Input
125+
126+
| Parameter | Type | Required | Description |
127+
| --------- | ---- | -------- | ----------- |
128+
| `organizationName` | string | Yes | Dagster+ organization name \(subdomain\) |
129+
| `deploymentName` | string | Yes | Dagster+ deployment name \(e.g., "prod"\) |
130+
| `apiKey` | string | Yes | Dagster Cloud API token |
131+
| `runId` | string | Yes | The ID of the run to terminate |
132+
133+
#### Output
134+
135+
| Parameter | Type | Description |
136+
| --------- | ---- | ----------- |
137+
| `success` | boolean | Whether the run was successfully terminated |
138+
| `runId` | string | The ID of the terminated run |
139+
| `message` | string | Error or status message if termination failed |
140+
141+

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"cloudflare",
2626
"confluence",
2727
"cursor",
28+
"dagster",
2829
"databricks",
2930
"datadog",
3031
"devin",

apps/sim/app/(landing)/integrations/data/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
CloudflareIcon,
3131
ConfluenceIcon,
3232
CursorIcon,
33+
DagsterIcon,
3334
DatabricksIcon,
3435
DatadogIcon,
3536
DevinIcon,
@@ -213,6 +214,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
213214
cloudflare: CloudflareIcon,
214215
confluence_v2: ConfluenceIcon,
215216
cursor_v2: CursorIcon,
217+
dagster: DagsterIcon,
216218
databricks: DatabricksIcon,
217219
datadog: DatadogIcon,
218220
devin: DevinIcon,

apps/sim/app/(landing)/integrations/data/integrations.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2243,6 +2243,45 @@
22432243
"integrationType": "developer-tools",
22442244
"tags": ["agentic", "automation"]
22452245
},
2246+
{
2247+
"type": "dagster",
2248+
"slug": "dagster",
2249+
"name": "Dagster",
2250+
"description": "Orchestrate data pipelines and manage job runs on Dagster+",
2251+
"longDescription": "Connect to Dagster+ to launch job runs, monitor run status, list available jobs across repositories, and terminate in-progress runs. Requires a Dagster Cloud API token.",
2252+
"bgColor": "#191A23",
2253+
"iconName": "DagsterIcon",
2254+
"docsUrl": "https://docs.sim.ai/tools/dagster",
2255+
"operations": [
2256+
{
2257+
"name": "Launch Run",
2258+
"description": "Launch a Dagster job run in your Dagster+ deployment."
2259+
},
2260+
{
2261+
"name": "Get Run",
2262+
"description": "Get the status and details of a Dagster run by its ID."
2263+
},
2264+
{
2265+
"name": "List Runs",
2266+
"description": "List recent Dagster runs, optionally filtered by job name."
2267+
},
2268+
{
2269+
"name": "List Jobs",
2270+
"description": "List all jobs across repositories in a Dagster+ deployment."
2271+
},
2272+
{
2273+
"name": "Terminate Run",
2274+
"description": "Terminate an in-progress Dagster run."
2275+
}
2276+
],
2277+
"operationCount": 5,
2278+
"triggers": [],
2279+
"triggerCount": 0,
2280+
"authType": "api-key",
2281+
"category": "tools",
2282+
"integrationType": "automation",
2283+
"tags": ["data-analytics", "cloud", "automation"]
2284+
},
22462285
{
22472286
"type": "databricks",
22482287
"slug": "databricks",

0 commit comments

Comments
 (0)