connector-dev
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 APIdataProcessing.js— Fetches and processes data from the external APIREADME.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()orauth.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...whileloop; use the next-page link or cursor from the response as the loop condition - Use
metadata.reportto branch between report types; usemetadata.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
- Input sanitization — Always sanitize inputs (API keys, user params) to prevent injection attacks
- Consistent columns — Every row must have the same columns; use
nullfor missing values - Domo library — Use Domo-provided methods (
httprequest,datagrid,auth,metadata); see reference docs - Clear error messages —
auth.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.jsvalidates input format and tests credentials -
authentication.jscallsauth.authenticationSuccess()orauth.authenticationFailed()appropriately -
dataProcessing.jshandles pagination correctly -
dataProcessing.jschecks HTTP status codes before parsing JSON -
dataProcessing.jsusesdatagrid.magicParseJSON()for JSON arrays - All inputs are sanitized
- Error messages are clear and actionable
-
README.mddocuments all reports/parameters - All rows have consistent column counts
More from stahura/domo-ai-vibe-rules
domo-js
Use ryuu.js (domo.js) APIs for env, events, navigation, and data calls.
57appdb
Toolkit-first AppDB document CRUD, query operators, and collection wiring.
56html-deck
Build a professional HTML slide deck from source content and convert it to a pixel-perfect PDF. Covers slide architecture, layout patterns, print-safe CSS, Puppeteer PDF conversion, and quality verification. Use when creating presentation decks, converting documents to slide format, or generating PDF decks from HTML.
56migrate-lovable
Convert SSR-heavy Lovable/v0 apps into client-only Domo apps.
56data-api
High-level entry skill for Domo data access. Routes detailed query work to dataset-query.
55jsapi-filters
Apply runtime filters to embedded Domo dashboards/cards from the host page via the JS API (MessagePort). Covers dynamic filtering, drill events, filter change listeners, iframe resize, pfilter URL params, overrideFilters, and App Studio appData. Use for any client-side Domo embed interaction. Not for server-side programmatic filters (use programmatic-filters).
55