You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
RequestFactory silently lowercases customSubscriptionEmail and customSubscriptionFooter on site create/update #1849
tableauserverclient.server.request_factory.RequestFactory calls str(value).lower() on two site-level string attributes when serializing to XML:
customSubscriptionEmail — request_factory.py:736 (create-site path) and 840 (update-site path)
customSubscriptionFooter — request_factory.py:742 and 846
This silently mangles caller intent:
site=server.sites.get_by_id(...)
site.custom_subscription_email="Sales@Company.com"site.custom_subscription_footer="Sent by Tableau — Confidential."server.sites.update(site)
# server receives: customSubscriptionEmail="sales@company.com"# customSubscriptionFooter="sent by tableau — confidential."
Impact
Email: cosmetic only — SMTP treats mailboxes case-insensitively in practice, so delivery still works. But recipients see the wrong-case "from" address, and admin intent (Support@Company.com) is lost.
Footer: functionally broken — this string is displayed verbatim in outgoing subscription emails. Lowercasing removes company-name casing, sentence-start capitalization, brand terms, everything. Anyone setting a customer-facing footer via TSC gets a mangled result. There is no workaround short of editing the site through the web UI.
Proposed fix
Drop the .lower() on both attributes in both code paths. String values should be sent verbatim. Booleans are already handled by the paired *Enabled attributes and their own serialization.
Discovered while implementing tabcmd editsite parity (tableau/tabcmd#437, tabcmd PR #452).
Activity