Summary
Remove the compatibility shim that supports connecting to Tableau Server versions that predate REST API 2.4 (i.e., Tableau Server 10.0 and earlier, released before 2017).
Background
server.py currently has:
_PRODUCT_TO_REST_VERSION = {
"10.0": "2.3",
"9.3": "2.2",
...
}
minimum_supported_server_version = "2.3"
default_server_version = "2.4" # first version that dropped the legacy auth endpoint
The _get_legacy_version() method hits /auth?format=xml — a pre-2.4 endpoint — because servers that old don't support the standard /serverinfo REST API endpoint. _determine_highest_version() falls back to this when serverInfo returns a 404.
What to remove
_PRODUCT_TO_REST_VERSION dict
_get_legacy_version() method
- The two
except branches in _determine_highest_version() that call _get_legacy_version()
- Raise
minimum_supported_server_version to "2.4" (or "3.0" — see below)
- Update
default_server_version to match
Impact on users
None, unless they are connecting to Tableau Server 10.0 (released 2016) or earlier. Tableau Server 10.x reached end of life in 2019. All currently-supported Tableau Server versions use REST API 3.x.
Note: the @api(version="2.x") decorators on endpoint methods are minimum version requirements, not upper bounds — they are unaffected by this change and no endpoint methods are removed.
Decision needed
Should minimum_supported_server_version be raised to "2.4" (first version with /serverinfo) or "3.0" (Tableau Server 2018.1, 6+ years old)? The code change is identical either way; the difference is only the documented policy.
Summary
Remove the compatibility shim that supports connecting to Tableau Server versions that predate REST API 2.4 (i.e., Tableau Server 10.0 and earlier, released before 2017).
Background
server.pycurrently has:The
_get_legacy_version()method hits/auth?format=xml— a pre-2.4 endpoint — because servers that old don't support the standard/serverinfoREST API endpoint._determine_highest_version()falls back to this whenserverInforeturns a 404.What to remove
_PRODUCT_TO_REST_VERSIONdict_get_legacy_version()methodexceptbranches in_determine_highest_version()that call_get_legacy_version()minimum_supported_server_versionto"2.4"(or"3.0"— see below)default_server_versionto matchImpact on users
None, unless they are connecting to Tableau Server 10.0 (released 2016) or earlier. Tableau Server 10.x reached end of life in 2019. All currently-supported Tableau Server versions use REST API 3.x.
Note: the
@api(version="2.x")decorators on endpoint methods are minimum version requirements, not upper bounds — they are unaffected by this change and no endpoint methods are removed.Decision needed
Should
minimum_supported_server_versionbe raised to"2.4"(first version with/serverinfo) or"3.0"(Tableau Server 2018.1, 6+ years old)? The code change is identical either way; the difference is only the documented policy.