Skip to content

MESA SDK

Reference for the MESA SDK in custom code, with methods for logging to MESA Logs, making requests, working with Shopify and more, with parameters.

vendor/Mesa.js

Log info to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Log a warning to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Log an error to Mesa Logs.

Parameters

Name Type Description
message string
meta object Optional

Log info to Mesa Logs only if the Automation is in Debug Mode.

Parameters

Name Type Description
message string
meta object Optional

Make a GET request to an external Rest API.

Parameters

Name Type Description
path string
options RequestOptions

Returns

Make a POST request to an external Rest API.

Parameters

Name Type Description
path string
data object
options RequestOptions

Returns

Make a PUT request to an external Rest API.

Parameters

Name Type Description
path string
data object
options RequestOptions

Returns

Make a PATCH request to an external Rest API.

Parameters

Name Type Description
path string
data object
options RequestOptions

Returns

Make a DELETE request to an external Rest API.

Parameters

Name Type Description
path string
options RequestOptions

Returns

Mesa.request.send(method, path, data, options)

Section titled “Mesa.request.send(method, path, data, options)”

Make a request to an external Rest API.

Parameters

Name Type Description
method string One of GET, POST, PUT, PATCH, or DELETE
path string
data object
options RequestOptions

Returns

Base-64 encode a string. This is helpful when building an Authorization header for basic auth requests.

Parameters

Name Type Description
string string The string to encode

Returns

  • string The base-64 encoded version of the input string parameter.

Mesa.request.base64_decode(string[, strict])

Section titled “Mesa.request.base64_decode(string[, strict])”

Base64 decode a string. Decodes data encoded with MIME base64

Parameters

Name Type Description
string string The base-64 encoded version of the input string parameter.
strict bool If the strict parameter is set to TRUE then the base64_decode() function will return FALSE if the input contains character from outside the base64 alphabet. Defaults to FALSE. Optional

Returns

  • string The decoded string.

Mesa.request.hash(algorithm, string[, base64encode])

Section titled “Mesa.request.hash(algorithm, string[, base64encode])”

Generate a hash of a string. This is helpful when creating signed requests.

Parameters

Name Type Description
algorithm string The algorithm to use. Options: sha1, sha256, md5
string string The string to create the hash from
base64encode string Should we base64-encode the raw value of the hash? Optional

Returns

  • string The raw binary data of the hash

Mesa.request.hashHmac(algorithm, string, string[, base64encode])

Section titled “Mesa.request.hashHmac(algorithm, string, string[, base64encode])”

Generate a keyed hash value using the HMAC method. This is helpful when creating signed requests.

Parameters

Name Type Description
algorithm string The algorithm to use. Options: sha1, sha256, md5
string string The string to create the hash from
string string Shared secret key used for generating the HMAC variant of the message digest
base64encode string Should we base64-encode the raw value of the hash? Optional

Returns

  • string The raw binary data of the hash

Pauses execution

Parameters

Name Type Description
$seconds int

Returns

Get a secret.

Parameters

Name Type Description
key string
defaultValue string A default value to use if the secret cannot be found. If defaultValue is empty, the script will throw a fatal error if the secret is not found. Optional

Returns

  • string The secret value.

Mesa.credential.set(key, value[, options])

Section titled “Mesa.credential.set(key, value[, options])”

Save a secret value.

Parameters

Name Type Description
key string The credential key or id.
value string The value to save. This will be encrypted at rest, and can contained a stringified JSON array.
options object Optional
options.oauth_provider bool Optional
options.oauth_scope object Optional
options.trigger_type object Optional

Get a storage item

Parameters

Name Type Description
sql string The SQL query to run

Returns

  • array The result of the query.

Get a storage item

Parameters

Name Type Description
key string
defaultValue string A default value to use if the storage key cannot be found. If defaultValue is empty, the script will throw a fatal error if the storage key is not found. Optional

Returns

  • string The storage value.

Get a storage item

Parameters

Name Type Description
key string
value string

Render a liquid template with the params passed.

Parameters

Name Type Description
template string String representing a liquid template.
params object A keyed object of parameters to replace.

Returns

  • string The rendered template code.

Mesa.input.getWebhookUrl(type, format, automationId, key)

Section titled “Mesa.input.getWebhookUrl(type, format, automationId, key)”

Generates the URL for input webhooks

Parameters

Name Type Description
type string Type of webhook: json, shopify
format string Format of the returned data: string or array. If string, a full URL is returned. If array, URL will comprise two fields suffix and prefix
automationId string ID of the Automation
key string The key of the trigger

Returns

  • string array The rendered template code.

Pass a payload to the service and call the next step in this Automation.

Parameters

Name Type Description
payload object
params object Parameters to send to the output, such as tokens to construct a Shopify API url
params.enqueue bool Defaults to false. Set to true if you are exploding multiple tasks that can be run in parallel. Optional

Mesa.output.send(outputKey, payload, enqueue)

Section titled “Mesa.output.send(outputKey, payload, enqueue)”

Call an arbitrary output from a Mesa Script

Parameters

Name Type Description
outputKey string
payload object
enqueue bool Defaults to false. Set to true if you are exploding multiple tasks that can be run in parallel.

Mesa.automation.send(automationKey, payload)

Section titled “Mesa.automation.send(automationKey, payload)”

Call another automation from a Mesa Script

Parameters

Name Type Description
automationKey string In the form ${automationKey}, this will trigger the first input in the Automation. In the form ${automationKey}/${inputKey}, this will trigger a specific input in the automation.
payload object

Delete the file loaded by the Input.

Parameters

Name Type Description
filename string Typically passed from context.filename.

Mesa.ftp.moveFile(filename, destinationFilenameAndPath)

Section titled “Mesa.ftp.moveFile(filename, destinationFilenameAndPath)”

Move the file loaded by the Input to a new location.

Parameters

Name Type Description
filename string Typically passed from context.filename.
destinationFilenameAndPath string

Mesa.xml.decode(xmlString[, namespaceSep=‘_’])

Section titled “Mesa.xml.decode(xmlString[, namespaceSep=‘_’])”

Convert an XML file into an {object}. This function will condense XML namespaces into {namespaceSep = ‘_’} separated values: soapenv:Body becomes { soapenv_Body: {} }

Parameters

Name Type Description
xmlString string The xml file to be decoded
namespaceSep=‘_’ string Namespace separator for replacing soapenv:Body type values with soapenv_Body Optional

Returns

  • object

Mesa.xml.encode(xmlObject[, wrapReplace, namespaceSep=‘_’])

Section titled “Mesa.xml.encode(xmlObject[, wrapReplace, namespaceSep=‘_’])”

Convert an object into an XML string.

Parameters

Name Type Description
xmlObject object The object to be turned into xml.
wrapReplace string Replace the default wrapping provided with another value Optional
namespaceSep=‘_’ string Namespace separator for replacing soapenv_Body: {} values with soapenv:Body Optional

Examples

// returns <?xml version="1.0" encoding="UTF-8"?><doc>\n <book>\n ...
Mesa.xml.encode({ book: { ... }});
// returns <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n <soapenv:Body>\n ...
Mesa.xml.encode({ soapenv_Body: { ... } }, '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">');

Returns

  • string

Check if xml is valid

Parameters

Name Type Description
xmlString string

Examples

// returns true
Mesa.xml.valid('<?xml version="1.0" encoding="UTF-8"?><doc><book><Name>My Book</Name></book></doc>');
// throws error about namespace
Mesa.xml.valid('<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope><book><Name>My Book</Name></book></soapenv:Envelope>');

Returns

  • bool

Mesa.csv.decode(data[, returnObject, options])

Section titled “Mesa.csv.decode(data[, returnObject, options])”

Convert a CSV file into an object. Keys will be matched from the first header row of the CSV file.

Parameters

Name Type Description
data string
returnObject bool Defaults to true, which will return an object keyed by the first row in the CSV content. Set to false to return an array. Optional
options object Optional
options.delimiter=‘,’ string The delimiter to use when parsing the CSV file. Must be a single character. Optional

Returns

  • object array

Convert an object a CSV string.

Parameters

Name Type Description
data object
headerRow bool Defaults to true. Set to false to skip the header row when returning CSV. Optional

Returns

  • string

Push to a Virtual Output.

Parameters

Name Type Description
outputKey string
payload mixed

Mark the matching Virtual Output records as cleared by the current Mesa Script.

Parameters

Name Type Description
outputKey string

Mark a single Virtual Output record as cleared by the current Mesa Script.

Parameters

Name Type Description
outputKey string
mesaId string The ID of the record to clear (returned as mesa_id in the Virtual Output).

Set the timezone to use to execute all script commands.

Parameters

Name Type Description
timezone string The timezone identifier, like UTC or America/Los_Angeles. See a full list of TZ Database names.

Returns

  • string The timezone identifier, like UTC or Europe/Lisbon.

Request options

Parameters

Name Type Description
json bool Automatically add JSON Content-Type headers and decode the response. Defaults to true. Optional
query object Parameters to append to the querystring.
headers object Headers to send to the request.
debug bool Log request information and response headers. Defaults to context.automation.debug (false). Optional
skipJsonWrap bool Skip the named auto wrapping of outgoing data. Defaults to false. Optional
include_headers bool Include headers in the response. The response format will be ResponseRaw. Optional
options.debug_exclude_headers array Exclude headers from debugging information to keep secret keys a secret. An array of header keys (example: Content-Type). Optional
stringify_large_ints bool If JSON response, and response has ints over the JS max int, will traverse entire payload and cast long ints to strings. Defaults to false. Optional

Request response:

  • ResponseRaw if options.include_headers is true,
  • object if options.json is true,
  • string if options.json is false.

Request response with headers when options.include_headers is true.

Parameters

Name Type Description
body Response Response from the server
headers object Headers to from response.
request_method string The method used to create the response: GET, POST, etc.
request_url string The URL used to create the response.