Releases: thoughtspot/cs_tools
v1.6.1
v1.6.1 - Sweeping bugs under the rug
🛠️ Added
👻
🔧 Modified
- Aligned wording on the
--org
parameter
🐛 Bugfix
- Directories are handled more appropriately now
- Incorrect user input is warned / errorred more clearly
- New "cluster maintenance" check
❌ Removed
👻
🫀 CS Tools Internals
- Some documentation typo cleanups
- Added a check for
rustc
on offline installs - Documentation for offline installs
- More
CONTRIBUTING.md
improvements
Full Changelog: v1.6.0...v1.6.1
v1.6.0
v1.6.0 - The ✌️ V2 Release
🛠️ Added
- CS Tools is now primarily implemented from the ThoughtSpot V2 REST API
tools bulk-deleter from-tag
delete all objects which are marked with a specific tagtools bulk-sharing from-tag
share all objects which are marked with a specific tag to any number of groupstools user-management transfer --tags
assign the author of all objects which are marked with a specific tagtools seachable audit-logs
consume and store the Audit Logs APItools seachable tml
store your TML in a syncer, or parse it with database-native JSON functions- Faster
INSERT
andUPSERT
performance on SQLite and Databricks Syncers - Excel Syncer now supports appending a suffix to the filename, to help avoid overwriting existing files
- Mock Syncer added to report Table DDL that is generated from commands which support the
--syncer
interface - All commands now properly report OS status codes (
0 = success
,1 = failure
)
🔧 Modified
- Known errors (
exceptions.CSToolsError
) have been revamped to include more user-friendly messages and mitigations tools scriptability
rewritten to align to more with thetools git
interface
🐛 Bugfix
- Add
TS_SHARING_ACCESS.share_type (VARCHAR)
totools searchable metadata
DatabaseSyncers
which followPUT FILE -> COPY/MERGE INTO
workflow now support column header reording / redefinition- Column headers are now parsed appropriately on Excel Syncer (#192)
- All
DATETIME
fields in extracted data are now converted to UTC, regardless of the Cluster's timezone
❌ Removed
- V1 REST API endpoints are in a deprecated cycle or replaced in favor of V2
- Opt-in callhome analytics / metadata
- Falcon Syncer reliably only supports Basic Auth, other authentication methods are removed
🫀 CS Tools Internals
- Added a CONTRIBUTING guide with CS Tools development setup
- Replaced
venv+pip
bootstrapping and Virtual Environment management withuv
entirely - Replaced
cs_tools.api.middlewares
with a leanercs_tools.api.client + cs_tools.api.workflows
layer (thanks V2!) - All REST API calls are now made asynchronously with
httpx
, with complementary async-to-sync translators inutils.py
- Moved Documentation generators from
cs_tools.md_ext
todocs/hooks/*.py
- Refreshed Documentation to be leaneer and more generated instead of manual maintenance
Full Changelog: v1.5.12...v1.6.0
v1.5.13b4
v1.5.12
v1.5.12 - Hotfix
🔧 Modified
- switch to native
UPSERT
method on SQLite Syncer
🫀 CS Tools Internals
- fixes type on trusted install from
pypi
,github
- pin
pydantic == 2.9.2
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.11...v1.5.12
v1.5.11
v1.5.11 - Bugfixes
🛠️ Added
- SQLite Syncer now supports reading rows in batches with
.read_stream(tablename: str, batch: int)
user-management delete
, delete users in bulk from ThoughtSpotsearchable audit-logs
, fetch data from the Security Logs API
🐛 Bugfix
- prefer
TIMESTAMP
overDateTime
in the Searchable data model - allow delimiter character in free form fields (Title, Description) in the Searchable data model
- support Falcon
DATE_TIME
data type in Searchable SpotApp - fix for system object references on ThoughtSpot 10.1 and greater for certain
DatabaseSyncer
s - fix for #157 |
scriptability export
does not support Models
🫀 CS Tools Internals
- fixes for Falcon data-loading API intermediate stages
- switch intermediate temporary-date syncer from
CSV
->SQLite
to handle referential integrity - fix for modern pydantic warning the CLI on implicit type casts
- add missing
GroupPrivilege
enumeration - update dependencies and CI
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.10...v1.5.11
v1.5.10
v1.5.10 - Bugfixes
🛠️ Added
- introduced
searchable audit-logs --help
(Fetch Logs API) to fetch data
🐛 Bugfix
- fixes for Databricks Syncer for experimental bulk data loading strategy
🫀 CS Tools Internals
- ci installed can skip recording and sending analytics by setting
CS_TOOLS_ANALYTICS_OPT_OUT
(#160) - tools will now always send a proper os-level exit code (#161)
- ensure that
pip
is installed during the bootstrapping of our virtual environment - ensure that rust-based build dependencies are downloaded for offline installs (
cs_tools self download --help
) - remove manual check of Syncer dependencies, always deferring to
pip
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.9...v1.5.10
v1.5.9
v1.5.9 - DatabaseSyncer and Offline Install improvements
🛠️ Added
wait_for_dataload_completion = true|false
parameter to Falcon Syncer- experimental support for
PUT -> COPY INTO
data loading into Databricks Syncer identation
level for prettier output in JSON Syncer- clamping and warnings on
searchable metadata
whenTS_METADATA_COLUMN.INDEX_PRIORITY
is set out of bounds (1-10)
🔧 Modified
- more logging to Falcon Syncer for when data loads fail
- bump Snowflake Syncer to
snowflake-sqlalchemy >= 1.6.1
🐛 Bugfix
- fix for
falcon-sharding gather
not collecting the correct data from a private API - #145 | fix for
scriptability export
missing Connections - #156 | fix for JSON Syncer, date[time] not serializable
- fix for Snowflake Syncer for private key-pair support
- fix for
searchable deploy
properly customizing TML on all supportedDatabaseSyncer
dialects
🫀 CS Tools Internals
- compat for
api.middlewares.search
back to TS 9.5.0 - don't rollback
DatabaseSyncer
transactions on known errors (click.Abort
,click.Exit
) - vendor keyboard interactivity (eg. for tools like Archiver)
- fully support air-gapped offline installs with
cs_tools self download
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.8...v1.5.9
v1.5.8
v1.5.8 - Shrek Trail Mix, a mixed bag of bugs and guts and stuff
🛠️ Added
is_version_controlled
tosearchable
forTS_METADATA_OBJECT
andTS_DEPENDENT_OBJECT
to track objects which are marked under VCS- better user-facing logging for
scriptability export
whentml/export
fails - allow dynamic table construction Database Syncers on
extractor search
🐛 Bugfix
- ignore default data source on ThoughtSpot SW 9.5.x
- #144 | clean NUL bytes from being written to CSV Syncer
- fixes for
user-management sync
when caching existing user principals - check (only from the cli) and attempt to remedy system-level CS Tools installations
- fix for column case sensitivity in the
searchable deploy
SpotApp - fix for Falcon Syncer data types not compiling correctly from sqlalchemy custom types
- fix for Falcon Syncer not appropriately sending data to ThoughtSpot
- fix for Falcon
load_strategy
, which should reflect the correctempty_target = true|false
- fix for
searchable metadata
Database Syncerload_strategy
truncating on multipart file uploads
❎ Removed
- disallow
TS_BI_SERVER
extract forsearchable
for the Falcon Syncer
🫀 CS Tools Internals
- better Anacoda environment detection
- more descriptive error when the Syncer format is in an invalid state
- added caching on repeated
metadata/details
calls (objects are not expected to change greatly intra-process) - always save configs, even if they don't pass cluster check
- add a secure fileshare link when submitting bug reports
- fetch column schema details on the
thoughtspot.search
middleware - fetch bad records on
thoughtspot.tsload
middleware wheninit
orcommit
fails - fix for background analytics worker
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.7...v1.5.8
v1.5.7
v1.5.7 - Hotfixes
🛠️ Added
- add
--include-system-content
option #142 |scriptability export
no longer exports objects owned by tsadmin - allow
self download
to build dependencies against any of the Syncer dialects
🐛 Bugfix
- really fix for when
metadata/details
returns a corrupted object
🫀 CS Tools Internals
- fix for
self download
, offline install generator (broken due to dependency on rust-accelerated dependencies)
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.6...v1.5.7
v1.5.6
v1.5.6 - Even more Syncers!
🛠️ Added
- #127 | Postgres Syncer from @dhinesh-ts ( First Contributor! ✨ )
- BigQuery Syncer
🔧 Modified
- #137 | ignore system-owned content on
scriptability export
self update
should now index to the global/system python instead of the virtual env python
🐛 Bugfix
- fix for #136 | TMLFS should detect the proper root directory
- fix for when
metadata/details
returns a corrupted object - fix to proper data type for
TS_METADATA_COLUMN.SPOT_IQ_PREFERENCE
in TML of the Searchable SpotApp
🫀 CS Tools Internals
- partial fix for #135 |
CSToolsError
takes no keyword arguments - finalize some CI error handling
This is part of the major 1.5.0 series of releases, read about it in Our Documentation.
Full Changelog: v1.5.5...v1.5.6