Skip to content

Plugins GraphQL API

Queries and mutations for managing DeltaFi plugins — installable extensions that provide actions and flow plans.

Queries

List Plugins

graphql
query {
  plugins {
    pluginCoordinates { groupId artifactId version }
    displayName
    description
    actionKitVersion
    installState
    installError
    installAttempts
    lastSuccessfulVersion
    canRollback
    disabled
    imageName
    imageTag
    actions {
      name
      type
      supportsJoin
      actionOptions { description }
      docsMarkdown
    }
    variables { name value dataType required masked }
    dependencies { groupId artifactId version }
  }
}

Permission: PluginsView

Plugin Install Status

Get a summary of plugin installation states.

graphql
query {
  pluginInstallStatus {
    installed
    pending
    installing
    failed
    removing
    failedPlugins {
      pluginCoordinates { artifactId version }
      installError
    }
  }
}

Permission: PluginsView

Action Descriptors

Get descriptors for all registered actions across all plugins.

graphql
query {
  actionDescriptors {
    name
    type
    supportsJoin
    schema
    actionOptions {
      description
      inputSpec { contentSummary contentSpecs { name mediaType description } }
      outputSpec { contentSummary passthrough }
      filters { description conditions }
      errors { description conditions }
      notes
    }
    docsMarkdown
  }
}

Permission: PluginsView

Action Names by Family

Get action names grouped by family.

graphql
query {
  getActionNamesByFamily {
    family
    actionNames
  }
}

Permission: FlowView

Data Source Error State

Check which data sources have exceeded their maximum error threshold.

graphql
query {
  dataSourceErrorsExceeded {
    name
    currErrors
    maxErrors
  }
}

Permission: FlowView

Mutations

Install Plugin

Install a plugin from a container image.

graphql
mutation {
  installPlugin(
    image: "registry.example.com/my-plugin:1.0.0"
    imagePullSecret: "my-registry-secret"
  ) {
    success
    errors
    info
  }
}

Permission: PluginInstall

Uninstall Plugin

graphql
# Safe uninstall (fails if dependencies exist)
mutation {
  uninstallPlugin(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  }) {
    success errors
  }
}

# Force uninstall (ignores dependency checks)
mutation {
  forcePluginUninstall(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  }) {
    success errors
  }
}

Permission: PluginUninstall

Plugin Lifecycle

graphql
# Restart a plugin container
mutation { restartPlugin(pluginName: "my-plugin", waitForSuccess: true) }

# Retry a failed installation
mutation {
  retryPluginInstall(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  })
}

# Rollback to previous version
mutation {
  rollbackPlugin(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  })
}

# Disable plugin (stops container)
mutation {
  disablePlugin(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  })
}

# Enable plugin
mutation {
  enablePlugin(pluginCoordinates: {
    groupId: "com.example"
    artifactId: "my-plugin"
    version: "1.0.0"
  })
}

Permission: PluginInstall (restart, retry, rollback, disable, enable)

Plugin Variables

graphql
# Set all system plugin variables
mutation {
  savePluginVariables(variables: [
    { name: "apiKey", description: "API key", dataType: STRING, required: true, value: "abc123", masked: true }
  ])
}

# Add or update a single system plugin variable
mutation {
  saveSystemPluginVariable(variable: {
    name: "apiKey"
    description: "API key"
    dataType: STRING
    required: true
    value: "abc123"
    masked: true
  })
}

# Remove all system plugin variables
mutation { removePluginVariables }

# Remove a single system plugin variable
mutation { removeSystemPluginVariable(name: "apiKey") }

# Set variables for a specific plugin
mutation {
  setPluginVariableValues(
    pluginCoordinates: { groupId: "com.example", artifactId: "my-plugin", version: "1.0.0" }
    variables: [{ key: "endpoint", value: "https://api.example.com" }]
  )
}

Permission: PluginVariableUpdate

Contact US