Skip to content

Configuration Files

Tim S edited this page Jan 12, 2017 · 9 revisions

The Open Data Exporter is fully configurable via a JSON config file. This page is a TLDR guide for the config file. For in-depth information, see the deep dive guides.

Table of Contents

Top level schema:

{
  "pureCloud": {},
  "requests": {},
  "transforms": {},
  "templates": {},
  "exports": {},
  "configurations": {},
  "jobs": {},
  "customData": {}
}

pureCloud

This section of the config file contains settings for use by the JavaScript SDK. For more information about OAuth clients, see How to Create an OAuth Client. This integration uses a client credentials grant.

Schema:

{
  "pureCloud": {
    "clientId": "",
    "clientSecret": "",
    "timeout": 0,
    "environment": ""
  }
}
  • clientId The PureCloud OAuth client's client ID for a client credentials grant
  • clientSecret The PureCloud OAuth client's client ID for a client credentials grant
  • timeout (optional, default: 5000) The number of milliseconds to wait for API responses
  • environment (optional, default: mypurecloud.com) overrides the PureCloud environment (i.e. mypurecloud.ie, mypurecloud.jp, mypurecloud.com.au)

Note: If desired, the clientId and clientSecret can be passed as command line parameters and omitted from the config file. See more about command line parameters in: Running the application.

requests

This section of the config file contains configuration for API requests used to retrieve data from PureCloud. Each request type supports/requires a different combination of properties, but all properties are shown below.

For additional information, see Deep Dive: Requests.

Schema:

{
  "requests": {
    "<request_name>": {
      "name": "",
      "type": "",
      "strategy": "",
      "collection": "",
      "target": "",
      "body": {},
      "parameters": {},
      "getAllPages": {},
      "transforms": {},
      "customData": {}
    }
  }
}

transforms

This section of the config file contains configuration for the set of templates and functions used to manipulate the data. Transforms may be applied to request result data or may be used as part of a configuration's execution plan. All transform configurations must specify "type": "transform".

For additional information, see Deep Dive: Transforms

Schema:

{
  "transforms": {
    "<transform_name>": {
      "name": "",
      "type": "transform",
      "expressions": [],
      "customData": {}
    }
  }
}

templates

This section of the config file contains configuration for the templates to format data for exporting. Templates use literal text, variable replacement, array iteration, and execution of JavaScript functions to produce the output format.

For additional information, see Deep Dive: Templates

Schema:

{
  "templates": {
    "<template_name>": {
      "name": "",
      "template": "",
      "fileName": "",
      "customData": {}
    }
  }
}

exports

This section of the config file contains configuration for the set of export configurations used to write out data.

For additional information, see Deep Dive: Exports

Schema:

{
  "exports": {
    "<export_name>": {
      "name": "",
      "type": "",
      "destination": "",
      "customData": {}
    }
  }
}

configurations

This section of the config file contains configuration for the set of configuration profiles that define a combination of queries, transforms, templates, and exports. Each configuration profile should generally only be responsible for generating one set of data for one template.

For additional information, see Deep Dive: Configurations

Schema:

{
  "<config_name>": {
    "name": "",
    "externalModules": {
      "<module_name>": ""
    },
    "executionPlan": {
      "<request_name>": {
        "$ref": "#/requests/<request_name>"
      },
      "<transform_name>": {
        "$ref": "#/transforms/<transform_name>"
      }
    },
    "templates": {
      "<template_name>": {
        "$ref": "#/templates/<template_name>"
      }
    },
    "exports": {
      "<export_name>": {
        "$ref": "#/exports/<export_name>"
      }
    },
    "customData": {}
  }
}

jobs

This section of the config file contains configuration for the set of jobs that define the configurations to execute.

For additional information, see Deep Dive: Jobs

Schema:

{
  "<job_name>": {
    "name": "",
    "configurations": {
      "<config_name>": {
        "$ref": "#/configurations/<config_name>"
      }
    },
    "cron": "",
    "customData": {}
  }
}