Skip to content

feat: Add administrative tools for user, group, content, and site management #305

Open
allisonbierschenk wants to merge 3 commits into
tableau:mainfrom
allisonbierschenk:contrib-admin-tools
Open

feat: Add administrative tools for user, group, content, and site management #305
allisonbierschenk wants to merge 3 commits into
tableau:mainfrom
allisonbierschenk:contrib-admin-tools

Conversation

@allisonbierschenk
Copy link
Copy Markdown

@allisonbierschenk allisonbierschenk commented Apr 14, 2026

IMPORTANT: Please do not create a Pull Request without creating an issue first.

Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of
the pull request.

Pull Request Template

Description

This PR adds 8 new administrative tools for managing Tableau users, groups, content, permissions, and site operations. All tools are
organized under src/tools/admin/ with corresponding API methods, tests, and documentation.

New Tools

User & Group Administration:

  • admin-users - User lifecycle management (create, update, delete, query), CSV import/export, and OAuth credential management
  • admin-groups - Group and group set management with membership operations

Content Management:

  • content-projects - Create, update, delete, and query projects with filtering and pagination
  • content-workbooks - Query, update, delete, and download workbooks for site or specific users
  • content-views - Query views and export data in multiple formats (CSV, image, PDF, Excel)

Permissions & Operations:

  • content-permissions - Manage granular and default permissions for datasources, projects, views, workbooks, and other content
    types
  • site-jobs - Query and cancel background jobs on the site
  • tableau-operations - Advanced operations including job conflict detection, effective permissions analysis, stale content
    reports, lineage impact analysis, and workbook archiving

New Tool Groups:

Adds three tool groups for the new tools:

  • admin - admin-users, admin-groups
  • content - content-projects, content-workbooks, content-views
  • operations - content-permissions, site-jobs, tableau-operations

Motivation and Context

Tableau administrators need programmatic access to administrative functions beyond data querying and content exploration. These
tools enable:

  • User and group lifecycle management
  • Project and content governance
  • Permission management across content types
  • Operational monitoring and job management

Customers like Walmart, IAS (Integrated Ad Science), & Amplitude have expressed a need for this.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

How Has This Been Tested?

  • Manually tested

Unit Tests:

  • 1009 tests passing across 68 test files
  • 35 new unit tests for admin tools with mocked REST API calls
  • Tests cover tool initialization, all operations, parameter passing, and error conditions
  • Mock patterns follow existing tool test structure (workbooks, views, datasources)

Admin-Users Tool (16 tests):

  • All 10 operations tested: add-user, remove-user, update-user, query-user, get-users, get-groups-for-user, CSV import/export, OAuth
    credentials
  • Parameter validation, pagination, filtering, sorting
  • Body content and optional parameters

Admin-Groups Tool (9 tests):

  • Group CRUD operations, membership management, group sets
  • Pagination and filtering

Other Admin Tools (10 tests):

  • Basic operation testing for content-projects, content-workbooks, content-views, site-jobs, content-permissions, tableau-operations

Integration Testing:

  • ⚠️ NOT tested against live Tableau instance (requires admin OAuth scopes and configured environment)
  • Tool registration, schema validation, and factory patterns verified
  • All code compiles with TypeScript, no linting errors

Backward Compatibility:

  • All 974 existing tests continue to pass
  • All 17 original tools intact and working

Related Issues

NA

Checklist

  • I have updated the version in the package.json file by using npm run version. For example,
    use npm run version:patch for a patch version bump.
  • I have made any necessary changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have documented any breaking changes in the PR description. For example, renaming a config
    environment variable or changing its default value.

Contributor Agreement

By submitting this pull request, I confirm that:

…port

Reorganizes all MCP admin tools under src/tools/admin/ structure:
- admin/users/: User lifecycle, OAuth credentials, CSV bulk operations
- admin/groups/: Group/group set management, membership operations
- admin/content/: Projects, workbooks, views operations
- admin/jobs/: Background job monitoring
- admin/operations/: Job conflict detection, workbook archiving
- admin/permissions/: Content permission management

Adds three tool groups (admin, content, operations) that work with
INCLUDE_TOOLS and EXCLUDE_TOOLS environment variables for granular
access control. Tools can be filtered by individual name or group name.
… Projects, workbooks, views operations

jobs/: Background job monitoring
operations/: Job conflict detection, workbook archiving
permissions/: Content permission management

Adds tool groups that work with INCLUDE_TOOLS and EXCLUDE_TOOLS environment variables for granular access control. Tools can be filtered by individual name or group name.

New tools support comprehensive site administration and content management operations through organized, scoped interfaces.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant