The CS Tools 1.7.1 release is dedicated to reliability at scale. Real-world ThoughtSpot
deployments are large, busy, and always evolving — clusters upgrade, requests time out,
networks throttle. This release makes CS Tools resilient to all of it, guided by one
principle: when something goes wrong, CS Tools survives it, tells you plainly what
happened, and never destroys good data.
Resilient Metadata Extracts
- Extracts now run to completion even when individual API requests fail — the run skips
what it couldn't fetch and reports exactly which objects are affected (#309, #313) - Failure reporting says what was lost and for which objects — "dependents for 25
LOGICAL_COLUMN objects", with the affected objects named ('Revenue' in table Sales
Fact) rather than dumped as GUIDs — and stays concise even in a failure storm - When an extract is incomplete, the summary points at this run's exact logfile — which
now contains a complete named manifest of every affected object, ready to share when
you ask for help - TRUNCATE loads protect your data: an incomplete extract is never allowed to replace a
complete one — the target is left untouched and the run clearly says so - UPSERT and APPEND loads proceed safely with partial data — they're additive, so the
next successful run fills in the gaps - Fixed the IndexError in
searchable deployfollowing a successful import (#218)
Forward Compatibility with ThoughtSpot Cloud
scriptability deploynow handles TML attributes newer than the installed TML library
(likeviz_style, introduced in 26.x releases) — affected files are skipped and named,
with the actual cause identified: the library needs an update, not your files (#269)scriptability checkpointwarns at export time when a file won't be deployable
Accurate Exit Codes and Run Reporting
- Exit codes reliably reflect the run's outcome — now including
python -m cs_tools
invocations (CI pipelines: this one's for you) - Every phase logs its start, duration, and outcome; skipped steps say "skipped" and why
Quality-of-Life Improvements
- Duplicate-synonym warnings now name the table the column lives in, matching the other
column-level warnings - Installation is now immune to GitHub API rate limits on shared and corporate networks
- Your terminal cursor comes back after a run (cloud-shell users, rejoice)
- Clearer messages throughout — fewer stack traces, more sentences
Taken together, these reporting changes alter what it feels like to run CS Tools. A run
now explains itself: the console tells you what happened and what it means, failures are
named rather than counted, and every summary ends with the exact path to a logfile
holding the complete record. Whether you're troubleshooting on your own or asking for
help, "what exactly went wrong?" now has an answer you can copy and paste. One honest
footnote from building all this: we discovered the --verbose flag currently has no
effect — the logfile always captures full detail regardless, so you've never needed it.
We'll either make it a true live-debug console mode or retire it in an upcoming release —
tell us which you'd prefer.
Highlights from 1.7.0, for Those Upgrading from 1.6.x
- Most notably: metadata extracts scale to wide tables — the request pattern behind
300-second timeouts on large clusters was redesigned entirely - Snowflake key-pair authentication is fully compatible with current snowflake-sqlalchemy
(and your query tags now actually apply) - Reliable installation on corporate networks
Every fix in this release ships with tests that pin the behavior, so bugs are found
quickly in the future. Next on the bench in the near future: schema-drift handling, so
upgrades stop breaking existing syncer tables.