Skip to content

Releases: tableau/tableau-migration-sdk

release/5.2.0

23 May 17:22
00a9995
Compare
Choose a tag to compare

What's Changed

New Features

  • Enable ability to not overwrite existing users in group when migrating
  • Use Site Info for Subscription Capability Check

Fixes

  • Fixed subscription Python wrapper not exposing some properties (Issue #62)
  • Fixed inconsistent directory casing in Python example application
  • Work-around for the breaking API change in Tableau Cloud removing the CreateRefreshMetrics workbook capability.

Documentation

  • Added documentation for the following config
    • Network.WorkbookContentLoggingEnabled key
    • Preflight section

Other Changes

  • Package dependency updates
  • Mac+Rider compatibility update
  • Issues listed on the Github repo

Known Issues

  • Unlike other content types, Custom Views cannot be filtered based on the Content Location of the base view.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.

Full Changelog: release/5.1.1...release/5.2.0

release/5.1.1

10 Apr 23:14
f96c84e
Compare
Choose a tag to compare

What's Changed

New Features

  • Migration of Embedded Credentials
  • Migration of Subscriptions
  • .NET 9 Support
  • More readable manifests
  • Constants for New Extract Refresh Permission Capability
  • Configuration to not log workbook content
  • Support for Migrating Users to Sites with Multiple IdP Configurations
  • Logging to hooks

Fixes

  • Made exception deserialization more robust
  • Admin not found error
  • Improve Project Mapping Error Message
  • Default Project Permissions: Add Virtual Connections
  • Fixed TableauInstanceTypeNotSupportedException Deserialization
  • Subscriptions: Create subscriptions XML de/serialization bug
  • Fixed XML Parsing Errors in Workbooks Downloaded from Linux Tableau Servers
  • View Mapping in Subscriptions
  • Fixed System Project Migration When Assigned to Non-System Ownership
  • Fixed embedded cred preflight check.
  • Restored upsert logic on users and added manifest error when users cannot be licensed
  • Removed exclusive auth type and IDP check and updated test

Documentation

  • Embedded Credentials: Add troubleshooting section for missed pre-migration steps
  • Troubleshooting section for legacy Guest users.
  • Add print_result module to Python documentation
  • Change Python Docs Member order
  • Fix print_result module in the Python Example app and use similar one in test app
  • Added XML Transformer Sample

Other Changes

  • OAuth Saved Credentials Simulation Testing
  • Docs: Manage OAuth Embedded Creds troubleshooting sections
  • Migration Analyzer
  • Manifest Analyser command line args
  • Manifest Analyzer quality of life improvements
  • Manifest Analyzer output HTML page
  • Fixes in Manifest Analyzer which broke the build
  • Manifest Analyzer: Add top level manifest errors
  • Refactor: Simplify and rename Http Handlers, NetworkLogger
  • Subscriptions: Python Wrappers
  • Docs: Improve config docs
  • Docs: Migration SDK Terminology and config docs refactor (customer feedback)
  • Improved logging and moved CleanServer code
  • Update ManifestAnalyzer
  • Added generic skip id filter
  • Hackathon: Manifest Explorer
  • Unlicensed groups can't have the license role in the request.
  • Refactor: Add common interfaces and class for capability managers
  • Subscriptions: Use common migration capability manager interfaces
  • Embedded Credentials: Use common migration capability manager interfaces
  • Custom Views: Stop using exp endpoint and update owner id when a custom view already exists at the destination
  • Added subscription transformer to DI
  • Consistent User Response Auth Type Handling

Known Issues

  • Unlike other content types, Custom Views cannot be filtered based on the Content Location of the base view.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.

Full Changelog: tableau/migration-sdk@release/5.0.1...release/5.1.1

V5.0.1

31 Jan 01:37
a103961
Compare
Choose a tag to compare

What's Changed

Other changes

  • Added a workaround to prevent migration errors when users already exist at the cloud destination.
  • Updated copyright year to 2025

v5.0.0

30 Oct 23:31
43205e9
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Removed Python 3.8 support
  • Removing net6.0 and updated python to use net8.0

New Features

  • Basic Progress Tracking: Added totals to Manifest partitions. You can now write BatchMigrationCompleted hooks to track the progress of a migrated batch of items.
  • Bulk Permission migration: Permissions now use the new bulk update API methods. This functionality replaces the previous delete and create mechanism. The change results in significantly fewer REST API calls and hence improved performance.

Fixes

  • Fixed migration error when Extract Refresh tasks in Personal Spaces were found.
  • Fixed Manifest Entry status when populated from a previous migration.
  • Server to Cloud schedule improvements.

Documentation

  • Removed Most Python.NET Interop Usage in Python Example Application

Other Changes

  • Test app and logging updates
  • Add correlation id to all http request/responses

Known Issues

  • Unlike other content types, Custom Views cannot be filtered based on the Content Location of the base view.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.
  • Progress tracking in Python is limited out of the box compared to the one in C#.

Full Changelog: tableau/migration-sdk@release/4.3.0...release/5.0.0

v4.3.1

13 Sep 15:09
587b9dc
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fixed migration error when Extract Refresh Tasks in Personal Spaces were found.
  • Fixed Extract Refresh listing when tasks of unknown content type exist

Known Issues

  • Unlike other content types, Custom Views cannot be filtered based on the Content Location of the base view.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.

v4.3.0

03 Sep 20:08
ca234f6
Compare
Choose a tag to compare

What's Changed

New Features

  • Migration of Custom Views ⭐
  • Earlier configuration validation so the failures are earlier and faster.
  • User Agent string changes to put distinguishing info in the comment field of the user agent instead of a different product field using suffixes (Mozilla docs). The User Agent Comment is configurable.

Fixes

  • Fix to the Workbook View publish functionality involving views. This fixes the XML CommitWorkbookPublishRequest so views are properly published.
  • Some Python Example App fixes.
  • Some Python code snippet fixes.
  • Fix to encrypt extracts if the server requires it.
  • Fix HTML Error Responses not being Included in Exception.
  • Minor fix to Python requirements.txt.

Documentation

  • Example 'Getting Started' code samples are now also in the Migration SDK intro page.
  • Information on how the Migration SDK is versioned

Known Issues

  • Unlike other content types, Custom Views cannot be filtered based on the Content Location of the base view.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.

v4.2.0

16 Jul 18:53
7fdba58
Compare
Choose a tag to compare

What's Changed

New Features

  • Support extract-value boolean flag for Datasources
  • Manifest can now be serialized and deserialized

Documentation

  • Python Environment Config Doc improvements

Known Issues

  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.
  • Some sample hooks in documentation only include C# sample code.

v4.1.0

28 Jun 19:17
a1d6836
Compare
Choose a tag to compare

What's Changed

New Features

  • Migration of Schedules for Extract Refresh Tasks

Fixes

  • Fixed bug in sample
  • Fix release docs and license

Documentation

  • Normalize Cancellation Token Documentation
  • Docs: Navigation, CSS and images

Other

  • Update 3rd party package and library versions

Known Issues

  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.
  • Some sample hooks in documentation only include C# sample code.

v4.0.0

05 Jun 19:48
353414e
Compare
Choose a tag to compare

What's Changed

  • Python hooks received a major update in version 4 of the Tableau Migration SDK.
    • This change brings full autocomplete support in your favorite Python IDE!
    • We have also added many Python hook samples to our documentation and reorganized to make it easier to use!
  • In version 3, all Python hooks were thin wrappers around C# code, and the actual object manipulated by the hook was a C# object. In version 4 and beyond, everything is still a wrapper around C#, but the class itself and the context object passed to be manipulated are now fully in Python with no more C# required.
  • The combination of making hook writing in Python completely pythonic and updated documentation with samples means that it has never been easier to write your own custom hooks in Python! See the Documentation section for more details
  • These Python updates are BREAKING changes from previous versions.

Breaking Changes

  • Python Hook Wrappers

New Features

  • Python Hook Wrappers

Fixes

  • Adjust content finder to cache the full list just one time
  • Fixed Groups flaky tests
  • Fixed for left nav menu of the Python Wrapper section
  • Fixed incorrect license in packages

Documentation

  • Python Hook Wrapper Samples

Known Issues

  • Hook context objects do not have Python wrapper objects. Context objects should be access through Python.NET interop.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.
  • Some sample hooks in documentation only include C# sample code.

v3.0.1

14 May 19:21
197e2cd
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Removing .net 7 support

Fixes

  • Fix IsZipFile null tests
  • Fix the stream is too short test

Documentation

  • Fixed an error in the Python example application
  • Docs: Navigation improvements

Other Changes

  • Publish Pypi artifact from public dry-run pipeline

Known Issues

  • Hook context objects do not have Python wrapper objects. Context objects should be access through Python.NET interop.
  • Python wrapper objects cannot be accessed through dependency injection. .NET object can be injected and python wrappers built from them.
  • Some sample hooks in documentation only include C# sample code.