From f6100627bb326708ddc78e74873caff93fdd37ab Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 Date: Fri, 13 Jun 2025 13:21:21 +0530 Subject: [PATCH 1/8] fixed for snowflake syncer for key-pair authentication The upgrated version of sqlalchemy module now handles p8 files at runtime, eliminating the need to serialize key-pair authentication files. Co-Authored-By: TS-sumeet-jain <168583077+TS-sumeet-jain@users.noreply.github.com> --- cs_tools/sync/snowflake/syncer.py | 42 +++--- pyproject.toml | 4 + uv.lock | 209 ++++++++++++++++++++++++++++-- 3 files changed, 223 insertions(+), 32 deletions(-) diff --git a/cs_tools/sync/snowflake/syncer.py b/cs_tools/sync/snowflake/syncer.py index 183ebc03..f3c4461a 100644 --- a/cs_tools/sync/snowflake/syncer.py +++ b/cs_tools/sync/snowflake/syncer.py @@ -80,25 +80,25 @@ def __repr__(self) -> str: warehouse = self.warehouse return f"" - def _fetch_private_key(self) -> bytes: - """ - Summarized from the Snowflake SQLAlchemy documentation. - - https://github.com/snowflakedb/snowflake-sqlalchemy/tree/main#key-pair-authentication-support - """ - from cryptography.hazmat.backends import default_backend # type: ignore - from cryptography.hazmat.primitives import serialization # type: ignore - - assert self.private_key_path is not None - pem_data = self.private_key_path.read_bytes() - passphrase = self.secret.encode() if self.secret is not None else self.secret - private_key = serialization.load_pem_private_key(data=pem_data, password=passphrase, backend=default_backend()) - pk_as_bytes = private_key.private_bytes( - encoding=serialization.Encoding.DER, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption(), - ) - return pk_as_bytes + # def _fetch_private_key(self) -> bytes: + # """ + # Summarized from the Snowflake SQLAlchemy documentation. + + # https://github.com/snowflakedb/snowflake-sqlalchemy/tree/main#key-pair-authentication-support + # """ + # from cryptography.hazmat.backends import default_backend # type: ignore + # from cryptography.hazmat.primitives import serialization # type: ignore + + # assert self.private_key_path is not None + # pem_data = self.private_key_path.read_bytes() + # passphrase = self.secret.encode() if self.secret is not None else self.secret + # private_key = serialization.load_pem_private_key(data=pem_data,password=passphrase,backend=default_backend()) + # pk_as_bytes = private_key.private_bytes( + # encoding=serialization.Encoding.DER, + # format=serialization.PrivateFormat.PKCS8, + # encryption_algorithm=serialization.NoEncryption(), + # ) + # return pk_as_bytes def make_url(self) -> URL: """Format a connection string for the Snowflake JDBC driver.""" @@ -123,7 +123,9 @@ def make_url(self) -> URL: # SNOWFLAKE DOCS: # https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-connect#using-key-pair-authentication-key-pair-rotation if self.authentication == "key-pair": - url_kwargs["connect_args"]["private_key"] = self._fetch_private_key() + # url_kwargs["connect_args"]["private_key"] = self._fetch_private_key() + url_kwargs["private_key_file"] = self.private_key_path + url_kwargs["private_key_file_pwd"] = self.secret # SNOWFLAKE DOCS: # https://docs.snowflake.com/en/user-guide/admin-security-fed-auth-use#browser-based-sso diff --git a/pyproject.toml b/pyproject.toml index 9f667e54..867dbb7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,6 +56,10 @@ dependencies = [ "exceptiongroup; python_version < '3.11.0'", "strenum; python_version < '3.11.0'", "taskgroup; python_version < '3.11.0'", + "typer>=0.12.0", + "prompt-toolkit>=3.0.47", + "textual-serve>=1.1.1", + "snowflake-sqlalchemy>=1.7.4", ] [project.urls] diff --git a/uv.lock b/uv.lock index 95ae6e4b..0c336290 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,9 @@ version = 1 requires-python = ">=3.9.2" +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version < '3.10'", +] [[package]] name = "aiohappyeyeballs" @@ -169,6 +173,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 }, ] +[[package]] +name = "asn1crypto" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/cf/d547feed25b5244fcb9392e288ff9fdc3280b10260362fc45d37a798a6ee/asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c", size = 121080 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67", size = 105045 }, +] + [[package]] name = "async-timeout" version = "5.0.1" @@ -272,6 +285,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 }, ] +[[package]] +name = "boto3" +version = "1.38.36" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/22/df130d30dcc73b726c3d254ed855806853b86b987052517337587085b6db/boto3-1.38.36.tar.gz", hash = "sha256:efe0aaa060f8fedd76e5c942055f051aee0432fc722d79d8830a9fd9db83593e", size = 111823 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/ce/f609adc7dfd53792a9b704aa1241f8e5f34c21a5364f64b114d7874f8327/boto3-1.38.36-py3-none-any.whl", hash = "sha256:34c27d7317cadb62c0e9856e5d5aa0271ef47202d340584831048bc7ac904136", size = 139938 }, +] + +[[package]] +name = "botocore" +version = "1.38.36" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/15/d218917f2d568f6fa92ad3831b31ecc4ee514d775a142385aa87c672bc08/botocore-1.38.36.tar.gz", hash = "sha256:4a1ced1a4218bdff0ed5b46abb54570d473154ddefafa5d121a8d96e4b76ebc1", size = 13966245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/2d/3ccc58837b3ed8322a15b9fd94114a326e6ab29d36a37508aadf9cf7808e/botocore-1.38.36-py3-none-any.whl", hash = "sha256:b6a50b853f6d23af9edfed89a59800c6bc1687a947cdd3492879f7d64e002d30", size = 13623866 }, +] + [[package]] name = "certifi" version = "2025.1.31" @@ -435,14 +476,14 @@ wheels = [ [[package]] name = "click" -version = "8.1.8" +version = "8.1.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 } +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 }, + { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, ] [[package]] @@ -532,6 +573,7 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/91/4c/45dfa6829acffa344e3967d6006ee4ae8be57af746ae2eba1c431949b32c/cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02", size = 710657 } wheels = [ + { url = "https://files.pythonhosted.org/packages/55/09/8cc67f9b84730ad330b3b72cf867150744bf07ff113cda21a15a1c6d2c7c/cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123", size = 6541833 }, { url = "https://files.pythonhosted.org/packages/7e/5b/3759e30a103144e29632e7cb72aec28cedc79e514b2ea8896bb17163c19b/cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092", size = 3922710 }, { url = "https://files.pythonhosted.org/packages/5f/58/3b14bf39f1a0cfd679e753e8647ada56cddbf5acebffe7db90e184c76168/cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f", size = 4137546 }, { url = "https://files.pythonhosted.org/packages/98/65/13d9e76ca19b0ba5603d71ac8424b5694415b348e719db277b5edc985ff5/cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb", size = 3915420 }, @@ -539,6 +581,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/ea/af65619c800ec0a7e4034207aec543acdf248d9bffba0533342d1bd435e1/cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543", size = 3932569 }, { url = "https://files.pythonhosted.org/packages/c7/af/d1deb0c04d59612e3d5e54203159e284d3e7a6921e565bb0eeb6269bdd8a/cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e", size = 4016721 }, { url = "https://files.pythonhosted.org/packages/bd/69/7ca326c55698d0688db867795134bdfac87136b80ef373aaa42b225d6dd5/cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e", size = 4240915 }, + { url = "https://files.pythonhosted.org/packages/ef/d4/cae11bf68c0f981e0413906c6dd03ae7fa864347ed5fac40021df1ef467c/cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053", size = 2757925 }, + { url = "https://files.pythonhosted.org/packages/64/b1/50d7739254d2002acae64eed4fc43b24ac0cc44bf0a0d388d1ca06ec5bb1/cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd", size = 3202055 }, + { url = "https://files.pythonhosted.org/packages/11/18/61e52a3d28fc1514a43b0ac291177acd1b4de00e9301aaf7ef867076ff8a/cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591", size = 6542801 }, { url = "https://files.pythonhosted.org/packages/1a/07/5f165b6c65696ef75601b781a280fc3b33f1e0cd6aa5a92d9fb96c410e97/cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7", size = 3922613 }, { url = "https://files.pythonhosted.org/packages/28/34/6b3ac1d80fc174812486561cf25194338151780f27e438526f9c64e16869/cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc", size = 4137925 }, { url = "https://files.pythonhosted.org/packages/d0/c7/c656eb08fd22255d21bc3129625ed9cd5ee305f33752ef2278711b3fa98b/cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289", size = 3915417 }, @@ -546,33 +591,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a2/cd/2f3c440913d4329ade49b146d74f2e9766422e1732613f57097fea61f344/cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c", size = 3932331 }, { url = "https://files.pythonhosted.org/packages/7f/df/8be88797f0a1cca6e255189a57bb49237402b1880d6e8721690c5603ac23/cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64", size = 4017372 }, { url = "https://files.pythonhosted.org/packages/af/36/5ccc376f025a834e72b8e52e18746b927f34e4520487098e283a719c205e/cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285", size = 4239657 }, + { url = "https://files.pythonhosted.org/packages/46/b0/f4f7d0d0bcfbc8dd6296c1449be326d04217c57afb8b2594f017eed95533/cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417", size = 2758672 }, + { url = "https://files.pythonhosted.org/packages/97/9b/443270b9210f13f6ef240eff73fd32e02d381e7103969dc66ce8e89ee901/cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede", size = 3202071 }, + { url = "https://files.pythonhosted.org/packages/77/d4/fea74422326388bbac0c37b7489a0fcb1681a698c3b875959430ba550daa/cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731", size = 3338857 }, { url = "https://files.pythonhosted.org/packages/1a/aa/ba8a7467c206cb7b62f09b4168da541b5109838627f582843bbbe0235e8e/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4", size = 3850615 }, { url = "https://files.pythonhosted.org/packages/89/fa/b160e10a64cc395d090105be14f399b94e617c879efd401188ce0fea39ee/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756", size = 4081622 }, { url = "https://files.pythonhosted.org/packages/47/8f/20ff0656bb0cf7af26ec1d01f780c5cfbaa7666736063378c5f48558b515/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c", size = 3867546 }, { url = "https://files.pythonhosted.org/packages/38/d9/28edf32ee2fcdca587146bcde90102a7319b2f2c690edfa627e46d586050/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa", size = 4090937 }, + { url = "https://files.pythonhosted.org/packages/cc/9d/37e5da7519de7b0b070a3fedd4230fe76d50d2a21403e0f2153d70ac4163/cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c", size = 3128774 }, ] [[package]] name = "cs-tools" -version = "1.6.3" +version = "1.6.4" source = { editable = "." } dependencies = [ { name = "aiosqlite" }, { name = "awesomeversion" }, { name = "betterproto", extra = ["compiler"] }, + { name = "click" }, { name = "email-validator" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "httpx" }, { name = "packaging" }, + { name = "prompt-toolkit" }, { name = "pydantic" }, { name = "pydantic-settings" }, { name = "rich" }, + { name = "snowflake-sqlalchemy" }, { name = "sqlmodel" }, { name = "strenum", marker = "python_full_version < '3.11'" }, { name = "taskgroup", marker = "python_full_version < '3.11'" }, { name = "tenacity" }, + { name = "textual-serve" }, { name = "thoughtspot-tml" }, { name = "toml" }, + { name = "typer" }, { name = "typing-extensions", marker = "python_full_version < '3.10'" }, { name = "tzdata", marker = "sys_platform == 'win32'" }, ] @@ -616,6 +670,7 @@ requires-dist = [ { name = "aiosqlite" }, { name = "awesomeversion" }, { name = "betterproto", extras = ["compiler"], specifier = "==2.0.0b6" }, + { name = "click", specifier = "==8.1.7" }, { name = "coverage", extras = ["toml"], marker = "extra == 'dev'" }, { name = "email-validator" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, @@ -627,6 +682,7 @@ requires-dist = [ { name = "mypy", marker = "extra == 'dev'" }, { name = "packaging" }, { name = "pre-commit", marker = "extra == 'dev'" }, + { name = "prompt-toolkit", specifier = ">=3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'cli'", specifier = "==3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'dev'", specifier = "==3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'docs'", specifier = "==3.0.47" }, @@ -634,8 +690,9 @@ requires-dist = [ { name = "pydantic-settings" }, { name = "pytest", marker = "extra == 'dev'" }, { name = "python-slugify", extras = ["unidecode"], marker = "extra == 'docs'" }, - { name = "rich", specifier = ">=13.7.1" }, + { name = "rich", specifier = "==13.7.1" }, { name = "ruff", marker = "extra == 'dev'" }, + { name = "snowflake-sqlalchemy", specifier = ">=1.7.4" }, { name = "sqlmodel", specifier = ">=0.0.16" }, { name = "strenum", marker = "python_full_version < '3.11'" }, { name = "taskgroup", marker = "python_full_version < '3.11'" }, @@ -644,11 +701,13 @@ requires-dist = [ { name = "textual", extras = ["syntax"], marker = "extra == 'dev'", specifier = "==1.0.0" }, { name = "textual", extras = ["syntax"], marker = "extra == 'docs'", specifier = "==1.0.0" }, { name = "textual-dev", marker = "extra == 'dev'", specifier = ">=1.7.0" }, + { name = "textual-serve", specifier = ">=1.1.1" }, { name = "textual-serve", marker = "extra == 'cli'", specifier = "==1.1.1" }, { name = "textual-serve", marker = "extra == 'dev'", specifier = "==1.1.1" }, { name = "textual-serve", marker = "extra == 'docs'", specifier = "==1.1.1" }, { name = "thoughtspot-tml" }, { name = "toml" }, + { name = "typer", specifier = ">=0.12.0" }, { name = "typer", marker = "extra == 'cli'", specifier = "==0.12.0" }, { name = "typer", marker = "extra == 'dev'", specifier = "==0.12.0" }, { name = "typer", marker = "extra == 'docs'", specifier = "==0.12.0" }, @@ -1103,6 +1162,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 }, ] +[[package]] +name = "jmespath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, +] + [[package]] name = "keyring" version = "25.6.0" @@ -1904,6 +1972,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, ] +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 }, +] + [[package]] name = "pymdown-extensions" version = "10.14.3" @@ -1917,6 +1994,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/eb/f5/b9e2a42aa8f9e34d52d66de87941ecd236570c7ed2e87775ed23bbe4e224/pymdown_extensions-10.14.3-py3-none-any.whl", hash = "sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9", size = 264467 }, ] +[[package]] +name = "pyopenssl" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771 }, +] + [[package]] name = "pytest" version = "8.3.4" @@ -1972,6 +2062,15 @@ unidecode = [ { name = "unidecode" }, ] +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, +] + [[package]] name = "pywin32-ctypes" version = "0.2.3" @@ -2148,16 +2247,15 @@ wheels = [ [[package]] name = "rich" -version = "13.9.4" +version = "13.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +sdist = { url = "https://files.pythonhosted.org/packages/b3/01/c954e134dc440ab5f96952fe52b4fdc64225530320a910473c1fe270d9aa/rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432", size = 221248 } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, + { url = "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", size = 240681 }, ] [[package]] @@ -2185,6 +2283,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/d9/fde7610abd53c0c76b6af72fc679cb377b27c617ba704e25da834e0a0608/ruff-0.9.5-py3-none-win_arm64.whl", hash = "sha256:18a29f1a005bddb229e580795627d297dfa99f16b30c7039e73278cf6b5f9fa9", size = 10064595 }, ] +[[package]] +name = "s3transfer" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/5d/9dcc100abc6711e8247af5aa561fc07c4a046f72f659c3adea9a449e191a/s3transfer-0.13.0.tar.gz", hash = "sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177", size = 150232 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/17/22bf8155aa0ea2305eefa3a6402e040df7ebe512d1310165eda1e233c3f8/s3transfer-0.13.0-py3-none-any.whl", hash = "sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be", size = 85152 }, +] + [[package]] name = "secretstorage" version = "3.3.3" @@ -2225,6 +2335,81 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] +[[package]] +name = "snowflake-connector-python" +version = "3.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asn1crypto" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "certifi" }, + { name = "cffi" }, + { name = "charset-normalizer" }, + { name = "cryptography" }, + { name = "filelock" }, + { name = "idna" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "pyjwt" }, + { name = "pyopenssl" }, + { name = "pytz" }, + { name = "requests" }, + { name = "sortedcontainers" }, + { name = "tomlkit" }, + { name = "typing-extensions" }, + { name = "urllib3", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/ff/7c1b2cbb5a43b21abebfa58c83926266e9f5ea05123e795753da6ce84f96/snowflake_connector_python-3.15.0.tar.gz", hash = "sha256:1ef52e2fb3ecc295139737d3d759f85d962ef7278c6990c3bd9c17fcb82508d6", size = 774355 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/eb/9c01764355928258f57663e8f9eacf608b8e03dc093cbcb69244e2ad5de8/snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef92f4ceb61b6a7373ec417f7201d288a6a5a3a42b7e789d3b2221b4dff5ed3c", size = 989157 }, + { url = "https://files.pythonhosted.org/packages/5e/b1/35b31eb3b3303f1d29815a8b28e89d399ea2600933f5a6343943f851c2bd/snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:d33bd2b326d6ea4d49e0cd821f75b3c5f2910be21f4575c1a03d272af78af767", size = 1001262 }, + { url = "https://files.pythonhosted.org/packages/da/e4/7d0a22fd535e15f9625b5726a2a80d53fcb30eb658defff71f93bd536f7c/snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56fe48836c5dcda71b951f3f586c036631f7e3d17c3e201489c56974eea5e665", size = 2565688 }, + { url = "https://files.pythonhosted.org/packages/2b/47/1d5bff17d6237f0d0863eae6cfeb85b92a1ec2e95ffae579b0b5b0886e2e/snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9345591a62e99f811af6dca758fde873660ced3b4e60a77716f6f2d75b609fd9", size = 2589247 }, + { url = "https://files.pythonhosted.org/packages/79/fe/c0a84498ede55fd48bf21beb855e5a9b0d1cc76b3c8210a989de990b533b/snowflake_connector_python-3.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:21243f2296ceeb238eff871443379665f72125c2086032b40e85ff576df8cc0a", size = 948426 }, + { url = "https://files.pythonhosted.org/packages/af/e6/813f6b299f23f952996da4b4f0f8dade52d5b0f5db516c957b236120cee8/snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6c22820806b43c9f9c5ae3c7758307fb668c42b7ddf74d995b2f0d2da21f08e", size = 989306 }, + { url = "https://files.pythonhosted.org/packages/3e/cf/38dd6ef6bb1a01ab591986b6b903df7f9f4dbb2467b058bebb6ddd4342a3/snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:f83b2e08d29f1bb61c7152bf87f0b8a9e77ee25f09e506f69085a365fe8825df", size = 1001394 }, + { url = "https://files.pythonhosted.org/packages/53/cf/fbf21bc506c032d4a104faf0ced7cbbe6dfecc13e96dd1e211b9c48a08c0/snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbd35265af54ad045cadbed5bfbc76816d2e4d95902f3312365d54c08a33ec3", size = 2590253 }, + { url = "https://files.pythonhosted.org/packages/30/5e/3b325c21e91df06b1868c791f384efd44b142c6d777f9c9322148ccb0a05/snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b8757b6206982e784a8f9f24a6fd3de4849e37113788ef677373b6b18907e91", size = 2612009 }, + { url = "https://files.pythonhosted.org/packages/42/d3/9e5125f3a5dac2b8327ad3cb0268842deda8e0b28263320ca752926ce3b2/snowflake_connector_python-3.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:f8994bcfdcd4915b0a365969346939d17ee03e041202048c0d108629bd598d4d", size = 948541 }, + { url = "https://files.pythonhosted.org/packages/bc/be/9b0573ccca48ea97677f326bd367804416691130cd1b9ef84968e8620ae3/snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8f41ab707792b07c58214b13e7a6b50d4460f7151e19ea80df3612c92d3a7b76", size = 988559 }, + { url = "https://files.pythonhosted.org/packages/21/d7/6021da04416be8a07a6063038c9d532f583e59cfd14f1bf80bcee34d1f76/snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:d2f0bb00a48c4125090dfe2e8bd15f9389be7867fd9e3c118ecb8dc87c69bcb8", size = 999857 }, + { url = "https://files.pythonhosted.org/packages/1b/de/d4fbd1cfc89e61614ee1963edcd9711369cb6ffea63c4c8d68c3fb248e1a/snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:457408eeb4116f73df60bb912fdeb7f6d4849e2cfd7e282b2afb25f080f20188", size = 2602453 }, + { url = "https://files.pythonhosted.org/packages/92/09/6656444e9ff6d83bd1b2c73d1f6b6aab78ff67889e6e3744c8462c74c76f/snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e93f67712260a11ae3bb858c567be805aca5f96d042ff5feacea102a33b49f", size = 2626597 }, + { url = "https://files.pythonhosted.org/packages/c5/04/0b2edacbc7192d8d6a04ca17b81900099c835279157f05c2bac971dc77d2/snowflake_connector_python-3.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:acbceae9120502613991b9997d94cc23ea7e76cdfc3601718025f9f0859cc21e", size = 947264 }, + { url = "https://files.pythonhosted.org/packages/e7/b7/ca38fd1494918e47d23eaa7e3ce883bde5481e7031968894208d5cf726d4/snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52dbe588f7784f194caa739cb394557b81d150f21841d3b51d6d164f1b2e90c0", size = 988902 }, + { url = "https://files.pythonhosted.org/packages/3a/79/22fddcfece8a9813f953b5300e6795ff2cf1744afd0d162001fecffb681a/snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:fcf4090514cc4c8be8f11573b7ed19f6fe6339048271cbdbc18c50a608b57655", size = 1000262 }, + { url = "https://files.pythonhosted.org/packages/9e/bb/7b4d3ea222cbda0f2c2e1825d3599d93512d000bb6c7eecb2a82b6c32511/snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64418f6055789a6d1393dfbd3a609e126a88cd015065fad1923ef7b6f4b8dd61", size = 2607481 }, + { url = "https://files.pythonhosted.org/packages/a0/f4/8c820711011b3638c6992609698bcc67dbfb16e93141573e91048f99b505/snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9df04e2294605d1e243793b5d889a250d6a301fea8b25c7a84703e3a709a96c", size = 2632032 }, + { url = "https://files.pythonhosted.org/packages/f7/6a/edb52a71b53b9d6d0208ebf47bbe96dab3979da01b6f74eda43232cc1fc2/snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ecc5f570000ad957e09517d317ca07645ece77ca9befc88797439164e632738d", size = 989831 }, + { url = "https://files.pythonhosted.org/packages/74/26/dd71a6396b7d606a171433247ae837ae8eb728f4d14971c837f6d3e3a6c0/snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:49e68d5130f17bde2de82bf1c7298803b4ec5bfb926a5daa9001542d710026bc", size = 1001799 }, + { url = "https://files.pythonhosted.org/packages/e2/cb/f965db23e288e8311439adb2b5ee64bc7bb7fa4adcdc34d391ccda92c477/snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:698d9dbdd8873daaae01a46ca5d57caf3e4637a30a6afe5ca54cd0c460c359fd", size = 2566380 }, + { url = "https://files.pythonhosted.org/packages/e9/7c/86f80dddf7e895ee4174d0061492b83bfddb346416c071f8d680a147c76f/snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04cadd3dae180a5f3632347c2a5836de7ac20fbdf8cb5192e021cad098c85247", size = 2589346 }, + { url = "https://files.pythonhosted.org/packages/82/db/fcd16bb08f478016309a5527f8f03522e2ee1b55a89839ca6b92d6fd9adb/snowflake_connector_python-3.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:0a97deeadfe746fb88475cb83498650e68cf051969476ea498f572e40d49ce96", size = 949123 }, +] + +[[package]] +name = "snowflake-sqlalchemy" +version = "1.7.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "snowflake-connector-python" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/68/7181c1cc714335f48f3c2685eed392045e9542aa6b1010462200b9921498/snowflake_sqlalchemy-1.7.4.tar.gz", hash = "sha256:a509ca0f11c5b19a242157189ad20a3ee9598aa391fcbac3ae3e6cf53251a6cb", size = 119579 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/5b/11f75dabb2fd0320ac73409963284723a9b14e3a7a90dbe9a6263ea1f50c/snowflake_sqlalchemy-1.7.4-py3-none-any.whl", hash = "sha256:52e14adf13640ff5543c32a4f0600fdb1e49c5862413ba5e27b08693c8676f82", size = 70507 }, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, +] + [[package]] name = "sqlalchemy" version = "2.0.38" @@ -2845,11 +3030,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.3.0" +version = "1.26.20" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/e8/6ff5e6bc22095cfc59b6ea711b687e2b7ed4bdb373f7eeec370a97d7392f/urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32", size = 307380 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, + { url = "https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", size = 144225 }, ] [[package]] From 01768a23a52fe4c5bee53a75db38af2b708f4a4c Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 Date: Wed, 25 Jun 2025 22:35:22 +0530 Subject: [PATCH 2/8] fixed for snowflake syncer for key-pair authentication The upgrated version of sqlalchemy module now handles p8 files at runtime, eliminating the need to serialize key-pair authentication files. This will help in key-pair authentication in snowflake Co-Authored-By: TS-sumeet-jain <168583077+TS-sumeet-jain@users.noreply.github.com> --- cs_tools/sync/snowflake/syncer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cs_tools/sync/snowflake/syncer.py b/cs_tools/sync/snowflake/syncer.py index f3c4461a..50879aee 100644 --- a/cs_tools/sync/snowflake/syncer.py +++ b/cs_tools/sync/snowflake/syncer.py @@ -88,7 +88,6 @@ def __repr__(self) -> str: # """ # from cryptography.hazmat.backends import default_backend # type: ignore # from cryptography.hazmat.primitives import serialization # type: ignore - # assert self.private_key_path is not None # pem_data = self.private_key_path.read_bytes() # passphrase = self.secret.encode() if self.secret is not None else self.secret From 355132aa050135430da307e7b70ee0c890055abd Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 Date: Fri, 19 Sep 2025 14:03:43 +0530 Subject: [PATCH 3/8] Added AI and BI Stats model to searchable + make concurrency configurable 1.Added the TS: AI and BI Stats model to the list of searchable models. 2.Made the concurrent call limit dynamic, with a configurable option (default set to 15). --- cs_tools/cli/commands/config.py | 6 ++ .../cli/tools/searchable/api_transformer.py | 78 ++++++++++++++ cs_tools/cli/tools/searchable/app.py | 102 ++++++++++++++++++ cs_tools/cli/tools/searchable/models.py | 66 ++++++++++++ cs_tools/thoughtspot.py | 2 +- 5 files changed, 253 insertions(+), 1 deletion(-) diff --git a/cs_tools/cli/commands/config.py b/cs_tools/cli/commands/config.py index d88979c0..afa31545 100644 --- a/cs_tools/cli/commands/config.py +++ b/cs_tools/cli/commands/config.py @@ -44,6 +44,7 @@ def create( None, help="the password you type on the ThoughtSpot login screen, use [b magenta]prompt[/] to type it hidden" ), secret: str = typer.Option(None, help="the trusted authentication secret key, found in the developer tab"), + concurrency: int = typer.Option(None, help="change the number call sending to TS, By default 15"), token: str = typer.Option(None, help="the V2 API bearer token"), default_org: int = typer.Option(None, help="org ID to sign into by default"), temp_dir: custom_types.Directory = typer.Option(None, help="the temporary directory to use for uploading files"), @@ -80,6 +81,7 @@ def create( "default_org": default_org, "disable_ssl": disable_ssl, "proxy": proxy, + "concurrency": concurrency, }, "verbose": verbose, "temp_dir": temp_dir or cs_tools_venv.subdir(".tmp"), @@ -117,6 +119,7 @@ def modify( ), secret: str = typer.Option(None, help="the trusted authentication secret key"), token: str = typer.Option(None, help="the V2 API bearer token"), + concurrency: int = typer.Option(None, help="change the number call sending to TS, By default 15"), temp_dir: custom_types.Directory = typer.Option(None, help="the temporary directory to use for uploading files"), disable_ssl: bool = typer.Option( None, "--disable-ssl", help="whether or not to turn off checking the SSL certificate" @@ -162,6 +165,9 @@ def modify( if proxy is not None: data["thoughtspot"]["proxy"] = proxy + if concurrency is not None: + data["thoughtspot"]["concurrency"] = concurrency + conf = CSToolsConfig.model_validate(data) conf.save() diff --git a/cs_tools/cli/tools/searchable/api_transformer.py b/cs_tools/cli/tools/searchable/api_transformer.py index cdcf0ba1..5d852a83 100644 --- a/cs_tools/cli/tools/searchable/api_transformer.py +++ b/cs_tools/cli/tools/searchable/api_transformer.py @@ -665,3 +665,81 @@ def ts_audit_logs(data: list[_types.APIResult], *, cluster: _types.GUID) -> _typ reshaped.sort(key=operator.itemgetter(*CLUSTER_KEY)) return reshaped + + +def ts_ai_stats(data: list[_types.APIResult], *, cluster: _types.GUID) -> _types.TableRowsFormat: + """Reshapes /searchdata -> searchable.models.BIServer.""" + reshaped: _types.TableRowsFormat = [] + + PARTITION_KEY = ft.partial(lambda r: r["ThoughtSpot Start Time"].date()) + CLUSTER_KEY = ("ThoughtSpot Start Time", "User ID", "Visualization ID") + + # KEEP TRACK OF DUPLICATE ROWS DUE TO DATA MANAGEMENT ISSUES. + seen: set[str] = set() + + # ENSURE ALL DATA IS IN UTC PRIOR TO GENERATING ROW_NUMBERS. + data = [{**row, "ThoughtSpot Start Time": validators.ensure_datetime_is_utc.func(row["ThoughtSpot Start Time"])} for row in data] + + # SORT PRIOR TO GROUP BY SO WE MAINTAIN CLUSTERING KEY SEMANTICS + data.sort(key=operator.itemgetter(*CLUSTER_KEY)) + + for row_date, rows in it.groupby(data, key=PARTITION_KEY): + # MANUAL ENUMERATION BECAUSE WE NEED TO ACCOUNT FOR DEDUPLICATION. + row_number = 0 + + for row in rows: + if (unique := f"{row['ThoughtSpot Start Time']}-{row['User ID']}-{row['Visualization ID']}") in seen: + continue + + row_number += 1 + + reshaped.append( + models.AIStats.validated_init( + **{ + "cluster_guid": cluster, + "sk_dummy": f"{cluster}-{row_date}-{row_number}", + "answer_session_id" : row["Answer Session ID"], + "query_latency" : row["Average Query Latency (External)"], + "system_latency" : row["Average System Latency (Overall)"], + "connection" : row["Connection"], + "connection_id" : row["Connection ID"], + "db_auth_type" : row["DB Auth Type"], + "db_type" : row["DB Type"], + "error_message" : row["Error Message"], + "external_database_query_id" : row["External Database Query ID"], + "impressions" : row["Impressions"], + "is_billable" : row["Is Billable"], + "is_system" : row["Is System"], + "model" : row["Model"], + "model_id" : row["Model ID"], + "object" : row["Object"], + "object_id" : row["Object ID"], + "object_subtype" : row["Object Subtype"], + "object_type" : row["Object Type"], + "org" : row["Org"], + "org_id" : row["Org ID"], + "query_count" : row["Query Count"], + "query_end_time" : row["Query End Time"], + "query_errors" : row["Query Errors"], + "query_start_time" : row["Query Start Time"], + "query_status" : row["Query Status"], + "sql_query" : row["SQL Query"], + "thoughtspot_query_id" : row["ThoughtSpot Query ID"], + "thoughtspot_start_time" : row["ThoughtSpot Start Time"], + "credits" : row["Total Credits"], + "nums_rows_fetched" : row["Total Nums Rows Fetched"], + "trace_id" : row["Trace ID"], + "user" : row["User"], + "user_action" : row["User Action"], + "user_action_count" : row["User Action Count"], + "user_count" : row["User Count"], + "user_display_name" : row["User Display Name"], + "user_id" : row["User ID"], + "visualization_id" : row["Visualization ID"], + } + ).model_dump() + ) + + seen.add(unique) + + return reshaped \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/app.py b/cs_tools/cli/tools/searchable/app.py index cc2395f9..425b7ee6 100644 --- a/cs_tools/cli/tools/searchable/app.py +++ b/cs_tools/cli/tools/searchable/app.py @@ -375,6 +375,8 @@ def metadata( """ ts = ctx.obj.thoughtspot + print(ts.__dict__.get('config').thoughtspot.concurrency) + if not ts.session_context.user.is_admin: log.warning("Searchable is meant to be run from an Admin-level context, your results may vary..") @@ -773,3 +775,103 @@ def tml( syncer.dump(models.MetadataTML.__tablename__, data=rows) return 0 + +@app.command() +@depends_on(thoughtspot=ThoughtSpot()) +def ts_ai_stats( + ctx: typer.Context, + syncer: Syncer = typer.Option( + ..., + click_type=custom_types.Syncer(models=[models.AIStats]), + help="protocol and path for options to pass to the syncer", + rich_help_panel="Syncer Options", + ), + from_date: custom_types.Date = typer.Option(..., help="inclusive lower bound of rows to select from TS: BI Server"), + to_date: custom_types.Date = typer.Option(..., help="inclusive upper bound of rows to select from TS: BI Server"), + org_override: str = typer.Option(None, "--org", help="The Org to switch to before performing actions."), + compact: bool = typer.Option(True, "--compact / --full", help="If compact, add [User Action] != {null} 'invalid'"), +) -> _types.ExitCode: + """ + Extract query performance metrics for each query made against an external database + + To extract one day of data, set [b cyan]--from-date[/] and [b cyan]--to-date[/] to the same value. + \b + Fields extracted from TS: AI and BI Stats + - Answer Session ID - Average Query Latency (External) - Average System Latency (Overall) - Impressions + - Connection - Connection ID - DB Auth Type - Is System + - DB Type - Error Message - External Database Query ID - Is Billable + - Model - Model ID - Object - Object ID + - Object Subtype - Object Type - Org - Org ID + - Query Count - Query End Time - Query Errors - Query Start Time + - Query Status - SQL Query - ThoughtSpot Query ID - ThoughtSpot Start Time + - Total Credits - Total Nums Rows Fetched - Trace ID - User + - User Action - User Action Count - User Count - User Display Name + - User ID - Visualization ID + """ + assert isinstance(from_date, dt.date), f"Could not coerce from_date '{from_date}' to a date." + assert isinstance(to_date, dt.date), f"Could not coerce to_date '{to_date}' to a date." + ts = ctx.obj.thoughtspot + + CLUSTER_UUID = ts.session_context.thoughtspot.cluster_id + + TZ_UTC = zoneinfo.ZoneInfo("UTC") + TS_AI_TIMEZONE = TZ_UTC if ts.session_context.thoughtspot.is_cloud else ts.session_context.thoughtspot.timezone + print(f"TS_AI_TIMEZONE -> {TS_AI_TIMEZONE}") + + if syncer.protocol == "falcon": + log.error("Falcon Syncer is not supported for TS: AI Server reflection.") + models.AIStats.__table__.drop(syncer.engine) + return 1 + + if (to_date - from_date) > dt.timedelta(days=31): # type: ignore[operator] + log.warning("Due to how the Search API functions, it's recommended to request no more than 1 month at a time.") + + # DEV NOTE: @boonhapus + # As of 9.10.0.cl , TS: BI Server only resides in the Primary Org(0), so switch to it + if ts.session_context.thoughtspot.is_orgs_enabled: + ts.switch_org(org_id=0) + + if org_override is not None: + c = workflows.metadata.fetch_one(identifier=org_override, metadata_type="ORG", attr_path="id", http=ts.api) + _ = utils.run_sync(c) + org_override = _ + + SEARCH_DATA_DATE_FMT = "%m/%d/%Y" + SEARCH_TOKENS = ( + "[Query Start Time] [Query Start Time].detailed [Query End Time] [Query End Time].detailed [Org]" + "[Query Status] [Connection] [User] [Nums Rows Fetched] [ThoughtSpot Query ID] [Is Billable] [ThoughtSpot Start Time]" + "[ThoughtSpot Start Time].detailed [User Action] [Is System] [Visualization ID] [External Database Query ID] [Query Latency (External)] " + "[Object] [User ID] [Org ID] [Credits] [Impressions] [Query Count] [Query Errors] [System Latency (Overall)] [User Action Count]" + "[User Action Count] [User Count] [Answer Session ID] [Connection ID] [DB Auth Type] [DB Type] [Error Message] [Model]" + "[Model ID] [Object ID] [Object Subtype] [Object Type] [SQL Query] [User Display Name] [Trace ID]" + "[ThoughtSpot Start Time].detailed [ThoughtSpot Start Time] != 'today'" + # FOR DATA QUALITY PURPOSES + # CONDITIONALS BASED ON CLI OPTIONS OR ENVIRONMENT + + ("" if not compact else " [user action] != [user action].invalid [user action].{null}") + + ("" if from_date is None else f" [ThoughtSpot Start Time] >= '{from_date.strftime(SEARCH_DATA_DATE_FMT)}'") + + ("" if to_date is None else f" [ThoughtSpot Start Time] <= '{to_date.strftime(SEARCH_DATA_DATE_FMT)}'") + + ("" if not ts.session_context.thoughtspot.is_orgs_enabled else " [org id]") + + ("" if org_override is None else f" [org id] = {org_override}") + ) + + TOOL_TASKS = [ + px.WorkTask(id="SEARCH", description="Fetching data from ThoughtSpot"), + px.WorkTask(id="CLEAN", description="Transforming API results"), + px.WorkTask(id="DUMP_DATA", description=f"Sending data to {syncer.name}"), + ] + + # DEV NOTE: @saurabhsingh1608. 09/15/2025 + # Currently worksheet name is "TS: AI and BI Stats (Beta)" change it in future as need arise + + with px.WorkTracker("Fetching TS: AI and BI Stats", tasks=TOOL_TASKS) as tracker: + with tracker["SEARCH"]: + c = workflows.search(worksheet="TS: AI and BI Stats (Beta)", query=SEARCH_TOKENS, timezone=TS_AI_TIMEZONE, http=ts.api) + _ = utils.run_sync(c) + + with tracker["CLEAN"]: + d = api_transformer.ts_ai_stats(data=_, cluster=CLUSTER_UUID) + + with tracker["DUMP_DATA"]: + syncer.dump("ts_ai_stats", data=d) + + return 0 \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/models.py b/cs_tools/cli/tools/searchable/models.py index 49ffb6bd..45f9a688 100644 --- a/cs_tools/cli/tools/searchable/models.py +++ b/cs_tools/cli/tools/searchable/models.py @@ -365,6 +365,72 @@ def export_reserved_characters_are_escaped(self, query_text: Optional[str]) -> O return query_text +class AIStats(ValidatedSQLModel, table=True): + __tablename__ = "ts_ai_stats" + cluster_guid: str = Field(primary_key=True) + sk_dummy: str = Field(primary_key=True) + answer_session_id : Optional[str] + query_latency : Optional[int] + system_latency : Optional[int] + connection : Optional[str] + connection_id : Optional[str] + db_auth_type : Optional[str] + db_type : Optional[str] + error_message : Optional[str] + external_database_query_id : Optional[str] + impressions : Optional[int] + is_billable : Optional[bool] + is_system : Optional[bool] + model : Optional[str] + model_id : Optional[str] + object : Optional[str] + object_id : Optional[str] + object_subtype : Optional[str] + object_type : Optional[str] + org : Optional[str] + org_id: int = 0 + query_count : Optional[int] + query_end_time : dt.datetime = Field(sa_column = Column(TIMESTAMP)) + query_errors : Optional[int] + query_start_time : dt.datetime = Field(sa_column =Column(TIMESTAMP)) + query_status : Optional[str] + sql_query : Optional[str] = Field(sa_column = Column(Text, info = {"length_override": "MAX"})) + thoughtspot_query_id :Optional[str] + thoughtspot_start_time : dt.datetime = Field(sa_column =Column(TIMESTAMP)) + credits : Optional[int] + nums_rows_fetched : Optional[int] + trace_id : Optional[str] + user : Optional[str] + user_action : Optional[str] + user_action_count : Optional[int] + user_count : Optional[int] + user_display_name : Optional[str] + user_id : Optional[str] + visualization_id : Optional[str] + + + @pydantic.field_validator("thoughtspot_start_time", mode="before") + @classmethod + def check_valid_utc_datetime(cls, value: Any) -> dt.datetime: + return validators.ensure_datetime_is_utc.func(value) + + @pydantic.field_validator("user_action", mode="after") + @classmethod + def ensure_is_case_sensitive_thoughtspot_enum_value(cls, value: Optional[str]) -> Optional[str]: + # Why not Annotated[str, pydantic.StringContraints(to_upper=True)] ? + # sqlmodel#67: https://github.com/tiangolo/sqlmodel/issues/67 + return None if value is None else value.upper() + + @pydantic.field_serializer("sql_query") + def export_reserved_characters_are_escaped(self, sql_query: Optional[str]) -> Optional[str]: + if sql_query is None: + return sql_query + reserved_characters = ("\\",) + + for character in reserved_characters: + sql_query = sql_query.replace(character, f"\\{character}") + + return sql_query METADATA_MODELS = [ Cluster, diff --git a/cs_tools/thoughtspot.py b/cs_tools/thoughtspot.py index 59682354..2dcb9728 100644 --- a/cs_tools/thoughtspot.py +++ b/cs_tools/thoughtspot.py @@ -28,7 +28,7 @@ def __init__(self, config: CSToolsConfig, auto_login: bool = False): self.config = config self.api = RESTAPIClient( base_url=str(config.thoughtspot.url), - concurrency=15, + concurrency= 15 if config.thoughtspot.concurrency is None else config.thoughtspot.concurrency, # cache_directory=config.temp_dir, verify=not config.thoughtspot.disable_ssl, proxy=config.thoughtspot.proxy, From 030e2e43a7851fd20c0b363a58082a1ecabe3485 Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 Date: Fri, 19 Sep 2025 14:32:56 +0530 Subject: [PATCH 4/8] Update app.py Co-Authored-By: Sumeet(Sam) <33768055+SameerJain901@users.noreply.github.com> --- cs_tools/cli/tools/searchable/app.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cs_tools/cli/tools/searchable/app.py b/cs_tools/cli/tools/searchable/app.py index 425b7ee6..9abfef68 100644 --- a/cs_tools/cli/tools/searchable/app.py +++ b/cs_tools/cli/tools/searchable/app.py @@ -375,8 +375,6 @@ def metadata( """ ts = ctx.obj.thoughtspot - print(ts.__dict__.get('config').thoughtspot.concurrency) - if not ts.session_context.user.is_admin: log.warning("Searchable is meant to be run from an Admin-level context, your results may vary..") From 165ffcfb0234d383acf029d2e14f0f02f1cdcf43 Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 Date: Fri, 19 Sep 2025 14:34:06 +0530 Subject: [PATCH 5/8] Update pyproject.toml Co-Authored-By: Sumeet(Sam) <33768055+SameerJain901@users.noreply.github.com> --- pyproject.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 867dbb7f..57a50932 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,10 +56,6 @@ dependencies = [ "exceptiongroup; python_version < '3.11.0'", "strenum; python_version < '3.11.0'", "taskgroup; python_version < '3.11.0'", - "typer>=0.12.0", - "prompt-toolkit>=3.0.47", - "textual-serve>=1.1.1", - "snowflake-sqlalchemy>=1.7.4", ] [project.urls] @@ -216,4 +212,4 @@ sqlmodel = "sm" combine-as-imports = true force-wrap-aliases = true from-first = true -required-imports = ["from __future__ import annotations"] +required-imports = ["from __future__ import annotations"] \ No newline at end of file From 68b84ce955c818d208092f0dfafdb51e4ce75019 Mon Sep 17 00:00:00 2001 From: saurabhsingh2974 <164007629+saurabhsingh2974@users.noreply.github.com> Date: Fri, 19 Sep 2025 16:12:36 +0530 Subject: [PATCH 6/8] Update uv.lock --- uv.lock | 209 ++++---------------------------------------------------- 1 file changed, 12 insertions(+), 197 deletions(-) diff --git a/uv.lock b/uv.lock index 0c336290..95ae6e4b 100644 --- a/uv.lock +++ b/uv.lock @@ -1,9 +1,5 @@ version = 1 requires-python = ">=3.9.2" -resolution-markers = [ - "python_full_version >= '3.10'", - "python_full_version < '3.10'", -] [[package]] name = "aiohappyeyeballs" @@ -173,15 +169,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 }, ] -[[package]] -name = "asn1crypto" -version = "1.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/cf/d547feed25b5244fcb9392e288ff9fdc3280b10260362fc45d37a798a6ee/asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c", size = 121080 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67", size = 105045 }, -] - [[package]] name = "async-timeout" version = "5.0.1" @@ -285,34 +272,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 }, ] -[[package]] -name = "boto3" -version = "1.38.36" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "botocore" }, - { name = "jmespath" }, - { name = "s3transfer" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c4/22/df130d30dcc73b726c3d254ed855806853b86b987052517337587085b6db/boto3-1.38.36.tar.gz", hash = "sha256:efe0aaa060f8fedd76e5c942055f051aee0432fc722d79d8830a9fd9db83593e", size = 111823 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/ce/f609adc7dfd53792a9b704aa1241f8e5f34c21a5364f64b114d7874f8327/boto3-1.38.36-py3-none-any.whl", hash = "sha256:34c27d7317cadb62c0e9856e5d5aa0271ef47202d340584831048bc7ac904136", size = 139938 }, -] - -[[package]] -name = "botocore" -version = "1.38.36" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jmespath" }, - { name = "python-dateutil" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2e/15/d218917f2d568f6fa92ad3831b31ecc4ee514d775a142385aa87c672bc08/botocore-1.38.36.tar.gz", hash = "sha256:4a1ced1a4218bdff0ed5b46abb54570d473154ddefafa5d121a8d96e4b76ebc1", size = 13966245 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/75/2d/3ccc58837b3ed8322a15b9fd94114a326e6ab29d36a37508aadf9cf7808e/botocore-1.38.36-py3-none-any.whl", hash = "sha256:b6a50b853f6d23af9edfed89a59800c6bc1687a947cdd3492879f7d64e002d30", size = 13623866 }, -] - [[package]] name = "certifi" version = "2025.1.31" @@ -476,14 +435,14 @@ wheels = [ [[package]] name = "click" -version = "8.1.7" +version = "8.1.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 }, ] [[package]] @@ -573,7 +532,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/91/4c/45dfa6829acffa344e3967d6006ee4ae8be57af746ae2eba1c431949b32c/cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02", size = 710657 } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/09/8cc67f9b84730ad330b3b72cf867150744bf07ff113cda21a15a1c6d2c7c/cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123", size = 6541833 }, { url = "https://files.pythonhosted.org/packages/7e/5b/3759e30a103144e29632e7cb72aec28cedc79e514b2ea8896bb17163c19b/cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092", size = 3922710 }, { url = "https://files.pythonhosted.org/packages/5f/58/3b14bf39f1a0cfd679e753e8647ada56cddbf5acebffe7db90e184c76168/cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f", size = 4137546 }, { url = "https://files.pythonhosted.org/packages/98/65/13d9e76ca19b0ba5603d71ac8424b5694415b348e719db277b5edc985ff5/cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb", size = 3915420 }, @@ -581,9 +539,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/ea/af65619c800ec0a7e4034207aec543acdf248d9bffba0533342d1bd435e1/cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543", size = 3932569 }, { url = "https://files.pythonhosted.org/packages/c7/af/d1deb0c04d59612e3d5e54203159e284d3e7a6921e565bb0eeb6269bdd8a/cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e", size = 4016721 }, { url = "https://files.pythonhosted.org/packages/bd/69/7ca326c55698d0688db867795134bdfac87136b80ef373aaa42b225d6dd5/cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e", size = 4240915 }, - { url = "https://files.pythonhosted.org/packages/ef/d4/cae11bf68c0f981e0413906c6dd03ae7fa864347ed5fac40021df1ef467c/cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053", size = 2757925 }, - { url = "https://files.pythonhosted.org/packages/64/b1/50d7739254d2002acae64eed4fc43b24ac0cc44bf0a0d388d1ca06ec5bb1/cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd", size = 3202055 }, - { url = "https://files.pythonhosted.org/packages/11/18/61e52a3d28fc1514a43b0ac291177acd1b4de00e9301aaf7ef867076ff8a/cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591", size = 6542801 }, { url = "https://files.pythonhosted.org/packages/1a/07/5f165b6c65696ef75601b781a280fc3b33f1e0cd6aa5a92d9fb96c410e97/cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7", size = 3922613 }, { url = "https://files.pythonhosted.org/packages/28/34/6b3ac1d80fc174812486561cf25194338151780f27e438526f9c64e16869/cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc", size = 4137925 }, { url = "https://files.pythonhosted.org/packages/d0/c7/c656eb08fd22255d21bc3129625ed9cd5ee305f33752ef2278711b3fa98b/cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289", size = 3915417 }, @@ -591,42 +546,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a2/cd/2f3c440913d4329ade49b146d74f2e9766422e1732613f57097fea61f344/cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c", size = 3932331 }, { url = "https://files.pythonhosted.org/packages/7f/df/8be88797f0a1cca6e255189a57bb49237402b1880d6e8721690c5603ac23/cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64", size = 4017372 }, { url = "https://files.pythonhosted.org/packages/af/36/5ccc376f025a834e72b8e52e18746b927f34e4520487098e283a719c205e/cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285", size = 4239657 }, - { url = "https://files.pythonhosted.org/packages/46/b0/f4f7d0d0bcfbc8dd6296c1449be326d04217c57afb8b2594f017eed95533/cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417", size = 2758672 }, - { url = "https://files.pythonhosted.org/packages/97/9b/443270b9210f13f6ef240eff73fd32e02d381e7103969dc66ce8e89ee901/cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede", size = 3202071 }, - { url = "https://files.pythonhosted.org/packages/77/d4/fea74422326388bbac0c37b7489a0fcb1681a698c3b875959430ba550daa/cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731", size = 3338857 }, { url = "https://files.pythonhosted.org/packages/1a/aa/ba8a7467c206cb7b62f09b4168da541b5109838627f582843bbbe0235e8e/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4", size = 3850615 }, { url = "https://files.pythonhosted.org/packages/89/fa/b160e10a64cc395d090105be14f399b94e617c879efd401188ce0fea39ee/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756", size = 4081622 }, { url = "https://files.pythonhosted.org/packages/47/8f/20ff0656bb0cf7af26ec1d01f780c5cfbaa7666736063378c5f48558b515/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c", size = 3867546 }, { url = "https://files.pythonhosted.org/packages/38/d9/28edf32ee2fcdca587146bcde90102a7319b2f2c690edfa627e46d586050/cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa", size = 4090937 }, - { url = "https://files.pythonhosted.org/packages/cc/9d/37e5da7519de7b0b070a3fedd4230fe76d50d2a21403e0f2153d70ac4163/cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c", size = 3128774 }, ] [[package]] name = "cs-tools" -version = "1.6.4" +version = "1.6.3" source = { editable = "." } dependencies = [ { name = "aiosqlite" }, { name = "awesomeversion" }, { name = "betterproto", extra = ["compiler"] }, - { name = "click" }, { name = "email-validator" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "httpx" }, { name = "packaging" }, - { name = "prompt-toolkit" }, { name = "pydantic" }, { name = "pydantic-settings" }, { name = "rich" }, - { name = "snowflake-sqlalchemy" }, { name = "sqlmodel" }, { name = "strenum", marker = "python_full_version < '3.11'" }, { name = "taskgroup", marker = "python_full_version < '3.11'" }, { name = "tenacity" }, - { name = "textual-serve" }, { name = "thoughtspot-tml" }, { name = "toml" }, - { name = "typer" }, { name = "typing-extensions", marker = "python_full_version < '3.10'" }, { name = "tzdata", marker = "sys_platform == 'win32'" }, ] @@ -670,7 +616,6 @@ requires-dist = [ { name = "aiosqlite" }, { name = "awesomeversion" }, { name = "betterproto", extras = ["compiler"], specifier = "==2.0.0b6" }, - { name = "click", specifier = "==8.1.7" }, { name = "coverage", extras = ["toml"], marker = "extra == 'dev'" }, { name = "email-validator" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, @@ -682,7 +627,6 @@ requires-dist = [ { name = "mypy", marker = "extra == 'dev'" }, { name = "packaging" }, { name = "pre-commit", marker = "extra == 'dev'" }, - { name = "prompt-toolkit", specifier = ">=3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'cli'", specifier = "==3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'dev'", specifier = "==3.0.47" }, { name = "prompt-toolkit", marker = "extra == 'docs'", specifier = "==3.0.47" }, @@ -690,9 +634,8 @@ requires-dist = [ { name = "pydantic-settings" }, { name = "pytest", marker = "extra == 'dev'" }, { name = "python-slugify", extras = ["unidecode"], marker = "extra == 'docs'" }, - { name = "rich", specifier = "==13.7.1" }, + { name = "rich", specifier = ">=13.7.1" }, { name = "ruff", marker = "extra == 'dev'" }, - { name = "snowflake-sqlalchemy", specifier = ">=1.7.4" }, { name = "sqlmodel", specifier = ">=0.0.16" }, { name = "strenum", marker = "python_full_version < '3.11'" }, { name = "taskgroup", marker = "python_full_version < '3.11'" }, @@ -701,13 +644,11 @@ requires-dist = [ { name = "textual", extras = ["syntax"], marker = "extra == 'dev'", specifier = "==1.0.0" }, { name = "textual", extras = ["syntax"], marker = "extra == 'docs'", specifier = "==1.0.0" }, { name = "textual-dev", marker = "extra == 'dev'", specifier = ">=1.7.0" }, - { name = "textual-serve", specifier = ">=1.1.1" }, { name = "textual-serve", marker = "extra == 'cli'", specifier = "==1.1.1" }, { name = "textual-serve", marker = "extra == 'dev'", specifier = "==1.1.1" }, { name = "textual-serve", marker = "extra == 'docs'", specifier = "==1.1.1" }, { name = "thoughtspot-tml" }, { name = "toml" }, - { name = "typer", specifier = ">=0.12.0" }, { name = "typer", marker = "extra == 'cli'", specifier = "==0.12.0" }, { name = "typer", marker = "extra == 'dev'", specifier = "==0.12.0" }, { name = "typer", marker = "extra == 'docs'", specifier = "==0.12.0" }, @@ -1162,15 +1103,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 }, ] -[[package]] -name = "jmespath" -version = "1.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, -] - [[package]] name = "keyring" version = "25.6.0" @@ -1972,15 +1904,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, ] -[[package]] -name = "pyjwt" -version = "2.10.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 }, -] - [[package]] name = "pymdown-extensions" version = "10.14.3" @@ -1994,19 +1917,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/eb/f5/b9e2a42aa8f9e34d52d66de87941ecd236570c7ed2e87775ed23bbe4e224/pymdown_extensions-10.14.3-py3-none-any.whl", hash = "sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9", size = 264467 }, ] -[[package]] -name = "pyopenssl" -version = "25.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/8c/cd89ad05804f8e3c17dea8f178c3f40eeab5694c30e0c9f5bcd49f576fc3/pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b", size = 179937 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/28/2659c02301b9500751f8d42f9a6632e1508aa5120de5e43042b8b30f8d5d/pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab", size = 56771 }, -] - [[package]] name = "pytest" version = "8.3.4" @@ -2062,15 +1972,6 @@ unidecode = [ { name = "unidecode" }, ] -[[package]] -name = "pytz" -version = "2025.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, -] - [[package]] name = "pywin32-ctypes" version = "0.2.3" @@ -2247,15 +2148,16 @@ wheels = [ [[package]] name = "rich" -version = "13.7.1" +version = "13.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/01/c954e134dc440ab5f96952fe52b4fdc64225530320a910473c1fe270d9aa/rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432", size = 221248 } +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", size = 240681 }, + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, ] [[package]] @@ -2283,18 +2185,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/75/d9/fde7610abd53c0c76b6af72fc679cb377b27c617ba704e25da834e0a0608/ruff-0.9.5-py3-none-win_arm64.whl", hash = "sha256:18a29f1a005bddb229e580795627d297dfa99f16b30c7039e73278cf6b5f9fa9", size = 10064595 }, ] -[[package]] -name = "s3transfer" -version = "0.13.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "botocore" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/5d/9dcc100abc6711e8247af5aa561fc07c4a046f72f659c3adea9a449e191a/s3transfer-0.13.0.tar.gz", hash = "sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177", size = 150232 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/18/17/22bf8155aa0ea2305eefa3a6402e040df7ebe512d1310165eda1e233c3f8/s3transfer-0.13.0-py3-none-any.whl", hash = "sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be", size = 85152 }, -] - [[package]] name = "secretstorage" version = "3.3.3" @@ -2335,81 +2225,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] -[[package]] -name = "snowflake-connector-python" -version = "3.15.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "asn1crypto" }, - { name = "boto3" }, - { name = "botocore" }, - { name = "certifi" }, - { name = "cffi" }, - { name = "charset-normalizer" }, - { name = "cryptography" }, - { name = "filelock" }, - { name = "idna" }, - { name = "packaging" }, - { name = "platformdirs" }, - { name = "pyjwt" }, - { name = "pyopenssl" }, - { name = "pytz" }, - { name = "requests" }, - { name = "sortedcontainers" }, - { name = "tomlkit" }, - { name = "typing-extensions" }, - { name = "urllib3", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/99/ff/7c1b2cbb5a43b21abebfa58c83926266e9f5ea05123e795753da6ce84f96/snowflake_connector_python-3.15.0.tar.gz", hash = "sha256:1ef52e2fb3ecc295139737d3d759f85d962ef7278c6990c3bd9c17fcb82508d6", size = 774355 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/97/eb/9c01764355928258f57663e8f9eacf608b8e03dc093cbcb69244e2ad5de8/snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef92f4ceb61b6a7373ec417f7201d288a6a5a3a42b7e789d3b2221b4dff5ed3c", size = 989157 }, - { url = "https://files.pythonhosted.org/packages/5e/b1/35b31eb3b3303f1d29815a8b28e89d399ea2600933f5a6343943f851c2bd/snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:d33bd2b326d6ea4d49e0cd821f75b3c5f2910be21f4575c1a03d272af78af767", size = 1001262 }, - { url = "https://files.pythonhosted.org/packages/da/e4/7d0a22fd535e15f9625b5726a2a80d53fcb30eb658defff71f93bd536f7c/snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56fe48836c5dcda71b951f3f586c036631f7e3d17c3e201489c56974eea5e665", size = 2565688 }, - { url = "https://files.pythonhosted.org/packages/2b/47/1d5bff17d6237f0d0863eae6cfeb85b92a1ec2e95ffae579b0b5b0886e2e/snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9345591a62e99f811af6dca758fde873660ced3b4e60a77716f6f2d75b609fd9", size = 2589247 }, - { url = "https://files.pythonhosted.org/packages/79/fe/c0a84498ede55fd48bf21beb855e5a9b0d1cc76b3c8210a989de990b533b/snowflake_connector_python-3.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:21243f2296ceeb238eff871443379665f72125c2086032b40e85ff576df8cc0a", size = 948426 }, - { url = "https://files.pythonhosted.org/packages/af/e6/813f6b299f23f952996da4b4f0f8dade52d5b0f5db516c957b236120cee8/snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6c22820806b43c9f9c5ae3c7758307fb668c42b7ddf74d995b2f0d2da21f08e", size = 989306 }, - { url = "https://files.pythonhosted.org/packages/3e/cf/38dd6ef6bb1a01ab591986b6b903df7f9f4dbb2467b058bebb6ddd4342a3/snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:f83b2e08d29f1bb61c7152bf87f0b8a9e77ee25f09e506f69085a365fe8825df", size = 1001394 }, - { url = "https://files.pythonhosted.org/packages/53/cf/fbf21bc506c032d4a104faf0ced7cbbe6dfecc13e96dd1e211b9c48a08c0/snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbd35265af54ad045cadbed5bfbc76816d2e4d95902f3312365d54c08a33ec3", size = 2590253 }, - { url = "https://files.pythonhosted.org/packages/30/5e/3b325c21e91df06b1868c791f384efd44b142c6d777f9c9322148ccb0a05/snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b8757b6206982e784a8f9f24a6fd3de4849e37113788ef677373b6b18907e91", size = 2612009 }, - { url = "https://files.pythonhosted.org/packages/42/d3/9e5125f3a5dac2b8327ad3cb0268842deda8e0b28263320ca752926ce3b2/snowflake_connector_python-3.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:f8994bcfdcd4915b0a365969346939d17ee03e041202048c0d108629bd598d4d", size = 948541 }, - { url = "https://files.pythonhosted.org/packages/bc/be/9b0573ccca48ea97677f326bd367804416691130cd1b9ef84968e8620ae3/snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8f41ab707792b07c58214b13e7a6b50d4460f7151e19ea80df3612c92d3a7b76", size = 988559 }, - { url = "https://files.pythonhosted.org/packages/21/d7/6021da04416be8a07a6063038c9d532f583e59cfd14f1bf80bcee34d1f76/snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:d2f0bb00a48c4125090dfe2e8bd15f9389be7867fd9e3c118ecb8dc87c69bcb8", size = 999857 }, - { url = "https://files.pythonhosted.org/packages/1b/de/d4fbd1cfc89e61614ee1963edcd9711369cb6ffea63c4c8d68c3fb248e1a/snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:457408eeb4116f73df60bb912fdeb7f6d4849e2cfd7e282b2afb25f080f20188", size = 2602453 }, - { url = "https://files.pythonhosted.org/packages/92/09/6656444e9ff6d83bd1b2c73d1f6b6aab78ff67889e6e3744c8462c74c76f/snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e93f67712260a11ae3bb858c567be805aca5f96d042ff5feacea102a33b49f", size = 2626597 }, - { url = "https://files.pythonhosted.org/packages/c5/04/0b2edacbc7192d8d6a04ca17b81900099c835279157f05c2bac971dc77d2/snowflake_connector_python-3.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:acbceae9120502613991b9997d94cc23ea7e76cdfc3601718025f9f0859cc21e", size = 947264 }, - { url = "https://files.pythonhosted.org/packages/e7/b7/ca38fd1494918e47d23eaa7e3ce883bde5481e7031968894208d5cf726d4/snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52dbe588f7784f194caa739cb394557b81d150f21841d3b51d6d164f1b2e90c0", size = 988902 }, - { url = "https://files.pythonhosted.org/packages/3a/79/22fddcfece8a9813f953b5300e6795ff2cf1744afd0d162001fecffb681a/snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:fcf4090514cc4c8be8f11573b7ed19f6fe6339048271cbdbc18c50a608b57655", size = 1000262 }, - { url = "https://files.pythonhosted.org/packages/9e/bb/7b4d3ea222cbda0f2c2e1825d3599d93512d000bb6c7eecb2a82b6c32511/snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64418f6055789a6d1393dfbd3a609e126a88cd015065fad1923ef7b6f4b8dd61", size = 2607481 }, - { url = "https://files.pythonhosted.org/packages/a0/f4/8c820711011b3638c6992609698bcc67dbfb16e93141573e91048f99b505/snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9df04e2294605d1e243793b5d889a250d6a301fea8b25c7a84703e3a709a96c", size = 2632032 }, - { url = "https://files.pythonhosted.org/packages/f7/6a/edb52a71b53b9d6d0208ebf47bbe96dab3979da01b6f74eda43232cc1fc2/snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ecc5f570000ad957e09517d317ca07645ece77ca9befc88797439164e632738d", size = 989831 }, - { url = "https://files.pythonhosted.org/packages/74/26/dd71a6396b7d606a171433247ae837ae8eb728f4d14971c837f6d3e3a6c0/snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:49e68d5130f17bde2de82bf1c7298803b4ec5bfb926a5daa9001542d710026bc", size = 1001799 }, - { url = "https://files.pythonhosted.org/packages/e2/cb/f965db23e288e8311439adb2b5ee64bc7bb7fa4adcdc34d391ccda92c477/snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:698d9dbdd8873daaae01a46ca5d57caf3e4637a30a6afe5ca54cd0c460c359fd", size = 2566380 }, - { url = "https://files.pythonhosted.org/packages/e9/7c/86f80dddf7e895ee4174d0061492b83bfddb346416c071f8d680a147c76f/snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04cadd3dae180a5f3632347c2a5836de7ac20fbdf8cb5192e021cad098c85247", size = 2589346 }, - { url = "https://files.pythonhosted.org/packages/82/db/fcd16bb08f478016309a5527f8f03522e2ee1b55a89839ca6b92d6fd9adb/snowflake_connector_python-3.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:0a97deeadfe746fb88475cb83498650e68cf051969476ea498f572e40d49ce96", size = 949123 }, -] - -[[package]] -name = "snowflake-sqlalchemy" -version = "1.7.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "snowflake-connector-python" }, - { name = "sqlalchemy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/68/7181c1cc714335f48f3c2685eed392045e9542aa6b1010462200b9921498/snowflake_sqlalchemy-1.7.4.tar.gz", hash = "sha256:a509ca0f11c5b19a242157189ad20a3ee9598aa391fcbac3ae3e6cf53251a6cb", size = 119579 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/5b/11f75dabb2fd0320ac73409963284723a9b14e3a7a90dbe9a6263ea1f50c/snowflake_sqlalchemy-1.7.4-py3-none-any.whl", hash = "sha256:52e14adf13640ff5543c32a4f0600fdb1e49c5862413ba5e27b08693c8676f82", size = 70507 }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, -] - [[package]] name = "sqlalchemy" version = "2.0.38" @@ -3030,11 +2845,11 @@ wheels = [ [[package]] name = "urllib3" -version = "1.26.20" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/e8/6ff5e6bc22095cfc59b6ea711b687e2b7ed4bdb373f7eeec370a97d7392f/urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32", size = 307380 } +sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", size = 144225 }, + { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, ] [[package]] From cd7f3f1341131cbc594099dbec776373ce3163dd Mon Sep 17 00:00:00 2001 From: TS-sumeet-jain <168583077+TS-sumeet-jain@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:06:43 +0530 Subject: [PATCH 7/8] Update to ThoughtSpot TML, Searchable and Concurrency - Version bump to 1.6.5 - Fixed snowflake syncer privatelink issue - Thoughtspot-TML issue fixed - Searchable Deploy now support 10.13+ --- cs_tools/__project__.py | 2 +- .../CS Tools ~ BI Server Advanced.model.tml | 366 ++++++++++ ...S Tools ~ BI Server Advanced.worksheet.tml | 344 --------- ...Tools ~ ThoughtSpot Adoption.liveboard.tml | 655 ++++++++++-------- ...Worksheet Column Utilization.liveboard.tml | 339 +++++---- ...s ~ Worksheet Column Utilization.model.tml | 266 +++++++ ...Worksheet Column Utilization.worksheet.tml | 470 ------------- .../searchable/static/TS_BI_SERVER.table.tml | 3 + .../searchable/static/TS_BI_SERVER.view.tml | 3 + .../searchable/static/TS_CLUSTER.table.tml | 3 + .../static/TS_COLUMN_SYNONYM.table.tml | 3 + .../static/TS_DATA_SOURCE.table.tml | 3 + .../static/TS_DEPENDENT_OBJECT.table.tml | 9 + .../searchable/static/TS_GROUP.table.tml | 3 + .../static/TS_GROUP_MEMBERSHIP.table.tml | 3 + .../static/TS_GROUP_PRIVILEGE.table.tml | 3 + .../static/TS_METADATA_COLUMN.table.tml | 3 + .../static/TS_METADATA_OBJECT.table.tml | 9 + .../tools/searchable/static/TS_ORG.table.tml | 3 + .../static/TS_ORG_MEMBERSHIP.table.tml | 3 + .../static/TS_SHARING_ACCESS.table.tml | 6 + .../tools/searchable/static/TS_TAG.table.tml | 3 + .../static/TS_TAGGED_OBJECT.table.tml | 3 + .../tools/searchable/static/TS_USER.table.tml | 3 + .../VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml | 3 + cs_tools/settings.py | 1 + cs_tools/sync/snowflake/syncer.py | 2 +- pyproject.toml | 3 +- 28 files changed, 1252 insertions(+), 1265 deletions(-) create mode 100644 cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml delete mode 100644 cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.worksheet.tml create mode 100644 cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml delete mode 100644 cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.worksheet.tml diff --git a/cs_tools/__project__.py b/cs_tools/__project__.py index 6459b467..2e991115 100644 --- a/cs_tools/__project__.py +++ b/cs_tools/__project__.py @@ -1,4 +1,4 @@ -__version__ = "1.6.4" +__version__ = "1.6.5" __docs__ = "https://thoughtspot.github.io/cs_tools/" __repo__ = "https://github.com/thoughtspot/cs_tools" __help__ = f"{__repo__}/discussions/" diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml new file mode 100644 index 00000000..0da6eb9f --- /dev/null +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml @@ -0,0 +1,366 @@ +guid: 381db1c8-688f-4620-9a45-ce9a2dea108c +model: + name: CS Tools ~ Worksheet Column Utilization + description: Show the data lineage of Worksheets and how the columns are used in the ThoughtSpot system. + model_tables: + - name: TS_METADATA_COLUMN + joins: + - with: TS_METADATA_OBJECT + referencing_join: TS_METADATA_COLUMN_to_TS_METADATA_OBJECT + - name: TS_DEPENDENT_OBJECT + joins: + - with: TS_METADATA_COLUMN + referencing_join: TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN + - with: TS_USERÞ + referencing_join: TS_DEPENDENT_OBJECT_to_TS_USER + - name: TS_BI_SERVER + joins: + - with: TS_DEPENDENT_OBJECT + referencing_join: TS_BI_SERVER_to_TS_DEPENDENT_OBJECT + type: RIGHT_OUTER + - with: TS_USER_1 + referencing_join: TS_BI_SERVER_to_TS_USER + - name: TS_COLUMN_SYNONYM + joins: + - with: TS_METADATA_COLUMN + referencing_join: TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN + - with: TS_METADATA_COLUMN_1 + referencing_join: TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN + - name: TS_METADATA_OBJECT + joins: + - with: TS_CLUSTER + referencing_join: TS_METADATA_OBJECT_to_TS_CLUSTER + - with: TS_DATA_SOURCE + referencing_join: TS_METADATA_OBJECT_to_TS_DATA_SOURCE + - with: TS_ORG + referencing_join: TS_METADATA_OBJECT_to_TS_ORG + - name: TS_ORG + - name: TS_CLUSTER + - name: TS_USER + - name: TS_METADATA_OBJECT + alias: TS_METADATA_OBJECT_1 + joins: + - with: TS_USER + referencing_join: TS_METADATA_OBJECT_to_TS_USER + - with: TS_USER_1 + referencing_join: TS_METADATA_OBJECT_to_TS_USER + - name: TS_METADATA_COLUMN + alias: TS_METADATA_COLUMN_1 + joins: + - with: TS_METADATA_OBJECT_1 + referencing_join: TS_METADATA_COLUMN_to_TS_METADATA_OBJECT + - name: TS_DATA_SOURCE + - name: TS_USER + alias: TS_USER_1 + formulas: + - id: formula_Data Exports + name: Data Exports + expr: count_if ( [TS_BI_SERVER::User Action] in { 'data_export' , 'pinboard_print_view' , 'pinboard_print_filter' , 'tspublic_data_export' } , [TS_BI_SERVER::SK_DUMMY] ) + - id: formula_Dependent Interaction Date + name: Dependent Interaction Date + expr: date ( [TS_BI_SERVER::Timestamp] ) + - id: formula_Dependent Interactions + name: Dependent Interactions + expr: count_if ( [TS_DEPENDENT_OBJECT::Dependent GUID] = [TS_BI_SERVER::ANSWER_BOOK_GUID] , [TS_BI_SERVER::SK_DUMMY] ) + - id: formula_Dependent Link + name: Dependent Link + expr: concat ( '{caption}' , [TS_DEPENDENT_OBJECT::Dependent] , '{/caption}' , [TS_CLUSTER::ThoughtSpot URL] , if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'question_answer_book' ) then '#/saved-answer/' else if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'pinboard_answer_book' ) then "#/pinboard/" else "#/data/tables/" , [TS_DEPENDENT_OBJECT::Dependent GUID] ) + - id: 'formula_Filtered: Column Parent is Worksheet' + name: 'Filtered: Column Parent is Worksheet' + expr: '[TS_METADATA_OBJECT::Object Type] = ''logical_table'' and [TS_METADATA_OBJECT::Object Subtype] in { ''worksheet'' , ''model'' }' + - id: formula_Has Synonyms + name: Has Synonyms + expr: count ( [TS_COLUMN_SYNONYM::Column Synonym] ) > 0 + - id: formula_Worksheet Link + name: Worksheet Link + expr: concat ( '{caption}' , [TS_METADATA_OBJECT::Object] , '{/caption}' , [TS_CLUSTER::ThoughtSpot URL] , '#/data/tables/' , [TS_METADATA_OBJECT::Object GUID] ) + - id: formula_fx Dependent Type + name: fx Dependent Type + expr: if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'question_answer_book' ) then 'answer' else if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'pinboard_answer_book' ) then 'liveboard' else if ( [TS_DEPENDENT_OBJECT::Dependent Subtype] = 'aggr_worksheet' ) then 'thoughtspot view' else null + filters: + - column: + - (Hidden, Filtered) Column Parent is Worksheet + oper: in + values: + - 'true' + columns: + - name: Is Additive + description: Whether or not values from this column may be aggregated together. + column_id: TS_METADATA_COLUMN::Is Additive + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + synonyms: + - Additive + synonym_type: USER_DEFINED + - name: (Hidden, Filtered) Column Parent is Worksheet + description: This column is only used for the Worksheet Filter. + formula_id: 'formula_Filtered: Column Parent is Worksheet' + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + is_hidden: true + - name: Format Pattern + description: The display format for values within a column. + column_id: TS_METADATA_COLUMN::Format Pattern + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Org + description: The organization name found in the ThoughtSpot UI, either in the switcher or on the Administrator panel. + column_id: TS_ORG::Org + properties: + column_type: ATTRIBUTE + synonyms: + - Org Name + synonym_type: USER_DEFINED + - name: Dependent Type + description: The type of Dependency, typically an Answer or Liveboard, includes all descendants of a Worksheet (Worksheet -> View -> Answer). + formula_id: formula_fx Dependent Type + properties: + column_type: ATTRIBUTE + - name: Suggestions Type + description: How ThoughtSpot can use stored values for Search recommendation purposes. + column_id: TS_METADATA_COLUMN::Suggestions Type + properties: + column_type: ATTRIBUTE + synonyms: + - Index Type + synonym_type: USER_DEFINED + - name: Default Aggregation + description: The default aggregation policy for values within this column. + column_id: TS_METADATA_COLUMN::Default Aggregation + properties: + column_type: ATTRIBUTE + synonyms: + - Aggregation + synonym_type: USER_DEFINED + - name: Currency Type + description: The display format for monetary values within a column, overrides Format Pattern and does not perform conversion. + column_id: TS_METADATA_COLUMN::Currency Type + properties: + column_type: ATTRIBUTE + - name: Worksheet Link + description: A direct URL to the Worksheet. + formula_id: formula_Worksheet Link + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + synonyms: + - Worksheet URL + synonym_type: USER_DEFINED + - name: ThoughtSpot URL + description: The web address of your ThoughtSpot platform. + column_id: TS_CLUSTER::ThoughtSpot URL + properties: + column_type: ATTRIBUTE + - name: Dependent Author Email + description: The user's registered email. + column_id: TS_USER::User Email + properties: + column_type: ATTRIBUTE + - name: Dependent Author + description: The user's display name. + column_id: TS_USER::User + properties: + column_type: ATTRIBUTE + synonyms: + - Dependent Author Display Name + synonym_type: USER_DEFINED + - name: Dependent Description + description: A user-driven field which details extra infomation about the object. + column_id: TS_DEPENDENT_OBJECT::Dependent Description + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Is Formula + description: Whether or not the column is derived within ThoughtSpot. + column_id: TS_METADATA_COLUMN::Is Formula + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Worksheet + description: An object which can be interacted with in the UI like a Table, Answer, or Liveboard. + column_id: TS_METADATA_OBJECT::Object + properties: + column_type: ATTRIBUTE + - name: Column + description: A column can be interacted with in the UI in Search, Visualizations, and Liveboards. + column_id: TS_METADATA_COLUMN::Column + properties: + column_type: ATTRIBUTE + synonyms: + - Column Name + synonym_type: USER_DEFINED + - name: Default Calendar + description: The default calendar to align to when using date keywords. + column_id: TS_METADATA_COLUMN::Default Calendar + properties: + column_type: ATTRIBUTE + - name: Suggestions Priority + description: The relative weight that this column in the suggestions list, higher numbers represent more weight. + column_id: TS_METADATA_COLUMN::Suggestions Priority + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + synonyms: + - Index Priority + synonym_type: USER_DEFINED + - name: Data Type + description: The inferred SQL data type from this column's data source. + column_id: TS_METADATA_COLUMN::Data Type + properties: + column_type: ATTRIBUTE + - name: Column Description + description: A user-driven field which details extra infomation about the column. + column_id: TS_METADATA_COLUMN::Column Description + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Worksheet Is Sage Enabled + description: Determines whether or not ThoughtSpot Sage has been enabled for this object. + column_id: TS_METADATA_OBJECT::Is Sage Enabled + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Worksheet Description + description: A user-driven field which details extra infomation about the object. + column_id: TS_METADATA_OBJECT::Object Description + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Geo Config + description: If set, allows the visualization to be plotted on a geographical chart. + column_id: TS_METADATA_COLUMN::Geo Config + properties: + column_type: ATTRIBUTE + synonyms: + - Geo Setting + synonym_type: USER_DEFINED + - name: Is Hidden + description: Whether or not the column can be seen by viewers and non-admins. + column_id: TS_METADATA_COLUMN::Is Hidden + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + synonyms: + - Hidden + synonym_type: USER_DEFINED + - name: SpotIQ Enabled + description: Whether or not the column may be used in Spot IQ analyses. + column_id: TS_METADATA_COLUMN::SpotIQ Enabled + properties: + column_type: ATTRIBUTE + synonyms: + - SpotIQ Preference + synonym_type: USER_DEFINED + - name: Is Attributable + description: Whether or not these columns represent a causal relationship when used between FACTs. + column_id: TS_METADATA_COLUMN::Is Attributable + properties: + column_type: ATTRIBUTE + synonyms: + - Attribution Dimension + synonym_type: USER_DEFINED + - name: Column Type + description: Either, Attribute - something that may be grouped by or Measure - something that may be aggregated. + column_id: TS_METADATA_COLUMN::Column Type + properties: + column_type: ATTRIBUTE + - name: Dependent + description: An object which can be interacted with in the UI like a Table, Answer, or Liveboard. + column_id: TS_DEPENDENT_OBJECT::Dependent + properties: + column_type: ATTRIBUTE + - name: Dependent Link + description: A direct URL to the Dependent. + formula_id: formula_Dependent Link + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + synonyms: + - Dependent URL + synonym_type: USER_DEFINED + - name: Dependent Interactions + description: The amount of times any User has Viewed, Edits, or Saved a Dependent. + formula_id: formula_Dependent Interactions + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + - name: Dependent Interaction Date + description: The date of when any User has Viewed, Edits, or Saved a Dependent. + formula_id: formula_Dependent Interaction Date + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Data Exports + description: The amount of times any User exported a PNG or CSV + formula_id: formula_Data Exports + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + - name: Synonym + description: An alternate name for a column. + column_id: TS_COLUMN_SYNONYM::Column Synonym + properties: + column_type: ATTRIBUTE + - name: Has Synonyms + description: Whether or not the Column has any Synonyms + formula_id: formula_Has Synonyms + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Data Source Type + description: The type of data store your data lives in. + column_id: TS_DATA_SOURCE::Data Source Type + properties: + column_type: ATTRIBUTE + synonyms: + - Connection Type + synonym_type: USER_DEFINED + - name: Data Source + description: A data source which contains Tables which can be found with in the UI. + column_id: TS_DATA_SOURCE::Data Source + properties: + column_type: ATTRIBUTE + synonyms: + - Connection + - Embrace Connection + synonym_type: USER_DEFINED + - name: Dependent Created Date + description: The datetime of when the object was initially created. + column_id: TS_DEPENDENT_OBJECT::Dependent Created At + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Dependent Last Modified Date + description: The datetime of when the object was last edited and saved. + column_id: TS_DEPENDENT_OBJECT::Dependent Modified At + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Interaction User + description: The user's display name. + column_id: TS_USER_1::User + properties: + column_type: ATTRIBUTE + synonyms: + - Interaction User Display Name + synonym_type: USER_DEFINED + - name: Interaction User Email + description: The user's registered email. + column_id: TS_USER_1::User Email + properties: + column_type: ATTRIBUTE + - name: Dependent Is Verified + description: Determines whether or not this object has been Verified. + column_id: TS_DEPENDENT_OBJECT::Dependent Is Verified + properties: + column_type: ATTRIBUTE + properties: + is_bypass_rls: false + join_progressive: true + spotter_config: + is_spotter_enabled: false diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.worksheet.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.worksheet.tml deleted file mode 100644 index 849e9b8c..00000000 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.worksheet.tml +++ /dev/null @@ -1,344 +0,0 @@ -guid: bc6cd02a-9123-43ed-aa50-f919f3d3c907 -worksheet: - name: CS Tools ~ BI Server Advanced - tables: - - name: TS_BI_SERVER - - name: TS_CLUSTER - - name: TS_DATA_SOURCE - - name: TS_DEPENDENT_OBJECT - - name: TS_GROUP - - name: TS_GROUP_MEMBERSHIP - - name: TS_METADATA_COLUMN - - name: TS_METADATA_OBJECT - - name: TS_ORG - - name: TS_USER - - name: VW_TS_BI_SERVER_ADVANCED_AUTHOR - joins: - - name: TS_BI_SERVER_to_TS_USER - source: TS_BI_SERVER - destination: TS_USER - type: LEFT_OUTER - is_one_to_one: false - - name: TS_BI_SERVER_to_TS_ORG - source: TS_BI_SERVER - destination: TS_ORG - type: LEFT_OUTER - is_one_to_one: false - - name: TS_BI_SERVER_to_TS_CLUSTER - source: TS_BI_SERVER - destination: TS_CLUSTER - type: INNER - is_one_to_one: false - - name: TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - source: TS_BI_SERVER - destination: TS_DEPENDENT_OBJECT - type: LEFT_OUTER - is_one_to_one: false - - name: TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - source: TS_DEPENDENT_OBJECT - destination: TS_METADATA_COLUMN - type: INNER - is_one_to_one: false - - name: TS_DEPENDENT_OBJECT_to_VW_TS_BI_SERVER_AUTHOR - source: TS_DEPENDENT_OBJECT - destination: VW_TS_BI_SERVER_ADVANCED_AUTHOR - type: INNER - is_one_to_one: false - - name: TS_XREF_PRINCIPAL_to_TS_USER - source: TS_GROUP_MEMBERSHIP - destination: TS_USER - type: INNER - is_one_to_one: false - - name: TS_GROUP_MEMBERSHIP_to_TS_GROUP - source: TS_GROUP_MEMBERSHIP - destination: TS_GROUP - type: INNER - is_one_to_one: false - - name: TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - source: TS_METADATA_COLUMN - destination: TS_METADATA_OBJECT - type: INNER - is_one_to_one: false - - name: TS_METADATA_OBJECT_to_TS_DATA_SOURCE - source: TS_METADATA_OBJECT - destination: TS_DATA_SOURCE - type: LEFT_OUTER - is_one_to_one: false - table_paths: - - id: TS_BI_SERVER_1 - table: TS_BI_SERVER - join_path: - - {} - - id: TS_CLUSTER_1 - table: TS_CLUSTER - join_path: - - join: - - TS_BI_SERVER_to_TS_CLUSTER - - id: TS_DATA_SOURCE_1 - table: TS_DATA_SOURCE - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_DATA_SOURCE - - id: TS_DEPENDENT_OBJECT_1 - table: TS_DEPENDENT_OBJECT - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - id: TS_GROUP_1 - table: TS_GROUP - join_path: - - join: - - TS_GROUP_MEMBERSHIP_to_TS_GROUP - - id: TS_METADATA_OBJECT_1 - table: TS_METADATA_OBJECT - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - id: TS_ORG_1 - table: TS_ORG - join_path: - - join: - - TS_BI_SERVER_to_TS_ORG - - id: TS_USER_1 - table: TS_USER - join_path: - - join: - - TS_BI_SERVER_to_TS_USER - - join: - - TS_XREF_PRINCIPAL_to_TS_USER - - id: VW_TS_BI_SERVER_ADVANCED_AUTHOR_1 - table: VW_TS_BI_SERVER_ADVANCED_AUTHOR - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_VW_TS_BI_SERVER_AUTHOR - formulas: - - name: Active Users - expr: "unique count ( [TS_BI_SERVER_1::USER_ID] )" - was_auto_generated: false - - name: Interactions - expr: "count ( [TS_BI_SERVER_1::SK_DUMMY] )" - was_auto_generated: false - - name: Latency (s) - expr: "[TS_BI_SERVER_1::Latency (us)] * 0.000001" - was_auto_generated: false - - name: Object Link - expr: "concat ( '{caption}' , [TS_DEPENDENT_OBJECT_1::Dependent] , '{/caption}' , [TS_CLUSTER_1::ThoughtSpot URL] , if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'question_answer_book' ) then '#/saved-answer/' else if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'pinboard_answer_book' ) then \"#/pinboard/\" else \"#/data/tables/\" , [TS_DEPENDENT_OBJECT_1::Dependent GUID] )" - was_auto_generated: false - - name: Object Type - expr: "if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'question_answer_book' ) then 'answer' else if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'pinboard_answer_book' ) then 'liveboard' else [TS_DEPENDENT_OBJECT_1::Dependent Type]" - was_auto_generated: false - - name: Response Size (kB) - expr: "round ( [TS_BI_SERVER_1::Response Size (b)] * 0.001 , 2 )" - was_auto_generated: false - - name: Worksheet - expr: "if ( [TS_METADATA_OBJECT_1::Object Subtype] = \"worksheet\" ) then [TS_METADATA_OBJECT_1::Object] else null" - was_auto_generated: false - - name: fx Client Type - expr: "if ( [TS_BI_SERVER_1::Client Type] = \"blink\" ) then \"classic experience\" else if ( [TS_BI_SERVER_1::Client Type] = \"blink_v2\" ) then \"new answer experience\" else if ( [TS_BI_SERVER_1::Client Type] = \"mobile\" ) then \"mobile\" else if ( [TS_BI_SERVER_1::Client Type] = \"full_embed\" ) then \"embedded thoughtspot\" else [TS_BI_SERVER_1::Client Type]" - was_auto_generated: false - - name: fx HTTP Response Status - expr: "if ( [TS_BI_SERVER_1::HTTP Response] < 400 ) then 'success' else 'error'" - was_auto_generated: false - - name: fx Interaction Timestamp - expr: "[TS_BI_SERVER_1::Timestamp]" - was_auto_generated: false - - name: fx User Action Category - expr: "if ( [TS_BI_SERVER_1::User Action] = 'answer_unsaved' ) then 'search' else if ( [TS_BI_SERVER_1::User Action] in { 'data_export' , 'pinboard_print_view' , 'pinboard_print_filter' , 'tspublic_data_export' } ) then 'data exports' else if ( [TS_BI_SERVER_1::User Action] in { 'answer_view_list' , 'answer_view_save' } ) then 'thoughtspot views' else if ( [TS_BI_SERVER_1::User Action] = 'pinboard_insight_view' ) then 'spot iq' else if ( [TS_BI_SERVER_1::User Action] in { 'answer_pinboard_context' , 'answer_viz_context_view' , 'pinboard_ad_hoc' , 'pinboard_filter' , 'pinboard_admin_view' , 'pinboard_view' , 'pinboard_tspublic_no_runtime_filter' , 'pinboard_embed_view' , 'pinboard_tspublic_runtime_filter' } ) then 'liveboards' else if ( [TS_BI_SERVER_1::User Action] in { 'answer_view' , 'answer_saved' , 'answer_add_new_filter' , 'data_show_underlying' , 'data_show_underlying_viz' , 'data_show_underlying_row' , 'data_chart_config' } ) then 'answers' else 'other'" - was_auto_generated: false - - name: fx Interaction Timestamp (Local) (Snowflake impl.) - expr: "sql_date_time_op ( \"convert_timezone ( upper('utc') , {1} , {0} )\" , [TS_BI_SERVER_1::Timestamp] , [TS_CLUSTER_1::ThoughtSpot Timezone] )" - was_auto_generated: false - worksheet_columns: - - name: Object GUID - description: "The unique identifier of the object, which can be found in the ThoughtSpot UI." - column_id: TS_DEPENDENT_OBJECT_1::Dependent GUID - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: ThoughtSpot URL - description: The web address of your ThoughtSpot platform. - column_id: TS_CLUSTER_1::ThoughtSpot URL - properties: - column_type: ATTRIBUTE - - name: Latency (s) - formula_id: Latency (s) - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - format_pattern: "0.00" - - name: Object Modified At - description: The datetime of when the object was last edited and saved. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Modified At - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Response Size (kB) - formula_id: Response Size (kB) - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - - name: Client ID - description: Unique ID of the application accessing ThoughtSpot - column_id: TS_BI_SERVER_1::Client ID - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Data Source - description: A data source which contains Tables which can be found with in the UI. - column_id: TS_DATA_SOURCE_1::Data Source - properties: - column_type: ATTRIBUTE - - name: Incident ID - description: Unique ID of the event - column_id: TS_BI_SERVER_1::Incident ID - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Search Query - description: Columns / Search Terms used to generate the query - column_id: TS_BI_SERVER_1::Search Query - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Browser Type - description: The web browser client used to access ThoughtSpot - column_id: TS_BI_SERVER_1::Browser Type - properties: - column_type: ATTRIBUTE - - name: Browser Version - description: The web browser client version used to access ThoughtSpot - column_id: TS_BI_SERVER_1::Browser Version - properties: - column_type: ATTRIBUTE - - name: Object Created At - description: The datetime of when the object was initially created. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Created At - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Org - description: "The organization name found in the ThoughtSpot UI, either in the switcher or on the Administrator panel." - column_id: TS_ORG_1::Org - properties: - column_type: ATTRIBUTE - - name: Object - description: "An object which can be interacted with in the UI like a Table, Answer, or Liveboard." - column_id: TS_DEPENDENT_OBJECT_1::Dependent - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Object Type - formula_id: Object Type - properties: - column_type: ATTRIBUTE - - name: Visualization GUID - description: "GUID of the Visualization, typically used to identify a liveboard viz" - column_id: TS_BI_SERVER_1::Visualization GUID - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: URL - description: API endpoint called as part of the event - column_id: TS_BI_SERVER_1::URL - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: User Action - description: "An event type category, describing what action the User took" - column_id: TS_BI_SERVER_1::User Action - properties: - column_type: ATTRIBUTE - - name: HTTP Response Status - formula_id: fx HTTP Response Status - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Data Source Type - description: The type of data store your data lives in. - column_id: TS_DATA_SOURCE_1::Data Source Type - properties: - column_type: ATTRIBUTE - - name: Worksheet - formula_id: Worksheet - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Interaction User - description: The user's display name. - column_id: TS_USER_1::User - properties: - column_type: ATTRIBUTE - - name: Object Link - formula_id: Object Link - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Interactions - formula_id: Interactions - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - - name: Active Users - formula_id: Active Users - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - - name: ThoughtSpot Timezone - description: The system timezone configured for your ThoughtSpot platform. - column_id: TS_CLUSTER_1::ThoughtSpot Timezone - properties: - column_type: ATTRIBUTE - - name: Interaction Timestamp - description: Datetime of when the action took place - formula_id: fx Interaction Timestamp - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: User Action Category - formula_id: fx User Action Category - properties: - column_type: ATTRIBUTE - - name: Object Author - column_id: VW_TS_BI_SERVER_ADVANCED_AUTHOR_1::User - properties: - column_type: ATTRIBUTE - - name: Group - description: The group's display name. - column_id: TS_GROUP_1::Group - properties: - column_type: ATTRIBUTE - - name: Experience Type - formula_id: fx Client Type - properties: - column_type: ATTRIBUTE - - name: Interaction User Email - description: The user's registered email. - column_id: TS_USER_1::User Email - properties: - column_type: ATTRIBUTE - - name: Object Author Email - column_id: VW_TS_BI_SERVER_ADVANCED_AUTHOR_1::User Email - properties: - column_type: ATTRIBUTE - - name: Group Sharing - description: Whether or not the group may appear in the sharing dialog menu. - column_id: TS_GROUP_1::Group Sharing - properties: - column_type: ATTRIBUTE - synonyms: - - Group Distribution - - Group Allocation - synonym_type: AUTO_GENERATED - properties: - is_bypass_rls: false - join_progressive: true diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml index 7636ddc1..f5853df5 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml @@ -1,6 +1,6 @@ -guid: 1a5e1046-62e6-4f36-8c69-724f0adadb45 +guid: ed4e95a9-9c3b-4154-95b9-0e2312faebf5 liveboard: - name: "CS Tools ~ ThoughtSpot Adoption" + name: CS Tools ~ ThoughtSpot Adoption description: |- Learn how your ThoughtSpot cluster is used.. @@ -28,10 +28,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Interaction Timestamp) - show_headline: false - column_id: Active Users show_headline: false + - column_id: Month(Interaction Timestamp) + show_headline: false ordered_column_ids: - Month(Interaction Timestamp) - Active Users @@ -40,8 +40,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Interaction Timestamp) - column_id: Active Users + - column_id: Month(Interaction Timestamp) axis_configs: - x: - Month(Interaction Timestamp) @@ -50,7 +50,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Active Users\",\"columnProperty\": {}},{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"39bfc92d-3337-4840-9048-a69e05be6c71\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"isOpposite\": false}},{\"id\": \"a6aa5a83-fb3f-48c7-b325-9b1bae78d222\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"systemSeriesColors\": [{\"serieName\": \"Active Users\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 40a820f8-48be-4d4c-8a1a-5b5dc95635ab + viz_guid: ee514095-5bb3-462e-8f7d-09a65cee598f - id: Viz_2 answer: name: Quarterly @@ -73,10 +73,10 @@ liveboard: custom_name: Interaction Quarter table: table_columns: - - column_id: Quarter(Interaction Timestamp) - show_headline: false - column_id: Active Users show_headline: false + - column_id: Quarter(Interaction Timestamp) + show_headline: false ordered_column_ids: - Quarter(Interaction Timestamp) - Active Users @@ -85,8 +85,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Quarter(Interaction Timestamp) - column_id: Active Users + - column_id: Quarter(Interaction Timestamp) axis_configs: - x: - Quarter(Interaction Timestamp) @@ -95,7 +95,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":false,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Active Users\",\"columnProperty\": {}},{\"columnId\": \"Quarter(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"ad425049-732f-4826-8c89-9943a7335264\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"isOpposite\": false}},{\"id\": \"81cc6158-9690-4a45-b83a-fff67cb2d180\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Quarter(Interaction Timestamp)\"]}}],\"systemSeriesColors\": [{\"serieName\": \"Active Users\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: e4529afe-824a-4588-9d51-0088ae4e8553 + viz_guid: 9098f4d3-a909-4fca-af14-43cc180389cd - id: Viz_3 answer: name: Total @@ -118,10 +118,10 @@ liveboard: custom_name: Interaction Year table: table_columns: - - column_id: Year(Interaction Timestamp) - show_headline: false - column_id: Active Users show_headline: false + - column_id: Year(Interaction Timestamp) + show_headline: false ordered_column_ids: - Year(Interaction Timestamp) - Active Users @@ -130,8 +130,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Year(Interaction Timestamp) - column_id: Active Users + - column_id: Year(Interaction Timestamp) axis_configs: - x: - Year(Interaction Timestamp) @@ -140,7 +140,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":false,\\\"showSparkline\\\":false,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Active Users\",\"columnProperty\": {}},{\"columnId\": \"Year(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"1c59b5f3-5f23-4ca1-bbca-2e275bbdba78\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"isOpposite\": false}},{\"id\": \"369dd33b-da1f-4e4b-a7f1-5c6d5a6c128d\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Year(Interaction Timestamp)\"]}}]}" display_mode: CHART_MODE - viz_guid: 02122bf1-236c-4afe-b764-cf5675712657 + viz_guid: f001efc8-f6c0-487c-90c4-e8ed1356f35f - id: Viz_4 answer: name: Day at a Glance @@ -153,16 +153,18 @@ liveboard: - name: Active Users - name: Day of Week(Interaction Timestamp) custom_name: Day of the Week + sort_info: + category: DEFAULT - name: HOUR_OF_DAY(Interaction Timestamp) custom_name: Hour (UTC) table: table_columns: + - column_id: Active Users + show_headline: false - column_id: Day of Week(Interaction Timestamp) show_headline: false - column_id: HOUR_OF_DAY(Interaction Timestamp) show_headline: false - - column_id: Active Users - show_headline: false ordered_column_ids: - Day of Week(Interaction Timestamp) - HOUR_OF_DAY(Interaction Timestamp) @@ -172,9 +174,9 @@ liveboard: chart: type: LINE chart_columns: + - column_id: Active Users - column_id: Day of Week(Interaction Timestamp) - column_id: HOUR_OF_DAY(Interaction Timestamp) - - column_id: Active Users axis_configs: - x: - HOUR_OF_DAY(Interaction Timestamp) @@ -185,7 +187,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"visibleSeriesNames\": [\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"sunday\",\"saturday\"],\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": true},\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"markersEnabled\": true,\"pivotSummariesState\": {}},\"showStackedLabels\": false,\"allLabels\": false,\"legendPosition\": \"TOP_LEGEND\"},\"columnProperties\": [{\"columnId\": \"Day of Week(Interaction Timestamp)\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"HOUR_OF_DAY(Interaction Timestamp)\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"Active Users\",\"columnProperty\": {\"dataLabels\": false}}],\"axisProperties\": [{\"id\": \"14c77fc6-2939-4c3e-8617-6b4c309d4b93\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"HOUR_OF_DAY(Interaction Timestamp)\"]}},{\"id\": \"a51e5436-4daf-4838-90b8-e618f232347d\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"format\": {\"category\": \"NUMBER\",\"numberFormatConfig\": {\"unit\": \"NONE\",\"decimals\": 0.0,\"negativeValueFormat\": \"PREFIX_DASH\",\"toSeparateThousands\": true},\"isCategoryEditable\": true},\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"0\",\"color\": \"#2E75F0\"},{\"serieName\": \"1\",\"color\": \"#48D1E0\"},{\"serieName\": \"2\",\"color\": \"#FCC838\"},{\"serieName\": \"3\",\"color\": \"#06BF7F\"},{\"serieName\": \"4\",\"color\": \"#8C62F5\"},{\"serieName\": \"5\",\"color\": \"#FF8142\"},{\"serieName\": \"6\",\"color\": \"#ABC7F9\"},{\"serieName\": \"7\",\"color\": \"#B5ECF2\"},{\"serieName\": \"8\",\"color\": \"#FDE9AF\"},{\"serieName\": \"9\",\"color\": \"#9BE5CB\"},{\"serieName\": \"10\",\"color\": \"#D1C0FB\"},{\"serieName\": \"11\",\"color\": \"#FFCCB3\"},{\"serieName\": \"12\",\"color\": \"#2359B6\"},{\"serieName\": \"13\",\"color\": \"#369FAA\"},{\"serieName\": \"14\",\"color\": \"#BF982A\"},{\"serieName\": \"15\",\"color\": \"#049160\"},{\"serieName\": \"16\",\"color\": \"#6A4ABA\"},{\"serieName\": \"17\",\"color\": \"#C26232\"},{\"serieName\": \"18\",\"color\": \"#71A1F4\"},{\"serieName\": \"19\",\"color\": \"#82DFE9\"},{\"serieName\": \"20\",\"color\": \"#FCD977\"},{\"serieName\": \"21\",\"color\": \"#56D3A8\"},{\"serieName\": \"22\",\"color\": \"#B094F8\"},{\"serieName\": \"23\",\"color\": \"#FFA97E\"},{\"serieName\": \"HOUR_OF_DAY(Interaction Timestamp)\",\"color\": \"#48d1e0\"},{\"serieName\": \"Day of Week(Interaction Timestamp)\",\"color\": \"#71A1F4\"},{\"serieName\": \"monday\",\"color\": \"#71A1F4\"},{\"serieName\": \"tuesday\",\"color\": \"#82DFE9\"},{\"serieName\": \"wednesday\",\"color\": \"#56D3A8\"},{\"serieName\": \"thursday\",\"color\": \"#FCD977\"},{\"serieName\": \"friday\",\"color\": \"#FFA97E\"},{\"serieName\": \"sunday\",\"color\": \"#A2ACBA\"},{\"serieName\": \"saturday\",\"color\": \"#BEC6D0\"}],\"systemSeriesColors\": [{\"serieName\": \"0\",\"color\": \"#2E75F0\"},{\"serieName\": \"1\",\"color\": \"#48D1E0\"},{\"serieName\": \"2\",\"color\": \"#FCC838\"},{\"serieName\": \"3\",\"color\": \"#06BF7F\"},{\"serieName\": \"4\",\"color\": \"#8C62F5\"},{\"serieName\": \"5\",\"color\": \"#FF8142\"},{\"serieName\": \"6\",\"color\": \"#ABC7F9\"},{\"serieName\": \"7\",\"color\": \"#B5ECF2\"},{\"serieName\": \"8\",\"color\": \"#FDE9AF\"},{\"serieName\": \"9\",\"color\": \"#9BE5CB\"},{\"serieName\": \"10\",\"color\": \"#D1C0FB\"},{\"serieName\": \"11\",\"color\": \"#FFCCB3\"},{\"serieName\": \"12\",\"color\": \"#2359B6\"},{\"serieName\": \"13\",\"color\": \"#369FAA\"},{\"serieName\": \"14\",\"color\": \"#BF982A\"},{\"serieName\": \"15\",\"color\": \"#049160\"},{\"serieName\": \"16\",\"color\": \"#6A4ABA\"},{\"serieName\": \"17\",\"color\": \"#C26232\"},{\"serieName\": \"18\",\"color\": \"#71A1F4\"},{\"serieName\": \"19\",\"color\": \"#82DFE9\"},{\"serieName\": \"20\",\"color\": \"#FCD977\"},{\"serieName\": \"21\",\"color\": \"#56D3A8\"},{\"serieName\": \"22\",\"color\": \"#B094F8\"},{\"serieName\": \"23\",\"color\": \"#FFA97E\"},{\"serieName\": \"HOUR_OF_DAY(Interaction Timestamp)\",\"color\": \"#48d1e0\"},{\"serieName\": \"Day of Week(Interaction Timestamp)\",\"color\": \"#71A1F4\"},{\"serieName\": \"monday\",\"color\": \"#2E75F0\"},{\"serieName\": \"tuesday\",\"color\": \"#48D1E0\"},{\"serieName\": \"wednesday\",\"color\": \"#FCC838\"},{\"serieName\": \"thursday\",\"color\": \"#06BF7F\"},{\"serieName\": \"friday\",\"color\": \"#8C62F5\"},{\"serieName\": \"saturday\",\"color\": \"#FF8142\"},{\"serieName\": \"sunday\",\"color\": \"#ABC7F9\"}]}" display_mode: CHART_MODE - viz_guid: b04863bb-285b-4312-8e41-eab4b84e0a55 + viz_guid: fbbb33d7-b1de-45fa-9a42-7afe05079981 - id: Viz_5 answer: name: Liveboard @@ -208,10 +210,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Interaction Timestamp) - show_headline: false - column_id: Interactions show_headline: false + - column_id: Month(Interaction Timestamp) + show_headline: false ordered_column_ids: - Month(Interaction Timestamp) - Interactions @@ -220,8 +222,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Interaction Timestamp) - column_id: Interactions + - column_id: Month(Interaction Timestamp) axis_configs: - x: - Month(Interaction Timestamp) @@ -230,7 +232,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Interactions\",\"columnProperty\": {}},{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"4580eece-a25f-4eef-b675-7ca4553165bd\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Interactions\"],\"isOpposite\": false}},{\"id\": \"aee833f5-808f-4416-bfbd-ae3c9b578196\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#8C62F5\"}],\"systemSeriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 22af151d-a330-41b7-afcc-6937da3862e0 + viz_guid: 76a1c1eb-a061-4dba-a0df-103801ba9238 - id: Viz_6 answer: name: Searches @@ -253,10 +255,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Interaction Timestamp) - show_headline: false - column_id: Interactions show_headline: false + - column_id: Month(Interaction Timestamp) + show_headline: false ordered_column_ids: - Month(Interaction Timestamp) - Interactions @@ -265,8 +267,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Interaction Timestamp) - column_id: Interactions + - column_id: Month(Interaction Timestamp) axis_configs: - x: - Month(Interaction Timestamp) @@ -275,7 +277,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Interactions\",\"columnProperty\": {}},{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"4580eece-a25f-4eef-b675-7ca4553165bd\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Interactions\"],\"isOpposite\": false}},{\"id\": \"aee833f5-808f-4416-bfbd-ae3c9b578196\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#FCC838\"}],\"systemSeriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: c9b90042-4f34-46c8-bcda-f4203107932f + viz_guid: 0999cd2e-0481-4dca-b153-d412dba63642 - id: Viz_7 answer: name: Answer @@ -298,10 +300,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Interaction Timestamp) - show_headline: false - column_id: Interactions show_headline: false + - column_id: Month(Interaction Timestamp) + show_headline: false ordered_column_ids: - Month(Interaction Timestamp) - Interactions @@ -310,8 +312,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Interaction Timestamp) - column_id: Interactions + - column_id: Month(Interaction Timestamp) axis_configs: - x: - Month(Interaction Timestamp) @@ -320,17 +322,17 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Interactions\",\"columnProperty\": {}},{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"4580eece-a25f-4eef-b675-7ca4553165bd\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Interactions\"],\"isOpposite\": false}},{\"id\": \"aee833f5-808f-4416-bfbd-ae3c9b578196\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#06BF7F\"}],\"systemSeriesColors\": [{\"serieName\": \"Interactions\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: e12bd473-8863-4000-a6e4-aebe7a4367d7 + viz_guid: 27dbc58f-c1bc-4b00-965a-22bb7fa99244 - id: Viz_8 - viz_guid: 1b81b3bb-8d4e-41d7-9bda-434f1a0a5719 + viz_guid: adab69d8-291c-43b6-8b1c-0f3142151a0f note_tile: html_parsed_string: "

In ThoughtSpot, an active user is defined as someone who has interacted with Search, Answers, or Liveboards.

" - id: Viz_9 - viz_guid: c3c855fe-106d-4557-b794-03f63ad6ab07 + viz_guid: 04355eb1-c4fa-4bb6-9a76-71e5f8dccfdc note_tile: html_parsed_string: "

Data Sources


1/ TS: BI Server - [command cs_tools searchable bi-server]

A built-in worksheet which describes how Users interact with content created in ThoughtSpot.


2/ ThoughtSpot Worksheets - [command cs_tools searchable metadata]

Worksheet columns' settings are included, as is the data source (Falcon, Connection) and which cluster/org the Worksheet belongs to. The \"Worksheet\" field in this Liveboard is not unique - if you have identically named worksheets, consider adding the guid to disambiguate.


3/ ThoughtSpot Dependencies - [command cs_tools searchable metadata]

Objects which are can be created from Worksheets are considered as dependencies. (primarily these are Liveboards and Answers)

" - id: Viz_10 - viz_guid: 6340d9b2-830d-4032-a29e-0a179311a0b7 + viz_guid: fa5117f8-4800-4d30-877f-b0c232ba4a7f note_tile: html_parsed_string: "

Known Limitations


1/ ThoughtSpot does not record the Searchable (anything that can produce a Search) that a visualization was generated from.

This means that once you include any metadata - Answer/Liveboard name or \"upstream\" Worksheet/Data Source - in a Search against TS: BI Server, your values for Search activity will be vastly under-reported. Want to fix this? Vote for it on ThoughtSpot Community!


2/ Activity is double-counted when including multiple Groups.

Because ThoughtSpot places no restriction on the number of groups that user may be a member of, or groups having their own memberships, attributing exact activity metrics by group is impossible. Use these numbers directionally to understand how various groups impact your system.

" - id: Viz_11 @@ -341,15 +343,15 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: New Content Creation + - id: formula_New Content Creation name: New Content Creation - expr: "cumulative_sum ( [fx Unique Count of Created objects] , [Interaction Timestamp] )" + expr: "cumulative_sum ( [formula_fx Unique Count of Created objects] , [Interaction Timestamp] )" was_auto_generated: false - - id: fx Unique Count of Created objects + - id: formula_fx Unique Count of Created objects name: fx Unique Count of Created objects expr: "group_aggregate ( unique count ( [Object GUID] ) , query_groups ( ) , query_filters ( ) + { date ( [Interaction Timestamp] ) = date ( [Object Created At] ) } )" was_auto_generated: false - search_query: "[Interaction Timestamp].'last 3 months' [Active Users] [New Content Creation] [Interaction Timestamp] [Interaction Timestamp].weekly" + search_query: "[Interaction Timestamp].'last 3 months' [Active Users] [formula_New Content Creation] [Interaction Timestamp] [Interaction Timestamp].weekly" answer_columns: - name: Active Users custom_name: Weekly Active Users @@ -366,12 +368,12 @@ liveboard: custom_name: Interaction Week table: table_columns: - - column_id: Week(Interaction Timestamp) - show_headline: false - column_id: Active Users show_headline: false - column_id: New Content Creation show_headline: false + - column_id: Week(Interaction Timestamp) + show_headline: false ordered_column_ids: - Week(Interaction Timestamp) - Active Users @@ -381,9 +383,9 @@ liveboard: chart: type: LINE chart_columns: - - column_id: Week(Interaction Timestamp) - column_id: Active Users - column_id: New Content Creation + - column_id: Week(Interaction Timestamp) axis_configs: - x: - Week(Interaction Timestamp) @@ -393,7 +395,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": false},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"markersEnabled\": true,\"dataFieldArea\": \"column\"},\"showStackedLabels\": false,\"allLabels\": false,\"legendPosition\": \"BOTTOM_LEGEND\"},\"columnProperties\": [{\"columnId\": \"Week(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}},{\"columnId\": \"Active Users\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"New Content Creation\",\"columnProperty\": {\"dataLabels\": true,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"dataLabels\\\":{\\\"backgroundColor\\\":\\\"\\\",\\\"borderColor\\\":\\\"\\\",\\\"borderWidth\\\":\\\"\\\",\\\"filter\\\":{\\\"operator\\\":\\\"\\\",\\\"value\\\":\\\"\\\"},\\\"align\\\":\\\"center\\\",\\\"style\\\":{\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"maxCharacters\\\":\\\"\\\"}}}\"}}],\"axisProperties\": [{\"id\": \"7f4a1a37-9cee-4117-973b-869c6fe9dff1\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":true,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"2cc460f2-aba0-4c66-a9bd-e647d6030927\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"New Content Creation\"],\"isOpposite\": true,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":true,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"5ea745be-3788-4067-969c-5d341b6e6484\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Week(Interaction Timestamp)\"],\"name\": \"Interaction Week\",\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"f0d3f3a0-d0c4-4d62-8217-19753fefd805\",\"color\": \"#FCC838\"},{\"serieName\": \"f85cb6bd-2742-4cd0-aa6e-ab810eaa09a2\",\"color\": \"#48D1E0\"},{\"serieName\": \"New Content Creation\",\"color\": \"#FF8142\"},{\"serieName\": \"Active Users\",\"color\": \"#ABC7F9\"}],\"systemSeriesColors\": [{\"serieName\": \"f0d3f3a0-d0c4-4d62-8217-19753fefd805\",\"color\": \"#FCC838\"},{\"serieName\": \"f85cb6bd-2742-4cd0-aa6e-ab810eaa09a2\",\"color\": \"#48D1E0\"},{\"serieName\": \"Active Users\",\"color\": \"#FCC838\"},{\"serieName\": \"New Content Creation\",\"color\": \"#48D1E0\"}]}" display_mode: CHART_MODE - viz_guid: 4813f9a9-9a7c-44e8-bfc1-3c9472ba4e20 + viz_guid: 72fdbab3-5cac-4cd1-9e01-f26831c52690 - id: Viz_12 answer: name: Query Errors @@ -402,11 +404,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Errors + - id: formula_Errors name: Errors expr: "count_if ( [HTTP Response Status] = 'error' , [Incident ID] )" was_auto_generated: false - search_query: "[Errors] [Interaction Timestamp].monthly [Search Query] != '{null}'" + search_query: "[formula_Errors] [Interaction Timestamp].monthly [Search Query] != '{null}'" answer_columns: - name: Errors format: @@ -421,10 +423,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Interaction Timestamp) - show_headline: false - column_id: Errors show_headline: false + - column_id: Month(Interaction Timestamp) + show_headline: false ordered_column_ids: - Month(Interaction Timestamp) - Errors @@ -433,8 +435,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Interaction Timestamp) - column_id: Errors + - column_id: Month(Interaction Timestamp) axis_configs: - x: - Month(Interaction Timestamp) @@ -443,7 +445,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":false,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}},{\"columnId\": \"Errors\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"EQUAL_TO\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#56D3A8\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#F47E89\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"78d18a41-be39-4f28-a7a9-a989babbbfe1\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Errors\"],\"isOpposite\": false}},{\"id\": \"9b7acc08-24ec-49ee-b054-2c48cc90f07b\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"Errors\",\"color\": \"#F04152\"}],\"systemSeriesColors\": [{\"serieName\": \"Errors\",\"color\": \"#2770ef\"}],\"customColorSelectorArray\": [\"#F04152\",\"#06BF7F\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: 7d837801-2dac-4664-baa1-e5b2dd3c73f6 + viz_guid: a68b6d31-7d64-427c-8255-40a309fb346e - id: Viz_13 answer: name: Average Query Latency (s) @@ -452,15 +454,15 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Is Likely Results Cachced + - id: formula_Is Likely Results Cachced name: Is Likely Results Cachced expr: "[Latency (s)] < 1.00" was_auto_generated: false - - id: Is Likely Search Token AutoComplete + - id: formula_Is Likely Search Token AutoComplete name: Is Likely Search Token AutoComplete expr: "[Latency (s)] < 0.40" was_auto_generated: false - search_query: "average [Latency (s)] [Interaction Timestamp].weekly [User Action Category] [Is Likely Results Cachced] = false" + search_query: "average [Latency (s)] [Interaction Timestamp].weekly [User Action Category] [formula_Is Likely Results Cachced] = false" answer_columns: - name: Average Latency (s) format: @@ -471,15 +473,15 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: false isCategoryEditable: true - - name: Week(Interaction Timestamp) - name: User Action Category + - name: Week(Interaction Timestamp) table: table_columns: - - column_id: Week(Interaction Timestamp) + - column_id: Average Latency (s) show_headline: false - column_id: User Action Category show_headline: false - - column_id: Average Latency (s) + - column_id: Week(Interaction Timestamp) show_headline: false ordered_column_ids: - Week(Interaction Timestamp) @@ -490,9 +492,9 @@ liveboard: chart: type: LINE chart_columns: - - column_id: Week(Interaction Timestamp) - - column_id: User Action Category - column_id: Average Latency (s) + - column_id: User Action Category + - column_id: Week(Interaction Timestamp) axis_configs: - x: - Week(Interaction Timestamp) @@ -503,7 +505,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"visibleSeriesNames\": [\"search\",\"answers\",\"liveboards\"],\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": true},\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}},\"legendPosition\": \"TOP_LEGEND\"},\"columnProperties\": [{\"columnId\": \"Week(Interaction Timestamp)\",\"columnProperty\": {}},{\"columnId\": \"User Action Category\",\"columnProperty\": {}},{\"columnId\": \"Average Latency (s)\",\"columnProperty\": {\"dataLabels\": false,\"conditionalFormatting\": {}}}],\"axisProperties\": [{\"id\": \"7d9c5c5b-7bf8-4f0c-96bb-15c91d8a9f62\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Average Latency (s)\"],\"format\": {\"category\": \"NUMBER\",\"numberFormatConfig\": {\"unit\": \"NONE\",\"decimals\": 0.0,\"negativeValueFormat\": \"PREFIX_DASH\",\"toSeparateThousands\": true},\"isCategoryEditable\": true},\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"d51fa1ae-e0b6-446c-9447-5f1a0bbc986e\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Week(Interaction Timestamp)\"],\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"5288fc08-84e0-4210-904b-c8b239cb64af\",\"color\": \"#06BF7F\"},{\"serieName\": \"Average Latency (s)\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"other\",\"color\": \"#747E8C\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"data exports\",\"color\": \"#F04152\"}],\"systemSeriesColors\": [{\"serieName\": \"5288fc08-84e0-4210-904b-c8b239cb64af\",\"color\": \"#06BF7F\"},{\"serieName\": \"Average Latency (s)\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"other\",\"color\": \"#747E8C\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"data exports\",\"color\": \"#2E75F0\"}]}" display_mode: CHART_MODE - viz_guid: f1468a9a-3cb3-436f-ba92-43dc4d9f42f1 + viz_guid: 7b472062-1c66-4c6c-8d91-5b6f14a851db - id: Viz_14 answer: name: Database Results Cache @@ -512,19 +514,19 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Results Cache Usage (approximation) + - id: formula_Results Cache Usage (approximation) name: Results Cache Usage (approximation) - expr: "unique_count_if ( not [Is Likely Search Token AutoComplete] and [Is Likely Results Cached] , [Incident ID] ) / unique count ( [Incident ID] )" + expr: "unique_count_if ( not [formula_Is Likely Search Token AutoComplete] and [formula_Is Likely Results Cached] , [Incident ID] ) / unique count ( [Incident ID] )" was_auto_generated: false - - id: Is Likely Results Cached + - id: formula_Is Likely Results Cached name: Is Likely Results Cached expr: "[Latency (s)] < 1.00" was_auto_generated: false - - id: Is Likely Search Token AutoComplete + - id: formula_Is Likely Search Token AutoComplete name: Is Likely Search Token AutoComplete expr: "[Latency (s)] < 0.40" was_auto_generated: false - search_query: "[Interaction Timestamp].monthly [Results Cache Usage (approximation)] [Search Query] != '{null}'" + search_query: "[Interaction Timestamp].monthly [formula_Results Cache Usage (approximation)] [Search Query] != '{null}'" answer_columns: - name: Month(Interaction Timestamp) custom_name: Interaction Month @@ -558,7 +560,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":false,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Results Cache Usage (approximation)\",\"columnProperty\": {}},{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"f0a5c689-0bb7-434c-b081-10035770ddc3\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Results Cache Usage (approximation)\"],\"isOpposite\": false}},{\"id\": \"e24a4391-14a3-4ce6-8c39-547492914234\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"}],\"systemSeriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"},{\"serieName\": \"Results Cache Usage (approximation)\",\"color\": \"#2770ef\"}],\"customColorSelectorArray\": [\"#06BF7F\",\"#F04152\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: fb48f4e6-5a5b-4dc1-bb21-0ac9301375c9 + viz_guid: 162b2aaa-210e-4540-9494-0cbf4c1ee1c3 - id: Viz_15 answer: name: Liveboard activity per User @@ -566,13 +568,12 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Liveboard Interactions per Active User + - id: formula_Liveboard Interactions per Active User name: Liveboard Interactions per Active User expr: "count_if ( [User Action Category] = 'liveboards' , [Incident ID] ) / [Active Users]" was_auto_generated: false - search_query: "[Interaction Timestamp] [Interaction Timestamp].quarterly [Liveboard Interactions per Active User]" + search_query: "[Interaction Timestamp] [Interaction Timestamp].quarterly [formula_Liveboard Interactions per Active User]" answer_columns: - - name: Quarter(Interaction Timestamp) - name: Liveboard Interactions per Active User format: category: NUMBER @@ -582,12 +583,13 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + - name: Quarter(Interaction Timestamp) table: table_columns: - - column_id: Quarter(Interaction Timestamp) - show_headline: false - column_id: Liveboard Interactions per Active User show_headline: false + - column_id: Quarter(Interaction Timestamp) + show_headline: false ordered_column_ids: - Quarter(Interaction Timestamp) - Liveboard Interactions per Active User @@ -596,8 +598,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Quarter(Interaction Timestamp) - column_id: Liveboard Interactions per Active User + - column_id: Quarter(Interaction Timestamp) axis_configs: - x: - Quarter(Interaction Timestamp) @@ -606,7 +608,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Quarter(Interaction Timestamp)\",\"columnProperty\": {}},{\"columnId\": \"Liveboard Interactions per Active User\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"cee9db8c-9a34-4a59-847b-4e2f39f15eb2\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Liveboard Interactions per Active User\"],\"isOpposite\": false}},{\"id\": \"59fa82c5-525d-43c8-a523-6f526fbfc201\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Quarter(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"251efc3a-f849-4a6d-92ff-2518fa26bb52\",\"color\": \"#FCC838\"},{\"serieName\": \"Liveboard Interactions per Active User\",\"color\": \"#8C62F5\"}],\"systemSeriesColors\": [{\"serieName\": \"251efc3a-f849-4a6d-92ff-2518fa26bb52\",\"color\": \"#FCC838\"},{\"serieName\": \"Liveboard Interactions per Active User\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 0d171d33-aced-41f5-b0b1-b723f42416f9 + viz_guid: acb82ebe-c224-4fe2-9460-a3bd102659ea - id: Viz_16 answer: name: ThoughtSpot Leaderboard @@ -615,47 +617,44 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Leaderboard Rank + - id: formula_Leaderboard Rank name: Leaderboard Rank - expr: "rank ( [Leaderboard Score] , 'desc' )" + expr: "rank ( [formula_Leaderboard Score] , 'desc' )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: Leaderboard Score + - id: formula_Leaderboard Score name: Leaderboard Score - expr: "0 + ( [Searches (5x)] * 5 ) + ( [Answers (3x)] * 3 ) + ( [Liveboards (1x)] * 1 ) + ( [Data Exports (-5x)] * - 5 )" + expr: "0 + ( [formula_Searches (5x)] * 5 ) + ( [formula_Answers (3x)] * 3 ) + ( [formula_Liveboards (1x)] * 1 ) + ( [formula_Data Exports (-5x)] * - 5 )" was_auto_generated: false - - id: Answers (3x) + - id: formula_Answers (3x) name: Answers (3x) expr: "unique_count_if ( [User Action Category] = 'answers' , [Incident ID] )" was_auto_generated: false - - id: Data Exports (-5x) + - id: formula_Data Exports (-5x) name: Data Exports (-5x) expr: "unique_count_if ( [User Action Category] = 'data exports' , [Incident ID] )" was_auto_generated: false - - id: Liveboards (1x) + - id: formula_Liveboards (1x) name: Liveboards (1x) expr: "unique_count_if ( [User Action Category] = 'liveboards' , [Incident ID] )" was_auto_generated: false - - id: Searches (5x) + - id: formula_Searches (5x) name: Searches (5x) expr: "unique_count_if ( [User Action Category] = 'search' , [Incident ID] )" was_auto_generated: false - search_query: "[Interaction User] sort by [Leaderboard Score] descending [Interaction User] != '{null}' top 15 [Leaderboard Rank] [Searches (5x)] [Answers (3x)] [Liveboards (1x)] [Data Exports (-5x)] [Leaderboard Score]" + search_query: "[Interaction User] sort by [formula_Leaderboard Score] descending [Interaction User] != '{null}' top 15 [formula_Leaderboard Rank] [formula_Searches (5x)] [formula_Answers (3x)] [formula_Liveboards (1x)] [formula_Data Exports (-5x)] [formula_Leaderboard Score]" answer_columns: - - name: Interaction User - custom_name: User - - name: Leaderboard Score + - name: Answers (3x) format: category: NUMBER numberFormatConfig: - unit: THOUSANDS - decimals: 1.0 + unit: NONE + decimals: 0.0 negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Leaderboard Rank - - name: Searches (5x) + - name: Data Exports (-5x) format: category: NUMBER numberFormatConfig: @@ -664,12 +663,15 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Answers (3x) + - name: Interaction User + custom_name: User + - name: Leaderboard Rank + - name: Leaderboard Score format: category: NUMBER numberFormatConfig: - unit: NONE - decimals: 0.0 + unit: THOUSANDS + decimals: 1.0 negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true @@ -682,7 +684,7 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Data Exports (-5x) + - name: Searches (5x) format: category: NUMBER numberFormatConfig: @@ -693,19 +695,19 @@ liveboard: isCategoryEditable: true table: table_columns: + - column_id: Answers (3x) + show_headline: false + - column_id: Data Exports (-5x) + show_headline: false - column_id: Interaction User show_headline: false - column_id: Leaderboard Rank show_headline: false - column_id: Leaderboard Score show_headline: false - - column_id: Searches (5x) - show_headline: false - - column_id: Answers (3x) - show_headline: false - column_id: Liveboards (1x) show_headline: false - - column_id: Data Exports (-5x) + - column_id: Searches (5x) show_headline: false ordered_column_ids: - Interaction User @@ -720,13 +722,13 @@ liveboard: chart: type: BAR chart_columns: + - column_id: Answers (3x) + - column_id: Data Exports (-5x) - column_id: Interaction User - column_id: Leaderboard Rank - column_id: Leaderboard Score - - column_id: Searches (5x) - - column_id: Answers (3x) - column_id: Liveboards (1x) - - column_id: Data Exports (-5x) + - column_id: Searches (5x) axis_configs: - x: - Interaction User @@ -735,7 +737,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Interaction User\",\"columnProperty\": {}},{\"columnId\": \"Leaderboard Rank\",\"columnProperty\": {}},{\"columnId\": \"Searches (5x)\",\"columnProperty\": {}},{\"columnId\": \"Answers (3x)\",\"columnProperty\": {}},{\"columnId\": \"Leaderboard Score\",\"columnProperty\": {\"dataLabels\": true,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"dataLabels\\\":{\\\"backgroundColor\\\":\\\"\\\",\\\"borderColor\\\":\\\"\\\",\\\"borderWidth\\\":\\\"\\\",\\\"filter\\\":{\\\"operator\\\":\\\"\\\",\\\"value\\\":\\\"\\\"},\\\"align\\\":\\\"left\\\",\\\"style\\\":{\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"maxCharacters\\\":\\\"\\\"}}}\"}},{\"columnId\": \"Liveboards (1x)\",\"columnProperty\": {}},{\"columnId\": \"Data Exports (-5x)\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"20c79e62-4d89-459c-9be7-c9b8bf3ec9b2\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Interaction User\"],\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"20\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"202f1d0e-017f-4bcb-89e7-ce297f5a5a43\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Leaderboard Score\"],\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"Leaderboard Score\",\"color\": \"#71A1F4\"}],\"systemSeriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"Leaderboard Score\",\"color\": \"#71A1F4\"},{\"serieName\": \"Searches (5x)\",\"color\": \"#2E75F0\"},{\"serieName\": \"Answers (3x)\",\"color\": \"#2E75F0\"},{\"serieName\": \"Liveboards (1x)\",\"color\": \"#48D1E0\"},{\"serieName\": \"Data Exports (-5x)\",\"color\": \"#2E75F0\"}],\"tooltipConfig\": {\"columnIds\": [\"Interaction User\",\"Leaderboard Rank\",\"Leaderboard Score\",\"Searches (5x)\",\"Answers (3x)\",\"Liveboards (1x)\",\"Data Exports (-5x)\"]}}" display_mode: CHART_MODE - viz_guid: 7981ca0a-bd80-4a3b-ae3c-c1797c10c74d + viz_guid: d0c770b6-0d2c-4cd0-ad63-6a15c0a2cfd7 - id: Viz_17 answer: name: Disengaged Users @@ -744,31 +746,31 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: fx Net Active Users + - id: formula_fx Net Active Users name: fx Net Active Users - expr: "[Active Users] - [New Users] + [Churned Users]" + expr: "[Active Users] - [formula_New Users] + [formula_Churned Users]" was_auto_generated: false - - id: Churned Users + - id: formula_Churned Users name: Churned Users - expr: "unique_count_if ( diff_days ( [fx Datestamp] , [fx User Last Seen] ) = 0 and diff_days ( today ( ) , [fx Datestamp] ) >= 35 , [Interaction User] ) * - 1" + expr: "unique_count_if ( diff_days ( [formula_fx Datestamp] , [formula_fx User Last Seen] ) = 0 and diff_days ( today ( ) , [formula_fx Datestamp] ) >= 35 , [Interaction User] ) * - 1" was_auto_generated: false - - id: New Users + - id: formula_New Users name: New Users - expr: "unique_count_if ( [fx Datestamp] = [fx User First Seen] , [Interaction User] )" + expr: "unique_count_if ( [formula_fx Datestamp] = [formula_fx User First Seen] , [Interaction User] )" was_auto_generated: false - - id: fx User First Seen + - id: formula_fx User First Seen name: fx User First Seen - expr: "group_aggregate ( min ( [fx Datestamp] ) , { [Interaction User] } , { } )" + expr: "group_aggregate ( min ( [formula_fx Datestamp] ) , { [Interaction User] } , { } )" was_auto_generated: false - - id: fx User Last Seen + - id: formula_fx User Last Seen name: fx User Last Seen - expr: "group_aggregate ( max ( [fx Datestamp] ) , { [Interaction User] } , { } )" + expr: "group_aggregate ( max ( [formula_fx Datestamp] ) , { [Interaction User] } , { } )" was_auto_generated: false - - id: fx Datestamp + - id: formula_fx Datestamp name: fx Datestamp expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "[Churned Users] [Interaction Timestamp].quarterly" + search_query: "[formula_Churned Users] [Interaction Timestamp].quarterly" answer_columns: - name: Churned Users format: @@ -782,10 +784,10 @@ liveboard: - name: Quarter(Interaction Timestamp) table: table_columns: - - column_id: Quarter(Interaction Timestamp) - show_headline: false - column_id: Churned Users show_headline: false + - column_id: Quarter(Interaction Timestamp) + show_headline: false ordered_column_ids: - Quarter(Interaction Timestamp) - Churned Users @@ -794,8 +796,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Quarter(Interaction Timestamp) - column_id: Churned Users + - column_id: Quarter(Interaction Timestamp) axis_configs: - x: - Quarter(Interaction Timestamp) @@ -804,9 +806,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": true},\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"isStackedAsPercent\": false,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 2.0,\"removeTrailingZeroes\": false},\"isCategoryEditable\": false},\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":false,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}},\"showStackedLabels\": false,\"allLabels\": false},\"columnProperties\": [{\"columnId\": \"Churned Users\",\"columnProperty\": {\"dataLabels\": false,\"conditionalFormatting\": {\"rows\": [{\"operator\": \"LESS_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#F47E89\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}},{\"columnId\": \"Quarter(Interaction Timestamp)\",\"columnProperty\": {\"dataLabels\": false}}],\"axisProperties\": [{\"id\": \"173cc3fd-f821-478a-8d95-c0bc90d1eedf\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Churned Users\"],\"isOpposite\": false}},{\"id\": \"5eea5d5d-ea25-47dd-a65f-1cc7371e1bb4\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Quarter(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"c5b2ad12-bc34-47fe-b3ec-9be8cd64687a\",\"color\": \"#FCC838\"},{\"serieName\": \"active users\",\"color\": \"#FCC838\"},{\"serieName\": \"churned users\",\"color\": \"#FF8142\"},{\"serieName\": \"new users\",\"color\": \"#2E75F0\"},{\"serieName\": \"d599149d-985a-4886-88de-e64648a95e8a\",\"color\": \"#F47E89\"},{\"serieName\": \"7332793c-20c5-454e-86d8-7fa9ec5260cb\",\"color\": \"#ABC7F9\"},{\"serieName\": \"ba56ccbe-966f-4785-87d3-1e954649f698\",\"color\": \"#56D3A8\"},{\"serieName\": \"Churned Users\",\"color\": \"#F47E89\"}],\"customColorSelectorArray\": [\"#06BF7F\",\"#F04152\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: 71cd20e6-e287-4b06-9b0e-7bc438c507c7 + viz_guid: 0ab505f5-366e-45ab-ab5a-4694c1462f5d - id: Viz_18 - viz_guid: 57e8e5fc-b7fb-41ab-aa97-64099ca5b82a + viz_guid: 760a84e9-9cdd-44e6-bb2a-3218d637e064 note_tile: html_parsed_string: "

How to Use


- ADJUST FILTERS ON Days since Last Edited

- Interaction Date is unlinked

- User/Group are linked - this represents these Users' activity against stale content

" - id: Viz_19 @@ -817,6 +819,12 @@ liveboard: name: CS Tools ~ BI Server Advanced search_query: "[Latency (s)] [Search Query] top 50 ranked by [Latency (s)] [Search Query] != '{null}' [Interaction Timestamp] [Interaction Timestamp].detailed [Interaction User] [HTTP Response Status]" answer_columns: + - name: HTTP Response Status + custom_name: Status + - name: Interaction Timestamp + custom_name: Timestamp (UTC) + - name: Interaction User + - name: Search Query - name: Total Latency (s) custom_name: Latency (s) format: @@ -827,21 +835,15 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Search Query - - name: Interaction Timestamp - custom_name: Timestamp (UTC) - - name: Interaction User - - name: HTTP Response Status - custom_name: Status table: table_columns: - - column_id: Search Query + - column_id: HTTP Response Status show_headline: false - column_id: Interaction Timestamp show_headline: false - column_id: Interaction User show_headline: false - - column_id: HTTP Response Status + - column_id: Search Query show_headline: false - column_id: Total Latency (s) show_headline: false @@ -856,10 +858,10 @@ liveboard: chart: type: BAR chart_columns: - - column_id: Search Query + - column_id: HTTP Response Status - column_id: Interaction Timestamp - column_id: Interaction User - - column_id: HTTP Response Status + - column_id: Search Query - column_id: Total Latency (s) axis_configs: - x: @@ -869,7 +871,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Total Latency (s)\",\"columnProperty\": {}},{\"columnId\": \"Search Query\",\"columnProperty\": {}},{\"columnId\": \"Interaction Timestamp\",\"columnProperty\": {}},{\"columnId\": \"Interaction User\",\"columnProperty\": {}},{\"columnId\": \"HTTP Response Status\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"cbeab067-37dd-4c28-82b1-5f39edf421cc\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Total Latency (s)\"],\"isOpposite\": false}},{\"id\": \"4cb4982a-c8b0-4bf2-bd78-733776cd1e75\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Interaction Timestamp\"]}}],\"systemSeriesColors\": [{\"serieName\": \"c2a7c6b7-b368-4c50-86ac-146fa243e952\",\"color\": \"#FCC838\"}]}" display_mode: TABLE_MODE - viz_guid: 57de8e1b-5270-4272-bca3-0fef1ed0a1c5 + viz_guid: 6bfb6c9c-ec09-4ed2-b1c4-ea981d5e9500 - id: Viz_20 answer: name: Search Experience @@ -878,15 +880,15 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Is Likely Search Token AutoComplete + - id: formula_Is Likely Search Token AutoComplete name: Is Likely Search Token AutoComplete expr: "[Latency (s)] < 0.40" was_auto_generated: false - - id: Search Latency + - id: formula_Search Latency name: Search Latency expr: "count_if ( [Latency (s)] <= 15 , [Incident ID] ) / count ( [Incident ID] )" was_auto_generated: false - search_query: "[Interaction Timestamp].monthly [Search Latency] [Search Query] != '{null}' [Is Likely Search Token AutoComplete] = false" + search_query: "[Interaction Timestamp].monthly [formula_Search Latency] [Search Query] != '{null}' [formula_Is Likely Search Token AutoComplete] = false" answer_columns: - name: Month(Interaction Timestamp) custom_name: Interaction Month @@ -920,7 +922,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":false,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}},{\"columnId\": \"Search Latency\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN\",\"value\": \"0.95\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#06BF7F\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"0.80\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#71A1F4\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"LESS_THAN\",\"value\": \"0.9\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#FF8142\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"LESS_THAN\",\"value\": \"0.8\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#F04152\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"f0a5c689-0bb7-434c-b081-10035770ddc3\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Search Latency\"],\"isOpposite\": false}},{\"id\": \"e24a4391-14a3-4ce6-8c39-547492914234\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"},{\"serieName\": \"Search Latency\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"},{\"serieName\": \"Search Latency\",\"color\": \"#2770ef\"}],\"customColorSelectorArray\": [\"#06BF7F\",\"#F04152\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: 07ccd872-9623-4031-9c46-a56ff0283408 + viz_guid: 0a17e2d9-ddaf-4dce-a8ea-46f01826b285 - id: Viz_21 answer: name: Forgotten Objects @@ -929,24 +931,19 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Days since last Activity + - id: formula_Days since last Activity name: Days since last Activity expr: "diff_days ( today ( ) , max ( [Interaction Timestamp] ) )" was_auto_generated: false - - id: Days since last Edited + - id: formula_Days since last Edited name: Days since last Edited expr: "max ( diff_days ( today ( ) , [Object Modified At] ) )" properties: column_type: ATTRIBUTE was_auto_generated: false - search_query: "[Object GUID] [Object Type] [Object Link] [Object Author] [Object Author Email] [Interactions] [Active Users] [Days since last Edited] [Days since last Activity] [Days since last Edited] > 365 [Days since last Activity] > 365 [Object Type] = [Object Type].answer [Object Type].liveboard [Object Created At] [Object Created At].daily sort by [Days since last Activity] descending" + search_query: "[Object GUID] [Object Type] [Object Link] [Object Author] [Object Author Email] [Interactions] [Active Users] [formula_Days since last Edited] [formula_Days since last Activity] [formula_Days since last Edited] > 365 [formula_Days since last Activity] > 365 [Object Type] = [Object Type].answer [Object Type].liveboard [Object Created At] [Object Created At].daily sort by [formula_Days since last Activity] descending" answer_columns: - - name: Object GUID - - name: Object Type - - name: Object Link - - name: Object Author - - name: Object Author Email - - name: Interactions + - name: Active Users format: category: NUMBER numberFormatConfig: @@ -955,7 +952,9 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Active Users + - name: Day(Object Created At) + custom_name: Created on + - name: Days since last Activity format: category: NUMBER numberFormatConfig: @@ -964,6 +963,8 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + sort_info: + category: DEFAULT - name: Days since last Edited format: category: NUMBER @@ -973,7 +974,7 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Days since last Activity + - name: Interactions format: category: NUMBER numberFormatConfig: @@ -982,29 +983,32 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Day(Object Created At) - custom_name: Created on + - name: Object Author + - name: Object Author Email + - name: Object GUID + - name: Object Link + - name: Object Type table: table_columns: - - column_id: Object GUID + - column_id: Active Users show_headline: false - - column_id: Object Type + - column_id: Day(Object Created At) show_headline: false - - column_id: Object Link + - column_id: Days since last Activity show_headline: false - - column_id: Object Author + - column_id: Days since last Edited show_headline: false - - column_id: Object Author Email + - column_id: Interactions show_headline: false - - column_id: Day(Object Created At) + - column_id: Object Author show_headline: false - - column_id: Interactions + - column_id: Object Author Email show_headline: false - - column_id: Active Users + - column_id: Object GUID show_headline: false - - column_id: Days since last Edited + - column_id: Object Link show_headline: false - - column_id: Days since last Activity + - column_id: Object Type show_headline: false ordered_column_ids: - Object GUID @@ -1022,16 +1026,16 @@ liveboard: chart: type: COLUMN chart_columns: - - column_id: Object GUID - - column_id: Object Type - - column_id: Object Link - - column_id: Object Author - - column_id: Object Author Email - - column_id: Day(Object Created At) - - column_id: Interactions - column_id: Active Users - - column_id: Days since last Edited + - column_id: Day(Object Created At) - column_id: Days since last Activity + - column_id: Days since last Edited + - column_id: Interactions + - column_id: Object Author + - column_id: Object Author Email + - column_id: Object GUID + - column_id: Object Link + - column_id: Object Type axis_configs: - x: - Day(Object Created At) @@ -1043,7 +1047,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Object Link\",\"columnProperty\": {}},{\"columnId\": \"Object Author\",\"columnProperty\": {}},{\"columnId\": \"Interactions\",\"columnProperty\": {}},{\"columnId\": \"Active Users\",\"columnProperty\": {}},{\"columnId\": \"Days since last Edited\",\"columnProperty\": {}},{\"columnId\": \"Days since last Activity\",\"columnProperty\": {}},{\"columnId\": \"Object Author Email\",\"columnProperty\": {}},{\"columnId\": \"Object GUID\",\"columnProperty\": {}},{\"columnId\": \"Object Type\",\"columnProperty\": {}},{\"columnId\": \"Day(Object Created At)\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"bbd395c7-04b9-4fd5-926a-d65a202ffb77\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Interactions\"],\"isOpposite\": false}},{\"id\": \"1b440a4d-1644-4d12-a473-9dcaa7bedefb\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Active Users\"],\"isOpposite\": true}},{\"id\": \"1520174c-2366-46ca-a286-81d111a22169\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Days since last Edited\"],\"isOpposite\": true}},{\"id\": \"3a8a6698-95ab-436d-9202-b3b31e61971d\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Days since last Activity\"],\"isOpposite\": true}},{\"id\": \"588fb61b-a5e6-4528-812f-e42fdc210ad5\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Day(Object Created At)\"]}}]}" display_mode: TABLE_MODE - viz_guid: 4ad5ac6b-dede-43fa-b6e4-39f8d4cb18f0 + viz_guid: f67a8a4c-bee9-45a0-bd1f-a0fbb6967513 - id: Viz_22 answer: name: Days since @@ -1052,21 +1056,21 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: modified before median modify date + - id: formula_modified before median modify date name: modified before median modify date - expr: "[fx days since object modified] >= ( [fx days since oldest object modified] / 2 )" + expr: "[formula_fx days since object modified] >= ( [formula_fx days since oldest object modified] / 2 )" was_auto_generated: false - - id: fx days since object modified + - id: formula_fx days since object modified name: fx days since object modified expr: "diff_days ( today ( ) , [Object Modified At] )" was_auto_generated: false - - id: fx days since oldest object modified + - id: formula_fx days since oldest object modified name: fx days since oldest object modified expr: "diff_days ( today ( ) , group_aggregate ( min ( [Object Modified At] ) , { } , query_filters ( ) + { [Object Author] not in { 'system user' } } ) )" properties: column_type: ATTRIBUTE was_auto_generated: false - search_query: "[modified before median modify date] = true min [fx days since object modified]" + search_query: "[formula_modified before median modify date] = true min [formula_fx days since object modified]" answer_columns: - name: Minimum fx days since object modified table: @@ -1087,7 +1091,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Minimum fx days since object modified\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"cf1e54f9-e03a-40c6-afee-1f42c67227f6\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Minimum fx days since object modified\"],\"isOpposite\": false}},{\"id\": \"77f2b419-58f8-4167-8284-1557bc477426\",\"properties\": {\"axisType\": \"X\"}}],\"systemSeriesColors\": [{\"serieName\": \"Minimum fx days since object modified\",\"color\": \"#2E75F0\"}]}" display_mode: CHART_MODE - viz_guid: e1cb69f0-dfc4-45d3-b746-6ccc7d9959ca + viz_guid: 518c9a49-fc38-4ce5-add6-58f814682cf3 - id: Viz_23 answer: name: Users Experiencing @@ -1096,11 +1100,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Slow Queries + - id: formula_Slow Queries name: Slow Queries expr: "[Latency (s)] >= 30" was_auto_generated: false - search_query: "[Interaction Timestamp].monthly [Slow Queries] = true [Search Query] != '{null}' unique count [Interaction User]" + search_query: "[Interaction Timestamp].monthly [formula_Slow Queries] = true [Search Query] != '{null}' unique count [Interaction User]" answer_columns: - name: Month(Interaction Timestamp) custom_name: Interaction Month @@ -1138,7 +1142,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":false,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Month(Interaction Timestamp)\",\"columnProperty\": {\"excludeNullValues\": false}},{\"columnId\": \"Unique Number of Interaction User\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"EQUAL_TO\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#56D3A8\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#F47E89\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"c23081fa-7897-4f6a-8a36-b80465f74ea3\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Interaction User\"],\"isOpposite\": false}},{\"id\": \"79c75f27-3433-4049-aa58-565d9df23a8a\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"},{\"serieName\": \"Slow Queries\",\"color\": \"#2E75F0\"},{\"serieName\": \"Unique Number of Interaction User\",\"color\": \"#F04152\"}],\"systemSeriesColors\": [{\"serieName\": \"0509773f-4f31-4747-af8e-03c1d6aa6848\",\"color\": \"#F04152\"},{\"serieName\": \"Slow Queries\",\"color\": \"#2E75F0\"},{\"serieName\": \"Unique Number of Interaction User\",\"color\": \"#2770ef\"}],\"customColorSelectorArray\": [\"#F04152\",\"#06BF7F\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: fb031e20-6cd0-4cb3-9571-eb2f3d97726f + viz_guid: 0e2d9788-f829-48a3-a211-18431f3d5710 - id: Viz_24 answer: name: Total Liveboards @@ -1175,7 +1179,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":false,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Unique Number of Object\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"87534327-28df-43b9-aa1e-04281c5ad689\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Object\"],\"isOpposite\": false}},{\"id\": \"c94a8ba0-abdd-4249-8686-4b6c5d0d86b5\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"c8c1d258-9b48-4651-a445-4d8dad0b71cc\",\"color\": \"#FCC838\"},{\"serieName\": \"Unique Number of Object\",\"color\": \"#8C62F5\"}],\"systemSeriesColors\": [{\"serieName\": \"c8c1d258-9b48-4651-a445-4d8dad0b71cc\",\"color\": \"#FCC838\"},{\"serieName\": \"Unique Number of Object\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 561a3800-1a03-4266-a325-d34a782552ba + viz_guid: 9b673c89-2b05-4441-8bb3-125e8ecae97e - id: Viz_25 answer: name: Total Answers @@ -1212,7 +1216,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":false,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Unique Number of Object\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"18f11ee4-0d01-4b2e-add7-a5dd0c47c963\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Object\"],\"isOpposite\": false}},{\"id\": \"7c8185d4-2c77-41eb-a9d8-72086ab31756\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"c8c1d258-9b48-4651-a445-4d8dad0b71cc\",\"color\": \"#FCC838\"},{\"serieName\": \"Unique Number of Object\",\"color\": \"#06BF7F\"}],\"systemSeriesColors\": [{\"serieName\": \"c8c1d258-9b48-4651-a445-4d8dad0b71cc\",\"color\": \"#FCC838\"},{\"serieName\": \"Unique Number of Object\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 21e889b6-8006-40cd-8bee-782e2614a43c + viz_guid: 2be9520c-7803-4956-bb6c-c4fb689c8bbf - id: Viz_26 answer: name: Weekly User Breakdown @@ -1221,55 +1225,54 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Net Active Users + - id: formula_Net Active Users name: Net Active Users - expr: "[Active Users] - [New Users] + [Churned Users] - [Winback Users]" + expr: "[Active Users] - [formula_New Users] + [formula_Churned Users] - [formula_Winback Users]" was_auto_generated: false - - id: Churned Users + - id: formula_Churned Users name: Churned Users - expr: "unique_count_if ( [fx Churn Threshold Reached] , [Interaction User] ) * - 1" + expr: "unique_count_if ( [formula_fx Churn Threshold Reached] , [Interaction User] ) * - 1" was_auto_generated: false - - id: New Users + - id: formula_New Users name: New Users - expr: "unique_count_if ( [fx Last Activity Datestamp] = null , [Interaction User] )" + expr: "unique_count_if ( [formula_fx Last Activity Datestamp] = null , [Interaction User] )" was_auto_generated: false - - id: Winback Users + - id: formula_Winback Users name: Winback Users - expr: "unique_count_if ( diff_days ( [Datestamp] , [fx Last Activity Datestamp] ) >= [fx Inactivity Day Threshold Amount] , [Interaction User] )" + expr: "unique_count_if ( diff_days ( [formula_Datestamp] , [formula_fx Last Activity Datestamp] ) >= [formula_fx Inactivity Day Threshold Amount] , [Interaction User] )" was_auto_generated: false - - id: fx Churn Threshold Reached + - id: formula_fx Churn Threshold Reached name: fx Churn Threshold Reached - expr: "diff_days ( [Datestamp] , [fx User Last Seen] ) = 0 and diff_days ( today ( ) , [Datestamp] ) >= [fx Inactivity Day Threshold Amount]" + expr: "diff_days ( [formula_Datestamp] , [formula_fx User Last Seen] ) = 0 and diff_days ( today ( ) , [formula_Datestamp] ) >= [formula_fx Inactivity Day Threshold Amount]" was_auto_generated: false - - id: fx Days Since Last Activity + - id: formula_fx Days Since Last Activity name: fx Days Since Last Activity - expr: "diff_days ( [Datestamp] , [fx Last Activity Datestamp] )" + expr: "diff_days ( [formula_Datestamp] , [formula_fx Last Activity Datestamp] )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: fx Inactivity Day Threshold Amount + - id: formula_fx Inactivity Day Threshold Amount name: fx Inactivity Day Threshold Amount expr: "35" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: fx Last Activity Datestamp + - id: formula_fx Last Activity Datestamp name: fx Last Activity Datestamp - expr: "group_aggregate ( moving_max ( [Datestamp] , 2 , - 1 , [Datestamp] ) , query_groups ( ) + { [Interaction User] } , query_filters ( ) + { [Interaction User] } - { [Datestamp] , [Interaction Timestamp] } )" + expr: "group_aggregate ( moving_max ( [formula_Datestamp] , 2 , - 1 , [formula_Datestamp] ) , query_groups ( ) + { [Interaction User] } , query_filters ( ) + { [Interaction User] } - { [formula_Datestamp] , [Interaction Timestamp] } )" was_auto_generated: false - - id: fx User Last Seen + - id: formula_fx User Last Seen name: fx User Last Seen - expr: "group_aggregate ( max ( [Datestamp] ) , { [Interaction User] } , { } )" + expr: "group_aggregate ( max ( [formula_Datestamp] ) , { [Interaction User] } , { } )" was_auto_generated: false - - id: Datestamp + - id: formula_Datestamp name: Datestamp expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "[Datestamp] [Datestamp].weekly sort by [Datestamp] [Datestamp].weekly [New Users] [Churned Users] [Winback Users] [Net Active Users]" + search_query: "[formula_Datestamp] [formula_Datestamp].weekly sort by [formula_Datestamp] [formula_Datestamp].weekly [formula_New Users] [formula_Churned Users] [formula_Winback Users] [formula_Net Active Users]" answer_columns: - - name: Week(Datestamp) - - name: New Users - custom_name: Brand New Users + - name: Churned Users + custom_name: Disengaged Users format: category: NUMBER numberFormatConfig: @@ -1278,8 +1281,8 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Churned Users - custom_name: Disengaged Users + - name: Net Active Users + custom_name: Existing Active Users format: category: NUMBER numberFormatConfig: @@ -1288,9 +1291,8 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Winback Users - - name: Net Active Users - custom_name: Existing Active Users + - name: New Users + custom_name: Brand New Users format: category: NUMBER numberFormatConfig: @@ -1299,18 +1301,22 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + - name: Week(Datestamp) + sort_info: + category: DEFAULT + - name: Winback Users table: table_columns: - - column_id: Week(Datestamp) + - column_id: Churned Users + show_headline: false + - column_id: Net Active Users show_headline: false - column_id: New Users show_headline: false - - column_id: Churned Users + - column_id: Week(Datestamp) show_headline: false - column_id: Winback Users show_headline: false - - column_id: Net Active Users - show_headline: false ordered_column_ids: - Week(Datestamp) - New Users @@ -1322,11 +1328,11 @@ liveboard: chart: type: STACKED_COLUMN chart_columns: - - column_id: Week(Datestamp) - - column_id: New Users - column_id: Churned Users - - column_id: Winback Users - column_id: Net Active Users + - column_id: New Users + - column_id: Week(Datestamp) + - column_id: Winback Users axis_configs: - x: - Week(Datestamp) @@ -1338,7 +1344,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": true},\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"isStackedAsPercent\": false,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 2.0,\"removeTrailingZeroes\": false},\"isCategoryEditable\": false},\"pivotSummariesState\": {}},\"showStackedLabels\": false,\"allLabels\": false,\"legendPosition\": \"TOP_LEGEND\"},\"columnProperties\": [{\"columnId\": \"New Users\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"Churned Users\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"Winback Users\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"Net Active Users\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"Week(Datestamp)\",\"columnProperty\": {\"dataLabels\": false}}],\"axisProperties\": [{\"id\": \"910e0111-8cdc-43d5-be51-637141cbd3af\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Week(Datestamp)\"],\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"090ef492-8ea7-4567-a35c-e80020084fae\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"New Users\",\"Churned Users\",\"Winback Users\",\"Net Active Users\"],\"format\": {\"category\": \"NUMBER\",\"numberFormatConfig\": {\"unit\": \"NONE\",\"decimals\": 0.0,\"negativeValueFormat\": \"PREFIX_DASH\",\"toSeparateThousands\": true},\"isCategoryEditable\": true},\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"c5b2ad12-bc34-47fe-b3ec-9be8cd64687a\",\"color\": \"#FCC838\"},{\"serieName\": \"active users\",\"color\": \"#FCC838\"},{\"serieName\": \"churned users\",\"color\": \"#FF8142\"},{\"serieName\": \"new users\",\"color\": \"#2E75F0\"},{\"serieName\": \"d599149d-985a-4886-88de-e64648a95e8a\",\"color\": \"#F47E89\"},{\"serieName\": \"7332793c-20c5-454e-86d8-7fa9ec5260cb\",\"color\": \"#ABC7F9\"},{\"serieName\": \"ba56ccbe-966f-4785-87d3-1e954649f698\",\"color\": \"#56D3A8\"},{\"serieName\": \"New Users\",\"color\": \"#56D3A8\"},{\"serieName\": \"Net Active Users\",\"color\": \"#ABC7F9\"},{\"serieName\": \"Churned Users\",\"color\": \"#F47E89\"},{\"serieName\": \"Winback Users\",\"color\": \"#FCD977\"}],\"systemSeriesColors\": [{\"serieName\": \"c5b2ad12-bc34-47fe-b3ec-9be8cd64687a\",\"color\": \"#FCC838\"},{\"serieName\": \"active users\",\"color\": \"#FCC838\"},{\"serieName\": \"churned users\",\"color\": \"#FF8142\"},{\"serieName\": \"new users\",\"color\": \"#2E75F0\"},{\"serieName\": \"d599149d-985a-4886-88de-e64648a95e8a\",\"color\": \"#F47E89\"},{\"serieName\": \"7332793c-20c5-454e-86d8-7fa9ec5260cb\",\"color\": \"#ABC7F9\"},{\"serieName\": \"ba56ccbe-966f-4785-87d3-1e954649f698\",\"color\": \"#56D3A8\"},{\"serieName\": \"New Users\",\"color\": \"#2E75F0\"},{\"serieName\": \"Churned Users\",\"color\": \"#FF8142\"},{\"serieName\": \"Winback Users\",\"color\": \"#48D1E0\"},{\"serieName\": \"Net Active Users\",\"color\": \"#2E75F0\"}]}" display_mode: CHART_MODE - viz_guid: 9e22452f-9418-4e47-926b-0e8000807b93 + viz_guid: 3dce8bd5-9264-47dc-b992-d8c6baaba8ef - id: Viz_27 answer: name: Brand New Users @@ -1347,53 +1353,52 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Net Active Users + - id: formula_Net Active Users name: Net Active Users - expr: "[Active Users] - [New Users] + [Churned Users] - [Winback Users]" + expr: "[Active Users] - [formula_New Users] + [formula_Churned Users] - [formula_Winback Users]" was_auto_generated: false - - id: New Users + - id: formula_New Users name: New Users - expr: "unique_count_if ( [fx Last Activity Datestamp] = null , [Interaction User] )" + expr: "unique_count_if ( [formula_fx Last Activity Datestamp] = null , [Interaction User] )" was_auto_generated: false - - id: Churned Users + - id: formula_Churned Users name: Churned Users - expr: "unique_count_if ( [fx Churn Threshold Reached] , [Interaction User] ) * - 1" + expr: "unique_count_if ( [formula_fx Churn Threshold Reached] , [Interaction User] ) * - 1" was_auto_generated: false - - id: Winback Users + - id: formula_Winback Users name: Winback Users - expr: "unique_count_if ( diff_days ( [Datestamp] , [fx Last Activity Datestamp] ) >= [fx Inactivity Day Threshold Amount] , [Interaction User] )" + expr: "unique_count_if ( diff_days ( [formula_Datestamp] , [formula_fx Last Activity Datestamp] ) >= [formula_fx Inactivity Day Threshold Amount] , [Interaction User] )" was_auto_generated: false - - id: fx Churn Threshold Reached + - id: formula_fx Churn Threshold Reached name: fx Churn Threshold Reached - expr: "diff_days ( [Datestamp] , [fx User Last Seen] ) = 0 and diff_days ( today ( ) , [Datestamp] ) >= [fx Inactivity Day Threshold Amount]" + expr: "diff_days ( [formula_Datestamp] , [formula_fx User Last Seen] ) = 0 and diff_days ( today ( ) , [formula_Datestamp] ) >= [formula_fx Inactivity Day Threshold Amount]" was_auto_generated: false - - id: fx Days Since Last Activity + - id: formula_fx Days Since Last Activity name: fx Days Since Last Activity - expr: "diff_days ( [Datestamp] , [fx Last Activity Datestamp] )" + expr: "diff_days ( [formula_Datestamp] , [formula_fx Last Activity Datestamp] )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: fx Inactivity Day Threshold Amount + - id: formula_fx Inactivity Day Threshold Amount name: fx Inactivity Day Threshold Amount expr: "35" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: fx Last Activity Datestamp + - id: formula_fx Last Activity Datestamp name: fx Last Activity Datestamp - expr: "group_aggregate ( moving_max ( [Datestamp] , 2 , - 1 , [Datestamp] ) , query_groups ( ) + { [Interaction User] } , query_filters ( ) + { [Interaction User] } - { [Datestamp] , [Interaction Timestamp] } )" + expr: "group_aggregate ( moving_max ( [formula_Datestamp] , 2 , - 1 , [formula_Datestamp] ) , query_groups ( ) + { [Interaction User] } , query_filters ( ) + { [Interaction User] } - { [formula_Datestamp] , [Interaction Timestamp] } )" was_auto_generated: false - - id: fx User Last Seen + - id: formula_fx User Last Seen name: fx User Last Seen - expr: "group_aggregate ( max ( [Datestamp] ) , { [Interaction User] } , { } )" + expr: "group_aggregate ( max ( [formula_Datestamp] ) , { [Interaction User] } , { } )" was_auto_generated: false - - id: Datestamp + - id: formula_Datestamp name: Datestamp expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "[Datestamp] [Datestamp].quarterly [New Users]" + search_query: "[formula_Datestamp] [formula_Datestamp].quarterly [formula_New Users]" answer_columns: - - name: Quarter(Datestamp) - name: New Users custom_name: Brand New Users format: @@ -1404,12 +1409,13 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + - name: Quarter(Datestamp) table: table_columns: - - column_id: Quarter(Datestamp) - show_headline: false - column_id: New Users show_headline: false + - column_id: Quarter(Datestamp) + show_headline: false ordered_column_ids: - Quarter(Datestamp) - New Users @@ -1418,8 +1424,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Quarter(Datestamp) - column_id: New Users + - column_id: Quarter(Datestamp) axis_configs: - x: - Quarter(Datestamp) @@ -1428,7 +1434,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": true},\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"isStackedAsPercent\": false,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 2.0,\"removeTrailingZeroes\": false},\"isCategoryEditable\": false},\"pivotSummariesState\": {}},\"showStackedLabels\": false,\"allLabels\": false},\"columnProperties\": [{\"columnId\": \"Quarter(Datestamp)\",\"columnProperty\": {\"dataLabels\": false}},{\"columnId\": \"New Users\",\"columnProperty\": {\"dataLabels\": false,\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#56D3A8\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false}}]}}}],\"axisProperties\": [{\"id\": \"d80dc02d-a30c-4ee1-8a95-cd76e39b999c\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"New Users\"],\"isOpposite\": false}},{\"id\": \"9cb53966-fe83-49d4-b1a4-af56491e2464\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Quarter(Datestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"c5b2ad12-bc34-47fe-b3ec-9be8cd64687a\",\"color\": \"#FCC838\"},{\"serieName\": \"active users\",\"color\": \"#FCC838\"},{\"serieName\": \"churned users\",\"color\": \"#FF8142\"},{\"serieName\": \"new users\",\"color\": \"#2E75F0\"},{\"serieName\": \"d599149d-985a-4886-88de-e64648a95e8a\",\"color\": \"#F47E89\"},{\"serieName\": \"7332793c-20c5-454e-86d8-7fa9ec5260cb\",\"color\": \"#ABC7F9\"},{\"serieName\": \"ba56ccbe-966f-4785-87d3-1e954649f698\",\"color\": \"#56D3A8\"},{\"serieName\": \"New Users\",\"color\": \"#56D3A8\"},{\"serieName\": \"a71c0cd4-5c48-4742-8c1b-ad406bfa9698\",\"color\": \"#ABC7F9\"},{\"serieName\": \"7217c777-6f59-4d63-a84f-dbc7841b4acd\",\"color\": \"#F47E89\"},{\"serieName\": \"995df912-020e-4f15-963b-33d885c86622\",\"color\": \"#FCD977\"}]}" display_mode: CHART_MODE - viz_guid: b64246be-ad55-46c3-930b-0d0f274d3c27 + viz_guid: 401c25bb-3d91-4cd3-9f5e-63ab3ed8bf6c - id: Viz_28 answer: name: Data Exports per User @@ -1437,20 +1443,20 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Data Exports per User + - id: formula_Data Exports per User name: Data Exports per User - expr: "count_if ( [User Action Category] = 'data exports' , [Incident ID] ) / [Active Users] " + expr: "count_if ( [User Action Category] = 'data exports' , [Incident ID] ) / [Active Users]" was_auto_generated: false - search_query: "[Interaction Timestamp] [Interaction Timestamp].quarterly [Interaction User] != '{Null}' [Data Exports per User]" + search_query: "[Interaction Timestamp] [Interaction Timestamp].quarterly [Interaction User] != '{null}' [formula_Data Exports per User]" answer_columns: - - name: Quarter(Interaction Timestamp) - name: Data Exports per User + - name: Quarter(Interaction Timestamp) table: table_columns: - - column_id: Quarter(Interaction Timestamp) - show_headline: false - column_id: Data Exports per User show_headline: false + - column_id: Quarter(Interaction Timestamp) + show_headline: false ordered_column_ids: - Quarter(Interaction Timestamp) - Data Exports per User @@ -1459,8 +1465,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Quarter(Interaction Timestamp) - column_id: Data Exports per User + - column_id: Quarter(Interaction Timestamp) axis_configs: - x: - Quarter(Interaction Timestamp) @@ -1469,13 +1475,13 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Quarter(Interaction Timestamp)\",\"columnProperty\": {}},{\"columnId\": \"Data Exports per User\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"99fd7ef7-dfd1-4ff2-9d0d-eb38f099fe6a\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Data Exports per User\"],\"isOpposite\": false}},{\"id\": \"d3e231df-cc88-45b9-852e-c8efd5abfa83\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Quarter(Interaction Timestamp)\"]}}],\"seriesColors\": [{\"serieName\": \"56955d13-deb6-4f79-bf73-7d9e8a770c8c\",\"color\": \"#FCC838\"},{\"serieName\": \"3ceee54b-d5ee-4126-afec-bf44b0a1ece4\",\"color\": \"#FF8142\"},{\"serieName\": \"5e0ad842-5465-4bc0-84a1-bacce8cce09b\",\"color\": \"#FF8142\"},{\"serieName\": \"Interaction User\",\"color\": \"#FF8142\"},{\"serieName\": \"a3230c60-e126-45a5-9ef8-1c8d9167bde3\",\"color\": \"#FF8142\"},{\"serieName\": \"Data Exports per User\",\"color\": \"#FF8142\"}],\"systemSeriesColors\": [{\"serieName\": \"56955d13-deb6-4f79-bf73-7d9e8a770c8c\",\"color\": \"#FCC838\"},{\"serieName\": \"3ceee54b-d5ee-4126-afec-bf44b0a1ece4\",\"color\": \"#FF8142\"},{\"serieName\": \"5e0ad842-5465-4bc0-84a1-bacce8cce09b\",\"color\": \"#FF8142\"},{\"serieName\": \"Interaction User\",\"color\": \"#FF8142\"},{\"serieName\": \"a3230c60-e126-45a5-9ef8-1c8d9167bde3\",\"color\": \"#FF8142\"},{\"serieName\": \"Data Exports per User\",\"color\": \"#2770ef\"}],\"customColorSelectorArray\": [\"#F04152\",\"#06BF7F\",\"#F04152\",\"#747E8C\"]}" display_mode: CHART_MODE - viz_guid: d28aa08d-b115-483d-97c1-5a2924bfcd02 + viz_guid: e00074a9-8d7a-46f4-9462-cdffd0c9b84c - id: Viz_29 - viz_guid: aeac90f4-ba11-484b-b853-b288df519c97 + viz_guid: 8d25f392-2dc1-4585-8314-dc7e061da6c9 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_30 - viz_guid: 27d5a42e-0ff8-4369-8711-93a3e638018f + viz_guid: f96540ee-79d3-4ad3-b2bc-245b1ae3b806 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_31 @@ -1486,45 +1492,44 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Leaderboard Rank + - id: formula_Leaderboard Rank name: Leaderboard Rank - expr: "rank ( [Leaderboard Score] , 'desc' )" + expr: "rank ( [formula_Leaderboard Score] , 'desc' )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: Leaderboard Score + - id: formula_Leaderboard Score name: Leaderboard Score - expr: "( 0 + [Searches (5x)] + [Answers (3x)] + [Liveboards (1x)] + [Data Exports (-5x)] )" + expr: "( 0 + [formula_Searches (5x)] + [formula_Answers (3x)] + [formula_Liveboards (1x)] + [formula_Data Exports (-5x)] )" was_auto_generated: false - - id: Answers (3x) + - id: formula_Answers (3x) name: Answers (3x) expr: "unique_count_if ( [User Action Category] = 'answers' , [Incident ID] ) * 3" was_auto_generated: false - - id: Data Exports (-5x) + - id: formula_Data Exports (-5x) name: Data Exports (-5x) expr: "unique_count_if ( [User Action Category] = 'data exports' , [Incident ID] ) * - 5" was_auto_generated: false - - id: Liveboards (1x) + - id: formula_Liveboards (1x) name: Liveboards (1x) expr: "unique_count_if ( [User Action Category] = 'liveboards' , [Incident ID] ) * 1" was_auto_generated: false - - id: Searches (5x) + - id: formula_Searches (5x) name: Searches (5x) expr: "unique_count_if ( [User Action Category] = 'search' , [Incident ID] ) * 5" was_auto_generated: false - search_query: "[Leaderboard Score] [Group] [Group Sharing] = 'default' [Searches (5x)] [Answers (3x)] [Liveboards (1x)] [Data Exports (-5x)] [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' ) [Leaderboard Rank] sort by [Leaderboard Score] descending" + search_query: "[formula_Leaderboard Score] [Group] [Group Sharing] = 'default' [formula_Searches (5x)] [formula_Answers (3x)] [formula_Liveboards (1x)] [formula_Data Exports (-5x)] [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' ) [formula_Leaderboard Rank] sort by [formula_Leaderboard Score] descending" answer_columns: - - name: Leaderboard Score + - name: Answers (3x) format: category: NUMBER numberFormatConfig: - unit: THOUSANDS - decimals: 1.0 + unit: NONE + decimals: 0.0 negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Group - - name: Searches (5x) + - name: Data Exports (-5x) format: category: NUMBER numberFormatConfig: @@ -1533,15 +1538,19 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Answers (3x) + - name: Group + - name: Leaderboard Rank + - name: Leaderboard Score format: category: NUMBER numberFormatConfig: - unit: NONE - decimals: 0.0 + unit: THOUSANDS + decimals: 1.0 negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + sort_info: + category: DEFAULT - name: Liveboards (1x) format: category: NUMBER @@ -1551,7 +1560,7 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Data Exports (-5x) + - name: Searches (5x) format: category: NUMBER numberFormatConfig: @@ -1560,22 +1569,21 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Leaderboard Rank table: table_columns: + - column_id: Answers (3x) + show_headline: false + - column_id: Data Exports (-5x) + show_headline: false - column_id: Group show_headline: false - column_id: Leaderboard Rank show_headline: false - column_id: Leaderboard Score show_headline: false - - column_id: Searches (5x) - show_headline: false - - column_id: Answers (3x) - show_headline: false - column_id: Liveboards (1x) show_headline: false - - column_id: Data Exports (-5x) + - column_id: Searches (5x) show_headline: false ordered_column_ids: - Group @@ -1590,13 +1598,13 @@ liveboard: chart: type: STACKED_BAR chart_columns: + - column_id: Answers (3x) + - column_id: Data Exports (-5x) - column_id: Group - column_id: Leaderboard Rank - column_id: Leaderboard Score - - column_id: Searches (5x) - - column_id: Answers (3x) - column_id: Liveboards (1x) - - column_id: Data Exports (-5x) + - column_id: Searches (5x) axis_configs: - x: - Group @@ -1607,7 +1615,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"axisExtremes\": {\"x\": [{\"min\": 0.0,\"max\": 19.0}],\"y\": [{\"min\": -100000.0,\"max\": 1000000.0}]},\"isZoomed\": false,\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"isStackedAsPercent\": false,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 2.0,\"removeTrailingZeroes\": false},\"isCategoryEditable\": false},\"pivotSummariesState\": {}},\"showStackedLabels\": false,\"legendPosition\": \"TOP_LEGEND\"},\"columnProperties\": [{\"columnId\": \"Group\",\"columnProperty\": {}},{\"columnId\": \"Leaderboard Score\",\"columnProperty\": {\"dataLabels\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"dataLabels\\\":{\\\"backgroundColor\\\":\\\"\\\",\\\"borderColor\\\":\\\"\\\",\\\"borderWidth\\\":\\\"\\\",\\\"filter\\\":{\\\"operator\\\":\\\"\\\",\\\"value\\\":\\\"\\\"},\\\"align\\\":\\\"left\\\",\\\"style\\\":{\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"maxCharacters\\\":\\\"\\\"}}}\"}},{\"columnId\": \"Searches (5x)\",\"columnProperty\": {}},{\"columnId\": \"Answers (3x)\",\"columnProperty\": {}},{\"columnId\": \"Leaderboard Rank\",\"columnProperty\": {}},{\"columnId\": \"Liveboards (1x)\",\"columnProperty\": {\"conditionalFormatting\": {}}},{\"columnId\": \"Data Exports (-5x)\",\"columnProperty\": {\"conditionalFormatting\": {}}}],\"axisProperties\": [{\"id\": \"b976bfd5-d214-4060-939d-5b17e0b8e9be\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Searches (5x)\",\"Answers (3x)\",\"Liveboards (1x)\"],\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":true,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"dc9d30a9-02e7-4421-80d1-79eb5a6ddae5\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Group\"],\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"30\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"Leaderboard Score\",\"color\": \"#71A1F4\"},{\"serieName\": \"c5a7f6b3-5886-4872-9347-c0fdd68f808a\",\"color\": \"#2E75F0\"},{\"serieName\": \"d6baccc1-940d-4750-889a-ec84707734d9\",\"color\": \"#2E75F0\"},{\"serieName\": \"f7a2762c-93bb-4763-ad03-e143cd33040f\",\"color\": \"#48D1E0\"},{\"serieName\": \"ae49a4d0-2cae-4543-b824-0ce56a1b5752\",\"color\": \"#2E75F0\"},{\"serieName\": \"aaron\",\"color\": \"#721F27\"},{\"serieName\": \"aastha\",\"color\": \"#F47E89\"},{\"serieName\": \"abhinav gupta\",\"color\": \"#B6313E\"},{\"serieName\": \"aby jerin\",\"color\": \"#F9B3B9\"},{\"serieName\": \"dave rubin\",\"color\": \"#F04152\"},{\"serieName\": \"devin mcpherson\",\"color\": \"#2F3947\"},{\"serieName\": \"dr. thoughtspot\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ismael hernandez\",\"color\": \"#47515F\"},{\"serieName\": \"jj\",\"color\": \"#BEC6D0\"},{\"serieName\": \"james belsey\",\"color\": \"#747E8C\"},{\"serieName\": \"josh royse\",\"color\": \"#7A3D1F\"},{\"serieName\": \"kaushik patel\",\"color\": \"#FFA97E\"},{\"serieName\": \"ram\",\"color\": \"#C26232\"},{\"serieName\": \"rifdhan nazeer\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sydney akers\",\"color\": \"#FF8142\"},{\"serieName\": \"trey salas\",\"color\": \"#422E75\"},{\"serieName\": \"tri tu\",\"color\": \"#B094F8\"},{\"serieName\": \"vaibhav singh\",\"color\": \"#6A4ABA\"},{\"serieName\": \"adelaide.mcnamara\",\"color\": \"#D1C0FB\"},{\"serieName\": \"akshat sharda\",\"color\": \"#8C62F5\"},{\"serieName\": \"aman.bhattarai\",\"color\": \"#025B3C\"},{\"serieName\": \"andrea.frisk\",\"color\": \"#56D3A8\"},{\"serieName\": \"andreea.pop\",\"color\": \"#049160\"},{\"serieName\": \"arpit.rai\",\"color\": \"#9BE5CB\"},{\"serieName\": \"azimuddin.mohammed\",\"color\": \"#06BF7F\"},{\"serieName\": \"barbara.trevino\",\"color\": \"#785F1A\"},{\"serieName\": \"brendon.ritz\",\"color\": \"#FCD977\"},{\"serieName\": \"brian.reynolds\",\"color\": \"#BF982A\"},{\"serieName\": \"damian.waldron\",\"color\": \"#FDE9AF\"},{\"serieName\": \"danielle.peranich\",\"color\": \"#FCC838\"},{\"serieName\": \"delara.patel\",\"color\": \"#22636B\"},{\"serieName\": \"emma.robinson\",\"color\": \"#82DFE9\"},{\"serieName\": \"evan rodriguez\",\"color\": \"#369FAA\"},{\"serieName\": \"gabi.sicher\",\"color\": \"#B5ECF2\"},{\"serieName\": \"hungpin.kao\",\"color\": \"#48D1E0\"},{\"serieName\": \"izabella.dee\",\"color\": \"#163772\"},{\"serieName\": \"kendrick.heath\",\"color\": \"#71A1F4\"},{\"serieName\": \"kim.skornik\",\"color\": \"#2359B6\"},{\"serieName\": \"leanne.monter\",\"color\": \"#ABC7F9\"},{\"serieName\": \"manan.shah\",\"color\": \"#2E75F0\"},{\"serieName\": \"martha.miller\",\"color\": \"#721F27\"},{\"serieName\": \"mason.vreugde\",\"color\": \"#F47E89\"},{\"serieName\": \"micah.terry\",\"color\": \"#B6313E\"},{\"serieName\": \"mohil.verma\",\"color\": \"#F9B3B9\"},{\"serieName\": \"patrick.evans\",\"color\": \"#F04152\"},{\"serieName\": \"prashant.patil\",\"color\": \"#2F3947\"},{\"serieName\": \"ron.dugger\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ryan.ng\",\"color\": \"#47515F\"},{\"serieName\": \"sagar.murthy\",\"color\": \"#BEC6D0\"},{\"serieName\": \"sebastian.haep\",\"color\": \"#747E8C\"},{\"serieName\": \"shubham.sonawane\",\"color\": \"#7A3D1F\"},{\"serieName\": \"srinithya.chikyala\",\"color\": \"#FFA97E\"},{\"serieName\": \"stephen.newman\",\"color\": \"#C26232\"},{\"serieName\": \"sumeet.arora\",\"color\": \"#FFCCB3\"},{\"serieName\": \"tejas.sachdeva\",\"color\": \"#FF8142\"},{\"serieName\": \"thomas.day\",\"color\": \"#422E75\"},{\"serieName\": \"administration group\",\"color\": \"#C26232\"},{\"serieName\": \"customer service\",\"color\": \"#FFCCB3\"},{\"serieName\": \"customer success\",\"color\": \"#FF8142\"},{\"serieName\": \"data management\",\"color\": \"#B094F8\"},{\"serieName\": \"data-ops\",\"color\": \"#6A4ABA\"},{\"serieName\": \"discovergroup\",\"color\": \"#D1C0FB\"},{\"serieName\": \"emea ps\",\"color\": \"#8C62F5\"},{\"serieName\": \"engineering\",\"color\": \"#56D3A8\"},{\"serieName\": \"executive\",\"color\": \"#049160\"},{\"serieName\": \"friends of cs tools\",\"color\": \"#9BE5CB\"},{\"serieName\": \"friends of professional services\",\"color\": \"#06BF7F\"},{\"serieName\": \"growth\",\"color\": \"#FCD977\"},{\"serieName\": \"hr\",\"color\": \"#BF982A\"},{\"serieName\": \"marketing\",\"color\": \"#FDE9AF\"},{\"serieName\": \"operations\",\"color\": \"#FCC838\"},{\"serieName\": \"product management\",\"color\": \"#82DFE9\"},{\"serieName\": \"professional services\",\"color\": \"#369FAA\"},{\"serieName\": \"sales\",\"color\": \"#B5ECF2\"},{\"serieName\": \"solution consultant\",\"color\": \"#48D1E0\"},{\"serieName\": \"strategic accounts team\",\"color\": \"#71A1F4\"},{\"serieName\": \"tse team\",\"color\": \"#2359B6\"},{\"serieName\": \"data_manager\",\"color\": \"#ABC7F9\"},{\"serieName\": \"dm_grp\",\"color\": \"#2E75F0\"},{\"serieName\": \"cs tools\",\"color\": \"#F47E89\"},{\"serieName\": \"hailey hickman\",\"color\": \"#F04152\"},{\"serieName\": \"krupal.desai\",\"color\": \"#BEC6D0\"},{\"serieName\": \"lizzette corona\",\"color\": \"#747E8C\"},{\"serieName\": \"nupur badoni\",\"color\": \"#7A3D1F\"},{\"serieName\": \"scott holden\",\"color\": \"#C26232\"},{\"serieName\": \"scottiq\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sree\",\"color\": \"#FF8142\"},{\"serieName\": \"system user\",\"color\": \"#422E75\"},{\"serieName\": \"vikas gautam\",\"color\": \"#D1C0FB\"},{\"serieName\": \"aditya.abhinav\",\"color\": \"#025B3C\"},{\"serieName\": \"alok.yadav\",\"color\": \"#049160\"},{\"serieName\": \"andrew.sue\",\"color\": \"#FCD977\"},{\"serieName\": \"anthony.dimascio\",\"color\": \"#BF982A\"},{\"serieName\": \"autumn.bushman\",\"color\": \"#FDE9AF\"},{\"serieName\": \"charles.tuttle\",\"color\": \"#82DFE9\"},{\"serieName\": \"daxesh.patwa\",\"color\": \"#48D1E0\"},{\"serieName\": \"denise.lee\",\"color\": \"#71A1F4\"},{\"serieName\": \"harsh.sinha\",\"color\": \"#721F27\"},{\"serieName\": \"jacob.rehmann\",\"color\": \"#B6313E\"},{\"serieName\": \"jeff.depa\",\"color\": \"#F9B3B9\"},{\"serieName\": \"jens.englert\",\"color\": \"#F04152\"},{\"serieName\": \"joshua.gill\",\"color\": \"#2F3947\"},{\"serieName\": \"katie.dunn\",\"color\": \"#A2ACBA\"},{\"serieName\": \"kelly.daugherty\",\"color\": \"#47515F\"},{\"serieName\": \"maheshwari.dhandapani\",\"color\": \"#7A3D1F\"},{\"serieName\": \"mani.uppala\",\"color\": \"#FFA97E\"},{\"serieName\": \"manish.agarwal\",\"color\": \"#C26232\"},{\"serieName\": \"mohit.daswani\",\"color\": \"#6A4ABA\"},{\"serieName\": \"nitish.rajguru\",\"color\": \"#D1C0FB\"},{\"serieName\": \"paul.froggatt\",\"color\": \"#025B3C\"},{\"serieName\": \"priya.waghmare\",\"color\": \"#56D3A8\"},{\"serieName\": \"robert.baxley\",\"color\": \"#049160\"},{\"serieName\": \"sheryl.zhang\",\"color\": \"#BF982A\"},{\"serieName\": \"svc.champagne2-migration\",\"color\": \"#22636B\"},{\"serieName\": \"vikram.bhaskaran\",\"color\": \"#369FAA\"},{\"serieName\": \"Answers (3x)\",\"color\": \"#56D3A8\"},{\"serieName\": \"Searches (5x)\",\"color\": \"#FCD977\"},{\"serieName\": \"Liveboards (1x)\",\"color\": \"#B094F8\"},{\"serieName\": \"Data Exports (-5x)\",\"color\": \"#F47E89\"}],\"systemSeriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"Leaderboard Score\",\"color\": \"#71A1F4\"},{\"serieName\": \"c5a7f6b3-5886-4872-9347-c0fdd68f808a\",\"color\": \"#2E75F0\"},{\"serieName\": \"d6baccc1-940d-4750-889a-ec84707734d9\",\"color\": \"#2E75F0\"},{\"serieName\": \"f7a2762c-93bb-4763-ad03-e143cd33040f\",\"color\": \"#48D1E0\"},{\"serieName\": \"ae49a4d0-2cae-4543-b824-0ce56a1b5752\",\"color\": \"#2E75F0\"},{\"serieName\": \"aaron\",\"color\": \"#721F27\"},{\"serieName\": \"aastha\",\"color\": \"#F47E89\"},{\"serieName\": \"abhinav gupta\",\"color\": \"#B6313E\"},{\"serieName\": \"aby jerin\",\"color\": \"#F9B3B9\"},{\"serieName\": \"dave rubin\",\"color\": \"#F04152\"},{\"serieName\": \"devin mcpherson\",\"color\": \"#2F3947\"},{\"serieName\": \"dr. thoughtspot\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ismael hernandez\",\"color\": \"#47515F\"},{\"serieName\": \"jj\",\"color\": \"#BEC6D0\"},{\"serieName\": \"james belsey\",\"color\": \"#747E8C\"},{\"serieName\": \"josh royse\",\"color\": \"#7A3D1F\"},{\"serieName\": \"kaushik patel\",\"color\": \"#FFA97E\"},{\"serieName\": \"ram\",\"color\": \"#C26232\"},{\"serieName\": \"rifdhan nazeer\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sydney akers\",\"color\": \"#FF8142\"},{\"serieName\": \"trey salas\",\"color\": \"#422E75\"},{\"serieName\": \"tri tu\",\"color\": \"#B094F8\"},{\"serieName\": \"vaibhav singh\",\"color\": \"#6A4ABA\"},{\"serieName\": \"adelaide.mcnamara\",\"color\": \"#D1C0FB\"},{\"serieName\": \"akshat sharda\",\"color\": \"#8C62F5\"},{\"serieName\": \"aman.bhattarai\",\"color\": \"#025B3C\"},{\"serieName\": \"andrea.frisk\",\"color\": \"#56D3A8\"},{\"serieName\": \"andreea.pop\",\"color\": \"#049160\"},{\"serieName\": \"arpit.rai\",\"color\": \"#9BE5CB\"},{\"serieName\": \"azimuddin.mohammed\",\"color\": \"#06BF7F\"},{\"serieName\": \"barbara.trevino\",\"color\": \"#785F1A\"},{\"serieName\": \"brendon.ritz\",\"color\": \"#FCD977\"},{\"serieName\": \"brian.reynolds\",\"color\": \"#BF982A\"},{\"serieName\": \"damian.waldron\",\"color\": \"#FDE9AF\"},{\"serieName\": \"danielle.peranich\",\"color\": \"#FCC838\"},{\"serieName\": \"delara.patel\",\"color\": \"#22636B\"},{\"serieName\": \"emma.robinson\",\"color\": \"#82DFE9\"},{\"serieName\": \"evan rodriguez\",\"color\": \"#369FAA\"},{\"serieName\": \"gabi.sicher\",\"color\": \"#B5ECF2\"},{\"serieName\": \"hungpin.kao\",\"color\": \"#48D1E0\"},{\"serieName\": \"izabella.dee\",\"color\": \"#163772\"},{\"serieName\": \"kendrick.heath\",\"color\": \"#71A1F4\"},{\"serieName\": \"kim.skornik\",\"color\": \"#2359B6\"},{\"serieName\": \"leanne.monter\",\"color\": \"#ABC7F9\"},{\"serieName\": \"manan.shah\",\"color\": \"#2E75F0\"},{\"serieName\": \"martha.miller\",\"color\": \"#721F27\"},{\"serieName\": \"mason.vreugde\",\"color\": \"#F47E89\"},{\"serieName\": \"micah.terry\",\"color\": \"#B6313E\"},{\"serieName\": \"mohil.verma\",\"color\": \"#F9B3B9\"},{\"serieName\": \"patrick.evans\",\"color\": \"#F04152\"},{\"serieName\": \"prashant.patil\",\"color\": \"#2F3947\"},{\"serieName\": \"ron.dugger\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ryan.ng\",\"color\": \"#47515F\"},{\"serieName\": \"sagar.murthy\",\"color\": \"#BEC6D0\"},{\"serieName\": \"sebastian.haep\",\"color\": \"#747E8C\"},{\"serieName\": \"shubham.sonawane\",\"color\": \"#7A3D1F\"},{\"serieName\": \"srinithya.chikyala\",\"color\": \"#FFA97E\"},{\"serieName\": \"stephen.newman\",\"color\": \"#C26232\"},{\"serieName\": \"sumeet.arora\",\"color\": \"#FFCCB3\"},{\"serieName\": \"tejas.sachdeva\",\"color\": \"#FF8142\"},{\"serieName\": \"thomas.day\",\"color\": \"#422E75\"},{\"serieName\": \"administration group\",\"color\": \"#C26232\"},{\"serieName\": \"customer service\",\"color\": \"#FFCCB3\"},{\"serieName\": \"customer success\",\"color\": \"#FF8142\"},{\"serieName\": \"data management\",\"color\": \"#B094F8\"},{\"serieName\": \"data-ops\",\"color\": \"#6A4ABA\"},{\"serieName\": \"discovergroup\",\"color\": \"#D1C0FB\"},{\"serieName\": \"emea ps\",\"color\": \"#8C62F5\"},{\"serieName\": \"engineering\",\"color\": \"#56D3A8\"},{\"serieName\": \"executive\",\"color\": \"#049160\"},{\"serieName\": \"friends of cs tools\",\"color\": \"#9BE5CB\"},{\"serieName\": \"friends of professional services\",\"color\": \"#06BF7F\"},{\"serieName\": \"growth\",\"color\": \"#FCD977\"},{\"serieName\": \"hr\",\"color\": \"#BF982A\"},{\"serieName\": \"marketing\",\"color\": \"#FDE9AF\"},{\"serieName\": \"operations\",\"color\": \"#FCC838\"},{\"serieName\": \"product management\",\"color\": \"#82DFE9\"},{\"serieName\": \"professional services\",\"color\": \"#369FAA\"},{\"serieName\": \"sales\",\"color\": \"#B5ECF2\"},{\"serieName\": \"solution consultant\",\"color\": \"#48D1E0\"},{\"serieName\": \"strategic accounts team\",\"color\": \"#71A1F4\"},{\"serieName\": \"tse team\",\"color\": \"#2359B6\"},{\"serieName\": \"data_manager\",\"color\": \"#ABC7F9\"},{\"serieName\": \"dm_grp\",\"color\": \"#2E75F0\"},{\"serieName\": \"cs tools\",\"color\": \"#F47E89\"},{\"serieName\": \"hailey hickman\",\"color\": \"#F04152\"},{\"serieName\": \"krupal.desai\",\"color\": \"#BEC6D0\"},{\"serieName\": \"lizzette corona\",\"color\": \"#747E8C\"},{\"serieName\": \"nupur badoni\",\"color\": \"#7A3D1F\"},{\"serieName\": \"scott holden\",\"color\": \"#C26232\"},{\"serieName\": \"scottiq\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sree\",\"color\": \"#FF8142\"},{\"serieName\": \"system user\",\"color\": \"#422E75\"},{\"serieName\": \"vikas gautam\",\"color\": \"#D1C0FB\"},{\"serieName\": \"aditya.abhinav\",\"color\": \"#025B3C\"},{\"serieName\": \"alok.yadav\",\"color\": \"#049160\"},{\"serieName\": \"andrew.sue\",\"color\": \"#FCD977\"},{\"serieName\": \"anthony.dimascio\",\"color\": \"#BF982A\"},{\"serieName\": \"autumn.bushman\",\"color\": \"#FDE9AF\"},{\"serieName\": \"charles.tuttle\",\"color\": \"#82DFE9\"},{\"serieName\": \"daxesh.patwa\",\"color\": \"#48D1E0\"},{\"serieName\": \"denise.lee\",\"color\": \"#71A1F4\"},{\"serieName\": \"harsh.sinha\",\"color\": \"#721F27\"},{\"serieName\": \"jacob.rehmann\",\"color\": \"#B6313E\"},{\"serieName\": \"jeff.depa\",\"color\": \"#F9B3B9\"},{\"serieName\": \"jens.englert\",\"color\": \"#F04152\"},{\"serieName\": \"joshua.gill\",\"color\": \"#2F3947\"},{\"serieName\": \"katie.dunn\",\"color\": \"#A2ACBA\"},{\"serieName\": \"kelly.daugherty\",\"color\": \"#47515F\"},{\"serieName\": \"maheshwari.dhandapani\",\"color\": \"#7A3D1F\"},{\"serieName\": \"mani.uppala\",\"color\": \"#FFA97E\"},{\"serieName\": \"manish.agarwal\",\"color\": \"#C26232\"},{\"serieName\": \"mohit.daswani\",\"color\": \"#6A4ABA\"},{\"serieName\": \"nitish.rajguru\",\"color\": \"#D1C0FB\"},{\"serieName\": \"paul.froggatt\",\"color\": \"#025B3C\"},{\"serieName\": \"priya.waghmare\",\"color\": \"#56D3A8\"},{\"serieName\": \"robert.baxley\",\"color\": \"#049160\"},{\"serieName\": \"sheryl.zhang\",\"color\": \"#BF982A\"},{\"serieName\": \"svc.champagne2-migration\",\"color\": \"#22636B\"},{\"serieName\": \"vikram.bhaskaran\",\"color\": \"#369FAA\"},{\"serieName\": \"Searches (5x)\",\"color\": \"#FCC838\"},{\"serieName\": \"Answers (3x)\",\"color\": \"#48D1E0\"},{\"serieName\": \"Liveboards (1x)\",\"color\": \"#2E75F0\"},{\"serieName\": \"Data Exports (-5x)\",\"color\": \"#06BF7F\"}],\"tooltipConfig\": {\"columnIds\": [\"Leaderboard Rank\",\"Group\",\"Leaderboard Score\",\"Searches (5x)\",\"Answers (3x)\",\"Liveboards (1x)\",\"Data Exports (-5x)\"]}}" display_mode: CHART_MODE - viz_guid: 81f32930-cad0-42d3-b6df-5af7ac238614 + viz_guid: fa5a1540-6625-4e57-b65d-ca085e1256f1 - id: Viz_32 answer: name: Users in more than 1 Shareable Group @@ -1616,16 +1624,16 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Shareable Group Memberships + - id: formula_Shareable Group Memberships name: Shareable Group Memberships expr: "group_aggregate ( count ( [Group] ) , { [Interaction User] } , { [Group Sharing] = 'default' , [Group] not in { 'administration group' , 'demo retail group' } } )" was_auto_generated: false - search_query: "[Interaction User] [Group] count [Group] sum [Interactions] > 0 [Group Sharing] = 'default' [Group] != [Group].'administration group' [Group].'demo retail group' [Shareable Group Memberships] > 1 [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' )" + search_query: "[Interaction User] [Group] count [Group] sum [Interactions] > 0 [Group Sharing] = 'default' [Group] != [Group].'administration group' [Group].'demo retail group' [formula_Shareable Group Memberships] > 1 [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' )" answer_columns: - - name: Interaction User - custom_name: Active User - name: Group custom_name: Shareable Group + - name: Interaction User + custom_name: Active User - name: Number of Group custom_name: Group Memberships format: @@ -1638,10 +1646,10 @@ liveboard: isCategoryEditable: true table: table_columns: - - column_id: Interaction User - show_headline: false - column_id: Group show_headline: false + - column_id: Interaction User + show_headline: false - column_id: Number of Group show_headline: false ordered_column_ids: @@ -1653,8 +1661,8 @@ liveboard: chart: type: SANKEY chart_columns: - - column_id: Interaction User - column_id: Group + - column_id: Interaction User - column_id: Number of Group axis_configs: - x: @@ -1665,9 +1673,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Interaction User\",\"columnProperty\": {}},{\"columnId\": \"Number of Group\",\"columnProperty\": {}},{\"columnId\": \"Group\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"40c02415-c9d4-4457-9222-6c60028d4da9\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Number of Group\"],\"isOpposite\": false}},{\"id\": \"496e79df-621d-468b-acb1-94ccfb1c8f29\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Group\",\"Interaction User\"]}}],\"systemSeriesColors\": [{\"serieName\": \"administration group\",\"color\": \"#A2ACBA\"},{\"serieName\": \"customer service\",\"color\": \"#47515F\"},{\"serieName\": \"customer success\",\"color\": \"#BEC6D0\"},{\"serieName\": \"data management\",\"color\": \"#747E8C\"},{\"serieName\": \"data-ops\",\"color\": \"#FFA97E\"},{\"serieName\": \"demo retail group\",\"color\": \"#C26232\"},{\"serieName\": \"developer group\",\"color\": \"#FFCCB3\"},{\"serieName\": \"discovergroup\",\"color\": \"#FF8142\"},{\"serieName\": \"emea ps\",\"color\": \"#422E75\"},{\"serieName\": \"engineering\",\"color\": \"#B094F8\"},{\"serieName\": \"executive\",\"color\": \"#6A4ABA\"},{\"serieName\": \"friends of cs tools\",\"color\": \"#D1C0FB\"},{\"serieName\": \"friends of professional services\",\"color\": \"#8C62F5\"},{\"serieName\": \"growth\",\"color\": \"#025B3C\"},{\"serieName\": \"hr\",\"color\": \"#56D3A8\"},{\"serieName\": \"liveboard verifier\",\"color\": \"#049160\"},{\"serieName\": \"marketing\",\"color\": \"#9BE5CB\"},{\"serieName\": \"operations\",\"color\": \"#06BF7F\"},{\"serieName\": \"ps: administrator\",\"color\": \"#785F1A\"},{\"serieName\": \"ps: data managers\",\"color\": \"#FCD977\"},{\"serieName\": \"ps: end users\",\"color\": \"#BF982A\"},{\"serieName\": \"ps: power users\",\"color\": \"#FDE9AF\"},{\"serieName\": \"product management\",\"color\": \"#FCC838\"},{\"serieName\": \"professional services\",\"color\": \"#22636B\"},{\"serieName\": \"sales\",\"color\": \"#82DFE9\"},{\"serieName\": \"service accounts\",\"color\": \"#369FAA\"},{\"serieName\": \"solution consultant\",\"color\": \"#B5ECF2\"},{\"serieName\": \"strategic accounts team\",\"color\": \"#48D1E0\"},{\"serieName\": \"system management group\",\"color\": \"#163772\"},{\"serieName\": \"tse team\",\"color\": \"#71A1F4\"},{\"serieName\": \"data_manager\",\"color\": \"#2359B6\"},{\"serieName\": \"dm_grp\",\"color\": \"#ABC7F9\"},{\"serieName\": \"test_group\",\"color\": \"#2E75F0\"},{\"serieName\": \"cff7f168-1351-4999-a180-ba87792b1755\",\"color\": \"#747E8C\"}],\"tooltipConfig\": {\"columnIds\": [\"Group\",\"Interaction User\"]}}" display_mode: CHART_MODE - viz_guid: b2252bdc-19b3-4194-8874-1753dd9a579d + viz_guid: 3b56da93-7f8b-4d8c-9c9c-b16b9472fb98 - id: Viz_33 - viz_guid: c2e3cc7a-e3ba-4d65-9444-4c205daad2cb + viz_guid: 5e607cb9-d4e6-4c4b-bcb5-8176ceaac43b note_tile: html_parsed_string: "

Notes


  • User and Group Filters are unlinked from these visualizations
    Group Leaderboard & Sankey diagram
  • Including any metadata filter above will restrict any Search activity, see Appedix for more details
" - id: Viz_34 @@ -1676,12 +1684,11 @@ liveboard: tables: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced - search_query: "[Group] [Interaction User] [Group Sharing] = 'default' [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' ) [User Action Category] [Interactions] [User Action Category] != [User Action Category].'thoughtspot views' [User Action Category].{Null}" + search_query: "[Group] [Interaction User] [Group Sharing] = 'default' [Interaction User] not in ( [Interaction User] [Group] = [Group].'administration group' [Group].'system management group' ) [User Action Category] [Interactions] [User Action Category] != [User Action Category].'thoughtspot views' [User Action Category].{null}" answer_columns: - name: Group - name: Interaction User custom_name: User - - name: User Action Category - name: Interactions format: category: NUMBER @@ -1691,16 +1698,17 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + - name: User Action Category table: table_columns: - column_id: Group show_headline: false - column_id: Interaction User show_headline: false - - column_id: User Action Category - show_headline: false - column_id: Interactions show_headline: false + - column_id: User Action Category + show_headline: false ordered_column_ids: - Group - Interaction User @@ -1713,8 +1721,8 @@ liveboard: chart_columns: - column_id: Group - column_id: Interaction User - - column_id: User Action Category - column_id: Interactions + - column_id: User Action Category axis_configs: - x: - Group @@ -1736,7 +1744,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotState\": {\"fields\": [{\"dataField\": \"Group\",\"sortBy\": \"value\",\"sortBySummaryField\": \"Interactions\",\"sortOrder\": \"desc\",\"expanded\": false,\"area\": \"row\"},{\"dataField\": \"Interaction User\",\"sortBy\": \"value\",\"sortBySummaryField\": \"Interactions\",\"sortOrder\": \"desc\",\"expanded\": false,\"area\": \"row\"}]},\"summaryMode\": \"None\",\"isHeatmapOverlayed\": true,\"isStackedAsPercent\": false,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 2.0,\"removeTrailingZeroes\": false},\"isCategoryEditable\": false},\"dataFieldArea\": \"column\",\"pivotSummariesState\": {\"showColumnTotals\": true,\"showRowGrandTotals\": false,\"showColumnGrandTotals\": true},\"showPivotSummaryPrior\": \"BOTH\"},\"showStackedLabels\": false},\"columnProperties\": [{\"columnId\": \"Group\",\"columnProperty\": {}},{\"columnId\": \"Interaction User\",\"columnProperty\": {}},{\"columnId\": \"User Action Category\",\"columnProperty\": {}},{\"columnId\": \"Interactions\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"a84d0d57-3724-46ec-92a3-8906719719c0\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Interactions\"],\"isOpposite\": false}},{\"id\": \"624a83c0-d079-49fd-9b5e-4a14a0c89e98\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Group\",\"Interaction User\"]}}],\"seriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"9b7cc31b-fa1f-4d83-b15a-bf3ffcb5688e\",\"color\": \"#71A1F4\"},{\"serieName\": \"c5a7f6b3-5886-4872-9347-c0fdd68f808a\",\"color\": \"#2E75F0\"},{\"serieName\": \"d6baccc1-940d-4750-889a-ec84707734d9\",\"color\": \"#2E75F0\"},{\"serieName\": \"f7a2762c-93bb-4763-ad03-e143cd33040f\",\"color\": \"#48D1E0\"},{\"serieName\": \"ae49a4d0-2cae-4543-b824-0ce56a1b5752\",\"color\": \"#2E75F0\"},{\"serieName\": \"aaron\",\"color\": \"#721F27\"},{\"serieName\": \"aastha\",\"color\": \"#F47E89\"},{\"serieName\": \"abhinav gupta\",\"color\": \"#B6313E\"},{\"serieName\": \"aby jerin\",\"color\": \"#F9B3B9\"},{\"serieName\": \"dave rubin\",\"color\": \"#F04152\"},{\"serieName\": \"devin mcpherson\",\"color\": \"#2F3947\"},{\"serieName\": \"dr. thoughtspot\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ismael hernandez\",\"color\": \"#47515F\"},{\"serieName\": \"jj\",\"color\": \"#BEC6D0\"},{\"serieName\": \"james belsey\",\"color\": \"#747E8C\"},{\"serieName\": \"josh royse\",\"color\": \"#7A3D1F\"},{\"serieName\": \"kaushik patel\",\"color\": \"#FFA97E\"},{\"serieName\": \"ram\",\"color\": \"#C26232\"},{\"serieName\": \"rifdhan nazeer\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sydney akers\",\"color\": \"#FF8142\"},{\"serieName\": \"trey salas\",\"color\": \"#422E75\"},{\"serieName\": \"tri tu\",\"color\": \"#B094F8\"},{\"serieName\": \"vaibhav singh\",\"color\": \"#6A4ABA\"},{\"serieName\": \"adelaide.mcnamara\",\"color\": \"#D1C0FB\"},{\"serieName\": \"akshat sharda\",\"color\": \"#8C62F5\"},{\"serieName\": \"aman.bhattarai\",\"color\": \"#025B3C\"},{\"serieName\": \"andrea.frisk\",\"color\": \"#56D3A8\"},{\"serieName\": \"andreea.pop\",\"color\": \"#049160\"},{\"serieName\": \"arpit.rai\",\"color\": \"#9BE5CB\"},{\"serieName\": \"azimuddin.mohammed\",\"color\": \"#06BF7F\"},{\"serieName\": \"barbara.trevino\",\"color\": \"#785F1A\"},{\"serieName\": \"brendon.ritz\",\"color\": \"#FCD977\"},{\"serieName\": \"brian.reynolds\",\"color\": \"#BF982A\"},{\"serieName\": \"damian.waldron\",\"color\": \"#FDE9AF\"},{\"serieName\": \"danielle.peranich\",\"color\": \"#FCC838\"},{\"serieName\": \"delara.patel\",\"color\": \"#22636B\"},{\"serieName\": \"emma.robinson\",\"color\": \"#82DFE9\"},{\"serieName\": \"evan rodriguez\",\"color\": \"#369FAA\"},{\"serieName\": \"gabi.sicher\",\"color\": \"#B5ECF2\"},{\"serieName\": \"hungpin.kao\",\"color\": \"#48D1E0\"},{\"serieName\": \"izabella.dee\",\"color\": \"#163772\"},{\"serieName\": \"kendrick.heath\",\"color\": \"#71A1F4\"},{\"serieName\": \"kim.skornik\",\"color\": \"#2359B6\"},{\"serieName\": \"leanne.monter\",\"color\": \"#ABC7F9\"},{\"serieName\": \"manan.shah\",\"color\": \"#2E75F0\"},{\"serieName\": \"martha.miller\",\"color\": \"#721F27\"},{\"serieName\": \"mason.vreugde\",\"color\": \"#F47E89\"},{\"serieName\": \"micah.terry\",\"color\": \"#B6313E\"},{\"serieName\": \"mohil.verma\",\"color\": \"#F9B3B9\"},{\"serieName\": \"patrick.evans\",\"color\": \"#F04152\"},{\"serieName\": \"prashant.patil\",\"color\": \"#2F3947\"},{\"serieName\": \"ron.dugger\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ryan.ng\",\"color\": \"#47515F\"},{\"serieName\": \"sagar.murthy\",\"color\": \"#BEC6D0\"},{\"serieName\": \"sebastian.haep\",\"color\": \"#747E8C\"},{\"serieName\": \"shubham.sonawane\",\"color\": \"#7A3D1F\"},{\"serieName\": \"srinithya.chikyala\",\"color\": \"#FFA97E\"},{\"serieName\": \"stephen.newman\",\"color\": \"#C26232\"},{\"serieName\": \"sumeet.arora\",\"color\": \"#FFCCB3\"},{\"serieName\": \"tejas.sachdeva\",\"color\": \"#FF8142\"},{\"serieName\": \"thomas.day\",\"color\": \"#422E75\"},{\"serieName\": \"administration group\",\"color\": \"#C26232\"},{\"serieName\": \"customer service\",\"color\": \"#FFCCB3\"},{\"serieName\": \"customer success\",\"color\": \"#FF8142\"},{\"serieName\": \"data management\",\"color\": \"#B094F8\"},{\"serieName\": \"data-ops\",\"color\": \"#6A4ABA\"},{\"serieName\": \"discovergroup\",\"color\": \"#D1C0FB\"},{\"serieName\": \"emea ps\",\"color\": \"#8C62F5\"},{\"serieName\": \"engineering\",\"color\": \"#56D3A8\"},{\"serieName\": \"executive\",\"color\": \"#049160\"},{\"serieName\": \"friends of cs tools\",\"color\": \"#9BE5CB\"},{\"serieName\": \"friends of professional services\",\"color\": \"#06BF7F\"},{\"serieName\": \"growth\",\"color\": \"#FCD977\"},{\"serieName\": \"hr\",\"color\": \"#BF982A\"},{\"serieName\": \"marketing\",\"color\": \"#FDE9AF\"},{\"serieName\": \"operations\",\"color\": \"#FCC838\"},{\"serieName\": \"product management\",\"color\": \"#82DFE9\"},{\"serieName\": \"professional services\",\"color\": \"#369FAA\"},{\"serieName\": \"sales\",\"color\": \"#B5ECF2\"},{\"serieName\": \"solution consultant\",\"color\": \"#48D1E0\"},{\"serieName\": \"strategic accounts team\",\"color\": \"#71A1F4\"},{\"serieName\": \"tse team\",\"color\": \"#2359B6\"},{\"serieName\": \"data_manager\",\"color\": \"#ABC7F9\"},{\"serieName\": \"dm_grp\",\"color\": \"#2E75F0\"},{\"serieName\": \"cs tools\",\"color\": \"#F47E89\"},{\"serieName\": \"hailey hickman\",\"color\": \"#F04152\"},{\"serieName\": \"krupal.desai\",\"color\": \"#BEC6D0\"},{\"serieName\": \"lizzette corona\",\"color\": \"#747E8C\"},{\"serieName\": \"nupur badoni\",\"color\": \"#7A3D1F\"},{\"serieName\": \"scott holden\",\"color\": \"#C26232\"},{\"serieName\": \"scottiq\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sree\",\"color\": \"#FF8142\"},{\"serieName\": \"system user\",\"color\": \"#422E75\"},{\"serieName\": \"vikas gautam\",\"color\": \"#D1C0FB\"},{\"serieName\": \"aditya.abhinav\",\"color\": \"#025B3C\"},{\"serieName\": \"alok.yadav\",\"color\": \"#049160\"},{\"serieName\": \"andrew.sue\",\"color\": \"#FCD977\"},{\"serieName\": \"anthony.dimascio\",\"color\": \"#BF982A\"},{\"serieName\": \"autumn.bushman\",\"color\": \"#FDE9AF\"},{\"serieName\": \"charles.tuttle\",\"color\": \"#82DFE9\"},{\"serieName\": \"daxesh.patwa\",\"color\": \"#48D1E0\"},{\"serieName\": \"denise.lee\",\"color\": \"#71A1F4\"},{\"serieName\": \"harsh.sinha\",\"color\": \"#721F27\"},{\"serieName\": \"jacob.rehmann\",\"color\": \"#B6313E\"},{\"serieName\": \"jeff.depa\",\"color\": \"#F9B3B9\"},{\"serieName\": \"jens.englert\",\"color\": \"#F04152\"},{\"serieName\": \"joshua.gill\",\"color\": \"#2F3947\"},{\"serieName\": \"katie.dunn\",\"color\": \"#A2ACBA\"},{\"serieName\": \"kelly.daugherty\",\"color\": \"#47515F\"},{\"serieName\": \"maheshwari.dhandapani\",\"color\": \"#7A3D1F\"},{\"serieName\": \"mani.uppala\",\"color\": \"#FFA97E\"},{\"serieName\": \"manish.agarwal\",\"color\": \"#C26232\"},{\"serieName\": \"mohit.daswani\",\"color\": \"#6A4ABA\"},{\"serieName\": \"nitish.rajguru\",\"color\": \"#D1C0FB\"},{\"serieName\": \"paul.froggatt\",\"color\": \"#025B3C\"},{\"serieName\": \"priya.waghmare\",\"color\": \"#56D3A8\"},{\"serieName\": \"robert.baxley\",\"color\": \"#049160\"},{\"serieName\": \"sheryl.zhang\",\"color\": \"#BF982A\"},{\"serieName\": \"svc.champagne2-migration\",\"color\": \"#22636B\"},{\"serieName\": \"vikram.bhaskaran\",\"color\": \"#369FAA\"},{\"serieName\": \"21734688-e3eb-4aa8-a294-324aa54c60ea\",\"color\": \"#56D3A8\"},{\"serieName\": \"d17f5537-939a-41fe-96fe-21f4bec01707\",\"color\": \"#FCD977\"},{\"serieName\": \"5922fb05-480e-4aff-9811-f0f5b617917e\",\"color\": \"#B094F8\"},{\"serieName\": \"5b83508a-0d59-4370-a7dc-0b17b21a568e\",\"color\": \"#F47E89\"}],\"systemSeriesColors\": [{\"serieName\": \"answer_pinboard_context\",\"color\": \"#06BF7F\"},{\"serieName\": \"answer_unsaved\",\"color\": \"#FCC838\"},{\"serieName\": \"answer_viz_context_view\",\"color\": \"#48D1E0\"},{\"serieName\": \"data_chart_config\",\"color\": \"#71A1F4\"},{\"serieName\": \"pinboard_print_view\",\"color\": \"#2E75F0\"},{\"serieName\": \"data export\",\"color\": \"#F04152\"},{\"serieName\": \"liveboards\",\"color\": \"#8C62F5\"},{\"serieName\": \"answers\",\"color\": \"#06BF7F\"},{\"serieName\": \"search\",\"color\": \"#FCC838\"},{\"serieName\": \"spot iq\",\"color\": \"#48D1E0\"},{\"serieName\": \"thoughtspot views\",\"color\": \"#FF8142\"},{\"serieName\": \"c6be6c25-ec76-492d-900a-46ad9746bba1\",\"color\": \"#71A1F4\"},{\"serieName\": \"9b7cc31b-fa1f-4d83-b15a-bf3ffcb5688e\",\"color\": \"#71A1F4\"},{\"serieName\": \"c5a7f6b3-5886-4872-9347-c0fdd68f808a\",\"color\": \"#2E75F0\"},{\"serieName\": \"d6baccc1-940d-4750-889a-ec84707734d9\",\"color\": \"#2E75F0\"},{\"serieName\": \"f7a2762c-93bb-4763-ad03-e143cd33040f\",\"color\": \"#48D1E0\"},{\"serieName\": \"ae49a4d0-2cae-4543-b824-0ce56a1b5752\",\"color\": \"#2E75F0\"},{\"serieName\": \"aaron\",\"color\": \"#721F27\"},{\"serieName\": \"aastha\",\"color\": \"#F47E89\"},{\"serieName\": \"abhinav gupta\",\"color\": \"#B6313E\"},{\"serieName\": \"aby jerin\",\"color\": \"#F9B3B9\"},{\"serieName\": \"dave rubin\",\"color\": \"#F04152\"},{\"serieName\": \"devin mcpherson\",\"color\": \"#2F3947\"},{\"serieName\": \"dr. thoughtspot\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ismael hernandez\",\"color\": \"#47515F\"},{\"serieName\": \"jj\",\"color\": \"#BEC6D0\"},{\"serieName\": \"james belsey\",\"color\": \"#747E8C\"},{\"serieName\": \"josh royse\",\"color\": \"#7A3D1F\"},{\"serieName\": \"kaushik patel\",\"color\": \"#FFA97E\"},{\"serieName\": \"ram\",\"color\": \"#C26232\"},{\"serieName\": \"rifdhan nazeer\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sydney akers\",\"color\": \"#FF8142\"},{\"serieName\": \"trey salas\",\"color\": \"#422E75\"},{\"serieName\": \"tri tu\",\"color\": \"#B094F8\"},{\"serieName\": \"vaibhav singh\",\"color\": \"#6A4ABA\"},{\"serieName\": \"adelaide.mcnamara\",\"color\": \"#D1C0FB\"},{\"serieName\": \"akshat sharda\",\"color\": \"#8C62F5\"},{\"serieName\": \"aman.bhattarai\",\"color\": \"#025B3C\"},{\"serieName\": \"andrea.frisk\",\"color\": \"#56D3A8\"},{\"serieName\": \"andreea.pop\",\"color\": \"#049160\"},{\"serieName\": \"arpit.rai\",\"color\": \"#9BE5CB\"},{\"serieName\": \"azimuddin.mohammed\",\"color\": \"#06BF7F\"},{\"serieName\": \"barbara.trevino\",\"color\": \"#785F1A\"},{\"serieName\": \"brendon.ritz\",\"color\": \"#FCD977\"},{\"serieName\": \"brian.reynolds\",\"color\": \"#BF982A\"},{\"serieName\": \"damian.waldron\",\"color\": \"#FDE9AF\"},{\"serieName\": \"danielle.peranich\",\"color\": \"#FCC838\"},{\"serieName\": \"delara.patel\",\"color\": \"#22636B\"},{\"serieName\": \"emma.robinson\",\"color\": \"#82DFE9\"},{\"serieName\": \"evan rodriguez\",\"color\": \"#369FAA\"},{\"serieName\": \"gabi.sicher\",\"color\": \"#B5ECF2\"},{\"serieName\": \"hungpin.kao\",\"color\": \"#48D1E0\"},{\"serieName\": \"izabella.dee\",\"color\": \"#163772\"},{\"serieName\": \"kendrick.heath\",\"color\": \"#71A1F4\"},{\"serieName\": \"kim.skornik\",\"color\": \"#2359B6\"},{\"serieName\": \"leanne.monter\",\"color\": \"#ABC7F9\"},{\"serieName\": \"manan.shah\",\"color\": \"#2E75F0\"},{\"serieName\": \"martha.miller\",\"color\": \"#721F27\"},{\"serieName\": \"mason.vreugde\",\"color\": \"#F47E89\"},{\"serieName\": \"micah.terry\",\"color\": \"#B6313E\"},{\"serieName\": \"mohil.verma\",\"color\": \"#F9B3B9\"},{\"serieName\": \"patrick.evans\",\"color\": \"#F04152\"},{\"serieName\": \"prashant.patil\",\"color\": \"#2F3947\"},{\"serieName\": \"ron.dugger\",\"color\": \"#A2ACBA\"},{\"serieName\": \"ryan.ng\",\"color\": \"#47515F\"},{\"serieName\": \"sagar.murthy\",\"color\": \"#BEC6D0\"},{\"serieName\": \"sebastian.haep\",\"color\": \"#747E8C\"},{\"serieName\": \"shubham.sonawane\",\"color\": \"#7A3D1F\"},{\"serieName\": \"srinithya.chikyala\",\"color\": \"#FFA97E\"},{\"serieName\": \"stephen.newman\",\"color\": \"#C26232\"},{\"serieName\": \"sumeet.arora\",\"color\": \"#FFCCB3\"},{\"serieName\": \"tejas.sachdeva\",\"color\": \"#FF8142\"},{\"serieName\": \"thomas.day\",\"color\": \"#422E75\"},{\"serieName\": \"administration group\",\"color\": \"#C26232\"},{\"serieName\": \"customer service\",\"color\": \"#FFCCB3\"},{\"serieName\": \"customer success\",\"color\": \"#FF8142\"},{\"serieName\": \"data management\",\"color\": \"#B094F8\"},{\"serieName\": \"data-ops\",\"color\": \"#6A4ABA\"},{\"serieName\": \"discovergroup\",\"color\": \"#D1C0FB\"},{\"serieName\": \"emea ps\",\"color\": \"#8C62F5\"},{\"serieName\": \"engineering\",\"color\": \"#56D3A8\"},{\"serieName\": \"executive\",\"color\": \"#049160\"},{\"serieName\": \"friends of cs tools\",\"color\": \"#9BE5CB\"},{\"serieName\": \"friends of professional services\",\"color\": \"#06BF7F\"},{\"serieName\": \"growth\",\"color\": \"#FCD977\"},{\"serieName\": \"hr\",\"color\": \"#BF982A\"},{\"serieName\": \"marketing\",\"color\": \"#FDE9AF\"},{\"serieName\": \"operations\",\"color\": \"#FCC838\"},{\"serieName\": \"product management\",\"color\": \"#82DFE9\"},{\"serieName\": \"professional services\",\"color\": \"#369FAA\"},{\"serieName\": \"sales\",\"color\": \"#B5ECF2\"},{\"serieName\": \"solution consultant\",\"color\": \"#48D1E0\"},{\"serieName\": \"strategic accounts team\",\"color\": \"#71A1F4\"},{\"serieName\": \"tse team\",\"color\": \"#2359B6\"},{\"serieName\": \"data_manager\",\"color\": \"#ABC7F9\"},{\"serieName\": \"dm_grp\",\"color\": \"#2E75F0\"},{\"serieName\": \"cs tools\",\"color\": \"#F47E89\"},{\"serieName\": \"hailey hickman\",\"color\": \"#F04152\"},{\"serieName\": \"krupal.desai\",\"color\": \"#BEC6D0\"},{\"serieName\": \"lizzette corona\",\"color\": \"#747E8C\"},{\"serieName\": \"nupur badoni\",\"color\": \"#7A3D1F\"},{\"serieName\": \"scott holden\",\"color\": \"#C26232\"},{\"serieName\": \"scottiq\",\"color\": \"#FFCCB3\"},{\"serieName\": \"sree\",\"color\": \"#FF8142\"},{\"serieName\": \"system user\",\"color\": \"#422E75\"},{\"serieName\": \"vikas gautam\",\"color\": \"#D1C0FB\"},{\"serieName\": \"aditya.abhinav\",\"color\": \"#025B3C\"},{\"serieName\": \"alok.yadav\",\"color\": \"#049160\"},{\"serieName\": \"andrew.sue\",\"color\": \"#FCD977\"},{\"serieName\": \"anthony.dimascio\",\"color\": \"#BF982A\"},{\"serieName\": \"autumn.bushman\",\"color\": \"#FDE9AF\"},{\"serieName\": \"charles.tuttle\",\"color\": \"#82DFE9\"},{\"serieName\": \"daxesh.patwa\",\"color\": \"#48D1E0\"},{\"serieName\": \"denise.lee\",\"color\": \"#71A1F4\"},{\"serieName\": \"harsh.sinha\",\"color\": \"#721F27\"},{\"serieName\": \"jacob.rehmann\",\"color\": \"#B6313E\"},{\"serieName\": \"jeff.depa\",\"color\": \"#F9B3B9\"},{\"serieName\": \"jens.englert\",\"color\": \"#F04152\"},{\"serieName\": \"joshua.gill\",\"color\": \"#2F3947\"},{\"serieName\": \"katie.dunn\",\"color\": \"#A2ACBA\"},{\"serieName\": \"kelly.daugherty\",\"color\": \"#47515F\"},{\"serieName\": \"maheshwari.dhandapani\",\"color\": \"#7A3D1F\"},{\"serieName\": \"mani.uppala\",\"color\": \"#FFA97E\"},{\"serieName\": \"manish.agarwal\",\"color\": \"#C26232\"},{\"serieName\": \"mohit.daswani\",\"color\": \"#6A4ABA\"},{\"serieName\": \"nitish.rajguru\",\"color\": \"#D1C0FB\"},{\"serieName\": \"paul.froggatt\",\"color\": \"#025B3C\"},{\"serieName\": \"priya.waghmare\",\"color\": \"#56D3A8\"},{\"serieName\": \"robert.baxley\",\"color\": \"#049160\"},{\"serieName\": \"sheryl.zhang\",\"color\": \"#BF982A\"},{\"serieName\": \"svc.champagne2-migration\",\"color\": \"#22636B\"},{\"serieName\": \"vikram.bhaskaran\",\"color\": \"#369FAA\"},{\"serieName\": \"d17f5537-939a-41fe-96fe-21f4bec01707\",\"color\": \"#FCC838\"},{\"serieName\": \"21734688-e3eb-4aa8-a294-324aa54c60ea\",\"color\": \"#48D1E0\"},{\"serieName\": \"5922fb05-480e-4aff-9811-f0f5b617917e\",\"color\": \"#2E75F0\"},{\"serieName\": \"5b83508a-0d59-4370-a7dc-0b17b21a568e\",\"color\": \"#06BF7F\"}]}" display_mode: CHART_MODE - viz_guid: 6d6902f5-3975-44b4-a121-ffb2744d1dae + viz_guid: 70260142-7fdf-4ee2-b4a6-458fbfe72d1f - id: Viz_35 answer: name: First Interaction Date @@ -1745,11 +1753,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Interaction Date + - id: formula_Interaction Date name: Interaction Date expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "min [Interaction Date]" + search_query: "min [formula_Interaction Date]" answer_columns: - name: Minimum Interaction Date table: @@ -1759,6 +1767,7 @@ liveboard: ordered_column_ids: - Minimum Interaction Date client_state: "" + client_state_v2: "{\"tableVizPropVersion\": \"V1\",\"columnProperties\": [{\"columnId\": \"Minimum Interaction Date\",\"columnProperty\": {}}]}" chart: type: KPI chart_columns: @@ -1767,8 +1776,9 @@ liveboard: - "y": - Minimum Interaction Date client_state: "" + client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Minimum Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"a46fc51a-35a1-4a75-9ee0-600347c72950\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Minimum Interaction Date\"],\"isOpposite\": false}},{\"id\": \"e31ea42a-475b-475d-aec4-f22f423f00a0\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: defd3c3c-ed44-4bce-8d7e-1b4d4065592c + viz_guid: bde2736c-dcd5-4716-814c-b242b741c843 - id: Viz_36 answer: name: Latest Interaction Date @@ -1777,11 +1787,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Interaction Date + - id: formula_Interaction Date name: Interaction Date expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "max [Interaction Date]" + search_query: "max [formula_Interaction Date]" answer_columns: - name: Maximum Interaction Date table: @@ -1791,6 +1801,7 @@ liveboard: ordered_column_ids: - Maximum Interaction Date client_state: "" + client_state_v2: "{\"tableVizPropVersion\": \"V1\",\"columnProperties\": [{\"columnId\": \"Maximum Interaction Date\",\"columnProperty\": {}}]}" chart: type: KPI chart_columns: @@ -1799,8 +1810,9 @@ liveboard: - "y": - Maximum Interaction Date client_state: "" + client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Maximum Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"d080ee6b-c373-4209-99f2-33bc27ba1b46\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Maximum Interaction Date\"],\"isOpposite\": false}},{\"id\": \"f49321d0-42ef-41fc-b418-7b1f447e5120\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: a759ad0f-2fc1-41d9-8c32-b8779bc6c458 + viz_guid: 74f24aa1-2382-4218-8fb3-71c01dee5f75 - id: Viz_37 answer: name: First Interaction Date @@ -1809,11 +1821,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Interaction Date + - id: formula_Interaction Date name: Interaction Date expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "min [Interaction Date]" + search_query: "min [formula_Interaction Date]" answer_columns: - name: Minimum Interaction Date table: @@ -1823,6 +1835,7 @@ liveboard: ordered_column_ids: - Minimum Interaction Date client_state: "" + client_state_v2: "{\"tableVizPropVersion\": \"V1\",\"columnProperties\": [{\"columnId\": \"Minimum Interaction Date\",\"columnProperty\": {}}]}" chart: type: KPI chart_columns: @@ -1831,8 +1844,9 @@ liveboard: - "y": - Minimum Interaction Date client_state: "" + client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Minimum Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"ea6bbd75-1510-439e-a13e-f51e2401ea6d\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Minimum Interaction Date\"],\"isOpposite\": false}},{\"id\": \"3159e127-b092-43c4-963b-2d63d5a3892d\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: c96473b0-b329-4680-ac72-3cdda38b1610 + viz_guid: cab5ca45-a511-4358-9f0e-9eb4c8038e70 - id: Viz_38 answer: name: Latest Interaction Date @@ -1841,11 +1855,11 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Interaction Date + - id: formula_Interaction Date name: Interaction Date expr: "date ( [Interaction Timestamp] )" was_auto_generated: false - search_query: "max [Interaction Date]" + search_query: "max [formula_Interaction Date]" answer_columns: - name: Maximum Interaction Date table: @@ -1855,6 +1869,7 @@ liveboard: ordered_column_ids: - Maximum Interaction Date client_state: "" + client_state_v2: "{\"tableVizPropVersion\": \"V1\",\"columnProperties\": [{\"columnId\": \"Maximum Interaction Date\",\"columnProperty\": {}}]}" chart: type: KPI chart_columns: @@ -1863,22 +1878,23 @@ liveboard: - "y": - Maximum Interaction Date client_state: "" + client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Maximum Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"f016ee7f-b9b7-4699-813e-9ad63f97bafe\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Maximum Interaction Date\"],\"isOpposite\": false}},{\"id\": \"ccf4dda8-9fd1-43f2-820d-7bb73c409970\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: 1584ab0e-5473-43c5-b409-125468ddc860 + viz_guid: 831855ba-8292-4524-9e8b-5e8d6fc4d29c - id: Viz_39 - viz_guid: bbce365c-9634-4d75-9c2f-4bd45b8375c8 + viz_guid: 6b0e5b02-f673-4da3-a986-c94d5723af68 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_40 - viz_guid: 9e2261cd-4000-430a-9a29-789c3657e3ff + viz_guid: cc22a128-0df1-43d8-82f5-6cb45dd0affe note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_41 - viz_guid: 216488fa-315c-4974-946a-3c44dff6152b + viz_guid: 20ada1b9-fbce-4871-9e46-fb76b6eb7fb4 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_42 - viz_guid: e8852759-e654-4639-a587-97f8689d80cb + viz_guid: 6d641458-0dd2-4aff-b740-8b5071f5605e note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_43 @@ -1888,7 +1904,7 @@ liveboard: - id: CS Tools ~ BI Server Advanced name: CS Tools ~ BI Server Advanced formulas: - - id: Interaction Date + - id: formula_Interaction Date name: Interaction Date expr: "date ( [Interaction Timestamp] )" was_auto_generated: false @@ -1898,10 +1914,10 @@ liveboard: - name: Maximum Worksheet table: table_columns: - - column_id: Maximum Worksheet - show_headline: false - column_id: Interactions show_headline: false + - column_id: Maximum Worksheet + show_headline: false ordered_column_ids: - Maximum Worksheet - Interactions @@ -1910,15 +1926,15 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Maximum Worksheet - column_id: Interactions + - column_id: Maximum Worksheet axis_configs: - "y": - Maximum Worksheet client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Maximum Worksheet\",\"columnProperty\": {}},{\"columnId\": \"Interactions\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"0403b121-545f-49b9-abaf-10ffe49f512c\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Maximum Worksheet\"],\"isOpposite\": false}},{\"id\": \"37107459-bf99-46c3-8c50-a435baca2158\",\"properties\": {\"axisType\": \"X\"}}],\"systemSeriesColors\": [{\"serieName\": \"9a06aae6-c0df-437d-b133-0bd01bf19169\",\"color\": \"#48D1E0\"}]}" display_mode: CHART_MODE - viz_guid: 23038871-896d-4216-96f8-8def8eb09101 + viz_guid: fa395894-d1e5-4cba-89d6-037e0de7cf79 filters: - column: - ThoughtSpot URL @@ -2046,6 +2062,7 @@ liveboard: "y": 9 height: 1 width: 6 + id: 7c29a773-7786-49fd-af4e-2c22b33a5c7d - name: Adoption description: "" tiles: @@ -2084,6 +2101,7 @@ liveboard: "y": 8 height: 1 width: 6 + id: 47f39b84-1d74-45da-a2b5-e5551f658c3f - name: Health description: "" tiles: @@ -2122,6 +2140,7 @@ liveboard: "y": 14 height: 1 width: 6 + id: 139fd0b8-cd93-466e-8274-eae597c584b5 - name: Archiver description: "" tiles: @@ -2155,6 +2174,7 @@ liveboard: "y": 10 height: 1 width: 6 + id: 9a159cae-6687-442b-a734-c7989c21328c - name: Groups description: "" tiles: @@ -2188,6 +2208,7 @@ liveboard: "y": 0 height: 2 width: 5 + id: ea3606e1-b204-4f6a-b0f6-d5d8b9dd8ddb - name: Appendix description: "" tiles: @@ -2226,3 +2247,25 @@ liveboard: "y": 4 height: 1 width: 6 + id: 5af63f07-5d17-4b41-b4eb-4f7913771789 + ordered_chips: + - name: ThoughtSpot URL + type: FILTER + - name: Org + type: FILTER + - name: Group + type: FILTER + - name: Interaction User + type: FILTER + - name: Experience Type + type: FILTER + - name: Data Source Type + type: FILTER + - name: Data Source + type: FILTER + - name: Worksheet + type: FILTER + - name: Interaction Timestamp + type: FILTER + - name: User Action Category + type: FILTER diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml index f1452516..2f399ddc 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml @@ -1,6 +1,6 @@ -guid: 0efe34bb-cd5c-4ee4-86d1-9413d99e1a09 +guid: a9ffa9f9-aeaa-4706-8428-730b5926c236 liveboard: - name: "CS Tools ~ Worksheet Column Utilization" + name: CS Tools ~ Worksheet Column Utilization description: Gain an understanding of how a Worksheet's columns are used across ThoughtSpot. visualizations: - id: Viz_1 @@ -40,7 +40,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Unique Number of Column\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"200\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#f36775\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"150\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#ff9a68\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"LESS_THAN\",\"value\": \"150\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#56D3A8\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"c2f08115-98fc-4506-b292-27f78a7f0507\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Column\"],\"isOpposite\": false}},{\"id\": \"027bb649-bb9e-4ad5-ab88-6428ba0c5c44\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: c0f6a787-1458-4521-8b1d-5ef89057ddab + viz_guid: 265a71ea-5cb3-431a-907a-d17dcd712a6a - id: Viz_2 answer: name: Synonyms @@ -77,7 +77,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Number of Synonym\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"8babe60c-3124-49d8-bb90-52a8c549c0df\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Number of Synonym\"],\"isOpposite\": false}},{\"id\": \"f6da0314-5164-492f-ba47-f17ef8686ad2\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: 4c1d5517-a2a0-4e52-9db1-9e1b60b59c27 + viz_guid: 6ef17755-4302-4034-a7a6-d49246d1edce - id: Viz_3 answer: name: Top 15 Most Influential Creators @@ -86,29 +86,29 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Engagement Score + - id: formula_Engagement Score name: Engagement Score - expr: "( [Dependent Interactions] * average ( [Decay Function] ) ) / ( [Answers] + [Liveboards] )" + expr: "( [Dependent Interactions] * average ( [formula_Decay Function] ) ) / ( [formula_Answers] + [formula_Liveboards] )" was_auto_generated: false - - id: Include Author Interactions + - id: formula_Include Author Interactions name: Include Author Interactions - expr: "[Dependent Author] = [Interaction User] " + expr: "[Dependent Author] = [Interaction User]" was_auto_generated: false - - id: Answers + - id: formula_Answers name: Answers expr: "unique_count_if ( [Dependent Type] = 'answer' , [Dependent] )" was_auto_generated: false - - id: Decay Function + - id: formula_Decay Function name: Decay Function expr: "greatest ( 1 - ( diff_days ( today ( ) , [Dependent Interaction Date] ) / 365 * 2 ) , 0 )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: Liveboards + - id: formula_Liveboards name: Liveboards expr: "unique_count_if ( [Dependent Type] = 'liveboard' , [Dependent] )" was_auto_generated: false - search_query: "[Dependent Author] [Dependent Author Email] top 15 by [Dependent Interactions] [Worksheet] = '(sample) retail - apparel' [Engagement Score] sort by [Engagement Score] descending [Dependent Author] != [Dependent Author].administrator [Dependent Author].{Null} [Include Author Interactions] = false" + search_query: "[Dependent Author] [Dependent Author Email] top 15 by [Dependent Interactions] [Worksheet] = '(sample) retail - apparel' [formula_Engagement Score] sort by [formula_Engagement Score] descending [Dependent Author] != [Dependent Author].administrator [Dependent Author].{null} [formula_Include Author Interactions] = false" answer_columns: - name: Dependent Author - name: Dependent Author Email @@ -132,6 +132,8 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + sort_info: + category: DEFAULT table: table_columns: - column_id: Dependent Author @@ -164,7 +166,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {\"xGridlineEnabled\": false,\"yGridlineEnabled\": false},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"},\"showStackedLabels\": true,\"allLabels\": false},\"columnProperties\": [{\"columnId\": \"Dependent Author\",\"columnProperty\": {}},{\"columnId\": \"Dependent Author Email\",\"columnProperty\": {}},{\"columnId\": \"Dependent Interactions\",\"columnProperty\": {}},{\"columnId\": \"Engagement Score\",\"columnProperty\": {\"dataLabels\": false,\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN\",\"value\": \"100\",\"plotAsBand\": false,\"backgroundFormatType\": \"SOLID\",\"solidBackgroundAttrs\": {\"color\": \"#56D3A8\"},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"75\",\"plotAsBand\": false,\"backgroundFormatType\": \"SOLID\",\"solidBackgroundAttrs\": {\"color\": \"#82DFE9\"},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"50\",\"plotAsBand\": false,\"backgroundFormatType\": \"SOLID\",\"solidBackgroundAttrs\": {\"color\": \"#71A1F4\"},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"25\",\"plotAsBand\": false,\"backgroundFormatType\": \"SOLID\",\"solidBackgroundAttrs\": {\"color\": \"#B094F8\"},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"backgroundFormatType\": \"SOLID\",\"solidBackgroundAttrs\": {\"color\": \"#A2ACBA\"},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"03efae68-8a63-4bc6-b4b7-58f2e317561e\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Dependent Author\"],\"name\": \"User\",\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":true,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":false,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"94d2d82b-7405-4903-8aa7-4d45674a1f20\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Engagement Score\"],\"yAxisRange\": {\"max\": 100.0},\"isOpposite\": false}}],\"systemSeriesColors\": [{\"serieName\": \"a2335f84-210e-41ae-9cbb-e940d9c15a08\",\"color\": \"#F04152\"},{\"serieName\": \"9e31ab88-4204-4acb-9f04-8c32855979ba\",\"color\": \"#48D1E0\"},{\"serieName\": \"Engagement Score\",\"color\": \"#48D1E0\"}],\"tooltipConfig\": {\"columnIds\": [\"Engagement Score\",\"Dependent Author Email\"]}}" display_mode: CHART_MODE - viz_guid: 76e56eb3-ebd2-441d-aa41-1481a69d19c1 + viz_guid: d691d85a-3917-48ed-943a-e9a4227ab249 - id: Viz_4 answer: name: Formulas @@ -193,7 +195,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Unique Number of Column\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"08e4da4c-b64b-4e82-a4dc-b6504f73834a\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Column\"],\"isOpposite\": false}},{\"id\": \"ab809496-2da9-4107-be13-d50fd06e2073\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: 9b7069eb-964b-4de7-b885-27e2dc069880 + viz_guid: 74833f19-38ca-4507-a4b1-0feb6c6079c6 - id: Viz_5 answer: name: Column Type Breakdown @@ -202,40 +204,40 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Column Type (incl. DATE) + - id: formula_Column Type (incl. DATE) name: Column Type (incl. DATE) - expr: "if ( [Data Type] in { 'date' , 'datetime', 'date_time' , 'timestamp' } ) then sql_string_op ( 'upper({0})' , 'date' ) else [Column Type]" + expr: "if ( [Data Type] in { 'date' , 'datetime' , 'timestamp' } ) then sql_string_op ( 'upper({0})' , 'date' ) else [Column Type]" was_auto_generated: false - - id: Formulas + - id: formula_Formulas name: Formulas expr: "unique_count_if ( [Is Formula] , [Column] )" was_auto_generated: false - - id: Hidden Columns + - id: formula_Hidden Columns name: Hidden Columns expr: "unique_count_if ( [Is Hidden] , [Column] )" was_auto_generated: false - search_query: "unique count [Column] unique count [Synonym] [Formulas] [Hidden Columns] [Worksheet] = '(sample) retail - apparel' [Column Type (incl. DATE)]" + search_query: "unique count [Column] unique count [Synonym] [formula_Formulas] [formula_Hidden Columns] [Worksheet] = '(sample) retail - apparel' [formula_Column Type (incl. DATE)]" answer_columns: + - name: Column Type (incl. DATE) + custom_name: Column Type + - name: Formulas + - name: Hidden Columns - name: Unique Number of Column custom_name: Columns - name: Unique Number of Synonym custom_name: Synonyms - - name: Formulas - - name: Hidden Columns - - name: Column Type (incl. DATE) - custom_name: Column Type table: table_columns: - column_id: Column Type (incl. DATE) show_headline: false - - column_id: Unique Number of Column - show_headline: false - - column_id: Unique Number of Synonym - show_headline: false - column_id: Formulas show_headline: false - column_id: Hidden Columns show_headline: false + - column_id: Unique Number of Column + show_headline: false + - column_id: Unique Number of Synonym + show_headline: false ordered_column_ids: - Column Type (incl. DATE) - Unique Number of Column @@ -248,10 +250,10 @@ liveboard: type: PIE chart_columns: - column_id: Column Type (incl. DATE) - - column_id: Unique Number of Column - - column_id: Unique Number of Synonym - column_id: Formulas - column_id: Hidden Columns + - column_id: Unique Number of Column + - column_id: Unique Number of Synonym axis_configs: - x: - Column Type (incl. DATE) @@ -260,7 +262,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}},\"showStackedLabels\": true,\"allLabels\": true},\"columnProperties\": [{\"columnId\": \"Unique Number of Column\",\"columnProperty\": {\"dataLabels\": true}},{\"columnId\": \"Formulas\",\"columnProperty\": {\"dataLabels\": true}},{\"columnId\": \"Hidden Columns\",\"columnProperty\": {\"dataLabels\": true}},{\"columnId\": \"Unique Number of Synonym\",\"columnProperty\": {\"dataLabels\": true}},{\"columnId\": \"Column Type (incl. DATE)\",\"columnProperty\": {\"dataLabels\": true,\"customProps\": \"{\\\"advancedProperties\\\":[]}\"}}],\"axisProperties\": [{\"id\": \"60082238-b3dd-4f52-a343-41be848e25fa\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Column\"],\"isOpposite\": false}},{\"id\": \"442dc05c-c2ed-4dfd-bc62-e9ca99380b73\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Column Type (incl. DATE)\"]}}],\"seriesColors\": [{\"serieName\": \"attribute, attribute\",\"color\": \"#FCC838\"},{\"serieName\": \"date, attribute\",\"color\": \"#48D1E0\"},{\"serieName\": \"measure, measure\",\"color\": \"#2E75F0\"},{\"serieName\": \"date\",\"color\": \"#B094F8\"},{\"serieName\": \"attribute\",\"color\": \"#71A1F4\"},{\"serieName\": \"measure\",\"color\": \"#56D3A8\"}],\"systemSeriesColors\": [{\"serieName\": \"attribute\",\"color\": \"#48D1E0\"},{\"serieName\": \"measure\",\"color\": \"#7A7DF3\"},{\"serieName\": \"attribute, attribute\",\"color\": \"#FCC838\"},{\"serieName\": \"date, attribute\",\"color\": \"#48D1E0\"},{\"serieName\": \"measure, measure\",\"color\": \"#2E75F0\"},{\"serieName\": \"date\",\"color\": \"#2E75F0\"}],\"tooltipConfig\": {\"columnIds\": [\"Unique Number of Column\",\"Unique Number of Synonym\",\"Formulas\",\"Hidden Columns\",\"Column Type (incl. DATE)\"]}}" display_mode: CHART_MODE - viz_guid: 382e9b51-533f-45a3-a2d7-b2e7169217a9 + viz_guid: ce48492d-e673-46bf-bca8-19db3c368397 - id: Viz_6 answer: name: Hidden @@ -289,7 +291,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Unique Number of Column\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#F47E89\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"EQUAL_TO\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#56D3A8\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false}}]}}}],\"axisProperties\": [{\"id\": \"da242398-ade7-4103-a5e7-8b6a2973a52e\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Column\"],\"isOpposite\": false}},{\"id\": \"ca0bb2b7-b442-4fcc-9c90-d4d86a9e266c\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: 63a17f93-0a03-4292-9303-e1e2c1da4a4a + viz_guid: fcc6be2b-9be7-4567-ac73-4741d5e5cd6e - id: Viz_7 answer: name: Natural Language Search is @@ -298,19 +300,19 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Sage Is + - id: formula_Sage Is name: Sage Is expr: "if ( [Worksheet Is Sage Enabled] ) then 'enabled 🧘' else 'disabled'" was_auto_generated: false - - id: Formulas + - id: formula_Formulas name: Formulas expr: "unique_count_if ( [Is Formula] , [Column] )" was_auto_generated: false - - id: Hidden Columns + - id: formula_Hidden Columns name: Hidden Columns expr: "unique_count_if ( [Is Hidden] , [Column] )" was_auto_generated: false - search_query: "[Sage Is]" + search_query: "[formula_Sage Is]" answer_columns: - name: Sage Is table: @@ -331,7 +333,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Sage Is\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"cbbfa057-0987-4f7f-9418-7d3b21a2d9f7\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Sage Is\"],\"isOpposite\": false}},{\"id\": \"fcefbbdf-fd04-4a5c-a131-fb37b228b97f\",\"properties\": {\"axisType\": \"X\"}}]}" display_mode: CHART_MODE - viz_guid: 7636506a-e3c4-4846-b106-a139a43614d1 + viz_guid: 096789ab-36f8-4800-8e28-76f40e598806 - id: Viz_8 answer: name: Types of objects @@ -340,28 +342,30 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Dependent Type (Pretty) + - id: formula_Dependent Type (Pretty) name: Dependent Type (Pretty) expr: "ifnull ( [Dependent Type] , \"other\" )" was_auto_generated: false - - id: Single Column Layout + - id: formula_Single Column Layout name: Single Column Layout expr: ''' ''' was_auto_generated: false - search_query: "unique count [Dependent] [Worksheet] = '(sample) retail - apparel' [Single Column Layout] [Dependent Type (Pretty)] sort by [Dependent Type (Pretty)] descending" + search_query: "unique count [Dependent] [Worksheet] = '(sample) retail - apparel' [formula_Single Column Layout] [formula_Dependent Type (Pretty)] sort by [formula_Dependent Type (Pretty)] descending" answer_columns: - - name: Unique Number of Dependent - custom_name: Dependents - - name: Single Column Layout - custom_name: Layout - name: Dependent Type (Pretty) custom_name: Dependent Type + sort_info: + category: DEFAULT + - name: Single Column Layout + custom_name: Layout + - name: Unique Number of Dependent + custom_name: Dependents table: table_columns: - - column_id: Single Column Layout - show_headline: false - column_id: Dependent Type (Pretty) show_headline: false + - column_id: Single Column Layout + show_headline: false - column_id: Unique Number of Dependent show_headline: false ordered_column_ids: @@ -373,8 +377,8 @@ liveboard: chart: type: STACKED_BAR chart_columns: - - column_id: Single Column Layout - column_id: Dependent Type (Pretty) + - column_id: Single Column Layout - column_id: Unique Number of Dependent axis_configs: - x: @@ -386,9 +390,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"isStackedAsPercent\": true,\"stackedAsPercentFormat\": {\"category\": \"PERCENTAGE\",\"percentageFormatConfig\": {\"decimals\": 0.0},\"isCategoryEditable\": false},\"customProps\": \"{\\\"advancedProperties\\\":{\\\"tooltip\\\":{\\\"enabled\\\":true,\\\"borderWidth\\\":\\\"1\\\",\\\"opacity\\\":\\\"100\\\",\\\"label\\\":{\\\"color\\\":\\\"#FFFFFF\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"value\\\":{\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"regression\\\":{\\\"lineWidth\\\":\\\"2\\\",\\\"dashStyle\\\":\\\"Solid\\\"},\\\"gridlines\\\":{\\\"xAxis\\\":{\\\"gridLineWidth\\\":\\\"2\\\",\\\"gridLineDashStyle\\\":\\\"Solid\\\"},\\\"yAxis\\\":{\\\"gridLineColor\\\":\\\"\\\",\\\"gridLineWidth\\\":\\\"2\\\",\\\"gridLineDashStyle\\\":\\\"Solid\\\"}},\\\"answerLevelSettings\\\":{\\\"width\\\":\\\"125\\\",\\\"padding\\\":\\\"0\\\",\\\"paddingCategories\\\":\\\"0\\\",\\\"dashStyle\\\":\\\"Solid\\\",\\\"lineWidth\\\":\\\"\\\",\\\"markerType\\\":\\\"Circle\\\",\\\"markerRadius\\\":\\\"\\\",\\\"borderWidth\\\":\\\"0\\\",\\\"connectingLines\\\":false}}}\",\"pivotSummariesState\": {}},\"showStackedLabels\": true,\"allLabels\": true,\"legendPosition\": \"TOP_LEGEND\"},\"columnProperties\": [{\"columnId\": \"Single Column Layout\",\"columnProperty\": {\"dataLabels\": true,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"dataLabels\\\":{\\\"backgroundColor\\\":\\\"\\\",\\\"borderColor\\\":\\\"\\\",\\\"borderWidth\\\":\\\"\\\",\\\"filter\\\":{\\\"operator\\\":\\\"Equal to\\\",\\\"value\\\":\\\"0\\\"},\\\"align\\\":\\\"center\\\",\\\"style\\\":{\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"maxCharacters\\\":\\\"0\\\"}}}\"}},{\"columnId\": \"Unique Number of Dependent\",\"columnProperty\": {\"dataLabels\": true,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"dataLabels\\\":{\\\"backgroundColor\\\":\\\"\\\",\\\"borderColor\\\":\\\"\\\",\\\"borderWidth\\\":\\\"\\\",\\\"filter\\\":{\\\"operator\\\":\\\"\\\",\\\"value\\\":\\\"\\\"},\\\"align\\\":\\\"center\\\",\\\"style\\\":{\\\"color\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":true,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false},\\\"maxCharacters\\\":\\\"\\\"}}}\"}},{\"columnId\": \"Dependent Type (Pretty)\",\"columnProperty\": {\"dataLabels\": true}}],\"axisProperties\": [{\"id\": \"e649805d-e4ed-4cae-8fad-047540a57660\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Single Column Layout\"],\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":true,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}},{\"id\": \"73aba371-8656-4da8-8109-b535e276b9ea\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Dependent\"],\"isOpposite\": false,\"customProps\": \"{\\\"advancedProperties\\\":{\\\"axisSettings\\\":{\\\"visible\\\":false,\\\"axisName\\\":{\\\"isAxisNameVisible\\\":true,\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false}},\\\"labels\\\":{\\\"enabled\\\":true,\\\"maxCharacters\\\":\\\"\\\",\\\"fontSize\\\":\\\"12\\\",\\\"boldFontWeight\\\":false,\\\"underlineTextDecoration\\\":false,\\\"italicFontStyle\\\":false,\\\"wrap\\\":false},\\\"ticks\\\":{\\\"showTicks\\\":false,\\\"tickWidth\\\":\\\"1\\\",\\\"tickLength\\\":\\\"5\\\",\\\"tickColor\\\":\\\"\\\"}}}\"}}],\"seriesColors\": [{\"serieName\": \"061a97dd-f674-4f4a-b0c7-18dd5dd15711\",\"color\": \"#8C62F5\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#8c62f5\"},{\"serieName\": \"liveboard\",\"color\": \"#8c62f5\"},{\"serieName\": \"answer\",\"color\": \"#38cc99\"},{\"serieName\": \"{null}\",\"color\": \"#5D6570\"},{\"serieName\": \"thoughtspot view\",\"color\": \"#F04152\"},{\"serieName\": \"other\",\"color\": \"#747E8C\"}],\"systemSeriesColors\": [{\"serieName\": \"061a97dd-f674-4f4a-b0c7-18dd5dd15711\",\"color\": \"#8C62F5\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#8c62f5\"},{\"serieName\": \"liveboard\",\"color\": \"#8c62f5\"},{\"serieName\": \"answer\",\"color\": \"#38cc99\"},{\"serieName\": \"{null}\",\"color\": \"#5D6570\"},{\"serieName\": \"thoughtspot view\",\"color\": \"#F04152\"},{\"serieName\": \"other\",\"color\": \"#48D1E0\"}],\"tooltipConfig\": {\"columnIds\": [\"Unique Number of Dependent\",\"Dependent Type (Pretty)\"]}}" display_mode: CHART_MODE - viz_guid: 6169aff3-77cd-4500-93bd-985c3a2666bd + viz_guid: 99412287-b926-40ee-9da1-1916c3ad676b - id: Viz_9 - viz_guid: 1819f280-fffe-47a2-bb3e-4f1a4a6c3997 + viz_guid: 93e05717-1353-4bda-954f-5ae558bdc287 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_10 @@ -399,40 +403,37 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Answers + - id: formula_Answers name: Answers expr: "unique_count_if ( [Dependent Type] = 'answer' , [Dependent] )" was_auto_generated: false - - id: Is Formula (Pretty) + - id: formula_Is Formula (Pretty) name: Is Formula (Pretty) expr: "if ( [Is Formula] ) then \"formula\" else \"-\"" was_auto_generated: false - - id: Is Hidden (Pretty) + - id: formula_Is Hidden (Pretty) name: Is Hidden (Pretty) expr: "if ( [Is Hidden] ) then \"hidden\" else \"-\"" was_auto_generated: false - - id: Is not Used + - id: formula_Is not Used name: Is not Used expr: "if ( count ( [Dependent] ) = 0 ) then 'no saved content' else '-'" was_auto_generated: false - - id: Liveboards + - id: formula_Liveboards name: Liveboards expr: "unique_count_if ( [Dependent Type] = 'liveboard' , [Dependent] )" was_auto_generated: false - - id: Suggestions (Pretty) + - id: formula_Suggestions (Pretty) name: Suggestions (Pretty) - expr: "if ( [Column Type (incl. DATE)] = 'attribute' ) then ( if ( [Suggestions Type] = 'dont_index' ) then 'disabled' else 'enabled' ) else '-'" + expr: "if ( [formula_Column Type (incl. DATE)] = 'attribute' ) then ( if ( [Suggestions Type] = 'dont_index' ) then 'disabled' else 'enabled' ) else '-'" was_auto_generated: false - - id: Column Type (incl. DATE) + - id: formula_Column Type (incl. DATE) name: Column Type (incl. DATE) - expr: "if ( [Data Type] in { 'date' , 'datetime' , 'date_time' , 'timestamp' } ) then sql_string_op ( 'upper({0})' , 'date' ) else [Column Type]" + expr: "if ( [Data Type] in { 'date' , 'datetime' , 'timestamp' } ) then sql_string_op ( 'upper({0})' , 'date' ) else [Column Type]" was_auto_generated: false - search_query: "[Column] count [Column] [Dependent Interactions] [Is Formula (Pretty)] [Is Hidden (Pretty)] sort by [Column] [Answers] [Liveboards] [Is not Used] unique count [Dependent Author] [Column Type (incl. DATE)] [Worksheet].'(sample) retail - apparel' [Suggestions (Pretty)]" + search_query: "[Column] count [Column] [Dependent Interactions] [formula_Is Formula (Pretty)] [formula_Is Hidden (Pretty)] sort by [Column] [formula_Answers] [formula_Liveboards] [formula_Is not Used] unique count [Dependent Author] [formula_Column Type (incl. DATE)] [Worksheet].'(sample) retail - apparel' [formula_Suggestions (Pretty)]" answer_columns: - - name: Column - - name: Number of Column - - name: Dependent Interactions - custom_name: Interactions + - name: Answers format: category: NUMBER numberFormatConfig: @@ -441,11 +442,13 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Is Formula (Pretty) - custom_name: Is Formula - - name: Is Hidden (Pretty) - custom_name: Is Hidden - - name: Answers + - name: Column + sort_info: + category: DEFAULT + - name: Column Type (incl. DATE) + custom_name: Column Type + - name: Dependent Interactions + custom_name: Interactions format: category: NUMBER numberFormatConfig: @@ -454,6 +457,11 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true + - name: Is Formula (Pretty) + custom_name: Is Formula + - name: Is Hidden (Pretty) + custom_name: Is Hidden + - name: Is not Used - name: Liveboards format: category: NUMBER @@ -463,7 +471,9 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Is not Used + - name: Number of Column + - name: Suggestions (Pretty) + custom_name: Suggestions - name: Unique Number of Dependent Author custom_name: Authors format: @@ -474,31 +484,27 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Column Type (incl. DATE) - custom_name: Column Type - - name: Suggestions (Pretty) - custom_name: Suggestions table: table_columns: + - column_id: Answers + show_headline: false - column_id: Column show_headline: false - - column_id: Is Formula (Pretty) + - column_id: Column Type (incl. DATE) show_headline: false - - column_id: Is Hidden (Pretty) + - column_id: Dependent Interactions show_headline: false - - column_id: Column Type (incl. DATE) + - column_id: Is Formula (Pretty) show_headline: false - - column_id: Suggestions (Pretty) + - column_id: Is Hidden (Pretty) show_headline: false - column_id: Is not Used show_headline: false - - column_id: Number of Column - show_headline: false - - column_id: Dependent Interactions + - column_id: Liveboards show_headline: false - - column_id: Answers + - column_id: Number of Column show_headline: false - - column_id: Liveboards + - column_id: Suggestions (Pretty) show_headline: false - column_id: Unique Number of Dependent Author show_headline: false @@ -519,16 +525,16 @@ liveboard: chart: type: STACKED_BAR chart_columns: + - column_id: Answers - column_id: Column + - column_id: Column Type (incl. DATE) + - column_id: Dependent Interactions - column_id: Is Formula (Pretty) - column_id: Is Hidden (Pretty) - column_id: Is not Used - - column_id: Column Type (incl. DATE) - - column_id: Suggestions (Pretty) - - column_id: Number of Column - - column_id: Dependent Interactions - - column_id: Answers - column_id: Liveboards + - column_id: Number of Column + - column_id: Suggestions (Pretty) - column_id: Unique Number of Dependent Author axis_configs: - x: @@ -538,9 +544,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"responsiveLayoutPreference\": \"USER_PREFERRED_ON\",\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Column\",\"columnProperty\": {}},{\"columnId\": \"Number of Column\",\"columnProperty\": {}},{\"columnId\": \"Dependent Interactions\",\"columnProperty\": {}},{\"columnId\": \"Is Formula (Pretty)\",\"columnProperty\": {}},{\"columnId\": \"Is Hidden (Pretty)\",\"columnProperty\": {}},{\"columnId\": \"Is not Used\",\"columnProperty\": {}},{\"columnId\": \"Answers\",\"columnProperty\": {}},{\"columnId\": \"Liveboards\",\"columnProperty\": {}},{\"columnId\": \"Unique Number of Dependent Author\",\"columnProperty\": {}},{\"columnId\": \"Column Type (incl. DATE)\",\"columnProperty\": {}},{\"columnId\": \"Suggestions (Pretty)\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"98e3cd28-4ed2-462e-9e2b-4baae2977e0c\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Number of Column\"],\"isOpposite\": false}},{\"id\": \"694e837b-01ec-44c3-950e-5f9bcca85c76\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Column Type (incl. DATE)\"]}}],\"systemSeriesColors\": [{\"serieName\": \"Number of Column\",\"color\": \"#F04152\"},{\"serieName\": \"attribute\",\"color\": \"#48D1E0\"},{\"serieName\": \"measure\",\"color\": \"#7A7DF3\"}],\"tooltipConfig\": {\"columnIds\": [\"Column\"]}}" display_mode: TABLE_MODE - viz_guid: cad79e07-5cec-40bd-a374-ba2b13771379 + viz_guid: 8ba2d0c8-9aaf-4b5d-a021-dd6d299b6586 - id: Viz_11 - viz_guid: 15f25fb2-55e5-422a-a1aa-f6a34776a384 + viz_guid: dfe5a947-0b08-479c-a343-aa56ed242ca0 note_tile: html_parsed_string: "

A note about dependencies..


Objects in ThoughtSpot can be divided into 2 categories.

Searchables - objects which can produce Searches, like Tables, ThoughtSpot Views, SQL Views, and Worksheets.

Visualizations - objects which can produce a chart or table, like Answers, Liveboards, and even ThoughtSpot Views.


Because some Searchables can result in another Searchable, dependencies in ThoughtSpot can appear misleading.


The dependency APIs show all of the downstream objects built from a given object. This means a Table will show Answers and Liveboards as dependents, even if no content was built directly from the table itself.


The CS Tools: Worksheet Column Utilization worksheet has been filtered for Worksheets as the only form of searchable object type to limit this behavior. If you wish to expand the use case upwards in the hierarchy, you can remove that filter.

" - id: Viz_12 @@ -551,24 +557,20 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Days since last modified + - id: formula_Days since last modified name: Days since last modified expr: "diff_days ( today ( ) , [Dependent Last Modified Date] )" was_auto_generated: false - - id: Dependent Description (Pretty) + - id: formula_Dependent Description (Pretty) name: Dependent Description (Pretty) expr: "ifnull ( [Dependent Description] , \"-\" )" was_auto_generated: false - search_query: "[Dependent Link] [Dependent Author] [Dependent Type] [Dependent Description (Pretty)] [Dependent Interactions] [Data Exports] sort by [Dependent Interactions] descending average [Days since last modified] [Dependent Type] != '{null}'" + search_query: "[Dependent Link] [Dependent Author] [Dependent Type] [formula_Dependent Description (Pretty)] [Dependent Interactions] [Data Exports] sort by [Dependent Interactions] descending average [formula_Days since last modified] [Dependent Type] != '{null}'" answer_columns: - - name: Dependent Link - - name: Dependent Author - - name: Dependent Type - custom_name: Type - - name: Dependent Description (Pretty) - custom_name: Description - - name: Dependent Interactions - custom_name: Total Interactions + - name: Average Days since last modified + custom_name: Days since last modified + - name: Data Exports + custom_name: Total Data Exports format: category: NUMBER numberFormatConfig: @@ -577,8 +579,11 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Data Exports - custom_name: Total Data Exports + - name: Dependent Author + - name: Dependent Description (Pretty) + custom_name: Description + - name: Dependent Interactions + custom_name: Total Interactions format: category: NUMBER numberFormatConfig: @@ -587,23 +592,26 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Average Days since last modified - custom_name: Days since last modified + sort_info: + category: DEFAULT + - name: Dependent Link + - name: Dependent Type + custom_name: Type table: table_columns: - - column_id: Dependent Link + - column_id: Average Days since last modified show_headline: false - - column_id: Dependent Author + - column_id: Data Exports show_headline: false - - column_id: Dependent Type + - column_id: Dependent Author show_headline: false - column_id: Dependent Description (Pretty) show_headline: false - column_id: Dependent Interactions show_headline: false - - column_id: Data Exports + - column_id: Dependent Link show_headline: false - - column_id: Average Days since last modified + - column_id: Dependent Type show_headline: false ordered_column_ids: - Dependent Link @@ -618,13 +626,13 @@ liveboard: chart: type: COLUMN chart_columns: - - column_id: Dependent Link + - column_id: Average Days since last modified + - column_id: Data Exports - column_id: Dependent Author - - column_id: Dependent Type - column_id: Dependent Description (Pretty) - column_id: Dependent Interactions - - column_id: Data Exports - - column_id: Average Days since last modified + - column_id: Dependent Link + - column_id: Dependent Type axis_configs: - x: - Dependent Description (Pretty) @@ -635,7 +643,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Dependent Link\",\"columnProperty\": {}},{\"columnId\": \"Dependent Author\",\"columnProperty\": {}},{\"columnId\": \"Dependent Type\",\"columnProperty\": {}},{\"columnId\": \"Dependent Description (Pretty)\",\"columnProperty\": {}},{\"columnId\": \"Dependent Interactions\",\"columnProperty\": {}},{\"columnId\": \"Data Exports\",\"columnProperty\": {}},{\"columnId\": \"Average Days since last modified\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"42245344-9284-4fdd-b68d-5efc5c74238e\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Dependent Interactions\"],\"isOpposite\": false}},{\"id\": \"b65c82f1-c32a-4f82-b4fd-632413e4663c\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Data Exports\"],\"isOpposite\": true}},{\"id\": \"008a7555-47c9-4201-9744-e8b8b356ce32\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Average Days since last modified\"],\"isOpposite\": true}},{\"id\": \"d08a2b60-1a52-4605-be9a-5bdc8ce53329\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Dependent Description (Pretty)\"]}}]}" display_mode: TABLE_MODE - viz_guid: 5d2a7d54-7f7d-405e-add5-228e6bf2013f + viz_guid: 0c4b55f7-4c6e-4eea-b6d0-64b6b2c3940a - id: Viz_13 answer: name: Monthly Interactions @@ -658,10 +666,10 @@ liveboard: custom_name: Interaction Month table: table_columns: - - column_id: Month(Dependent Interaction Date) - show_headline: false - column_id: Dependent Interactions show_headline: false + - column_id: Month(Dependent Interaction Date) + show_headline: false ordered_column_ids: - Month(Dependent Interaction Date) - Dependent Interactions @@ -670,8 +678,8 @@ liveboard: chart: type: KPI chart_columns: - - column_id: Month(Dependent Interaction Date) - column_id: Dependent Interactions + - column_id: Month(Dependent Interaction Date) axis_configs: - x: - Month(Dependent Interaction Date) @@ -680,7 +688,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Dependent Interactions\",\"columnProperty\": {}},{\"columnId\": \"Month(Dependent Interaction Date)\",\"columnProperty\": {\"excludeNullValues\": false}}],\"axisProperties\": [{\"id\": \"6c61ee2c-d319-4e57-96e0-9d07596bf383\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Dependent Interactions\"],\"isOpposite\": false}},{\"id\": \"1dbcff92-9249-444b-acea-b385eccf1764\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Dependent Interaction Date)\"]}}],\"seriesColors\": [{\"serieName\": \"Dependent Interactions\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"Dependent Interactions\",\"color\": \"#8C62F5\"}]}" display_mode: CHART_MODE - viz_guid: 2f485310-ee7f-45a1-9014-275c87271b37 + viz_guid: 28a76454-d532-4692-b465-a59472e2afe6 - id: Viz_14 answer: name: New Answers Created @@ -724,7 +732,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Month(Dependent Created Date)\",\"columnProperty\": {}},{\"columnId\": \"Unique Number of Dependent\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"fec9336d-3cc9-489a-8603-11ee0e78e55f\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Dependent\"],\"isOpposite\": false}},{\"id\": \"3af4e161-8f75-4456-be06-eb30ff749234\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Dependent Created Date)\"]}}],\"seriesColors\": [{\"serieName\": \"6143c932-5e8e-4365-b085-f68ff21c3f30\",\"color\": \"#F36775\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#06BF7F\"}],\"systemSeriesColors\": [{\"serieName\": \"6143c932-5e8e-4365-b085-f68ff21c3f30\",\"color\": \"#F36775\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 112f29b2-a1f1-4042-85ad-4f6562684d09 + viz_guid: 0a57acd6-07e7-490e-82c6-5be197abd574 - id: Viz_15 answer: name: New Liveboards Created @@ -768,9 +776,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Month(Dependent Created Date)\",\"columnProperty\": {}},{\"columnId\": \"Unique Number of Dependent\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"fec9336d-3cc9-489a-8603-11ee0e78e55f\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Dependent\"],\"isOpposite\": false}},{\"id\": \"3af4e161-8f75-4456-be06-eb30ff749234\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Dependent Created Date)\"]}}],\"seriesColors\": [{\"serieName\": \"6143c932-5e8e-4365-b085-f68ff21c3f30\",\"color\": \"#F36775\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#8C62F5\"}],\"systemSeriesColors\": [{\"serieName\": \"6143c932-5e8e-4365-b085-f68ff21c3f30\",\"color\": \"#F36775\"},{\"serieName\": \"Unique Number of Dependent\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 1e3d47b5-68d1-4718-b27a-cd2befbf5f2d + viz_guid: d5a67444-02c5-48e2-b2fc-80eb2337aa6b - id: Viz_16 - viz_guid: 39702d16-753b-4b32-b400-b6edfc09a2ad + viz_guid: 834c9223-a4d9-4b6e-b229-fc077299ea99 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_17 @@ -785,31 +793,31 @@ liveboard: - id: CS Tools ~ Worksheet Column Utilization name: CS Tools ~ Worksheet Column Utilization formulas: - - id: Include Author Interactions + - id: formula_Include Author Interactions name: Include Author Interactions - expr: "[Dependent Author] = [Interaction User] " + expr: "[Dependent Author] = [Interaction User]" was_auto_generated: false - - id: Influencer Score + - id: formula_Influencer Score name: Influencer Score - expr: "[Dependent Interactions] / ( [Answers] + [Liveboards] )" + expr: "[Dependent Interactions] / ( [formula_Answers] + [formula_Liveboards] )" properties: aggregation: AVERAGE was_auto_generated: false - - id: Answers + - id: formula_Answers name: Answers expr: "unique_count_if ( [Dependent Type] = 'answer' , [Dependent] )" was_auto_generated: false - - id: Decay Function + - id: formula_Decay Function name: Decay Function expr: "greatest ( 1 - ( diff_days ( today ( ) , [Dependent Interaction Date] ) / 365 * 2 ) , 0 )" properties: column_type: ATTRIBUTE was_auto_generated: false - - id: Liveboards + - id: formula_Liveboards name: Liveboards expr: "unique_count_if ( [Dependent Type] = 'liveboard' , [Dependent] )" was_auto_generated: false - search_query: "[Worksheet] = '(sample) retail - apparel' [Influencer Score] [Include Author Interactions] = false" + search_query: "[Worksheet] = '(sample) retail - apparel' [formula_Influencer Score] [formula_Include Author Interactions] = false" answer_columns: - name: Influencer Score format: @@ -838,13 +846,13 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"gridLines\": {},\"chartSpecific\": {\"dataFieldArea\": \"column\"}},\"columnProperties\": [{\"columnId\": \"Influencer Score\",\"columnProperty\": {\"conditionalFormatting\": {\"rows\": [{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"100\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#06BF7F\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"75\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#48D1E0\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"50\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#2E75F0\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"25\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#8C62F5\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false},{\"operator\": \"GREATER_THAN_EQUAL_TO\",\"value\": \"0\",\"plotAsBand\": false,\"fontProperties\": {\"color\": \"#747E8C\",\"bold\": true,\"italic\": false,\"strikeThrough\": false,\"underline\": false},\"comparisonType\": \"VALUE_BASED\",\"isHighlightRow\": false}]}}}],\"axisProperties\": [{\"id\": \"a1f7547a-476e-481f-b399-526c281efa49\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Influencer Score\"],\"isOpposite\": false}},{\"id\": \"d4d4b3d2-4685-4d68-a058-baf5704c0a19\",\"properties\": {\"axisType\": \"X\"}}],\"systemSeriesColors\": [{\"serieName\": \"a2335f84-210e-41ae-9cbb-e940d9c15a08\",\"color\": \"#F04152\"},{\"serieName\": \"9e31ab88-4204-4acb-9f04-8c32855979ba\",\"color\": \"#48D1E0\"},{\"serieName\": \"Influencer Score\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: f1f024bc-40b6-401e-96f6-dca180b6fcfa + viz_guid: 4195fcc6-462e-4814-99e7-0065153e825b - id: Viz_18 - viz_guid: 6840ede1-7050-451b-81ea-d2ccecde2f3f + viz_guid: 7d99a79c-a3be-43bd-9ff1-59840005b356 note_tile: html_parsed_string: "

How does Influence get measured?


Engagement = # Interactions / ( # Liveboards + # Answers )


Influencers produce content that is engaging for other Users in ThoughtSpot. The more interactions that a User's content generates, the stronger their influence is said to be.

" - id: Viz_19 - viz_guid: 5620547e-ac40-435e-8f23-9274977d9495 + viz_guid: 8efe12b6-1841-4b99-9144-531a69744acb note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_20 @@ -856,6 +864,7 @@ liveboard: name: CS Tools ~ Worksheet Column Utilization search_query: "unique count [Dependent Author] [Worksheet] = '(sample) retail - apparel' [Dependent Created Date].'last 12 months' [Dependent Created Date] [Dependent Created Date].monthly" answer_columns: + - name: Month(Dependent Created Date) - name: Unique Number of Dependent Author format: category: NUMBER @@ -865,7 +874,6 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Month(Dependent Created Date) table: table_columns: - column_id: Month(Dependent Created Date) @@ -890,7 +898,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Unique Number of Dependent Author\",\"columnProperty\": {}},{\"columnId\": \"Month(Dependent Created Date)\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"a818c575-2444-41d4-8b2e-fae7386f1408\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Dependent Author\"],\"isOpposite\": false}},{\"id\": \"0d3786fb-5a52-4ef8-a46e-c4019c8f860d\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Dependent Created Date)\"]}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"Unique Number of Dependent Author\",\"color\": \"#8C62F5\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"Unique Number of Dependent Author\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 3b27a8b9-2b55-48f7-af87-45b6077da262 + viz_guid: 57288d1d-b34f-4da7-b21a-a3eb8a44688b - id: Viz_21 answer: name: Total Consumers @@ -900,6 +908,7 @@ liveboard: name: CS Tools ~ Worksheet Column Utilization search_query: "unique count [Interaction User] [Worksheet] = '(sample) retail - apparel' [Dependent Interaction Date].'last 12 months' [Dependent Interaction Date] [Dependent Interaction Date].monthly" answer_columns: + - name: Month(Dependent Interaction Date) - name: Unique Number of Interaction User format: category: NUMBER @@ -909,7 +918,6 @@ liveboard: negativeValueFormat: PREFIX_DASH toSeparateThousands: true isCategoryEditable: true - - name: Month(Dependent Interaction Date) table: table_columns: - column_id: Month(Dependent Interaction Date) @@ -934,7 +942,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Month(Dependent Interaction Date)\",\"columnProperty\": {}},{\"columnId\": \"Unique Number of Interaction User\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"40f1a3d6-7128-44af-839b-da56dc0f26f0\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Unique Number of Interaction User\"],\"isOpposite\": false}},{\"id\": \"a3d43d6f-b863-430d-9d7d-92c860d11f3b\",\"properties\": {\"axisType\": \"X\",\"linkedColumns\": [\"Month(Dependent Interaction Date)\"]}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"Unique Number of Interaction User\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 013fa8ca-b3cf-4ba7-aad9-c60350b856c7 + viz_guid: a602fa48-6b24-47c3-bbdf-d8289203ec50 - id: Viz_22 answer: name: First Interaction Date @@ -963,7 +971,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Minimum Dependent Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"e0e0e211-bd01-4610-a2bc-d538c90043bc\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Minimum Dependent Interaction Date\"],\"isOpposite\": false}},{\"id\": \"c7b65577-7a86-4e07-8665-4c85b64afed5\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"b1a05c5c-d525-472a-98ca-e1e0f05a5d58\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: d2071e9f-7621-43fc-9905-e7d29b931be7 + viz_guid: 84731288-0955-4cff-a851-0a14a5f0a34d - id: Viz_23 answer: name: Interaction Date @@ -992,7 +1000,7 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Maximum Dependent Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"8c1718ba-1bdb-421a-a116-9a372c90146a\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Maximum Dependent Interaction Date\"],\"isOpposite\": false}},{\"id\": \"0a17829f-f01a-4dac-acd3-48020adebf21\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"b1a05c5c-d525-472a-98ca-e1e0f05a5d58\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: b9a82593-d2a7-4a23-abba-3205cababaeb + viz_guid: 7f828470-1406-4640-8550-1f10060705a6 - id: Viz_24 answer: name: First Interaction Date @@ -1021,13 +1029,13 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Minimum Dependent Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"e0e0e211-bd01-4610-a2bc-d538c90043bc\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Minimum Dependent Interaction Date\"],\"isOpposite\": false}},{\"id\": \"c7b65577-7a86-4e07-8665-4c85b64afed5\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"b1a05c5c-d525-472a-98ca-e1e0f05a5d58\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 08c87bf8-06a5-408b-bffa-6d128203d628 + viz_guid: 38383747-2907-438a-9438-2fd9ba3fba97 - id: Viz_25 - viz_guid: 1fe42e4b-ddd9-4d5e-940a-b589838a7320 + viz_guid: d973340b-ff00-46e7-82d5-d786b4f531e8 note_tile: html_parsed_string: "

Data Sources


1/ ThoughtSpot Worksheets - [command cs_tools searchable metadata]

Worksheet columns' settings are included, as is the data source (Falcon, Connection) and which cluster/org the Worksheet belongs to. The \"Worksheet\" field in this Liveboard is not unique - if you have identically named worksheets, consider adding the guid to disambiguate.


2/ ThoughtSpot Dependencies - [command cs_tools searchable metadata]

Objects which are can be created from Worksheets are considered as dependencies. (primarily these are Liveboards and Answers)


3/ TS: BI Server - [command cs_tools searchable bi-server]

A built-in worksheet which describes how Users interact with content created in ThoughtSpot.

" - id: Viz_26 - viz_guid: 3be4b513-6ce1-4505-8588-2f1f230de641 + viz_guid: 07bc34a5-116e-40b3-8aa4-6dd8847209a8 note_tile: html_parsed_string: "


\"LINK\" 💖 created by the CS Tools team, give feedback on GitHub Discussions 📣

" - id: Viz_27 @@ -1058,9 +1066,9 @@ liveboard: client_state: "" client_state_v2: "{\"version\": \"V4DOT2\",\"chartProperties\": {\"responsiveLayoutPreference\": \"AUTO_ON\",\"chartSpecific\": {\"customProps\": \"{\\\"showLabel\\\":true,\\\"showComparison\\\":true,\\\"showSparkline\\\":true,\\\"showAnomalies\\\":true,\\\"showBounds\\\":true,\\\"customCompare\\\":\\\"PREV_AVAILABLE\\\"}\",\"pivotSummariesState\": {}}},\"columnProperties\": [{\"columnId\": \"Maximum Dependent Interaction Date\",\"columnProperty\": {}}],\"axisProperties\": [{\"id\": \"e0e0e211-bd01-4610-a2bc-d538c90043bc\",\"properties\": {\"axisType\": \"Y\",\"linkedColumns\": [\"Maximum Dependent Interaction Date\"],\"isOpposite\": false}},{\"id\": \"c7b65577-7a86-4e07-8665-4c85b64afed5\",\"properties\": {\"axisType\": \"X\"}}],\"seriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"}],\"systemSeriesColors\": [{\"serieName\": \"ce32e51e-3dbb-42d1-b7ff-80e6da4bc61b\",\"color\": \"#2E75F0\"},{\"serieName\": \"b1a05c5c-d525-472a-98ca-e1e0f05a5d58\",\"color\": \"#2770ef\"}]}" display_mode: CHART_MODE - viz_guid: 8526fc9a-e596-4194-ae78-b40fb0b16e59 + viz_guid: 0f0cf41d-fa4e-4f68-b953-ff172b6de073 - id: Viz_28 - viz_guid: 776ca426-d192-4278-a0e1-7d885c86f171 + viz_guid: 7200abfc-b31a-4686-bf8c-3676d8771879 note_tile: html_parsed_string: "

Worksheet Recommendations

for a friendly, easy to use worksheet, consider the following points


Modeling for Search - columns should have their settings applied, with the most important fields being required: Column Name, Description, Synonyms, and Index Type (Search Suggestions). Aim to keep column names under 30 characters long to ensure they fit appropriately in the left hand panel when Searching.


Enable Search Suggestions - used in the Search bar and Liveboard Explore as recommendations to the User. The Search Suggestions index is built once-daily and is the list of unique values for any column with the INDEX TYPE table setting applied.


Number of Columns - More is not always better! Consider your Users needs and include the relevant fields. ThoughtSpot has found that having fewer than 150 columns in your Worksheet to be optimal for strong adoption of a searchable.


Hidden Columns - Visualizations with Hidden columns become locked unless you have Can Edit access to the underlying Searchable.


Engagement Score - Try to strike a balance between creators and consumers of content. Scoring above 100 indicates strongly adopted content.

" filters: @@ -1172,6 +1180,7 @@ liveboard: "y": 0 height: 2 width: 2 + id: 7dd56839-da66-4fe2-9d78-0b7bfc21173f - name: Dependencies description: "" tiles: @@ -1200,6 +1209,7 @@ liveboard: "y": 3 height: 3 width: 2 + id: ed8de038-5592-4e83-a8e4-8ed95879909d - name: Influencers description: "" tiles: @@ -1228,6 +1238,7 @@ liveboard: "y": 5 height: 3 width: 3 + id: 1f77c69c-e88f-43a7-8aa9-f7f16390fe0c - name: Appendix description: "" tiles: @@ -1271,3 +1282,47 @@ liveboard: "y": 0 height: 4 width: 6 + id: f7b17f31-a5b2-40e6-859e-dfbd9cbad818 + ordered_chips: + - name: ThoughtSpot URL + type: FILTER + - name: Org + type: FILTER + - name: Worksheet Is Sage Enabled + type: FILTER + - name: Worksheet + type: FILTER + - name: Column Type + type: FILTER + - name: Column + type: FILTER + - name: Has Synonyms + type: FILTER + views: + - view_guid: 38db3a5b-831e-4a38-b6f6-6290980f3ede + name: sfd + view_filters: + - column: + - ThoughtSpot URL + oper: = + - column: + - Org + oper: = + - column: + - Worksheet Is Sage Enabled + oper: = + - column: + - Worksheet + oper: in + values: + - ATLAS_NODE_COUNT + - column: + - Column Type + oper: = + - column: + - Column + oper: = + - column: + - Has Synonyms + oper: = + is_public: true diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml new file mode 100644 index 00000000..fc656cc6 --- /dev/null +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml @@ -0,0 +1,266 @@ +guid: bc6cd02a-9123-43ed-aa50-f919f3d3c907 +model: + name: CS Tools ~ BI Server Advanced + model_tables: + - name: TS_DEPENDENT_OBJECT + joins: + - with: TS_METADATA_COLUMN + referencing_join: TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN + type: INNER + - with: VW_TS_BI_SERVER_ADVANCED_AUTHOR + referencing_join: TS_DEPENDENT_OBJECT_to_VW_TS_BI_SERVER_AUTHOR + - name: TS_BI_SERVER + joins: + - with: TS_CLUSTER + referencing_join: TS_BI_SERVER_to_TS_CLUSTER + - with: TS_DEPENDENT_OBJECT + referencing_join: TS_BI_SERVER_to_TS_DEPENDENT_OBJECT + - with: TS_ORG + referencing_join: TS_BI_SERVER_to_TS_ORG + - with: TS_USER + referencing_join: TS_BI_SERVER_to_TS_USER + - name: TS_CLUSTER + - name: TS_DATA_SOURCE + - name: TS_METADATA_OBJECT + joins: + - with: TS_DATA_SOURCE + referencing_join: TS_METADATA_OBJECT_to_TS_DATA_SOURCE + - name: TS_METADATA_COLUMN + joins: + - with: TS_METADATA_OBJECT + referencing_join: TS_METADATA_COLUMN_to_TS_METADATA_OBJECT + type: INNER + - name: TS_ORG + - name: TS_USER + - name: TS_GROUP_MEMBERSHIP + joins: + - with: TS_GROUP + referencing_join: TS_GROUP_MEMBERSHIP_to_TS_GROUP + - with: TS_USER + referencing_join: TS_XREF_PRINCIPAL_to_TS_USER + - name: VW_TS_BI_SERVER_ADVANCED_AUTHOR + - name: TS_GROUP + formulas: + - id: formula_Active Users + name: Active Users + expr: unique count ( [TS_BI_SERVER::USER_ID] ) + - id: formula_Interactions + name: Interactions + expr: count ( [TS_BI_SERVER::SK_DUMMY] ) + - id: formula_Latency (s) + name: Latency (s) + expr: '[TS_BI_SERVER::Latency (us)] * 0.000001' + - id: formula_Object Link + name: Object Link + expr: concat ( '{caption}' , [TS_DEPENDENT_OBJECT::Dependent] , '{/caption}' , [TS_CLUSTER::ThoughtSpot URL] , if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'question_answer_book' ) then '#/saved-answer/' else if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'pinboard_answer_book' ) then "#/pinboard/" else "#/data/tables/" , [TS_DEPENDENT_OBJECT::Dependent GUID] ) + - id: formula_Object Type + name: Object Type + expr: if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'question_answer_book' ) then 'answer' else if ( [TS_DEPENDENT_OBJECT::Dependent Type] = 'pinboard_answer_book' ) then 'liveboard' else [TS_DEPENDENT_OBJECT::Dependent Type] + - id: formula_Response Size (kB) + name: Response Size (kB) + expr: round ( [TS_BI_SERVER::Response Size (b)] * 0.001 , 2 ) + - id: formula_Worksheet + name: Worksheet + expr: if ( [TS_METADATA_OBJECT::Object Subtype] = "worksheet" ) then [TS_METADATA_OBJECT::Object] else null + - id: formula_fx Client Type + name: fx Client Type + expr: if ( [TS_BI_SERVER::Client Type] = "blink" ) then "classic experience" else if ( [TS_BI_SERVER::Client Type] = "blink_v2" ) then "new answer experience" else if ( [TS_BI_SERVER::Client Type] = "mobile" ) then "mobile" else if ( [TS_BI_SERVER::Client Type] = "full_embed" ) then "embedded thoughtspot" else [TS_BI_SERVER::Client Type] + - id: formula_fx HTTP Response Status + name: fx HTTP Response Status + expr: if ( [TS_BI_SERVER::HTTP Response] < 400 ) then 'success' else 'error' + - id: formula_fx Interaction Timestamp + name: fx Interaction Timestamp + expr: '[TS_BI_SERVER::Timestamp]' + - id: formula_fx User Action Category + name: fx User Action Category + expr: if ( [TS_BI_SERVER::User Action] = 'answer_unsaved' ) then 'search' else if ( [TS_BI_SERVER::User Action] in { 'data_export' , 'pinboard_print_view' , 'pinboard_print_filter' , 'tspublic_data_export' } ) then 'data exports' else if ( [TS_BI_SERVER::User Action] in { 'answer_view_list' , 'answer_view_save' } ) then 'thoughtspot views' else if ( [TS_BI_SERVER::User Action] = 'pinboard_insight_view' ) then 'spot iq' else if ( [TS_BI_SERVER::User Action] in { 'answer_pinboard_context' , 'answer_viz_context_view' , 'pinboard_ad_hoc' , 'pinboard_filter' , 'pinboard_admin_view' , 'pinboard_view' , 'pinboard_tspublic_no_runtime_filter' , 'pinboard_embed_view' , 'pinboard_tspublic_runtime_filter' } ) then 'liveboards' else if ( [TS_BI_SERVER::User Action] in { 'answer_view' , 'answer_saved' , 'answer_add_new_filter' , 'data_show_underlying' , 'data_show_underlying_viz' , 'data_show_underlying_row' , 'data_chart_config' } ) then 'answers' else 'other' + columns: + - name: Object GUID + description: The unique identifier of the object, which can be found in the ThoughtSpot UI. + column_id: TS_DEPENDENT_OBJECT::Dependent GUID + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Latency (s) + formula_id: formula_Latency (s) + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + format_pattern: '0.00' + - name: Response Size (kB) + formula_id: formula_Response Size (kB) + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + - name: Object Type + formula_id: formula_Object Type + properties: + column_type: ATTRIBUTE + - name: HTTP Response Status + formula_id: formula_fx HTTP Response Status + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Worksheet + formula_id: formula_Worksheet + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Object Link + formula_id: formula_Object Link + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Interactions + formula_id: formula_Interactions + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + - name: Active Users + formula_id: formula_Active Users + properties: + column_type: MEASURE + aggregation: SUM + index_type: DONT_INDEX + - name: Interaction Timestamp + description: Datetime of when the action took place + formula_id: formula_fx Interaction Timestamp + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: User Action Category + formula_id: formula_fx User Action Category + properties: + column_type: ATTRIBUTE + - name: Experience Type + formula_id: formula_fx Client Type + properties: + column_type: ATTRIBUTE + - name: ThoughtSpot URL + description: The web address of your ThoughtSpot platform. + column_id: TS_CLUSTER::ThoughtSpot URL + properties: + column_type: ATTRIBUTE + - name: Object Modified At + description: The datetime of when the object was last edited and saved. + column_id: TS_DEPENDENT_OBJECT::Dependent Modified At + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Client ID + description: Unique ID of the application accessing ThoughtSpot + column_id: TS_BI_SERVER::Client ID + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Data Source + description: A data source which contains Tables which can be found with in the UI. + column_id: TS_DATA_SOURCE::Data Source + properties: + column_type: ATTRIBUTE + - name: Incident ID + description: Unique ID of the event + column_id: TS_BI_SERVER::Incident ID + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Search Query + description: Columns / Search Terms used to generate the query + column_id: TS_BI_SERVER::Search Query + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Browser Type + description: The web browser client used to access ThoughtSpot + column_id: TS_BI_SERVER::Browser Type + properties: + column_type: ATTRIBUTE + - name: Browser Version + description: The web browser client version used to access ThoughtSpot + column_id: TS_BI_SERVER::Browser Version + properties: + column_type: ATTRIBUTE + - name: Object Created At + description: The datetime of when the object was initially created. + column_id: TS_DEPENDENT_OBJECT::Dependent Created At + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Org + description: The organization name found in the ThoughtSpot UI, either in the switcher or on the Administrator panel. + column_id: TS_ORG::Org + properties: + column_type: ATTRIBUTE + - name: Object + description: An object which can be interacted with in the UI like a Table, Answer, or Liveboard. + column_id: TS_DEPENDENT_OBJECT::Dependent + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: Visualization GUID + description: GUID of the Visualization, typically used to identify a liveboard viz + column_id: TS_BI_SERVER::Visualization GUID + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: URL + description: API endpoint called as part of the event + column_id: TS_BI_SERVER::URL + properties: + column_type: ATTRIBUTE + index_type: DONT_INDEX + - name: User Action + description: An event type category, describing what action the User took + column_id: TS_BI_SERVER::User Action + properties: + column_type: ATTRIBUTE + - name: Data Source Type + description: The type of data store your data lives in. + column_id: TS_DATA_SOURCE::Data Source Type + properties: + column_type: ATTRIBUTE + - name: Interaction User + description: The user's display name. + column_id: TS_USER::User + properties: + column_type: ATTRIBUTE + - name: ThoughtSpot Timezone + description: The system timezone configured for your ThoughtSpot platform. + column_id: TS_CLUSTER::ThoughtSpot Timezone + properties: + column_type: ATTRIBUTE + - name: Object Author + column_id: VW_TS_BI_SERVER_ADVANCED_AUTHOR::User + properties: + column_type: ATTRIBUTE + - name: Group + description: The group's display name. + column_id: TS_GROUP::Group + properties: + column_type: ATTRIBUTE + - name: Interaction User Email + description: The user's registered email. + column_id: TS_USER::User Email + properties: + column_type: ATTRIBUTE + - name: Object Author Email + column_id: VW_TS_BI_SERVER_ADVANCED_AUTHOR::User Email + properties: + column_type: ATTRIBUTE + - name: Group Sharing + description: Whether or not the group may appear in the sharing dialog menu. + column_id: TS_GROUP::Group Sharing + properties: + column_type: ATTRIBUTE + synonyms: + - Group Distribution + - Group Allocation + synonym_type: AUTO_GENERATED + properties: + is_bypass_rls: false + join_progressive: true + spotter_config: + is_spotter_enabled: false diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.worksheet.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.worksheet.tml deleted file mode 100644 index 16731781..00000000 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.worksheet.tml +++ /dev/null @@ -1,470 +0,0 @@ -guid: 381db1c8-688f-4620-9a45-ce9a2dea108c -worksheet: - name: CS Tools ~ Worksheet Column Utilization - description: Show the data lineage of Worksheets and how the columns are used in the ThoughtSpot system. - tables: - - name: TS_BI_SERVER - - name: TS_CLUSTER - - name: TS_COLUMN_SYNONYM - - name: TS_DATA_SOURCE - - name: TS_DEPENDENT_OBJECT - - name: TS_METADATA_COLUMN - - name: TS_METADATA_OBJECT - - name: TS_ORG - - name: TS_USER - joins: - - name: TS_BI_SERVER_to_TS_USER - source: TS_BI_SERVER - destination: TS_USER - type: LEFT_OUTER - is_one_to_one: false - - name: TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - source: TS_BI_SERVER - destination: TS_DEPENDENT_OBJECT - type: RIGHT_OUTER - is_one_to_one: false - - name: TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - source: TS_COLUMN_SYNONYM - destination: TS_METADATA_COLUMN - type: RIGHT_OUTER - is_one_to_one: false - - name: TS_DEPENDENT_OBJECT_to_TS_USER - source: TS_DEPENDENT_OBJECT - destination: TS_USER - type: INNER - is_one_to_one: false - - name: TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - source: TS_DEPENDENT_OBJECT - destination: TS_METADATA_COLUMN - type: RIGHT_OUTER - is_one_to_one: false - - name: TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - source: TS_METADATA_COLUMN - destination: TS_METADATA_OBJECT - type: RIGHT_OUTER - is_one_to_one: false - - name: TS_METADATA_OBJECT_to_TS_ORG - source: TS_METADATA_OBJECT - destination: TS_ORG - type: INNER - is_one_to_one: false - - name: TS_METADATA_OBJECT_to_TS_USER - source: TS_METADATA_OBJECT - destination: TS_USER - type: INNER - is_one_to_one: false - - name: TS_METADATA_OBJECT_to_TS_DATA_SOURCE - source: TS_METADATA_OBJECT - destination: TS_DATA_SOURCE - type: LEFT_OUTER - is_one_to_one: false - - name: TS_METADATA_OBJECT_to_TS_CLUSTER - source: TS_METADATA_OBJECT - destination: TS_CLUSTER - type: INNER - is_one_to_one: false - table_paths: - - id: TS_BI_SERVER_1 - table: TS_BI_SERVER - join_path: - - {} - - id: TS_CLUSTER_1 - table: TS_CLUSTER - join_path: - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_CLUSTER - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_CLUSTER - - id: TS_CLUSTER_2 - table: TS_CLUSTER - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_CLUSTER - - id: TS_COLUMN_SYNONYM_1 - table: TS_COLUMN_SYNONYM - join_path: - - {} - - id: TS_DATA_SOURCE_1 - table: TS_DATA_SOURCE - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_DATA_SOURCE - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_DATA_SOURCE - - id: TS_DEPENDENT_OBJECT_1 - table: TS_DEPENDENT_OBJECT - join_path: - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - id: TS_METADATA_COLUMN_1 - table: TS_METADATA_COLUMN - join_path: - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - id: TS_METADATA_OBJECT_1 - table: TS_METADATA_OBJECT - join_path: - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - id: TS_ORG_1 - table: TS_ORG - join_path: - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_ORG - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_ORG - - id: TS_USER_1 - table: TS_USER - join_path: - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_USER - - join: - - TS_BI_SERVER_to_TS_DEPENDENT_OBJECT - - TS_DEPENDENT_OBJECT_to_TS_USER - - id: TS_USER_2 - table: TS_USER - join_path: - - join: - - TS_BI_SERVER_to_TS_USER - - join: - - TS_COLUMN_SYNONYM_to_TS_METADATA_COLUMN - - TS_METADATA_COLUMN_to_TS_METADATA_OBJECT - - TS_METADATA_OBJECT_to_TS_USER - formulas: - - name: Data Exports - expr: "count_if ( [TS_BI_SERVER_1::User Action] in { 'data_export' , 'pinboard_print_view' , 'pinboard_print_filter' , 'tspublic_data_export' } , [TS_BI_SERVER_1::SK_DUMMY] )" - was_auto_generated: false - - name: Dependent Interaction Date - expr: "date ( [TS_BI_SERVER_1::Timestamp] )" - was_auto_generated: false - - name: Dependent Interactions - expr: "count_if ( [TS_DEPENDENT_OBJECT_1::Dependent GUID] = [TS_BI_SERVER_1::ANSWER_BOOK_GUID] , [TS_BI_SERVER_1::SK_DUMMY] )" - was_auto_generated: false - - name: Dependent Link - expr: "concat ( '{caption}' , [TS_DEPENDENT_OBJECT_1::Dependent] , '{/caption}' , [TS_CLUSTER_2::ThoughtSpot URL] , if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'question_answer_book' ) then '#/saved-answer/' else if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'pinboard_answer_book' ) then \"#/pinboard/\" else \"#/data/tables/\" , [TS_DEPENDENT_OBJECT_1::Dependent GUID] )" - was_auto_generated: false - - name: "Filtered: Column Parent is Worksheet" - expr: "[TS_METADATA_OBJECT_1::Object Type] = 'logical_table' and [TS_METADATA_OBJECT_1::Object Subtype] in { 'worksheet', 'model' }" - was_auto_generated: false - - name: Has Synonyms - expr: "count ( [TS_COLUMN_SYNONYM_1::Column Synonym] ) > 0" - was_auto_generated: false - - name: Worksheet Link - expr: "concat ( '{caption}' , [TS_METADATA_OBJECT_1::Object] , '{/caption}' , [TS_CLUSTER_1::ThoughtSpot URL] , '#/data/tables/' , [TS_METADATA_OBJECT_1::Object GUID] )" - was_auto_generated: false - - name: fx Dependent Type - expr: "if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'question_answer_book' ) then 'answer' else if ( [TS_DEPENDENT_OBJECT_1::Dependent Type] = 'pinboard_answer_book' ) then 'liveboard' else if ( [TS_DEPENDENT_OBJECT_1::Dependent Subtype] = 'aggr_worksheet' ) then 'thoughtspot view' else null" - was_auto_generated: false - filters: - - column: - - "(Hidden, Filtered) Column Parent is Worksheet" - oper: in - values: - - "true" - worksheet_columns: - - name: Is Additive - description: Whether or not values from this column may be aggregated together. - column_id: TS_METADATA_COLUMN_1::Is Additive - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - synonyms: - - Additive - synonym_type: USER_DEFINED - - name: "(Hidden, Filtered) Column Parent is Worksheet" - description: This column is only used for the Worksheet Filter. - formula_id: "Filtered: Column Parent is Worksheet" - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - is_hidden: true - - name: Format Pattern - description: The display format for values within a column. - column_id: TS_METADATA_COLUMN_1::Format Pattern - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Org - description: "The organization name found in the ThoughtSpot UI, either in the switcher or on the Administrator panel." - column_id: TS_ORG_1::Org - properties: - column_type: ATTRIBUTE - synonyms: - - Org Name - synonym_type: USER_DEFINED - - name: Dependent Type - description: "The type of Dependency, typically an Answer or Liveboard, includes all descendants of a Worksheet (Worksheet -> View -> Answer)." - formula_id: fx Dependent Type - properties: - column_type: ATTRIBUTE - - name: Suggestions Type - description: How ThoughtSpot can use stored values for Search recommendation purposes. - column_id: TS_METADATA_COLUMN_1::Suggestions Type - properties: - column_type: ATTRIBUTE - synonyms: - - Index Type - synonym_type: USER_DEFINED - - name: Default Aggregation - description: The default aggregation policy for values within this column. - column_id: TS_METADATA_COLUMN_1::Default Aggregation - properties: - column_type: ATTRIBUTE - synonyms: - - Aggregation - synonym_type: USER_DEFINED - - name: Currency Type - description: "The display format for monetary values within a column, overrides Format Pattern and does not perform conversion." - column_id: TS_METADATA_COLUMN_1::Currency Type - properties: - column_type: ATTRIBUTE - - name: Worksheet Link - description: A direct URL to the Worksheet. - formula_id: Worksheet Link - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - synonyms: - - Worksheet URL - synonym_type: USER_DEFINED - - name: ThoughtSpot URL - description: The web address of your ThoughtSpot platform. - column_id: TS_CLUSTER_1::ThoughtSpot URL - properties: - column_type: ATTRIBUTE - - name: Dependent Author Email - description: The user's registered email. - column_id: TS_USER_1::User Email - properties: - column_type: ATTRIBUTE - - name: Dependent Author - description: The user's display name. - column_id: TS_USER_1::User - properties: - column_type: ATTRIBUTE - synonyms: - - Dependent Author Display Name - synonym_type: USER_DEFINED - - name: Dependent Description - description: A user-driven field which details extra infomation about the object. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Description - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Is Formula - description: Whether or not the column is derived within ThoughtSpot. - column_id: TS_METADATA_COLUMN_1::Is Formula - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Worksheet - description: "An object which can be interacted with in the UI like a Table, Answer, or Liveboard." - column_id: TS_METADATA_OBJECT_1::Object - properties: - column_type: ATTRIBUTE - - name: Column - description: "A column can be interacted with in the UI in Search, Visualizations, and Liveboards." - column_id: TS_METADATA_COLUMN_1::Column - properties: - column_type: ATTRIBUTE - synonyms: - - Column Name - synonym_type: USER_DEFINED - - name: Default Calendar - description: The default calendar to align to when using date keywords. - column_id: TS_METADATA_COLUMN_1::Default Calendar - properties: - column_type: ATTRIBUTE - - name: Suggestions Priority - description: "The relative weight that this column in the suggestions list, higher numbers represent more weight." - column_id: TS_METADATA_COLUMN_1::Suggestions Priority - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - synonyms: - - Index Priority - synonym_type: USER_DEFINED - - name: Data Type - description: The inferred SQL data type from this column's data source. - column_id: TS_METADATA_COLUMN_1::Data Type - properties: - column_type: ATTRIBUTE - - name: Column Description - description: A user-driven field which details extra infomation about the column. - column_id: TS_METADATA_COLUMN_1::Column Description - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Worksheet Is Sage Enabled - description: Determines whether or not ThoughtSpot Sage has been enabled for this object. - column_id: TS_METADATA_OBJECT_1::Is Sage Enabled - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Worksheet Description - description: A user-driven field which details extra infomation about the object. - column_id: TS_METADATA_OBJECT_1::Object Description - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Geo Config - description: "If set, allows the visualization to be plotted on a geographical chart." - column_id: TS_METADATA_COLUMN_1::Geo Config - properties: - column_type: ATTRIBUTE - synonyms: - - Geo Setting - synonym_type: USER_DEFINED - - name: Is Hidden - description: Whether or not the column can be seen by viewers and non-admins. - column_id: TS_METADATA_COLUMN_1::Is Hidden - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - synonyms: - - Hidden - synonym_type: USER_DEFINED - - name: SpotIQ Enabled - description: Whether or not the column may be used in Spot IQ analyses. - column_id: TS_METADATA_COLUMN_1::SpotIQ Enabled - properties: - column_type: ATTRIBUTE - synonyms: - - SpotIQ Preference - synonym_type: USER_DEFINED - - name: Is Attributable - description: Whether or not these columns represent a causal relationship when used between FACTs. - column_id: TS_METADATA_COLUMN_1::Is Attributable - properties: - column_type: ATTRIBUTE - synonyms: - - Attribution Dimension - synonym_type: USER_DEFINED - - name: Column Type - description: "Either, Attribute - something that may be grouped by or Measure - something that may be aggregated." - column_id: TS_METADATA_COLUMN_1::Column Type - properties: - column_type: ATTRIBUTE - - name: Dependent - description: "An object which can be interacted with in the UI like a Table, Answer, or Liveboard." - column_id: TS_DEPENDENT_OBJECT_1::Dependent - properties: - column_type: ATTRIBUTE - - name: Dependent Link - description: A direct URL to the Dependent. - formula_id: Dependent Link - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - synonyms: - - Dependent URL - synonym_type: USER_DEFINED - - name: Dependent Interactions - description: "The amount of times any User has Viewed, Edits, or Saved a Dependent." - formula_id: Dependent Interactions - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - - name: Dependent Interaction Date - description: "The date of when any User has Viewed, Edits, or Saved a Dependent." - formula_id: Dependent Interaction Date - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Data Exports - description: The amount of times any User exported a PNG or CSV - formula_id: Data Exports - properties: - column_type: MEASURE - aggregation: SUM - index_type: DONT_INDEX - - name: Synonym - description: An alternate name for a column. - column_id: TS_COLUMN_SYNONYM_1::Column Synonym - properties: - column_type: ATTRIBUTE - - name: Has Synonyms - description: Whether or not the Column has any Synonyms - formula_id: Has Synonyms - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Data Source Type - description: The type of data store your data lives in. - column_id: TS_DATA_SOURCE_1::Data Source Type - properties: - column_type: ATTRIBUTE - synonyms: - - Connection Type - synonym_type: USER_DEFINED - - name: Data Source - description: A data source which contains Tables which can be found with in the UI. - column_id: TS_DATA_SOURCE_1::Data Source - properties: - column_type: ATTRIBUTE - synonyms: - - Connection - - Embrace Connection - synonym_type: USER_DEFINED - - name: Dependent Created Date - description: The datetime of when the object was initially created. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Created At - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Dependent Last Modified Date - description: The datetime of when the object was last edited and saved. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Modified At - properties: - column_type: ATTRIBUTE - index_type: DONT_INDEX - - name: Interaction User - description: The user's display name. - column_id: TS_USER_2::User - properties: - column_type: ATTRIBUTE - synonyms: - - Interaction User Display Name - synonym_type: USER_DEFINED - - name: Interaction User Email - description: The user's registered email. - column_id: TS_USER_2::User Email - properties: - column_type: ATTRIBUTE - - name: Dependent Is Verified - description: Determines whether or not this object has been Verified. - column_id: TS_DEPENDENT_OBJECT_1::Dependent Is Verified - properties: - column_type: ATTRIBUTE - properties: - is_bypass_rls: false - join_progressive: true diff --git a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml index 16dbaf08..6df17cc9 100644 --- a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml @@ -196,3 +196,6 @@ table: name: TS_METADATA_OBJECT "on": "[TS_BI_SERVER::CLUSTER_GUID] = [TS_METADATA_OBJECT::CLUSTER_GUID] AND [TS_BI_SERVER::ANSWER_BOOK_GUID] = [TS_METADATA_OBJECT::Object GUID]" type: LEFT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml index 0ed3cdae..de3f93c2 100644 --- a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml +++ b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml @@ -173,3 +173,6 @@ view: name: TS_METADATA_OBJECT "on": "[TS_BI_SERVER::CLUSTER_GUID] = [TS_METADATA_OBJECT::CLUSTER_GUID] AND [TS_BI_SERVER::ANSWER_BOOK_GUID] = [TS_METADATA_OBJECT::Object GUID]" type: LEFT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml b/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml index 3193bd61..3ca127dc 100644 --- a/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml @@ -29,3 +29,6 @@ table: column_type: ATTRIBUTE db_column_properties: data_type: VARCHAR + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml b/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml index 0d70b5c2..02c5262d 100644 --- a/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml @@ -38,3 +38,6 @@ table: name: TS_METADATA_COLUMN "on": "[TS_COLUMN_SYNONYM::COLUMN_GUID] = [TS_METADATA_COLUMN::Column GUID] AND [TS_COLUMN_SYNONYM::CLUSTER_GUID] = [TS_METADATA_COLUMN::CLUSTER_GUID]" type: RIGHT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml b/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml index dba19561..06271290 100644 --- a/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml @@ -67,3 +67,6 @@ table: name: TS_CLUSTER "on": "[TS_DATA_SOURCE::CLUSTER_GUID] = [TS_CLUSTER::Cluster GUID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml index 3dfcd5d5..d3a4652a 100644 --- a/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml @@ -96,6 +96,12 @@ table: column_type: ATTRIBUTE db_column_properties: data_type: VARCHAR + - name: IS_VERSION_CONTROLLED + db_column_name: IS_VERSION_CONTROLLED + properties: + column_type: ATTRIBUTE + db_column_properties: + data_type: BOOL joins_with: - name: TS_DEPENDENT_OBJECT_to_TS_USER destination: @@ -112,3 +118,6 @@ table: name: TS_METADATA_COLUMN "on": "[TS_DEPENDENT_OBJECT::COLUMN_GUID] = [TS_METADATA_COLUMN::Column GUID] AND [TS_DEPENDENT_OBJECT::CLUSTER_GUID] = [TS_METADATA_COLUMN::CLUSTER_GUID]" type: RIGHT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml index a3f5fc49..93975543 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml @@ -91,3 +91,6 @@ table: name: TS_GROUP_PRIVILEGE "on": "[TS_GROUP::CLUSTER_GUID] = [TS_GROUP_PRIVILEGE::CLUSTER_GUID] AND [TS_GROUP::Group GUID] = [TS_GROUP_PRIVILEGE::GROUP_GUID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml index b1d754b4..6a8c19d5 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml @@ -48,3 +48,6 @@ table: name: TS_USER "on": "[TS_GROUP_MEMBERSHIP::PRINCIPAL_GUID] = [TS_USER::User GUID] AND [TS_GROUP_MEMBERSHIP::CLUSTER_GUID] = [TS_USER::CLUSTER_GUID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml index 17cfc5f3..1e851fb5 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml @@ -32,3 +32,6 @@ table: column_type: ATTRIBUTE db_column_properties: data_type: VARCHAR + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml b/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml index dca42072..4117696a 100644 --- a/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml @@ -157,3 +157,6 @@ table: name: TS_METADATA_OBJECT "on": "[TS_METADATA_COLUMN::CLUSTER_GUID] = [TS_METADATA_OBJECT::CLUSTER_GUID] AND [TS_METADATA_COLUMN::OBJECT_GUID] = [TS_METADATA_OBJECT::Object GUID]" type: RIGHT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml index ab558590..1bb513b8 100644 --- a/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml @@ -118,6 +118,12 @@ table: column_type: ATTRIBUTE db_column_properties: data_type: VARCHAR + - name: IS_VERSION_CONTROLLED + db_column_name: IS_VERSION_CONTROLLED + properties: + column_type: ATTRIBUTE + db_column_properties: + data_type: BOOL joins_with: - name: TS_METADATA_OBJECT_to_TS_USER destination: @@ -139,3 +145,6 @@ table: name: TS_DATA_SOURCE "on": "[TS_METADATA_OBJECT::DATA_SOURCE_GUID] = [TS_DATA_SOURCE::Data Source GUID] AND [TS_METADATA_OBJECT::CLUSTER_GUID] = [TS_DATA_SOURCE::CLUSTER_GUID]" type: LEFT_OUTER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml b/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml index 47d59b59..f850d877 100644 --- a/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml @@ -45,3 +45,6 @@ table: name: TS_CLUSTER "on": "[TS_ORG::CLUSTER_GUID] = [TS_CLUSTER::Cluster GUID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml b/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml index 4bdfb61c..f2e7dd26 100644 --- a/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml @@ -43,3 +43,6 @@ table: name: TS_ORG "on": "[TS_ORG_MEMBERSHIP::CLUSTER_GUID] = [TS_ORG::CLUSTER_GUID] AND [TS_ORG_MEMBERSHIP::ORG_ID] = [TS_ORG::Org ID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml b/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml index 265d06fe..4ab66a1a 100644 --- a/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml @@ -68,6 +68,12 @@ table: index_type: DONT_INDEX db_column_properties: data_type: VARCHAR + - name: SHARE_TYPE + db_column_name: SHARE_TYPE + properties: + column_type: ATTRIBUTE + db_column_properties: + data_type: VARCHAR joins_with: - name: TS_SHARING_ACCESS_to_TS_METADATA_OBJECT destination: diff --git a/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml b/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml index 208388df..20d7313b 100644 --- a/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml @@ -92,3 +92,6 @@ table: name: TS_ORG "on": "[TS_TAG::CLUSTER_GUID] = [TS_ORG::CLUSTER_GUID] AND [TS_TAG::ORG_ID] = [TS_ORG::Org ID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml index 15069584..b08bd318 100644 --- a/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml @@ -46,3 +46,6 @@ table: name: TS_TAG "on": "[TS_TAGGED_OBJECT::TAG_GUID] = [TS_TAG::Tag GUID] AND [TS_TAGGED_OBJECT::CLUSTER_GUID] = [TS_TAG::CLUSTER_GUID]" type: INNER + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_USER.table.tml b/cs_tools/cli/tools/searchable/static/TS_USER.table.tml index f3bd3936..074b3c26 100644 --- a/cs_tools/cli/tools/searchable/static/TS_USER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_USER.table.tml @@ -75,3 +75,6 @@ table: column_type: ATTRIBUTE db_column_properties: data_type: VARCHAR + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml b/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml index c91e5def..7d1f8fc4 100644 --- a/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml +++ b/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml @@ -24,3 +24,6 @@ view: search_output_column: User Email properties: column_type: ATTRIBUTE + properties: + spotter_config: + is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/settings.py b/cs_tools/settings.py index f1cb5748..44206de2 100644 --- a/cs_tools/settings.py +++ b/cs_tools/settings.py @@ -233,6 +233,7 @@ class ThoughtSpotConfiguration(_GlobalSettings): username: str password: Optional[str] = pydantic.Field(default=None) secret_key: Optional[_types.GUID] = pydantic.Field(default=None) + concurrency: Optional[int] = 15 bearer_token: Optional[str] = pydantic.Field(default=None) default_org: Optional[int] = None disable_ssl: bool = False diff --git a/cs_tools/sync/snowflake/syncer.py b/cs_tools/sync/snowflake/syncer.py index 15365e74..11f550ab 100644 --- a/cs_tools/sync/snowflake/syncer.py +++ b/cs_tools/sync/snowflake/syncer.py @@ -42,7 +42,7 @@ class Snowflake(DatabaseSyncer): @classmethod def check_regionless_privatelink(cls, value: str) -> str: # FIXES: https://github.com/snowflakedb/snowflake-sqlalchemy/issues/489 - if "privatelink" in value.lower() and len(value.split(".")) != 2: + if "privatelink" in value.lower() and len(value.split(".")) < 2: raise ValueError("Privatelink identifiers must include the region, eg. 'thoughtspot.us-west-1.privatelink'") return value diff --git a/pyproject.toml b/pyproject.toml index 57a50932..dde74f52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ dependencies = [ # dependencies here are listed for cs_tools the library (ie. import cs_tools) "aiosqlite", "click == 8.1.7", - "thoughtspot-tml", + "thoughtspot-tml >= 2.4.2", "awesomeversion", "httpx >= 0.27.0", "pydantic >= 2.6.4", @@ -56,6 +56,7 @@ dependencies = [ "exceptiongroup; python_version < '3.11.0'", "strenum; python_version < '3.11.0'", "taskgroup; python_version < '3.11.0'", + "snowflake-sqlalchemy>=1.7.4", ] [project.urls] From f2815f84ff17f611b86efc586afa6e5f877fc8c0 Mon Sep 17 00:00:00 2001 From: TS-sumeet-jain <168583077+TS-sumeet-jain@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:51:48 +0530 Subject: [PATCH 8/8] Update Static Files --- .../static/CS Tools ~ BI Server Advanced.model.tml | 4 ++-- .../static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml | 2 +- .../CS Tools ~ Worksheet Column Utilization.liveboard.tml | 2 +- .../CS Tools ~ Worksheet Column Utilization.model.tml | 2 +- .../cli/tools/searchable/static/TS_BI_SERVER.table.tml | 2 +- cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml | 3 --- cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml | 2 +- .../tools/searchable/static/TS_COLUMN_SYNONYM.table.tml | 2 +- .../cli/tools/searchable/static/TS_DATA_SOURCE.table.tml | 2 +- .../tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml | 2 +- cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml | 2 +- .../tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml | 2 +- .../tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml | 2 +- .../tools/searchable/static/TS_METADATA_COLUMN.table.tml | 2 +- .../tools/searchable/static/TS_METADATA_OBJECT.table.tml | 2 +- cs_tools/cli/tools/searchable/static/TS_ORG.table.tml | 2 +- .../tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml | 2 +- .../tools/searchable/static/TS_SHARING_ACCESS.table.tml | 2 +- cs_tools/cli/tools/searchable/static/TS_TAG.table.tml | 2 +- .../cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml | 2 +- cs_tools/cli/tools/searchable/static/TS_USER.table.tml | 2 +- .../static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml | 7 ++----- 22 files changed, 23 insertions(+), 29 deletions(-) diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml index 0da6eb9f..b53d751d 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ BI Server Advanced.model.tml @@ -1,4 +1,4 @@ -guid: 381db1c8-688f-4620-9a45-ce9a2dea108c +guid: 47c5164a-f094-4add-82f3-d806896f829f model: name: CS Tools ~ Worksheet Column Utilization description: Show the data lineage of Worksheets and how the columns are used in the ThoughtSpot system. @@ -11,7 +11,7 @@ model: joins: - with: TS_METADATA_COLUMN referencing_join: TS_DEPENDENT_OBJECT_to_TS_METADATA_COLUMN - - with: TS_USERÞ + - with: TS_USER referencing_join: TS_DEPENDENT_OBJECT_to_TS_USER - name: TS_BI_SERVER joins: diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml index f5853df5..5d83b8ea 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ ThoughtSpot Adoption.liveboard.tml @@ -1,4 +1,4 @@ -guid: ed4e95a9-9c3b-4154-95b9-0e2312faebf5 +guid: 0eef2c50-94d2-4a8d-98ea-984af4b1552d liveboard: name: CS Tools ~ ThoughtSpot Adoption description: |- diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml index 2f399ddc..1d21f2ca 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.liveboard.tml @@ -1,4 +1,4 @@ -guid: a9ffa9f9-aeaa-4706-8428-730b5926c236 +guid: 00ebf823-686a-47fe-b544-b3944d9f64ae liveboard: name: CS Tools ~ Worksheet Column Utilization description: Gain an understanding of how a Worksheet's columns are used across ThoughtSpot. diff --git a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml index fc656cc6..29fc3ac0 100644 --- a/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml +++ b/cs_tools/cli/tools/searchable/static/CS Tools ~ Worksheet Column Utilization.model.tml @@ -1,4 +1,4 @@ -guid: bc6cd02a-9123-43ed-aa50-f919f3d3c907 +guid: 3485ed79-f800-4426-b5ed-4eee3daa9df8 model: name: CS Tools ~ BI Server Advanced model_tables: diff --git a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml index 6df17cc9..8694d5c0 100644 --- a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.table.tml @@ -1,4 +1,4 @@ -guid: 95901c39-5987-4631-9d5d-d4ed6b73c2b1 +guid: 4efc270c-529f-4e7d-a563-a9f91bfe0ff9 table: name: TS_BI_SERVER description: "TS: BI Server is an event history. Metadata (Answers, Liveboards, Users, Orgs) exists at the time of recording, but may become deleted as time progresses so we LEFT OUTER JOIN to all other objects. TS_CLUSTER is a CS Tools-maintained field and is not vulnerable to the same issue." diff --git a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml index de3f93c2..0ed3cdae 100644 --- a/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml +++ b/cs_tools/cli/tools/searchable/static/TS_BI_SERVER.view.tml @@ -173,6 +173,3 @@ view: name: TS_METADATA_OBJECT "on": "[TS_BI_SERVER::CLUSTER_GUID] = [TS_METADATA_OBJECT::CLUSTER_GUID] AND [TS_BI_SERVER::ANSWER_BOOK_GUID] = [TS_METADATA_OBJECT::Object GUID]" type: LEFT_OUTER - properties: - spotter_config: - is_spotter_enabled: false \ No newline at end of file diff --git a/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml b/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml index 3ca127dc..3165c038 100644 --- a/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_CLUSTER.table.tml @@ -1,4 +1,4 @@ -guid: 4c2c9fcb-2f73-4087-83a9-57ebf279b2a6 +guid: 1af2db98-2dee-44b9-a77a-8053a464faeb table: name: TS_CLUSTER db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml b/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml index 02c5262d..2813ec3f 100644 --- a/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_COLUMN_SYNONYM.table.tml @@ -1,4 +1,4 @@ -guid: 8ac404a7-1f00-4536-860e-50031b0be524 +guid: 0f3f6b1f-fc09-4bc2-8416-4c7270ada826 table: name: TS_COLUMN_SYNONYM db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml b/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml index 06271290..e5aae488 100644 --- a/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_DATA_SOURCE.table.tml @@ -1,4 +1,4 @@ -guid: 9def4655-9c53-4487-924c-7e67403d1147 +guid: 54676606-6db8-4129-a077-2c55fcda775d table: name: TS_DATA_SOURCE description: "Data sources in ThoughtSpot hold the data which is presented in the UI. They may be internally located like Falcon, or externally linked to ThoughtSpot via the Connection interface." diff --git a/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml index d3a4652a..dfc5daef 100644 --- a/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_DEPENDENT_OBJECT.table.tml @@ -1,4 +1,4 @@ -guid: db93b51b-e19b-4cfc-938b-e7dc7d3d3091 +guid: 57f34092-2bfe-406b-97bd-be0a2fa71b12 table: name: TS_DEPENDENT_OBJECT description: "Dependencies in ThoughtSpot are any object which are built from another object. In the majority case a dependent is an Answer or Liveboard, however Worksheets and ThoughtSpot Views are dependents of their underlying Tables." diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml index 93975543..e57110a6 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP.table.tml @@ -1,4 +1,4 @@ -guid: 5e399117-6d55-423f-8612-0c38d759435e +guid: d3837f79-191a-4797-a34d-a91f73916427 table: name: TS_GROUP db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml index 6a8c19d5..694bc400 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP_MEMBERSHIP.table.tml @@ -1,4 +1,4 @@ -guid: 091eb0fa-893b-4fde-8511-4b33905f062f +guid: d46b8959-caf4-4a5f-8464-cc97f3401f26 table: name: TS_GROUP_MEMBERSHIP description: |- diff --git a/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml b/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml index 1e851fb5..4d256bdd 100644 --- a/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_GROUP_PRIVILEGE.table.tml @@ -1,4 +1,4 @@ -guid: c5f22923-e4c5-4d28-973d-57efcd435ec3 +guid: dfc5ab9e-c64c-493b-a7e2-473ee27803e7 table: name: TS_GROUP_PRIVILEGE db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml b/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml index 4117696a..dec22a55 100644 --- a/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_METADATA_COLUMN.table.tml @@ -1,4 +1,4 @@ -guid: e6d43b82-be02-4c3f-971c-db73e071e12b +guid: 5620dee7-2916-46a0-bcab-46b5e9d2c96d table: name: TS_METADATA_COLUMN db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml index 1bb513b8..65090dbd 100644 --- a/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_METADATA_OBJECT.table.tml @@ -1,4 +1,4 @@ -guid: 8d0d92b9-982c-4819-ae62-7808ef646956 +guid: cd08a994-0366-4c4a-8b75-f9902b0de263 table: name: TS_METADATA_OBJECT description: |- diff --git a/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml b/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml index f850d877..3cb3b386 100644 --- a/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_ORG.table.tml @@ -1,4 +1,4 @@ -guid: c861952f-7d1b-4672-a809-8eef8525d35a +guid: 7d9931cb-ce00-4dfb-8a11-430de9084af8 table: name: TS_ORG db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml b/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml index f2e7dd26..9dec87ac 100644 --- a/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_ORG_MEMBERSHIP.table.tml @@ -1,4 +1,4 @@ -guid: 657f0e27-1163-4ab2-aa40-2896e641c10a +guid: bcef03fe-f8e6-464d-b575-2630a43bdd73 table: name: TS_ORG_MEMBERSHIP description: This is a link table. Users in ThoughtSpot may be a member of one or more Orgs. diff --git a/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml b/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml index 4ab66a1a..f3600b39 100644 --- a/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_SHARING_ACCESS.table.tml @@ -1,4 +1,4 @@ -guid: 7572d30f-ecd7-4166-9f27-1e92144b76d0 +guid: 2c5101da-ee77-4c99-88fa-d7cd2851a283 table: name: TS_SHARING_ACCESS db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml b/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml index 20d7313b..ed9a6f30 100644 --- a/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_TAG.table.tml @@ -1,4 +1,4 @@ -guid: e4965e2d-964e-47ed-8774-a24d7fe0e29a +guid: fa55ada0-d122-4656-acce-a14f58a6e013 table: name: TS_TAG description: |- diff --git a/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml b/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml index b08bd318..17a0526d 100644 --- a/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_TAGGED_OBJECT.table.tml @@ -1,4 +1,4 @@ -guid: befbaaa3-04e9-4edb-9638-a6eaa63f891f +guid: d6c4bc3f-18d4-41f8-a2e0-a1373363fb4d table: name: TS_TAGGED_OBJECT description: This is a link table. Objects in ThoughtSpot can be tagged multiple times. diff --git a/cs_tools/cli/tools/searchable/static/TS_USER.table.tml b/cs_tools/cli/tools/searchable/static/TS_USER.table.tml index 074b3c26..cce8901f 100644 --- a/cs_tools/cli/tools/searchable/static/TS_USER.table.tml +++ b/cs_tools/cli/tools/searchable/static/TS_USER.table.tml @@ -1,4 +1,4 @@ -guid: f78e05f9-5388-46ed-ac1c-5d021337603c +guid: 16fba9c4-525d-48a0-bb18-06f6bf2c7b17 table: name: TS_USER db: << DATABASE >> diff --git a/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml b/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml index 7d1f8fc4..de0caec8 100644 --- a/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml +++ b/cs_tools/cli/tools/searchable/static/VW_TS_BI_SERVER_ADVANCED_AUTHOR.view.tml @@ -1,4 +1,4 @@ -guid: 4fff9eda-e70b-41b0-859e-260246bc7d4e +guid: 9aae3267-0ca1-4fec-b838-e6e7623bb193 view: name: VW_TS_BI_SERVER_ADVANCED_AUTHOR tables: @@ -23,7 +23,4 @@ view: - name: User Email search_output_column: User Email properties: - column_type: ATTRIBUTE - properties: - spotter_config: - is_spotter_enabled: false \ No newline at end of file + column_type: ATTRIBUTE \ No newline at end of file