RedPlanetHQ / RedPlanetHQ/core

New Integration: Tableau

Open
#535 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue integration new-feature new-integration
Dominant language
TypeScript
Stars
2k
Forks
194
Avg merge
12m
Merged PRs (30d)
2

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

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading integrations/github/src/index.ts and the integrations/github-analytics/, integrations/google-sheets/, and integrations/slack/ templates, then determine a bounded implementation scope for the required integrations/tableau/ files. Review the Tableau REST API references before implementing authentication, synchronization, and activity formatting; done requires the listed structure, documentation, integrations/README.md entry, and implementation tasks.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.