connector-dev

Installation
SKILL.md

Scope

This skill is for Domo Custom Connector IDE projects — not Domo App Platform custom app/card builds. Custom connectors run server-side after being published via the Connector Dev Studio.


File Structure

  • authentication.js — Validates credentials and authenticates with the external API
  • dataProcessing.js — Fetches and processes data from the external API
  • README.md — Documents available reports and parameters

Key Patterns

Authentication

  • Sanitize credential inputs (regex validate API keys/tokens) before use
  • Set required headers, then make a lightweight test request to verify credentials
  • Call auth.authenticationSuccess() or auth.authenticationFailed('reason') — never leave authentication ambiguous

Data Processing

  • Check httprequest.getStatusCode() before parsing the response body
  • Use datagrid.magicParseJSON(jsonArray) for JSON array responses — avoids manual column mapping
  • Handle pagination in a do...while loop; use the next-page link or cursor from the response as the loop condition
  • Use metadata.report to branch between report types; use metadata.account.* for credentials

Error Handling

  • Catch HTTP errors by status code; try to parse the error body for a human-readable message
  • Fall back to the raw response substring if the error body isn't parseable JSON
  • Re-throw errors so the connector runtime surfaces them correctly

Rules

  1. Input sanitization — Always sanitize inputs (API keys, user params) to prevent injection attacks
  2. Consistent columns — Every row must have the same columns; use null for missing values
  3. Domo library — Use Domo-provided methods (httprequest, datagrid, auth, metadata); see reference docs
  4. Clear error messagesauth.authenticationFailed() messages should tell the user what to fix

Code Examples

If you need full boilerplate for authentication, data processing, or error handling patterns, read references/examples.md.


Checklist

  • authentication.js validates input format and tests credentials
  • authentication.js calls auth.authenticationSuccess() or auth.authenticationFailed() appropriately
  • dataProcessing.js handles pagination correctly
  • dataProcessing.js checks HTTP status codes before parsing JSON
  • dataProcessing.js uses datagrid.magicParseJSON() for JSON arrays
  • All inputs are sanitized
  • Error messages are clear and actionable
  • README.md documents all reports/parameters
  • All rows have consistent column counts
Related skills
Installs
53
GitHub Stars
15
First Seen
Mar 30, 2026