RedPlanetHQ/core

New Integration: Tableau

Open

#535 opened on Feb 24, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)TypeScript (184 forks)auto 404
enhancementgood first issueintegrationnew-featurenew-integration

Repository metrics

Stars
 (1,930 stars)
PR merge metrics
 (PR metrics pending)

Description

Description

Add Tableau integration to sync workbooks, views, data sources, dashboard activity, and user analytics into CORE.

Reference Implementations

Existing Integrations (use as templates)

  • integrations/github-analytics/ - Similar analytics-focused integration
  • integrations/google-sheets/ - Similar data/visualization platform
  • integrations/slack/ - For reference

Required Files Structure

integrations/tableau/
├── src/
│   ├── index.ts          # Main entry, auth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Tableau REST API utilities
│   ├── account-create.ts # Auth setup (PAT or JWT)
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Tableau REST API Integration

Authentication Setup

  • Use Personal Access Token (PAT) authentication (recommended)
  • Alternative: JWT (JSON Web Token) for connected apps
  • Sign in via POST /api/{api-version}/auth/signin to get auth token
  • Auth token used in X-Tableau-Auth header for subsequent requests
  • Latest API version: 3.24+ (Tableau Cloud) / 3.27 (Server 2025.3)

Key Endpoints

  • Workbooks
    • GET /api/{version}/sites/{site-id}/workbooks - List workbooks
    • GET /api/{version}/sites/{site-id}/workbooks/{workbook-id} - Get workbook details
    • GET /api/{version}/sites/{site-id}/workbooks/{workbook-id}/views - Get workbook views
    • POST /api/{version}/sites/{site-id}/workbooks - Publish workbook
  • Views (Dashboards)
    • GET /api/{version}/sites/{site-id}/views - List views
    • GET /api/{version}/sites/{site-id}/views/{view-id}/image - Get view as image
    • GET /api/{version}/sites/{site-id}/views/{view-id}/data - Get view data
  • Data Sources
    • GET /api/{version}/sites/{site-id}/datasources - List data sources
    • GET /api/{version}/sites/{site-id}/datasources/{datasource-id} - Get data source details
    • POST /api/{version}/sites/{site-id}/datasources - Publish data source
  • Users & Groups
    • GET /api/{version}/sites/{site-id}/users - List site users
    • GET /api/{version}/sites/{site-id}/groups - List groups
  • Projects
    • GET /api/{version}/sites/{site-id}/projects - List projects
  • Flows (Prep Conductor)
    • GET /api/{version}/sites/{site-id}/flows - List flows
    • POST /api/{version}/sites/{site-id}/flows/{flow-id}/run - Run a flow

Events to Track

  1. Workbook Activity - Workbooks published, updated, downloaded, deleted
  2. View/Dashboard Access - Views accessed, images exported, data downloaded
  3. Data Source Updates - Data sources published, refreshed, connection changes
  4. User Activity - User logins, permission changes, group membership changes
  5. Flow Executions - Prep flows triggered, completed, or failed

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement PAT/JWT authentication flow in account-create.ts
  • Create API utilities in utils.ts with session management
  • Implement sync logic in schedule.ts for workbooks, views, and data sources
  • Convert Tableau events to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Tableau REST API requires signing in first to get an auth token, which expires after a configured period
  • API version is tied to Tableau Server/Cloud version (3.24 for Cloud Dec 2025, 3.27 for Server 2025.3)
  • OpenAPI endpoints are available for code generation
  • Supports both Tableau Server (on-premises) and Tableau Cloud
  • Multiple authentication types supported since Jan 2025
  • User credentials management endpoints added recently
  • Consider using the OpenAPI spec for client generation

Resources

Labels

enhancement, integration, new-feature

Contributor guide