TableauSharp 0.1.0-alpha.1

This is a prerelease version of TableauSharp.
dotnet add package TableauSharp --version 0.1.0-alpha.1
                    
NuGet\Install-Package TableauSharp -Version 0.1.0-alpha.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TableauSharp" Version="0.1.0-alpha.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TableauSharp" Version="0.1.0-alpha.1" />
                    
Directory.Packages.props
<PackageReference Include="TableauSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TableauSharp --version 0.1.0-alpha.1
                    
#r "nuget: TableauSharp, 0.1.0-alpha.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TableauSharp@0.1.0-alpha.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TableauSharp&version=0.1.0-alpha.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=TableauSharp&version=0.1.0-alpha.1&prerelease
                    
Install as a Cake Tool

TableauSharp

TableauSharp is a .NET SDK that provides a clean, developer-friendly abstraction over Tableau’s REST API. It simplifies authentication, user/group management, workbooks, permissions, and embedding for .NET developers.


Features

  • Authentication (Personal Access Token or Username/Password)
  • User & Group Management (CRUD operations, role assignments)
  • Project Management (create, update, organize)
  • Workbooks & Views (fetch, export, publish)
  • Data Sources (list, refresh, permissions)
  • Permissions API (assign/revoke capabilities, sync with external systems)
  • Embedding Support (trusted tickets, URL helpers)
  • Common Models & Utilities (strongly typed POCOs, pagination, error handling)

Installation

Install prerelease packages from NuGet as modules reach preview quality:

dotnet add package TableauSharp --prerelease

For now, clone the repository:

git clone https://github.com/teesofttech/TableauSharp.git

Maintainers can publish prerelease packages from GitHub Actions. See Release Process.


Configuration (appsettings.json)

Add your Tableau settings in appsettings.json:

{
  "TableauOptions": {
    "Server": "https://your-tableau-server",
    "Version": "3.23",
    "Site": "yoursite"
  },
  "TableauAuthOptions": {
    "SiteContentUrl": "yoursite",
    "PersonalAccessTokenName": "your-token-name",
    "PersonalAccessTokenSecret": "your-token-secret",
    "UsePAT": true
  }
}

Dependency Injection Setup

Register TableauSharp in Program.cs (or Startup.cs):

using TableauSharp.Common.Models;
using TableauSharp.Extensions;

var builder = WebApplication.CreateBuilder(args);

// Register Tableau services
builder.Services.AddTableauSharp(builder.Configuration);

var app = builder.Build();

Authentication Lifecycle

Call one of the sign-in methods before using site-scoped services:

var authToken = await authService.SignInWithPATAsync();
var workbooks = await workbookService.GetAllAsync();

Successful sign-in stores the Tableau auth token, site LUID, site content URL, user LUID, and expiration in the scoped Tableau session. Site-scoped REST requests use the signed-in site LUID returned by Tableau, not the friendly site content URL.

The built-in session is scoped for a single logical caller. Server applications that serve multiple Tableau users should create an appropriate DI scope per caller/request or manage user-specific sessions explicitly.


Quick Start

Fetch Workbooks

public class WorkbooksController : ControllerBase
{
    private readonly IWorkbookService _workbookService;

    public WorkbooksController(IWorkbookService workbookService)
    {
        _workbookService = workbookService;
    }

    [HttpGet("workbooks")]
    public async Task<IActionResult> GetWorkbooks()
    {
        var workbooks = await _workbookService.GetAllAsync();
        return Ok(workbooks);
    }
}

Project Structure

TableauSharp/
├── Auth/           # Authentication services
├── Users/          # User & Group management
├── Workbooks/      # Workbooks and Views
├── DataSources/    # Data sources
├── Projects/       # Project management
├── Permissions/    # Permissions management
├── Embedding/      # Trusted tickets and embedding
└── Common/         # Shared models, enums, utilities

Roadmap

v0.1.0 (Preview)

  • Authentication
  • Fetch workbooks & export views
  • Basic permissions support

v0.2.0 (Beta)

  • Full CRUD for users, groups, projects
  • Data source refresh
  • Permissions sync API

v1.0.0 (Stable)

  • Embedding support
  • Webhooks and Metadata API
  • CLI tooling
  • Comprehensive docs & samples

Contributing

Contributions are welcome! Please fork the repo and submit a pull request.


License

MIT License. See LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha.1 64 6/14/2026