CONNECT APP
Build with Dataiku
Artificial Intelligence (AI)
- API key
MCP
Give your agent Dataiku tools
Every Dataiku action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Dataiku account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "dataiku",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Build Dataset:
const result = await mcp.callTool({
name: "dataiku-build-dataset",
arguments: {
projectKey: "Project Key",
outputIds: ["Outputs To Build"],
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "dataiku",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Build Dataset:
result = await session.call_tool("dataiku-build-dataset", {
"projectKey": "Project Key",
"outputIds": ["Outputs To Build"],
})API PROXY
Call the Dataiku API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Dataiku API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Dataiku endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Dataiku actions from your backend
Connect a user's Dataiku account once, then run Build Dataset on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "dataiku-build-dataset",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
dataiku: { authProvisionId: "apn_xxxxxxx" },
projectKey: "Project Key",
outputIds: ["Outputs To Build"],
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="dataiku-build-dataset",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"dataiku": {"authProvisionId": "apn_xxxxxxx"},
"projectKey": "Project Key",
"outputIds": ["Outputs To Build"],
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "dataiku-build-dataset",
"configured_props": {
"dataiku": { "authProvisionId": "apn_xxxxxxx" },
"projectKey": "Project Key",
"outputIds": ["Outputs To Build"]
}
}'TOOLS
Dataiku actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Build Dataset
actionStart a job that builds one or more outputs (typically datasets) in a DSS project. Use this to rebuild specific outputs directly; use Run Scenario instead when the pipeline is already orchestrated as a scenario. Use List Datasets to find valid output names. A successful call only means the job was accepted — the response'sidis the job ID, which you pass to Get Job Status to follow it to completion. Requires theRUN_JOBSprivilege on the project. See the documentationWritev0.0.2 -
Get Job Status
actionCheck the status of a DSS build job, returned asbaseStatus.status. Poll this after Build Dataset using theidit returned.NOT_STARTEDandRUNNINGmean the job is still in flight;DONE,FAILEDandABORTEDare terminal, so stop polling on any of them and treatFAILED/ABORTEDas an unsuccessful build. Use List Jobs to recover a job ID you no longer have. Requires theMONITOR_JOBSprivilege on the project. See the documentationRead-onlyv0.0.2 -
List Datasets
actionList the datasets of a DSS project. Use this to discover a dataset'sname— the identifier Build Dataset needs to build it — along with itstype(e.g.Filesystem) and connection parameters. Use List Projects first if you do not know the project key. Requires theREAD_CONFprivilege on the project. See the documentationRead-onlyv0.0.2 -
List Jobs
actionRetrieve the latest build jobs of a DSS project, each with itsjobIdandstate. Use this to check what a project has been building recently, or to recover ajobIdyou no longer have before calling Get Job Status. Requires theREAD_CONFprivilege on the project. See the documentationRead-onlyv0.0.2 -
List Projects
actionList the projects on the DSS instance. Start here when you only know a project by its display name: every other Dataiku tool is addressed byprojectKey(e.g.MYPROJECT), which this tool returns. Only projects the connected API key holds theREAD_CONFprivilege on are listed, so an empty result usually means a permissions gap rather than an empty instance. Note that the free edition of DSS does not include Public API access — the API key must come from a trial or licensed instance. See the documentationRead-onlyv0.0.2 -
List Scenario Runs
actionRetrieve the last runs of a DSS scenario. Use this after Run Scenario, which returns no run identifier of its own, to follow the outcome: each entry carries arunId,start/endtimestamps and aresultobject reportingoutcome(e.g.SUCCESS) andtype(e.g.SCENARIO_DONE). This tool cannot tell you which entry corresponds to a run you started: the response is just the scenario's recent runs, so a concurrent run, or one already in progress before you called Run Scenario, looks no different. Correlate deliberately — match on thestarttimestamp (therunId, e.g.2016-04-15-16-57-37-759, is derived from it) against the moment you triggered the run, rather than assuming any particular entry is yours. Stop polling once the run you are tracking reports aresult, whatever its outcome. Requires theRUN_JOBSprivilege on the project. See the documentationRead-onlyv0.0.2 -
List Scenarios
actionList the scenarios of a DSS project, with each scenario'sid, whether it is currentlyrunning, and whether it isactive(i.e. responding to its own triggers). Call this before Run Scenario to find a valid scenario ID, or to check whether a scenario is already in flight before starting another run. Requires theMONITOR_JOBSprivilege on the project. See the documentationRead-onlyv0.0.2 -
Run Scenario
actionStart a run of a DSS scenario — the usual way to kick off an orchestrated pipeline (a sequence of builds, checks and reporters) as opposed to building a single dataset, which Build Dataset does. Use List Scenarios to find a valid scenario ID. A successful call only means the run was accepted, and the response carries no run identifier, so poll List Scenario Runs to follow the outcome. Requires theRUN_JOBSprivilege on the project. See the documentationWritev0.0.2
EVENTS
Dataiku triggers
Event sources your backend can deploy for users and receive through a webhook.
No Dataiku triggers are available yet.
- App slug
- dataiku
- Authentication
- API key
- Categories
- Artificial Intelligence (AI)
- Actions
- 8
- Triggers
- 0
- API proxy
- Available