chore: remove legacy REST API version shim for servers pre-2.4
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
Research direction
Review server.py, especially _PRODUCT_TO_REST_VERSION, _get_legacy_version(), and _determine_highest_version(). First resolve whether the minimum supported version should be 2.4 or 3.0, then remove the legacy compatibility paths and update the minimum and default versions so pre-2.4 servers are no longer supported.
Written by the indexing model from the issue text.
Description
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_VERSIONdict_get_legacy_version()method- The two
exceptbranches in_determine_highest_version()that call_get_legacy_version() - Raise
minimum_supported_server_versionto"2.4"(or"3.0"— see below) - Update
default_server_versionto 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.
- Dominant language
- Python
- Stars
- 716
- Forks
- 446
- Avg merge
- 8d 8h
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tableau/server-client-python
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
tableau/server-client-python#1865 ·
-
in-progress
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
tableau/server-client-python#1829 · 1 comment ·
-
enhancement gap needs investigation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#1322 · 1 comment ·
-
[Type2] Allow Incremental Refresh type schedules to be added via `server.schedules.add_to_schedule` Openhelp wanted Server-Side Enhancement ui-exists
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#1101 · 3 comments ·
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/server-client-python#783 · 5 comments ·
All issues in tableau/server-client-python
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
zostera/django-bootstrap4#894 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
use-agent-os/agent-os#3276 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NousResearch/hermes-agent#117848 ·