enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
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