Here we explain how you can use JavaScript SDK for data deployment purposes. If you need a detailed step-by-step tutorial, please, go to this article:

https://datahub.io/docs/tutorials/js-sdk-tutorial

Prerequisites

  1. You need to have NodeJS (>= 7.6) and NPM.

  2. Installed datahub-client and data.js NPM packages:

    npm install datahub-client data.js --save

Example of usage

Following code snippet is a working example for basic usage. It uses credentials stored in ~/.config/datahub/config.json, which is created when you login using the CLI tool.

const {DataHub, config, authenticate} = require('datahub-client')
const {Dataset} = require('data.js')

async function pushDataset(datasetPath) {
  // First, authenticate user
  const apiUrl = config.get('api')
  const token = config.get('token')
  const response = await authenticate(apiUrl, token)
  if (!response.authenticated) {
    console.error('Your credentials expired or missing.')
    return
  }
  // Load dataset that we want to push
  const dataset = await Dataset.load(datasetPath)
  // Create an instance of the DataHub class, using the data from the user config
  const configs = {
   apiUrl,
   token,
   ownerid: config.get('profile') ? config.get('profile').id : config.get('id')
  }
  const datahub = new DataHub(configs)

  // Now use the datahub instance to push the data
  const res = await datahub.push(dataset, {findability: 'unlisted'})
  console.log(res)
}

pushDataset('path/to/dataset')

This is an example of correct console output:

{ dataset_id: 'username/finance-vix',
  errors: [],
  flow_id: 'username/finance-vix/1',
  success: true }

That is all needed to get your dataset deployed in DataHub!

If you have questions, comments or feedback join our Discord logo chat channel or open an issue on our GitHub logo tracker.