enhancementgood first issueintegrationnew-featurenew-integration
Métriques du dépôt
- Stars
- (1 930 étoiles)
- Métriques de merge PR
- (Métriques PR en attente)
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