RedPlanetHQ / RedPlanetHQ/core
New Integration: Tableau
Nobody has claimed this yet.
- 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 integrationintegrations/google-sheets/- Similar data/visualization platformintegrations/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/signinto get auth token - Auth token used in
X-Tableau-Authheader 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 workbooksGET /api/{version}/sites/{site-id}/workbooks/{workbook-id}- Get workbook detailsGET /api/{version}/sites/{site-id}/workbooks/{workbook-id}/views- Get workbook viewsPOST /api/{version}/sites/{site-id}/workbooks- Publish workbook
- Views (Dashboards)
GET /api/{version}/sites/{site-id}/views- List viewsGET /api/{version}/sites/{site-id}/views/{view-id}/image- Get view as imageGET /api/{version}/sites/{site-id}/views/{view-id}/data- Get view data
- Data Sources
GET /api/{version}/sites/{site-id}/datasources- List data sourcesGET /api/{version}/sites/{site-id}/datasources/{datasource-id}- Get data source detailsPOST /api/{version}/sites/{site-id}/datasources- Publish data source
- Users & Groups
GET /api/{version}/sites/{site-id}/users- List site usersGET /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 flowsPOST /api/{version}/sites/{site-id}/flows/{flow-id}/run- Run a flow
Events to Track
- Workbook Activity - Workbooks published, updated, downloaded, deleted
- View/Dashboard Access - Views accessed, images exported, data downloaded
- Data Source Updates - Data sources published, refreshed, connection changes
- User Activity - User logins, permission changes, group membership changes
- Flow Executions - Prep flows triggered, completed, or failed
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement PAT/JWT authentication flow in
account-create.ts - Create API utilities in
utils.tswith session management - Implement sync logic in
schedule.tsfor 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
- Tableau REST API Documentation
- API Reference
- What's New in REST API
- OpenAPI Endpoints
- REST API Fundamentals
- API Versioning Guide
Labels
enhancement, integration, new-feature
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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