Important: Use GraphQL introspection (
{ __schema { ... } }) or the Vendure Admin UI’s API playground for the definitive, up-to-date API reference. The examples below show common usage patterns but field names and signatures may differ from the current implementation.
The Data Hub plugin extends the Vendure Admin API with queries and mutations for pipeline management.
List all pipelines:
query {
dataHubPipelines(options: { take: 20, skip: 0 }) {
items {
id
code
name
enabled
createdAt
updatedAt
}
totalItems
}
}
Get a single pipeline:
query GetPipeline($id: ID!) {
dataHubPipeline(id: $id) {
id
code
name
enabled
definition
createdAt
updatedAt
}
}
List connections:
query {
dataHubConnections {
items {
id
code
type
createdAt
}
totalItems
}
}
List secrets (values hidden):
query {
dataHubSecrets {
items {
id
code
provider
createdAt
}
totalItems
}
}
List available adapters:
query {
dataHubAdapters {
code
name
type
category
description
schema {
fields {
key
type
required
label
defaultValue
options { value label }
}
}
}
}
Query pipeline runs:
query GetRuns($pipelineId: ID!) {
dataHubPipelineRuns(pipelineId: $pipelineId, options: { take: 10 }) {
items {
id
status
startedAt
finishedAt
triggeredBy
}
totalItems
}
}
Get a single run:
query GetRun($id: ID!) {
dataHubPipelineRun(id: $id) {
id
status
startedAt
completedAt
metrics
triggeredBy
}
}
Query execution logs:
query GetLogs {
dataHubLogs(options: { take: 100 }) {
items {
id
level
message
stepKey
createdAt
metadata
}
totalItems
}
}
Query failed records for a specific run:
query RunErrors($runId: ID!) {
dataHubRunErrors(runId: $runId) {
id
stepKey
message
payload
stackTrace
createdAt
}
}
Get plugin settings:
query {
dataHubSettings {
retentionDaysRuns
retentionDaysErrors
retentionDaysLogs
logPersistenceLevel
}
}
Create a pipeline:
mutation CreatePipeline($input: CreateDataHubPipelineInput!) {
createDataHubPipeline(input: $input) {
id
code
name
}
}
Variables:
{
"input": {
"code": "my-pipeline",
"name": "My Pipeline",
"definition": {
"version": 1,
"steps": [],
"edges": []
}
}
}
Update a pipeline:
mutation UpdatePipeline($input: UpdateDataHubPipelineInput!) {
updateDataHubPipeline(input: $input) {
id
name
enabled
}
}
Variables:
{
"input": {
"id": "1",
"name": "Updated Name",
"enabled": true
}
}
Delete a pipeline:
mutation DeletePipeline($id: ID!) {
deleteDataHubPipeline(id: $id) {
result
message
}
}
Execute a pipeline:
mutation RunPipeline($pipelineId: ID!) {
startDataHubPipelineRun(pipelineId: $pipelineId) {
id
status
}
}
Cancel a running pipeline:
mutation CancelRun($id: ID!) {
cancelDataHubPipelineRun(id: $id) {
id
status
}
}
Validate a pipeline definition:
query Validate($definition: JSON!) {
validateDataHubPipelineDefinition(definition: $definition) {
isValid
issues {
stepKey
message
reason
}
}
}
Create a connection:
mutation CreateConnection($input: CreateDataHubConnectionInput!) {
createDataHubConnection(input: $input) {
id
code
type
}
}
Update a connection:
mutation UpdateConnection($input: UpdateDataHubConnectionInput!) {
updateDataHubConnection(input: $input) {
id
code
}
}
Delete a connection:
mutation DeleteConnection($id: ID!) {
deleteDataHubConnection(id: $id) {
result
}
}
Create a secret:
mutation CreateSecret($input: CreateDataHubSecretInput!) {
createDataHubSecret(input: $input) {
id
code
provider
}
}
Variables:
{
"input": {
"code": "api-key",
"provider": "env",
"value": "MY_API_KEY"
}
}
Update a secret:
mutation UpdateSecret($input: UpdateDataHubSecretInput!) {
updateDataHubSecret(input: $input) {
id
code
}
}
Delete a secret:
mutation DeleteSecret($id: ID!) {
deleteDataHubSecret(id: $id) {
result
}
}
Retry a single failed record with optional JSON patch:
mutation RetryRecord($errorId: ID!, $patch: JSON) {
retryDataHubRecord(errorId: $errorId, patch: $patch)
}
Update plugin settings:
mutation UpdateSettings($input: DataHubSettingsInput!) {
updateDataHubSettings(input: $input) {
retentionDaysRuns
retentionDaysErrors
}
}
Using with @vendure/admin-ui-plugin or custom clients:
import { gql } from 'graphql-tag';
const RUN_PIPELINE = gql`
mutation RunPipeline($pipelineId: ID!) {
startDataHubPipelineRun(pipelineId: $pipelineId) {
id
status
}
}
`;
// Execute
const result = await adminClient.mutate({
mutation: RUN_PIPELINE,
variables: { pipelineId: '1' },
});
GraphQL errors follow Vendure patterns:
try {
const result = await adminClient.mutate({ ... });
} catch (error) {
if (error.graphQLErrors) {
for (const gqlError of error.graphQLErrors) {
console.log(gqlError.message);
console.log(gqlError.extensions?.code);
}
}
}
Common error codes:
FORBIDDEN - Missing required permissionNOT_FOUND - Entity not foundVALIDATION_ERROR - Invalid inputPIPELINE_RUNNING - Pipeline already running