Fixed-Schema Connectors
  • 2 Minutes to read
  • Dark
    Light

Fixed-Schema Connectors

  • Dark
    Light

Article Summary

Fixed-schema connectors provide a set of dataset templates which typically represents an definition of a call to API endpoint and transformation pipeline expression. The examples of such connectors is Shopify, ExactOnline, Xero, Stripe or Semrush.

Prerequisites

Implementation

Fixed-schema connectors require the following workflow:

  1. Call the /connectors/{connectorId}/actions/authorization endpoint for obtain the list of active authorizers. If none is available create a new one. ID of the authorizer is passed as oAuthId parameter in the next stages.
  2. Call the /connectors/{connectorId}/templates endpoint to acquire the list of available templates. Use ID of the template to obtain template details by calling /connectors/{connectorId}/templates/{id}. Each template consist of request object with url, header, body, method, transformation and emitter attributes. You will need those in the following steps.
  3. Check API endpoint documentation for availability of /actions/* endpoints. This indicate that there are additional parameters that needs to be supplied.
  4. Check attributes in the request object (i.e. url, header, transformation) if containing placeholders with double curly brackets (e.g. {{subdomain}}). If, so this indicates that such param need to be supplied in parameters attribute.
  5. As an example, if request.url has the value https://{{subdomain}}.shopify.com you will need to pass the attribute subdomain with your value as part of the parameters object.
  6. Send the full payload to the /preview endpoint to test the functionality of the payload. If successful, you can create the source by calling /create-source endpoint.

Your browser does not support Svg.click here to download

Payload schema

Use this schema when calling /preview and /create-source endpoints for testing the payload and creating the source. The payload structure is common for all fixed-schema connectors.

{
    "connectorId":"CONNECTOR_ID",
    "templateId":"TEMPLATE_ID",
    "label":"My Test",
    "type":"CONNECTOR_ID",
    "oAuthId":"1234",
    "request": {
        "url":"",
        "header":[],
        "method":"GET",
        "body":"",
        "transformation":"[]",
        "emitter":"[]"
    },
    "parameters":{},
    "syncFrequency":"custom",
    "hour":"3",
    "minute":"25",
    "dayOfWeek":"*",
    "dayOfMonth":"*",
    "month":"*",
    "timezone":"UTC",
    "strategy":"clean"
}
ParamTypeDescription
connectorIdSTRINGUse same identifier as in URL.
templateIdSTRINGUse the template ID used for obtaining the request object.
labelSTRINGUse any value for the description of the newly created source.
typeSTRINGUse the same value as for connectorId.
oAuthIdSTRINGID of the authorizer to be used. Call /authorization endpoint to obtain the list of authorizers.
requestOBJECTObject containing of url, header, method, body, transformation and emitter attributes. Obtain it by calling /connectors/{connectorId}/templates/{id} method.
request.urlSTRINGURL of an api endpoint.
request.headerARRAYHTTP headers of the API call. Authozation headers are automatically added.
request.methodSTRINGHTTP method of the API call.
request.bodySTRINGHTTP body of the API call.
request.transformationSTRINGTransformation pipeline expression of the call. Read more in dedicated Transformation pipeline article.
request.emitterSTRINGEmitter expression of the call. Read more in dedicated Transformation pipeline article.
parametersOBJECTObject of keys and values to replace placeholders in request object. Placeholders are strings in double brackets such as {{url}}. To do the replacement for this example, provide value with key url.
strategyENUMDefault is clean. You can use incremental if you want to incrementally storing data in Dataddo SmartCache.
timezoneSTRINGTimezone name (e.g. Europe/London). Full list available in timezone list.
syncFrequencySTRINGUse custom as value.
minuteSTRINGMinute (0 - 59). Compatible with Cron expression.
hourSTRINGHour (0 - 23). Compatible with Cron expression.
dayOfWeekSTRINGDay of the week (0 - 6) (Sunday to Saturday). Compatible with Cron expression.
dayOfMonthSTRINGDay of the month (1 - 31). Compatible with Cron expression.
monthSTRINGMonth in year (1 - 12). Compatible with Cron expression.

Was this article helpful?