FlowRuns endpoint does not return Pagination XML
Describe the bug A call to Get Flow Runs does not return pagination XML.
Versions Details of your environment, including:
- Tableau Server version (or note if using Tableau Online): 2022.3.1
- Python version: 3.12.4
- TSC library version: 0.32
To Reproduce Steps to reproduce the behavior. Please include a code snippet where possible.
import tableauserverclient as TSC
server = TSC.Server("https://url", True)
# auth
flow = server.flows.filter(name="some_flow")[0]
runs = server.flows.filter(flow_id=flow.id, page_size=10)[:]
Results
File "\.venv\Lib\site-packages\tableauserverclient\server\query.py", line 70, in __getitem__
page_range = range((page - 1) * size, page * size)
~~~~~^~~
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
NOTE: Be careful not to post user names, passwords, auth tokens or any other private or sensitive information.
Dug into it more and server side, the "GET /api/api-version/sites/site-id/flows/runs" does not return a pagination element in the XML. I think being able to iterate over run history would be useful. Unclear if FlowRuns lacking pagination is intentional. If so, I can update TSC to reflect that.
I've pointed this out to the team that owns the API, but if they fix it it won't be available immediately so updating tsc is worth doing anyway.
#1460 tweaks the QuerySet class in such a way that it should continue to function even if the server doesn't return pagination information. Adding it in server side would still be ideal to improve clarity and return information about what is truly available server-side.
closed this bug with release https://github.com/tableau/server-client-python/releases/tag/v0.35 We will update the core REST API docs to mention the limitation on the API results.