Added

Data App Tile Refresh Endpoints

Refresh data app tile data on demand by executing their SQL queries through the existing run-sql pipeline. These endpoints enable dashboards to fetch fresh results for all tiles at once or for a specific tile, with bounded parallel execution and per-tile error isolation.

What's New

  • Bulk refresh: Execute all tile queries in a single request with concurrent execution (up to 5 tiles in parallel)
  • Single-tile refresh: Refresh one specific tile without re-running all queries
  • Per-tile results: Each tile returns its own status (success, error, or skipped), execution time, and query results
  • Static tile handling: Tiles with static data sources are automatically skipped (status skipped)
  • Configurable output: Control maxRows (default 1000, max 10000) and format (records or records-simple)

New Endpoints

  • POST /api/v1/accounts/{accountId}/data-products/{dataProductId}/data-apps/{dataAppId}/refresh
  • POST /api/v1/accounts/{accountId}/data-products/{dataProductId}/data-apps/{dataAppId}/tiles/{tileId}/refresh

Request Format

Both endpoints accept the same optional body:

{
  "maxRows": 1000,
  "format": "records-simple"
}

Response Format

All-tiles refresh

{
  "ok": true,
  "data": {
    "results": [
      {
        "tileId": "tile-1",
        "title": "Revenue by Region",
        "status": "success",
        "data": { "result": [...], "rowCount": 42, "columns": ["region", "revenue"] },
        "executionTimeMs": 234
      },
      {
        "tileId": "tile-2",
        "title": "Static Summary",
        "status": "skipped",
        "executionTimeMs": 0
      }
    ],
    "totalExecutionTimeMs": 512
  }
}

Single-tile refresh

{
  "ok": true,
  "data": {
    "tileId": "tile-1",
    "title": "Revenue by Region",
    "status": "success",
    "data": { "result": [...], "rowCount": 42 },
    "executionTimeMs": 234
  }
}

Getting Started

Use these endpoints to power dashboard refresh buttons or auto-refresh intervals. The bulk endpoint is ideal for initial dashboard load, while the single-tile endpoint supports targeted refreshes after filter changes.