360 Secure SkillHub
360 安全技能中心

connector-dev

面向 Domo Connector Dev Studio,帮助编写 authentication.js 和 dataProcessing.js,覆盖凭据校验、分页循环、HTTP 状态码检查、magicParseJSON、错误处理、列一致性与 README 文档。

stahura
热度 0.00
最近更新 2026-10-19 07:48:11
分类:开发依赖:纯提示词应用场景:代码生成 / API 集成 / 调试排错

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add stahura/domo-ai-vibe-rules/connector-dev
Metadata
name
connector-dev
description
**Custom Domo connector authorship** — invoke when someone is writing the JavaScript code that defines a custom Domo connector. Primary signals: questions about authentication.js, dataProcessing.js, or Domo's connector APIs (datagrid, httprequest, auth, metadata). Covers all connector coding topics: auth credential validation, API pagination loops, writeback connectors, column consistency, connector README docs. The user is *building* a connector in Connector Dev Studio, not using a pre-built one. Skip for: pre-built connectors (Salesforce, Postgres, Snowflake), Python connector, Domo App Platform cards/apps, Workflows, Federated Connectors.

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 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.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