Skip to content

Commit 932f39a

Browse files
authored
Merge branch 'development' into jac/subscription-schedule-cloud-parity
2 parents 99bad08 + a5a8c48 commit 932f39a

39 files changed

Lines changed: 1773 additions & 329 deletions

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ prompted it.
1919
For users of the library or CLI: what changes in observable behavior?
2020
"None - refactor only" is a valid answer. If a public symbol, endpoint
2121
signature, exception type, or return value shape changes, call it out
22-
here and in the CHANGELOG so downstream code isn't surprised.
22+
here so downstream code isn't surprised.
2323
-->
2424

2525
## Test plan

‎.github/workflows/publish-pypi.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ jobs:
4747
uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2
4848
with:
4949
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
50-
repository_url: https://test.pypi.org/legacy/
51-
skip_existing: true
50+
repository-url: https://test.pypi.org/legacy/
51+
skip-existing: true
5252

5353
smoke-test-pypi:
5454
name: Smoke test from Test PyPI

‎.github/workflows/run-tests.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
os: [ubuntu-latest, macos-latest, windows-latest]
16-
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t']
16+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t', '3.15']
1717

1818
runs-on: ${{ matrix.os }}
1919

‎CHANGELOG.md‎

Lines changed: 1 addition & 291 deletions
Original file line numberDiff line numberDiff line change
@@ -1,291 +1 @@
1-
2-
## Unreleased
3-
4-
* Bumped the urllib3 floor to 2.6.3 to pick up the fix for CVE-2026-21441
5-
(GHSA-38jv-5279-wg99, 8.9 High): urllib3's streaming decompression
6-
safeguards were bypassed when HTTP redirects were followed. TSC's manual
7-
redirect walker (#1848) disables urllib3's built-in follower on new code
8-
paths, but downstream callers using urllib3 directly (and TSC endpoints
9-
that predate #1848) still relied on the built-in path, so the floor bump
10-
closes the gap for all callers. The existing `<3` upper bound is unchanged.
11-
* Added `Projects.get_by_path(path)` to look up a project by its slash-separated
12-
hierarchy path (e.g. `"Marketing/Q1 Reports"`). The walk is performed level by
13-
level using the REST API name filter, so a path with *n* components issues *n*
14-
requests. Returns the matching `ProjectItem` or `None` if no project is found.
15-
* Preserve HTTP method and body across 3xx redirects. Previously `requests`
16-
followed 301/302/303 by converting POST to GET and dropping the body, so
17-
endpoints like `users.add`, `workbooks.publish`, and any write hitting a
18-
server behind a redirect would 405. TSC now disables `requests`'s
19-
auto-redirect and walks the chain manually, up to `session.max_redirects`
20-
hops (default 30). Refuses HTTPS -> HTTP scheme downgrades and raises
21-
`RedirectError` with a clear message on missing `Location` headers or hop
22-
overflow. Fixes #1127 and #1828.
23-
* `UserItem.CSVImport.create_user_from_line` no longer
24-
lowercases the entire CSV line before parsing. Previously the whole line,
25-
including the username, display name, fullname, and email fields, was
26-
lowercased destructively (e.g. `JSmith` became `jsmith`). Case is now
27-
preserved for those fields; only the comparison-relevant fields (license,
28-
admin_level, publisher, auth_setting) are normalized internally for
29-
validation. Callers relying on the previous lowercased output -- e.g. dict
30-
lookups keyed on `user.name`, or assertions against lowercased values --
31-
need to update. This unblocks CSV imports for LDAP and other case-sensitive
32-
auth backends where mixed-case usernames must be preserved.
33-
* `UserItem.CSVImport._validate_attribute_value` and the too-many-columns
34-
branch of `_validate_import_line_or_throw` now raise `ValueError` instead
35-
of `AttributeError` for invalid CSV input. `AttributeError` was the wrong
36-
exception type for input validation and inconsistent with
37-
`create_user_from_line`. `validate_file_for_import` catches `Exception` so
38-
it is unaffected; direct callers who caught `AttributeError` specifically
39-
need to widen their handler.
40-
* Added `JobItem.status_notes` for the structured `<statusNotes><statusNote
41-
type=".." value=".." text=".."/></statusNotes>` block documented on the Query
42-
Job REST endpoint. Populated for UserImport and other multi-row jobs where
43-
individual rows have distinct outcomes; each entry is a dict with keys
44-
`type` / `value` / `text`. The existing `notes: list[str]` attribute is
45-
unchanged (it parses the separate legacy `<notes>` element still emitted by
46-
some job types). Fixes #1850.
47-
48-
## 0.18.0 (6 April 2022)
49-
* Switched to using defused_xml for xml attack protection
50-
* added linting and type hints
51-
* improve experience with self-signed certificates/invalid ssl
52-
* updated samples
53-
* new item types: metrics, revisions for datasources and workbooks
54-
* features: support adding flows to schedules, exporting workbooks to powerpoint
55-
* fixes: delete extracts
56-
57-
## 0.17.0 (20 October 2021)
58-
* Added support for accepting parameters for post request of the metadata api (#850)
59-
* Fixed jobs.get_by_id(job_id) example & reference docs (#867, #868)
60-
* Fixed handling for workbooks in personal spaces which do not have projectID or Name (#875)
61-
* Updated links to Data Source Methods page in REST API docs (#879)
62-
* Unified arguments of sample scripts (#889)
63-
* Updated docs for - links to Datasource API (#879) , sample scripts (#892) & metadata query (#896)
64-
* Added support for scheduling DataUpdate Jobs (#891)
65-
* Exposed the fileuploads API endpoint (#894)
66-
* Added a new sample & documentation for metadata API (#895, #896)
67-
* Added support to the package for getting flow run status, as well as the ability to cancel flow runs. (#884)
68-
* Added jobs.wait_for_job method (#903)
69-
* Added description support for datasources item (#912)
70-
* Dropped support for Python 3.5 (#911)
71-
72-
## 0.16.0 (15 July 2021)
73-
* Documentation updates (#800, #818, #839, #842)
74-
* Fixed data alert repr in subscription item (#821)
75-
* Added support for Data Quality Warning (#836)
76-
* Added support for renaming datasources (#843)
77-
* Improved Datasource tests (#843)
78-
* Updated catalog obfuscation field (#844)
79-
* Fixed revision limit field in site_item.py file (#847)
80-
* Added the Missing content permission field- LockedToProjectWithoutNested (#856)
81-
82-
## 0.15.0 (16 Feb 2021)
83-
* Added support for python version 3.9 (#744)
84-
* Added support for 'Get View by ID' (#750)
85-
* Added docs and test data to MANIFEST.in file (#780)
86-
* Added owner_id property to ProjectItem (#784)
87-
* Added support for skipping connection check while publishing workbook (#791)
88-
* Added support for 'Update Subscription' (#794)
89-
* Added support for 'Get Groups for a User' (#799)
90-
* Improved debug logging by including put/post request contents (#743)
91-
* Improved local and active-directory group creation (#770)
92-
* Improved 'Update Group' to match server requests/responses (#772)
93-
* Improved SiteItem with new properties and functions (#777)
94-
* Improved SubscriptionItem with new properties (#794)
95-
* Improved the 'type' property of TaskItem to convert server response to enum (#796)
96-
* Improved repository to use Github Actions for running tests/linter (#798)
97-
* Fixed data_acceleration field causing error in workbook update payload (#741)
98-
99-
## 0.14.1 (9 Dec 2020)
100-
* Fixed filter query issue for server version below 2020.1 (#745)
101-
* Fixed large workbook/datasource publish issue (#757)
102-
103-
## 0.14.0 (6 Nov 2020)
104-
* Added django-style filtering and sorting (#615)
105-
* Added encoding tag-name before deleting (#687)
106-
* Added 'Execute' Capability to permissions (#700)
107-
* Added support for publishing workbook using file objects (#704)
108-
* Added new fields to datasource_item (#705)
109-
* Added all fields for users.get to get email and fullname (#713)
110-
* Added support publishing datasource using file objects (#714)
111-
* Improved request options by removing manual query param generation (#686)
112-
* Improved publish_workbook sample to take in site (#694)
113-
* Improved schedules.update() by removing constraint that required an interval (#711)
114-
* Fixed site update/create not checking booleans properly (#723)
115-
116-
## 0.13 (1 Sept 2020)
117-
* Added notes field to JobItem (#571)
118-
* Added webpage_url field to WorkbookItem (#661)
119-
* Added support for switching between sites (#655)
120-
* Added support for querying favorites for a user (#656)
121-
* Added support for Python 3.8 (#659)
122-
* Added support for Data Alerts (#667)
123-
* Added support for basic Extract operations - Create, Delete, en/re/decrypt for site (#672)
124-
* Added support for creating and querying Active Directory groups (#674)
125-
* Added support for asynchronously updating a group (#674)
126-
* Improved handling of invalid dates (#529)
127-
* Improved consistency of update_permission endpoints (#668)
128-
* Documentation updates (#658, #669, #670, #673, #683)
129-
130-
## 0.12.1 (22 July 2020)
131-
132-
* Fixed login.py sample to properly handle sitename (#652)
133-
134-
## 0.12 (10 July 2020)
135-
136-
* Added hidden_views parameter to workbook publish method (#614)
137-
* Added simple paging endpoint for GraphQL/Metadata API (#623)
138-
* Added endpoints to Metadata API for retrieving backfill/eventing status (#626)
139-
* Added maxage parameter to CSV and PDF export options (#635)
140-
* Added support for querying, adding, and deleting favorites (#638)
141-
* Added a sample for publishing datasources (#644)
142-
143-
## 0.11 (1 May 2020)
144-
145-
* Added more fields to Data Acceleration config (#588)
146-
* Added OpenID as an auth setting enum (#610)
147-
* Added support for Data Acceleration Reports (#596)
148-
* Added support for view permissions (#526)
149-
* Materialized views changed to Data Acceleration (#576)
150-
* Improved consistency across workbook/datasource endpoints (#570)
151-
* Fixed print error in update_connection.py (#602)
152-
* Fixed log error in add user endpoint (#608)
153-
154-
## 0.10 (21 Feb 2020)
155-
156-
* Added a way to handle non-xml errors (#515)
157-
* Added Webhooks endpoints for create, delete, get, list, and test (#523, #532)
158-
* Added delete method in the tasks endpoint (#524)
159-
* Added description attribute to WorkbookItem (#533)
160-
* Added support for materializeViews as schedule and task types (#542)
161-
* Added warnings to schedules (#550, #551)
162-
* Added ability to update parent_id attribute of projects (#560, #567)
163-
* Improved filename behavior for download endpoints (#517)
164-
* Improved logging (#508)
165-
* Fixed runtime error in permissions endpoint (#513)
166-
* Fixed move_workbook_sites sample (#503)
167-
* Fixed project permissions endpoints (#527)
168-
* Fixed login.py sample to accept site name (#549)
169-
170-
## 0.9 (4 Oct 2019)
171-
172-
* Added Metadata API endpoints (#431)
173-
* Added site settings for Data Catalog and Prep Conductor (#434)
174-
* Added new fields to ViewItem (#331)
175-
* Added support and samples for Tableau Server Personal Access Tokens (#465)
176-
* Added Permissions endpoints (#429)
177-
* Added tags to ViewItem (#470)
178-
* Added Databases and Tables endpoints (#445)
179-
* Added Flow endpoints (#494)
180-
* Added ability to filter projects by topLevelProject attribute (#497)
181-
* Improved server_info endpoint error handling (#439)
182-
* Improved Pager to take in keyword arguments (#451)
183-
* Fixed UUID serialization error while publishing workbook (#449)
184-
* Fixed materalized views in request body for update_workbook (#461)
185-
186-
## 0.8.1 (17 July 2019)
187-
188-
* Fixed update_workbook endpoint (#454)
189-
190-
## 0.8 (8 Apr 2019)
191-
192-
* Added Max Age to download view image request (#360)
193-
* Added Materialized Views (#378, #394, #396)
194-
* Added PDF export of Workbook (#376)
195-
* Added Support User Role (#392)
196-
* Added Flows (#403)
197-
* Updated Pager to handle un-paged results (#322)
198-
* Fixed checked upload (#309, #319, #326, #329)
199-
* Fixed embed_password field on publish (#416)
200-
201-
## 0.7 (2 Jul 2018)
202-
203-
* Added cancel job (#299)
204-
* Added Get background jobs (#298)
205-
* Added Multi-credential support (#276)
206-
* Added Update Groups (#279)
207-
* Adding project_id to view (#285)
208-
* Added ability to rename workbook using `update workbook` (#284)
209-
* Added Sample for exporting full pdf using pdf page combining (#267)
210-
* Added Sample for exporting data, images, and single view pdfs (#263)
211-
* Added view filters to the populate request options (#260)
212-
* Add Async publishing for workbook and datasource endpoints (#311)
213-
* Fixed ability to update datasource server connection port (#283)
214-
* Fixed next project handling (#267)
215-
* Cleanup debugging output to strip out non-xml response
216-
* Improved refresh sample for readability (#288)
217-
218-
## 0.6.1 (26 Jan 2018)
219-
220-
* Fixed #257 where refreshing extracts does not work due to a missing "self"
221-
222-
## 0.6 (17 Jan 2018)
223-
224-
* Added support for add a datasource/workbook refresh to a schedule (#244)
225-
* Added support for updating datasource connections (#253)
226-
* Added Refresh Now for datasource and workbooks (#250)
227-
* Fixed Typos in the docs (#251)
228-
229-
## 0.5.1 (21 Sept 2017)
230-
231-
* Fix a critical issue caused by #224 that was the result of lack of test coverage (#226)
232-
233-
## 0.5 (20 Sept 2017)
234-
235-
* Added revision settings to update site (#187)
236-
* Added support for certified data sources (#189)
237-
* Added support for include/exclude extract (#203)
238-
* Added auto-paging for group users (#204)
239-
* Added ability to add workbooks to a schedule (#206)
240-
* Added the ability to create nested projects (#208)
241-
* Fixed sort order when using pager (#192)
242-
* Docs Updates and new samples (#196, #199, #200, #201)
243-
244-
## 0.4.1 (18 April 2017)
245-
246-
* Fix #177 to remove left in debugging print
247-
248-
## 0.4 (18 April 2017)
249-
250-
Yikes, it's been too long.
251-
252-
* Added API version annotations to endpoints (#125)
253-
* Added New High Res Image Api Endpoint
254-
* Added Tags to Datasources, Views
255-
* Added Ability to run an Extract Refresh task (#159)
256-
* Auto versioning enabled (#169)
257-
* Download twbx/tdsx without the extract payload (#143, #144)
258-
* New Sample to initialize a server (#95)
259-
* Added ability to update connection information (#149)
260-
* Added Ability to get a site by name (#153)
261-
* Dates are now DateTime Objects (#102)
262-
* Bugfixes (#162, #166)
263-
264-
## 0.3 (11 January 2017)
265-
266-
* Return DateTime objects instead of strings (#102)
267-
* UserItem now is compatible with Pager (#107, #109)
268-
* Deprecated site in favor of site_id (#97)
269-
* Improved handling of large downloads (#105, #111)
270-
* Added support for oAuth when publishing (#117)
271-
* Added Testing against Py36 (#122, #123)
272-
* Added Version Checking to use highest supported REST api version (#100)
273-
* Added Infrastructure for throwing error if trying to do something that is not supported by REST api version (#124)
274-
* Various Code Cleanup
275-
* Added Documentation (#98)
276-
* Improved Test Infrastructure (#91)
277-
278-
## 0.2 (02 November 2016)
279-
280-
* Added Initial Schedules Support (#48)
281-
* Added Initial Create Group endpoint (#69)
282-
* Added Connection Credentials for publishing datasources/workbooks (#80)
283-
* Added Pager object for handling pagination results and sample (#72, #90)
284-
* Added ServerInfo endpoint (#84)
285-
* Deprecated `site` as a parameter to `TableauAuth` in favor of `site_id`
286-
* Code Cleanup
287-
* Bugfixes
288-
289-
## 0.1 (12 September 2016)
290-
291-
* Initial Release to the world
1+
For the changes that are part of each release, refer to the [Releases](https://github.com/tableau/server-client-python/releases) page on GitHub.

0 commit comments

Comments
 (0)