360 Secure SkillHub
360 安全技能中心

data-api

面向 Domo App Platform 的数据访问规则,优先用 @domoinc/query 读取数据集,给出查询与 SQL 例外示例、manifest datasetsMapping 配置及本地开发注意事项;详细查询能力交由 dataset-query。

stahura
热度 0.00
最近更新 2026-10-19 07:48:12
分类:开发依赖:代码执行 / 读写文件 / 第三方 API应用场景:API 集成 / 数据处理 / 代码生成

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add stahura/domo-ai-vibe-rules/data-api
Metadata
name
data-api
description
High-level entry skill for Domo data access. Routes detailed query work to dataset-query.

Rule: Domo App Platform Data Access (Toolkit-First)

This rule is toolkit/query-first. Use @domoinc/query for dataset reads in apps.

Canonical Query Approach

1) Use @domoinc/query for dataset queries

yarn add @domoinc/query
import Query from '@domoinc/query';

const salesByRegion = await new Query()
  .select(['region', 'Sales_Amount'])
  .groupBy('region', { Sales_Amount: 'sum' })
  .orderBy('Sales_Amount', 'descending')
  .fetch('sales');

2) Keep SQL as exception-only

If you use SQL (SqlClient), remember it does not automatically respect page filters in dashboards.

import { SqlClient } from '@domoinc/toolkit';

const sqlClient = new SqlClient();
const result = await sqlClient.get(
  'sales',
  'SELECT region, SUM(Sales_Amount) AS total FROM sales GROUP BY region'
);
const rows = result.body.rows;

Required Manifest Wiring

Every dataset still must be declared in manifest.json under datasetsMapping.

{
  "datasetsMapping": [
    { "alias": "sales", "dataSetId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "fields": [] }
  ]
}

Critical gotcha:

  • fields must exist (can be []) to avoid manifest parsing errors.

Local Development

  • Use @domoinc/ryuu-proxy for local API routing.
  • Authenticate with domo login.

Checklist

  • datasetsMapping aliases configured and valid
  • Queries implemented with Query (not raw /data/v1 by default)
  • Aggregations use actual dataset field names
  • .aggregate() not used