castor-extractor 0.25.28__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. castor_extractor-0.25.28/CHANGELOG.md +1190 -0
  2. castor_extractor-0.25.28/Dockerfile +16 -0
  3. castor_extractor-0.25.28/DockerfileUsage.md +21 -0
  4. castor_extractor-0.25.28/LICENCE +86 -0
  5. castor_extractor-0.25.28/PKG-INFO +1406 -0
  6. castor_extractor-0.25.28/README.md +146 -0
  7. castor_extractor-0.25.28/castor_extractor/__init__.py +0 -0
  8. castor_extractor-0.25.28/castor_extractor/commands/__init__.py +3 -0
  9. castor_extractor-0.25.28/castor_extractor/commands/extract_bigquery.py +50 -0
  10. castor_extractor-0.25.28/castor_extractor/commands/extract_confluence.py +48 -0
  11. castor_extractor-0.25.28/castor_extractor/commands/extract_count.py +22 -0
  12. castor_extractor-0.25.28/castor_extractor/commands/extract_databricks.py +46 -0
  13. castor_extractor-0.25.28/castor_extractor/commands/extract_domo.py +42 -0
  14. castor_extractor-0.25.28/castor_extractor/commands/extract_looker.py +37 -0
  15. castor_extractor-0.25.28/castor_extractor/commands/extract_looker_studio.py +67 -0
  16. castor_extractor-0.25.28/castor_extractor/commands/extract_metabase_api.py +24 -0
  17. castor_extractor-0.25.28/castor_extractor/commands/extract_metabase_db.py +42 -0
  18. castor_extractor-0.25.28/castor_extractor/commands/extract_mode.py +28 -0
  19. castor_extractor-0.25.28/castor_extractor/commands/extract_mysql.py +36 -0
  20. castor_extractor-0.25.28/castor_extractor/commands/extract_notion.py +16 -0
  21. castor_extractor-0.25.28/castor_extractor/commands/extract_postgres.py +38 -0
  22. castor_extractor-0.25.28/castor_extractor/commands/extract_powerbi.py +46 -0
  23. castor_extractor-0.25.28/castor_extractor/commands/extract_qlik.py +32 -0
  24. castor_extractor-0.25.28/castor_extractor/commands/extract_redshift.py +44 -0
  25. castor_extractor-0.25.28/castor_extractor/commands/extract_salesforce.py +34 -0
  26. castor_extractor-0.25.28/castor_extractor/commands/extract_salesforce_reporting.py +25 -0
  27. castor_extractor-0.25.28/castor_extractor/commands/extract_sigma.py +18 -0
  28. castor_extractor-0.25.28/castor_extractor/commands/extract_snowflake.py +80 -0
  29. castor_extractor-0.25.28/castor_extractor/commands/extract_sqlserver.py +56 -0
  30. castor_extractor-0.25.28/castor_extractor/commands/extract_strategy.py +26 -0
  31. castor_extractor-0.25.28/castor_extractor/commands/extract_tableau.py +67 -0
  32. castor_extractor-0.25.28/castor_extractor/commands/extract_thoughtspot.py +18 -0
  33. castor_extractor-0.25.28/castor_extractor/commands/file_check.py +94 -0
  34. castor_extractor-0.25.28/castor_extractor/commands/upload.py +58 -0
  35. castor_extractor-0.25.28/castor_extractor/exceptions.py +10 -0
  36. castor_extractor-0.25.28/castor_extractor/file_checker/__init__.py +2 -0
  37. castor_extractor-0.25.28/castor_extractor/file_checker/column.py +104 -0
  38. castor_extractor-0.25.28/castor_extractor/file_checker/column_test.py +54 -0
  39. castor_extractor-0.25.28/castor_extractor/file_checker/constants.py +20 -0
  40. castor_extractor-0.25.28/castor_extractor/file_checker/enums.py +22 -0
  41. castor_extractor-0.25.28/castor_extractor/file_checker/file.py +199 -0
  42. castor_extractor-0.25.28/castor_extractor/file_checker/file_test.py +70 -0
  43. castor_extractor-0.25.28/castor_extractor/file_checker/file_test_users.csv +10 -0
  44. castor_extractor-0.25.28/castor_extractor/file_checker/file_test_users_valid.csv +9 -0
  45. castor_extractor-0.25.28/castor_extractor/file_checker/templates/__init__.py +1 -0
  46. castor_extractor-0.25.28/castor_extractor/file_checker/templates/generic_warehouse.py +87 -0
  47. castor_extractor-0.25.28/castor_extractor/knowledge/__init__.py +0 -0
  48. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/__init__.py +3 -0
  49. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/assets.py +10 -0
  50. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/__init__.py +2 -0
  51. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/client.py +172 -0
  52. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/client_test.py +121 -0
  53. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/credentials.py +18 -0
  54. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/endpoints.py +52 -0
  55. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/client/pagination.py +32 -0
  56. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/extract.py +72 -0
  57. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/utils.py +12 -0
  58. castor_extractor-0.25.28/castor_extractor/knowledge/confluence/utils_test.py +30 -0
  59. castor_extractor-0.25.28/castor_extractor/knowledge/notion/__init__.py +3 -0
  60. castor_extractor-0.25.28/castor_extractor/knowledge/notion/assets.py +9 -0
  61. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/__init__.py +2 -0
  62. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/client.py +113 -0
  63. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/client_test.py +72 -0
  64. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/constants.py +4 -0
  65. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/credentials.py +16 -0
  66. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/endpoints.py +18 -0
  67. castor_extractor-0.25.28/castor_extractor/knowledge/notion/client/pagination.py +22 -0
  68. castor_extractor-0.25.28/castor_extractor/knowledge/notion/extract.py +60 -0
  69. castor_extractor-0.25.28/castor_extractor/logger.py +41 -0
  70. castor_extractor-0.25.28/castor_extractor/quality/__init__.py +0 -0
  71. castor_extractor-0.25.28/castor_extractor/quality/soda/__init__.py +2 -0
  72. castor_extractor-0.25.28/castor_extractor/quality/soda/assets.py +8 -0
  73. castor_extractor-0.25.28/castor_extractor/quality/soda/client/__init__.py +1 -0
  74. castor_extractor-0.25.28/castor_extractor/quality/soda/client/client.py +57 -0
  75. castor_extractor-0.25.28/castor_extractor/quality/soda/client/credentials.py +20 -0
  76. castor_extractor-0.25.28/castor_extractor/quality/soda/client/endpoints.py +10 -0
  77. castor_extractor-0.25.28/castor_extractor/quality/soda/client/pagination.py +22 -0
  78. castor_extractor-0.25.28/castor_extractor/transformation/__init__.py +0 -0
  79. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/__init__.py +2 -0
  80. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/assets.py +18 -0
  81. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/client/__init__.py +2 -0
  82. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/client/client.py +215 -0
  83. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/client/credentials.py +23 -0
  84. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/client/endpoint.py +42 -0
  85. castor_extractor-0.25.28/castor_extractor/transformation/coalesce/client/pagination.py +26 -0
  86. castor_extractor-0.25.28/castor_extractor/transformation/dbt/__init__.py +3 -0
  87. castor_extractor-0.25.28/castor_extractor/transformation/dbt/assets.py +8 -0
  88. castor_extractor-0.25.28/castor_extractor/transformation/dbt/client.py +185 -0
  89. castor_extractor-0.25.28/castor_extractor/transformation/dbt/client_test.py +129 -0
  90. castor_extractor-0.25.28/castor_extractor/transformation/dbt/credentials.py +15 -0
  91. castor_extractor-0.25.28/castor_extractor/types.py +53 -0
  92. castor_extractor-0.25.28/castor_extractor/uploader/__init__.py +3 -0
  93. castor_extractor-0.25.28/castor_extractor/uploader/constant.py +44 -0
  94. castor_extractor-0.25.28/castor_extractor/uploader/enums.py +8 -0
  95. castor_extractor-0.25.28/castor_extractor/uploader/env.py +38 -0
  96. castor_extractor-0.25.28/castor_extractor/uploader/env_test.py +21 -0
  97. castor_extractor-0.25.28/castor_extractor/uploader/settings.py +26 -0
  98. castor_extractor-0.25.28/castor_extractor/uploader/upload.py +189 -0
  99. castor_extractor-0.25.28/castor_extractor/uploader/upload_test.py +16 -0
  100. castor_extractor-0.25.28/castor_extractor/uploader/utils.py +31 -0
  101. castor_extractor-0.25.28/castor_extractor/utils/__init__.py +72 -0
  102. castor_extractor-0.25.28/castor_extractor/utils/argument_parser.py +7 -0
  103. castor_extractor-0.25.28/castor_extractor/utils/argument_parser_test.py +24 -0
  104. castor_extractor-0.25.28/castor_extractor/utils/batch.py +20 -0
  105. castor_extractor-0.25.28/castor_extractor/utils/batch_test.py +27 -0
  106. castor_extractor-0.25.28/castor_extractor/utils/client/__init__.py +18 -0
  107. castor_extractor-0.25.28/castor_extractor/utils/client/abstract.py +68 -0
  108. castor_extractor-0.25.28/castor_extractor/utils/client/api/__init__.py +5 -0
  109. castor_extractor-0.25.28/castor_extractor/utils/client/api/auth.py +76 -0
  110. castor_extractor-0.25.28/castor_extractor/utils/client/api/auth_test.py +49 -0
  111. castor_extractor-0.25.28/castor_extractor/utils/client/api/client.py +180 -0
  112. castor_extractor-0.25.28/castor_extractor/utils/client/api/client_test.py +47 -0
  113. castor_extractor-0.25.28/castor_extractor/utils/client/api/pagination.py +87 -0
  114. castor_extractor-0.25.28/castor_extractor/utils/client/api/pagination_test.py +51 -0
  115. castor_extractor-0.25.28/castor_extractor/utils/client/api/safe_request.py +62 -0
  116. castor_extractor-0.25.28/castor_extractor/utils/client/api/safe_request_test.py +78 -0
  117. castor_extractor-0.25.28/castor_extractor/utils/client/api/utils.py +9 -0
  118. castor_extractor-0.25.28/castor_extractor/utils/client/api/utils_test.py +16 -0
  119. castor_extractor-0.25.28/castor_extractor/utils/client/postgres.py +28 -0
  120. castor_extractor-0.25.28/castor_extractor/utils/client/query.py +70 -0
  121. castor_extractor-0.25.28/castor_extractor/utils/client/uri.py +6 -0
  122. castor_extractor-0.25.28/castor_extractor/utils/client/uri_test.py +7 -0
  123. castor_extractor-0.25.28/castor_extractor/utils/collection.py +108 -0
  124. castor_extractor-0.25.28/castor_extractor/utils/collection_test.py +104 -0
  125. castor_extractor-0.25.28/castor_extractor/utils/constants.py +2 -0
  126. castor_extractor-0.25.28/castor_extractor/utils/deprecate.py +25 -0
  127. castor_extractor-0.25.28/castor_extractor/utils/env.py +31 -0
  128. castor_extractor-0.25.28/castor_extractor/utils/files.py +55 -0
  129. castor_extractor-0.25.28/castor_extractor/utils/files_test.py +58 -0
  130. castor_extractor-0.25.28/castor_extractor/utils/formatter.py +218 -0
  131. castor_extractor-0.25.28/castor_extractor/utils/formatter_test.csv +51 -0
  132. castor_extractor-0.25.28/castor_extractor/utils/formatter_test.json +502 -0
  133. castor_extractor-0.25.28/castor_extractor/utils/formatter_test.py +77 -0
  134. castor_extractor-0.25.28/castor_extractor/utils/json_stream_write.py +64 -0
  135. castor_extractor-0.25.28/castor_extractor/utils/load.py +8 -0
  136. castor_extractor-0.25.28/castor_extractor/utils/object.py +81 -0
  137. castor_extractor-0.25.28/castor_extractor/utils/object_test.py +110 -0
  138. castor_extractor-0.25.28/castor_extractor/utils/pager/__init__.py +2 -0
  139. castor_extractor-0.25.28/castor_extractor/utils/pager/pager.py +89 -0
  140. castor_extractor-0.25.28/castor_extractor/utils/pager/pager_on_id.py +65 -0
  141. castor_extractor-0.25.28/castor_extractor/utils/pager/pager_on_id_test.py +48 -0
  142. castor_extractor-0.25.28/castor_extractor/utils/pager/pager_test.py +62 -0
  143. castor_extractor-0.25.28/castor_extractor/utils/retry.py +172 -0
  144. castor_extractor-0.25.28/castor_extractor/utils/retry_test.py +106 -0
  145. castor_extractor-0.25.28/castor_extractor/utils/safe.py +67 -0
  146. castor_extractor-0.25.28/castor_extractor/utils/safe_test.py +108 -0
  147. castor_extractor-0.25.28/castor_extractor/utils/salesforce/__init__.py +2 -0
  148. castor_extractor-0.25.28/castor_extractor/utils/salesforce/client.py +105 -0
  149. castor_extractor-0.25.28/castor_extractor/utils/salesforce/client_test.py +21 -0
  150. castor_extractor-0.25.28/castor_extractor/utils/salesforce/constants.py +2 -0
  151. castor_extractor-0.25.28/castor_extractor/utils/salesforce/credentials.py +40 -0
  152. castor_extractor-0.25.28/castor_extractor/utils/salesforce/credentials_test.py +20 -0
  153. castor_extractor-0.25.28/castor_extractor/utils/salesforce/pagination.py +33 -0
  154. castor_extractor-0.25.28/castor_extractor/utils/store.py +69 -0
  155. castor_extractor-0.25.28/castor_extractor/utils/string.py +88 -0
  156. castor_extractor-0.25.28/castor_extractor/utils/string_test.py +76 -0
  157. castor_extractor-0.25.28/castor_extractor/utils/time.py +71 -0
  158. castor_extractor-0.25.28/castor_extractor/utils/time_test.py +26 -0
  159. castor_extractor-0.25.28/castor_extractor/utils/type.py +10 -0
  160. castor_extractor-0.25.28/castor_extractor/utils/url.py +48 -0
  161. castor_extractor-0.25.28/castor_extractor/utils/url_test.py +55 -0
  162. castor_extractor-0.25.28/castor_extractor/utils/validation.py +78 -0
  163. castor_extractor-0.25.28/castor_extractor/utils/validation_test.py +46 -0
  164. castor_extractor-0.25.28/castor_extractor/utils/write.py +77 -0
  165. castor_extractor-0.25.28/castor_extractor/visualization/__init__.py +0 -0
  166. castor_extractor-0.25.28/castor_extractor/visualization/count/__init__.py +3 -0
  167. castor_extractor-0.25.28/castor_extractor/visualization/count/assets.py +13 -0
  168. castor_extractor-0.25.28/castor_extractor/visualization/count/client/__init__.py +2 -0
  169. castor_extractor-0.25.28/castor_extractor/visualization/count/client/client.py +54 -0
  170. castor_extractor-0.25.28/castor_extractor/visualization/count/client/credentials.py +10 -0
  171. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/canvas_loads.sql +14 -0
  172. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/canvas_permissions.sql +6 -0
  173. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/canvases.sql +6 -0
  174. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/cells.sql +8 -0
  175. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/projects.sql +5 -0
  176. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/queries.sql +23 -0
  177. castor_extractor-0.25.28/castor_extractor/visualization/count/client/queries/users.sql +8 -0
  178. castor_extractor-0.25.28/castor_extractor/visualization/count/extract.py +54 -0
  179. castor_extractor-0.25.28/castor_extractor/visualization/domo/__init__.py +3 -0
  180. castor_extractor-0.25.28/castor_extractor/visualization/domo/assets.py +11 -0
  181. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/__init__.py +2 -0
  182. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/client.py +314 -0
  183. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/credentials.py +31 -0
  184. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/endpoints.py +89 -0
  185. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/pagination.py +32 -0
  186. castor_extractor-0.25.28/castor_extractor/visualization/domo/client/pagination_test.py +22 -0
  187. castor_extractor-0.25.28/castor_extractor/visualization/domo/extract.py +61 -0
  188. castor_extractor-0.25.28/castor_extractor/visualization/looker/__init__.py +8 -0
  189. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/__init__.py +4 -0
  190. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/client.py +329 -0
  191. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/client_test.py +67 -0
  192. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/constants.py +220 -0
  193. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/credentials.py +33 -0
  194. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/extraction_parameters.py +39 -0
  195. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/sdk.py +47 -0
  196. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/sdk_test.py +52 -0
  197. castor_extractor-0.25.28/castor_extractor/visualization/looker/api/utils.py +24 -0
  198. castor_extractor-0.25.28/castor_extractor/visualization/looker/assets.py +29 -0
  199. castor_extractor-0.25.28/castor_extractor/visualization/looker/constant.py +8 -0
  200. castor_extractor-0.25.28/castor_extractor/visualization/looker/constants.py +17 -0
  201. castor_extractor-0.25.28/castor_extractor/visualization/looker/extract.py +157 -0
  202. castor_extractor-0.25.28/castor_extractor/visualization/looker/fields.py +22 -0
  203. castor_extractor-0.25.28/castor_extractor/visualization/looker/fields_test.py +37 -0
  204. castor_extractor-0.25.28/castor_extractor/visualization/looker/multithreading.py +88 -0
  205. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/__init__.py +7 -0
  206. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/assets.py +11 -0
  207. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/__init__.py +3 -0
  208. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/admin_sdk_client.py +89 -0
  209. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/client.py +145 -0
  210. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/credentials.py +46 -0
  211. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/endpoints.py +18 -0
  212. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/enums.py +8 -0
  213. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/looker_studio_api_client.py +126 -0
  214. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/pagination.py +31 -0
  215. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/client/queries/query.sql +53 -0
  216. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/constants.py +2 -0
  217. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/extract.py +70 -0
  218. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/parameters.py +152 -0
  219. castor_extractor-0.25.28/castor_extractor/visualization/looker_studio/parameters_test.py +85 -0
  220. castor_extractor-0.25.28/castor_extractor/visualization/metabase/__init__.py +8 -0
  221. castor_extractor-0.25.28/castor_extractor/visualization/metabase/assets.py +132 -0
  222. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/__init__.py +2 -0
  223. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/api/__init__.py +2 -0
  224. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/api/client.py +203 -0
  225. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/api/client_test.py +21 -0
  226. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/api/credentials.py +18 -0
  227. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/__init__.py +2 -0
  228. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/client.py +101 -0
  229. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/credentials.py +32 -0
  230. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/.sqlfluff +3 -0
  231. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/base_url.sql +7 -0
  232. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/card.sql +4 -0
  233. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/collection.sql +4 -0
  234. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/dashboard.sql +4 -0
  235. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/dashboard_cards.sql +4 -0
  236. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/database.sql +4 -0
  237. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/table.sql +4 -0
  238. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/db/queries/user.sql +4 -0
  239. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/decryption.py +41 -0
  240. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/decryption_test.py +14 -0
  241. castor_extractor-0.25.28/castor_extractor/visualization/metabase/client/shared.py +15 -0
  242. castor_extractor-0.25.28/castor_extractor/visualization/metabase/errors.py +31 -0
  243. castor_extractor-0.25.28/castor_extractor/visualization/metabase/extract.py +73 -0
  244. castor_extractor-0.25.28/castor_extractor/visualization/metabase/types.py +1 -0
  245. castor_extractor-0.25.28/castor_extractor/visualization/mode/__init__.py +3 -0
  246. castor_extractor-0.25.28/castor_extractor/visualization/mode/assets.py +81 -0
  247. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/__init__.py +2 -0
  248. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/client.py +225 -0
  249. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/client_test.json +83 -0
  250. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/client_test.py +51 -0
  251. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/constants.py +21 -0
  252. castor_extractor-0.25.28/castor_extractor/visualization/mode/client/credentials.py +24 -0
  253. castor_extractor-0.25.28/castor_extractor/visualization/mode/errors.py +51 -0
  254. castor_extractor-0.25.28/castor_extractor/visualization/mode/extract.py +57 -0
  255. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/__init__.py +12 -0
  256. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/assets.py +28 -0
  257. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/__init__.py +9 -0
  258. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/authentication.py +70 -0
  259. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/client.py +65 -0
  260. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/client_test.py +29 -0
  261. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/constants.py +11 -0
  262. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/credentials.py +83 -0
  263. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/credentials_test.py +42 -0
  264. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/endpoints.py +65 -0
  265. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/graph_api_client.py +72 -0
  266. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/graph_api_client_test.py +38 -0
  267. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/pagination.py +71 -0
  268. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/powerbi_api_client.py +207 -0
  269. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/client/powerbi_api_client_test.py +204 -0
  270. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/extract.py +102 -0
  271. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/users.py +82 -0
  272. castor_extractor-0.25.28/castor_extractor/visualization/powerbi/users_test.py +47 -0
  273. castor_extractor-0.25.28/castor_extractor/visualization/qlik/__init__.py +7 -0
  274. castor_extractor-0.25.28/castor_extractor/visualization/qlik/assets.py +84 -0
  275. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/__init__.py +3 -0
  276. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/constants.py +27 -0
  277. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/__init__.py +2 -0
  278. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/client.py +185 -0
  279. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/constants.py +37 -0
  280. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/credentials.py +26 -0
  281. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/error.py +64 -0
  282. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/error_test.py +39 -0
  283. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/json_rpc.py +54 -0
  284. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/json_rpc_test.py +43 -0
  285. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/engine/websocket.py +74 -0
  286. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/master.py +127 -0
  287. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/rest.py +198 -0
  288. castor_extractor-0.25.28/castor_extractor/visualization/qlik/client/rest_test.py +56 -0
  289. castor_extractor-0.25.28/castor_extractor/visualization/qlik/extract.py +79 -0
  290. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/__init__.py +3 -0
  291. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/assets.py +12 -0
  292. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/client/__init__.py +1 -0
  293. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/client/rest.py +114 -0
  294. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/client/soql.py +69 -0
  295. castor_extractor-0.25.28/castor_extractor/visualization/salesforce_reporting/extract.py +47 -0
  296. castor_extractor-0.25.28/castor_extractor/visualization/sigma/__init__.py +3 -0
  297. castor_extractor-0.25.28/castor_extractor/visualization/sigma/assets.py +16 -0
  298. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/__init__.py +2 -0
  299. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/authentication.py +68 -0
  300. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/client.py +293 -0
  301. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/client_test.py +19 -0
  302. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/credentials.py +27 -0
  303. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/endpoints.py +64 -0
  304. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/pagination.py +49 -0
  305. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/sources_transformer.py +159 -0
  306. castor_extractor-0.25.28/castor_extractor/visualization/sigma/client/sources_transformer_test.py +101 -0
  307. castor_extractor-0.25.28/castor_extractor/visualization/sigma/extract.py +89 -0
  308. castor_extractor-0.25.28/castor_extractor/visualization/strategy/__init__.py +3 -0
  309. castor_extractor-0.25.28/castor_extractor/visualization/strategy/assets.py +20 -0
  310. castor_extractor-0.25.28/castor_extractor/visualization/strategy/client/__init__.py +2 -0
  311. castor_extractor-0.25.28/castor_extractor/visualization/strategy/client/client.py +310 -0
  312. castor_extractor-0.25.28/castor_extractor/visualization/strategy/client/credentials.py +38 -0
  313. castor_extractor-0.25.28/castor_extractor/visualization/strategy/client/properties.py +145 -0
  314. castor_extractor-0.25.28/castor_extractor/visualization/strategy/extract.py +43 -0
  315. castor_extractor-0.25.28/castor_extractor/visualization/tableau/__init__.py +3 -0
  316. castor_extractor-0.25.28/castor_extractor/visualization/tableau/assets.py +29 -0
  317. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/__init__.py +2 -0
  318. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/client.py +342 -0
  319. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/client_metadata_api.py +332 -0
  320. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/client_metadata_api_test.py +124 -0
  321. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/client_rest_api.py +128 -0
  322. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/client_tsc.py +67 -0
  323. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/credentials.py +57 -0
  324. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/errors.py +8 -0
  325. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/gql_queries.py +163 -0
  326. castor_extractor-0.25.28/castor_extractor/visualization/tableau/client/rest_fields.py +45 -0
  327. castor_extractor-0.25.28/castor_extractor/visualization/tableau/constants.py +5 -0
  328. castor_extractor-0.25.28/castor_extractor/visualization/tableau/extract.py +64 -0
  329. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/__init__.py +3 -0
  330. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/assets.py +11 -0
  331. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/client/__init__.py +2 -0
  332. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/client/client.py +211 -0
  333. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/client/credentials.py +18 -0
  334. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/client/endpoints.py +12 -0
  335. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/client/pagination.py +25 -0
  336. castor_extractor-0.25.28/castor_extractor/visualization/thoughtspot/extract.py +50 -0
  337. castor_extractor-0.25.28/castor_extractor/warehouse/__init__.py +0 -0
  338. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/__init__.py +19 -0
  339. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/asset.py +96 -0
  340. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/asset_test.py +29 -0
  341. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/extract.py +90 -0
  342. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/query.py +76 -0
  343. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/time_filter.py +38 -0
  344. castor_extractor-0.25.28/castor_extractor/warehouse/abstract/time_filter_test.py +21 -0
  345. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/__init__.py +4 -0
  346. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/client.py +168 -0
  347. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/client_test.py +54 -0
  348. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/credentials.py +19 -0
  349. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/extract.py +104 -0
  350. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/.sqlfluff +2 -0
  351. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/column.sql +51 -0
  352. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/cte/sharded.sql +43 -0
  353. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/database.sql +8 -0
  354. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/query.sql +28 -0
  355. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/schema.sql +10 -0
  356. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/table.sql +41 -0
  357. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/table_with_tags.sql +81 -0
  358. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/user.sql +4 -0
  359. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/queries/view_ddl.sql +7 -0
  360. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/query.py +188 -0
  361. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/query_test.py +40 -0
  362. castor_extractor-0.25.28/castor_extractor/warehouse/bigquery/types.py +2 -0
  363. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/__init__.py +7 -0
  364. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/api_client.py +194 -0
  365. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/api_client_test.py +15 -0
  366. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/client.py +101 -0
  367. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/client_test.py +41 -0
  368. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/credentials.py +25 -0
  369. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/endpoints.py +28 -0
  370. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/enums.py +15 -0
  371. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/extract.py +204 -0
  372. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/format.py +223 -0
  373. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/format_test.py +123 -0
  374. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/pagination.py +22 -0
  375. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/queries/column_lineage.sql +25 -0
  376. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/queries/table_lineage.sql +23 -0
  377. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/sql_client.py +110 -0
  378. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/types.py +1 -0
  379. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/utils.py +71 -0
  380. castor_extractor-0.25.28/castor_extractor/warehouse/databricks/utils_test.py +82 -0
  381. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/__init__.py +3 -0
  382. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/client.py +34 -0
  383. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/client_test.py +33 -0
  384. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/extract.py +73 -0
  385. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/.sqlfluff +2 -0
  386. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/column.sql +24 -0
  387. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/database.sql +14 -0
  388. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/query.sql +14 -0
  389. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/schema.sql +22 -0
  390. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/table.sql +30 -0
  391. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/user.sql +6 -0
  392. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/queries/view_ddl.sql +11 -0
  393. castor_extractor-0.25.28/castor_extractor/warehouse/mysql/query.py +24 -0
  394. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/__init__.py +2 -0
  395. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/extract.py +76 -0
  396. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/.sqlfluff +2 -0
  397. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/column.sql +56 -0
  398. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/database.sql +7 -0
  399. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/group.sql +5 -0
  400. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/schema.sql +16 -0
  401. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/table.sql +49 -0
  402. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/queries/user.sql +7 -0
  403. castor_extractor-0.25.28/castor_extractor/warehouse/postgres/query.py +24 -0
  404. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/__init__.py +4 -0
  405. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/client.py +70 -0
  406. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/client_test.py +38 -0
  407. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/extract.py +88 -0
  408. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/extract_test.py +26 -0
  409. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/processor.py +189 -0
  410. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/processor_test.py +144 -0
  411. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/.sqlfluff +2 -0
  412. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/column.sql +186 -0
  413. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/database.sql +8 -0
  414. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/group.sql +5 -0
  415. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/schema.sql +16 -0
  416. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/sql/long/common_cte.sql +47 -0
  417. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/sql/long/query_metadata.sql +85 -0
  418. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/sql/long/query_parts.sql +45 -0
  419. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/sql/short/query.sql +120 -0
  420. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/sql_serverless/query.sql +69 -0
  421. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/table.sql +87 -0
  422. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/table_freshness.sql +29 -0
  423. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/user.sql +7 -0
  424. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/queries/view_ddl.sql +33 -0
  425. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/query.py +56 -0
  426. castor_extractor-0.25.28/castor_extractor/warehouse/redshift/types.py +54 -0
  427. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/__init__.py +6 -0
  428. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/client.py +92 -0
  429. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/constants.py +2 -0
  430. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/extract.py +112 -0
  431. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/format.py +114 -0
  432. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/format_test.py +130 -0
  433. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/pagination.py +34 -0
  434. castor_extractor-0.25.28/castor_extractor/warehouse/salesforce/soql.py +49 -0
  435. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/__init__.py +4 -0
  436. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/client.py +185 -0
  437. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/client_test.py +57 -0
  438. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/credentials.py +33 -0
  439. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/credentials_test.py +31 -0
  440. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/extract.py +116 -0
  441. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/.sqlfluff +2 -0
  442. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/column.sql +60 -0
  443. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/column_lineage.sql +29 -0
  444. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/database.sql +20 -0
  445. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/function.sql +10 -0
  446. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/query.sql +102 -0
  447. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/schema.sql +30 -0
  448. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/table.sql +54 -0
  449. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/user.sql +28 -0
  450. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/queries/view_ddl.sql +21 -0
  451. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/query_builder.py +110 -0
  452. castor_extractor-0.25.28/castor_extractor/warehouse/snowflake/query_builder_test.py +51 -0
  453. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/__init__.py +3 -0
  454. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/client.py +189 -0
  455. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/extract.py +89 -0
  456. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/.sqlfluff +3 -0
  457. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/column.sql +100 -0
  458. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/database.sql +5 -0
  459. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/query.sql +25 -0
  460. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/schema.sql +27 -0
  461. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/table.sql +113 -0
  462. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/user.sql +4 -0
  463. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/queries/view_ddl.sql +13 -0
  464. castor_extractor-0.25.28/castor_extractor/warehouse/sqlserver/query.py +65 -0
  465. castor_extractor-0.25.28/castor_extractor/warehouse/synapse/queries/column.sql +44 -0
  466. castor_extractor-0.25.28/pyproject.toml +266 -0
@@ -0,0 +1,1190 @@
1
+ # Changelog
2
+
3
+ ## 0.25.28 - 2025-12-08
4
+
5
+ * Tableau: fix retry exponential time
6
+
7
+ ## 0.25.27 - 2025-12-04
8
+
9
+ * Sigma: retry on 503 errors
10
+
11
+ ## 0.25.26 - 2025-12-03
12
+
13
+ * Strategy: deduplicate users on ID
14
+
15
+ ## 0.25.25 - 2025-12-02
16
+
17
+ * Tableau: better catching of timeouts
18
+
19
+ ## 0.25.24 - 2025-11-27
20
+
21
+ * Tableau: extraction of tables and columns without "Extracts"
22
+
23
+ ## 0.25.23 - 2025-11-24
24
+
25
+ * Looker Studio: add option to extract source queries only
26
+
27
+ ## 0.25.22 - 2025-11-19
28
+
29
+ * SQL Server: improved error log
30
+ * Sigma : handle service errors in queries and elements extraction
31
+
32
+ ## 0.25.21 - 2025-11-05
33
+
34
+ * Qlik: Extracting sheets
35
+
36
+ ## 0.25.20 - 2025-11-14
37
+
38
+ * BigQuery: skip Omni locations when extracting SQL queries
39
+
40
+ ## 0.25.19 - 2025-11-14
41
+
42
+ * Redshift: support extraction of queries longer than 65,535 characters
43
+
44
+ ## 0.25.18 - 2025-11-13
45
+
46
+ * Power BI: expand groups into individual users
47
+
48
+ ## 0.25.17 - 2025-11-04
49
+
50
+ * Snowflake: add query_block to exclude specific sql patterns
51
+
52
+ ## 0.25.16 - 2025-11-03
53
+
54
+ * Snowflake: remove duplicated queries, based on query_hash
55
+
56
+ ## 0.25.15 - 2025-10-30
57
+
58
+ * Databricks: Add `http_path` mandatory field for databricks credentials
59
+
60
+ ## 0.25.14 - 2025-10-28
61
+
62
+ * Removing unused dependency (google-cloud-storage)
63
+
64
+ ## 0.25.13 - 2025-10-16
65
+
66
+ * Coalesce:
67
+ * reduce pagination
68
+ * retry once on ReadTimeout or ConnectionTimeout
69
+
70
+ ## 0.25.12 - 2025-10-16
71
+
72
+ * Add a deprecation warning for Python versions below 3.10
73
+
74
+ ## 0.25.11 - 2025-10-15
75
+
76
+ * Sigma: catch ReadTimeouts during queries extraction
77
+
78
+ ## 0.25.10 - 2025-10-09
79
+
80
+ * Fix import
81
+
82
+ ## 0.25.9 - 2025-10-09
83
+
84
+ * Snowflake: raise an exception when no database is available for extraction
85
+ * Databricks: raise an exception when no database is available for extraction
86
+ * BigQuery: raise an exception when no project is available for extraction
87
+
88
+ ## 0.25.8 - 2025-10-09
89
+
90
+ * Count: extracting queries and canvas_loads
91
+
92
+ ## 0.25.7 - 2025-10-07
93
+
94
+ * SqlServer: Ensure database consistency between query and engine
95
+
96
+ ## 0.25.6 - 2025-10-06
97
+
98
+ * PowerBi: Support additional authentication methods
99
+
100
+ ## 0.25.5 - 2025-10-06
101
+
102
+ * Snowflake: remove extraction of roles and grants
103
+
104
+ ## 0.25.4 - 2025-10-02
105
+
106
+ * SqlServer: switch database to support clients running their instance on Azure
107
+
108
+ ## 0.25.3 - 2025-10-01
109
+
110
+ * Sigma: sleep between sources requests to avoid rate limit errors
111
+
112
+ ## 0.25.2 - 2025-09-30
113
+
114
+ * PowerBi: Support auth with private_key
115
+
116
+ ## 0.25.1 - 2025-09-29
117
+
118
+ * Sigma: catch ReadTimeouts during elements extraction
119
+
120
+ ## 0.25.0 - 2025-09-15
121
+
122
+ * Count: adding connector
123
+
124
+ ## 0.24.57 - 2025-09-24
125
+
126
+ * Sigma:
127
+ * fix pagination
128
+ * remove redundant element lineages endpoint
129
+ * extract data model sources
130
+
131
+ ## 0.24.56 - 2025-09-24
132
+
133
+ * bump dependencies
134
+
135
+ ## 0.24.55 - 2025-09-19
136
+
137
+ * Fix encoding in LocalStorage - force to utf-8
138
+
139
+ ## 0.24.54 - 2025-09-18
140
+
141
+ * SqlServer: fix typo in the extraction query of schemas
142
+
143
+ ## 0.24.53 - 2025-09-18
144
+
145
+ * Fix CSV field size to support running on Windows
146
+
147
+ ## 0.24.52 - 2025-09-18
148
+
149
+ * SqlServer : improve extraction of users and technical owners
150
+
151
+ ## 0.24.51 - 2025-09-17
152
+
153
+ * PowerBI : don't store sensitive data in activity events
154
+
155
+ ## 0.24.50 - 2025-09-15
156
+
157
+ * SqlServer: support multiple databases in queries
158
+
159
+ ## 0.24.49 - 2025-09-12
160
+
161
+ * Tableau: add option to bypass ssl certificate verification
162
+
163
+ ## 0.24.48 - 2025-09-09
164
+
165
+ * SqlServer: handle hyphens in database name
166
+
167
+ ## 0.24.47 - 2025-09-08
168
+
169
+ * SqlServer: extract SQL queries and lineage
170
+
171
+ ## 0.24.46 - 2025-09-03
172
+
173
+ * Sigma: Added `HTTPStatus.FORBIDDEN` to the list of ignored errors
174
+
175
+ ## 0.24.45 - 2025-08-27
176
+
177
+ * Sigma: Increasing pagination limit for Sigma extraction
178
+
179
+ ## 0.24.44 - 2025-08-22
180
+
181
+ * Coalesce: do not skip nodes raising a 500 Server Error
182
+
183
+ ## 0.24.43 - 2025-08-20
184
+
185
+ * SQLServer:
186
+ * raise error when no database is left after filtering
187
+ * use uppercase INFORMATION_SCHEMA for case-sensitive database compatibility
188
+
189
+ ## 0.24.42 - 2025-08-19
190
+
191
+ * Strategy: exclude COLUMNS from extraction
192
+
193
+ ## 0.24.41 - 2025-08-19
194
+
195
+ * Sigma: retry on 429 errors when fetching connection paths
196
+
197
+ ## 0.24.40 - 2025-08-18
198
+
199
+ * SQLServer: fix database allowlist/blocklist filtering
200
+
201
+ ## 0.24.39 - 2025-08-18
202
+
203
+ * Databricks:
204
+ * Fix vanishing owner ID column for tables
205
+ * Deduplicate lineage with SQL to reduce memory use
206
+
207
+ ## 0.24.38 - 2025-08-07
208
+
209
+ * Uploader: Support US and EU zones
210
+
211
+ ## 0.24.37 - 2025-08-06
212
+
213
+ * Sigma: extract data models, dataset sources and workbook sources
214
+
215
+ ## 0.24.36 - 2025-08-04
216
+
217
+ * Sigma:
218
+ * Refresh token before lineage extraction
219
+ * Disregard 403 errors during lineage extraction
220
+
221
+ ## 0.24.35 - 2025-07-29
222
+
223
+ * Coalesce - Fix pagination issue
224
+
225
+ ## 0.24.34 - 2025-07-02
226
+
227
+ * SQLServer: multiple databases
228
+
229
+ ## 0.24.33 - 2025-07-10
230
+
231
+ * Tableau - Add an option to skip fields ingestion
232
+
233
+ ## 0.24.32 - 2025-07-02
234
+
235
+ * Salesforce reporting - extract report's metadata
236
+
237
+ ## 0.24.31 - 2025-07-02
238
+
239
+ * Looker Studio: add an option to list users via a provided JSON file
240
+
241
+ ## 0.24.30 - 2025-06-26
242
+
243
+ * Sigma: remove retry on timeout, decrease pagination for queries
244
+
245
+ ## 0.24.29 - 2025-06-24
246
+
247
+ * Strategy: skip descriptions on ValueErrors
248
+
249
+ ## 0.24.28 - 2025-06-20
250
+
251
+ * Snowflake: ignore private notebooks
252
+
253
+ ## 0.24.27 - 2025-06-20
254
+
255
+ * Strategy: extract logical tables
256
+
257
+ ## 0.24.26 - 2025-06-16
258
+
259
+ * Coalesce: increase _MAX_ERRORS client parameter
260
+
261
+ ## 0.24.25 - 2025-06-12
262
+
263
+ * DBT: Fix API base url
264
+
265
+ ## 0.24.24 - 2025-06-06
266
+
267
+ * Power BI: handle rate limit issues when extracting pages
268
+
269
+ ## 0.24.23 - 2025-06-05
270
+
271
+ * Salesforce: print response's error message when authentication fails
272
+
273
+ ## 0.24.22 - 2025-05-27
274
+
275
+ * Add retry for `Request.Timeout` on **ApiClient**
276
+
277
+ ## 0.24.21 - 2025-05-26
278
+
279
+ * Looker Studio: add option to skip the extraction of view activity logs
280
+
281
+ ## 0.24.20 - 2025-05-19
282
+
283
+ * Powerbi: allow custom api base and login url
284
+
285
+ ## 0.24.19 - 2025-05-14
286
+
287
+ * Confluence: extract databases
288
+
289
+ ## 0.24.18 - 2025-05-13
290
+
291
+ * Improve folder organisation for transformation tools
292
+
293
+ ## 0.24.17 - 2025-05-13
294
+
295
+ * Strategy: fix dashboard URL format
296
+
297
+ ## 0.24.16 - 2025-05-12
298
+
299
+ * Confluence: extract folders to complete the page hierarchy
300
+
301
+ ## 0.24.15 - 2025-05-12
302
+
303
+ * Tableau: Add argument to skip columns extraction
304
+
305
+ ## 0.24.14 - 2025-05-06
306
+
307
+ * Confluence: extract pages per space to allow additional filtering. by default, pages from archived or personal spaces are not extracted.
308
+
309
+ ## 0.24.13 - 2025-05-05
310
+
311
+ * Rollback cloud-storage version as it's not compatible with Keboola
312
+
313
+ ## 0.24.12 - 2025-05-05
314
+
315
+ * Redshift - fix query definition of materialized views
316
+
317
+ ## 0.24.11 - 2025-05-05
318
+
319
+ * add support for Strategy (formerly MicroStrategy)
320
+
321
+ ## 0.24.10 - 2025-04-30
322
+
323
+ * Tableau - skip warnings instead of raising an error
324
+
325
+ ## 0.24.9 - 2025-04-16
326
+
327
+ * Introduce API client for **Coalesce**
328
+
329
+ ## 0.24.8 - 2025-04-16
330
+
331
+ * Tableau - remove duplicates introduced by `offset` pagination
332
+
333
+ ## 0.24.7 - 2025-04-07
334
+
335
+ * Tableau - switch from `cursor` to `offset` pagination to mitigate timeout issues
336
+
337
+ ## 0.24.6 - 2025-04-03
338
+
339
+ * Domo - extract cards metadata by batch to prevent from hitting URL max length
340
+
341
+ ## 0.24.5 - 2025-04-02
342
+
343
+ * bump dependencies: google-cloud-storage
344
+
345
+ ## 0.24.4 - 2025-03-19
346
+
347
+ * Snowflake:
348
+ * improve the list of ignored queries in the query history extraction
349
+ * ignore the following query types : CALL, COMMENT, EXPLAIN, REFRESH_DYNAMIC_TABLE_AT_REFRESH_VERSION, REVOKE, TRUNCATE_TABLE, UNDROP
350
+ * ignore queries with empty text
351
+ * filter out schemas with empty names
352
+
353
+ ## 0.24.3 - 2025-03-18
354
+
355
+ * Replace ThoughtSpot endpoint `/api/rest/2.0/report/liveboard` with `/api/rest/2.0/metadata/liveboard/data` following the deprecation of the CSV option
356
+
357
+ ## 0.24.2 - 2025-03-17
358
+
359
+ * Rename Revamped Tableau Connector classes
360
+
361
+ ## 0.24.1 - 2025-03-14
362
+
363
+ * Added support for Looker Studio
364
+
365
+ ## 0.24.0 - 2025-03-10
366
+
367
+ * Remove legacy Tableau Connector
368
+
369
+ ## 0.23.3 - 2025-02-19
370
+
371
+ * Snowflake : add --insecure-mode option to turn off OCSP checking
372
+
373
+ ## 0.23.2 - 2025-02-17
374
+
375
+ * support page_size in Tableau extraction command
376
+
377
+ ## 0.23.1 - 2025-02-10
378
+
379
+ * change command for Confluence from password to token to reflect better their documentation
380
+
381
+ ## 0.22.6 - 2025-01-21
382
+
383
+ * bump dependencies: looker, databricks, deptry, ...
384
+
385
+ ## 0.22.5 - 2025-01-09
386
+
387
+ * Databricks: validate and deduplicate lineage links
388
+
389
+ ## 0.22.4 - 2025-01-08
390
+
391
+ * ThoughtSpot: extract answers
392
+
393
+ ## 0.22.3 - 2024-12-10
394
+
395
+ * Databricks: extract lineage from system tables
396
+
397
+ ## 0.22.2 - 2024-12-06
398
+
399
+ * Sigma: multithreading to retrieve lineage
400
+
401
+ ## 0.22.1 - 2024-12-05
402
+
403
+ * Salesforce: deduplicate tables
404
+
405
+ ## 0.22.0 - 2024-12-04
406
+
407
+ * Stop supporting python3.8
408
+
409
+ ## 0.21.9 - 2024-12-04
410
+
411
+ * Tableau: fix handling of timeout retry
412
+
413
+ ## 0.21.8 - 2024-11-26
414
+
415
+ * Redshift: improve deduplication of columns
416
+
417
+ ## 0.21.7 - 2024-11-26
418
+
419
+ * Metabase: stop using deprecated table `view_log`
420
+
421
+ ## 0.21.6 - 2024-11-22
422
+
423
+ * bump dependencies: ruff, setuptools
424
+
425
+ ## 0.21.5 - 2024-11-20
426
+
427
+ * PostgreSQL: Fix schema extraction when owner is a role without login privilege
428
+
429
+ ## 0.21.4 - 2024-11-20
430
+
431
+ * Uploader: Support environment variables as settings
432
+
433
+ ## 0.21.3 - 2024-11-07
434
+
435
+ * Tableau: Fix metrics definition url
436
+
437
+ ## 0.21.2 - 2024-11-06
438
+
439
+ * Adding fetch method for confluence client
440
+
441
+ ## 0.21.1 - 2024-10-23
442
+
443
+ * Warning message to deprecate python < 3.9
444
+
445
+ ## 0.21.0 - 2024-10-23
446
+
447
+ * Confluence: Added Confluence extractor
448
+
449
+ ## 0.20.8 - 2024-10-19
450
+
451
+ * bump dependencies (minor and patches)
452
+
453
+ ## 0.20.7 - 2024-10-18
454
+
455
+ * Metabase: fix `require_ssl` type in credentials
456
+
457
+ ## 0.20.6 - 2024-10-15
458
+
459
+ * Tableau: include `site_id` in **workbooks** to build url
460
+
461
+ ## 0.20.5 - 2024-10-09
462
+
463
+ * Redshift: enable extraction from a Redshift Serverless instance
464
+
465
+ ## 0.20.4 - 2024-10-09
466
+
467
+ * Salesforce warehouse: `Labels` instead of `api_names` for columns
468
+
469
+ ## 0.20.3 - 2024-10-03
470
+
471
+ * Looker: no longer extract `as_html` dashboard elements
472
+
473
+ ## 0.20.2 - 2024-09-24
474
+
475
+ * Thoughtspot: Adding connector
476
+
477
+ ## 0.20.1 - 2024-09-23
478
+
479
+ * Power BI: Improved client based on APIClient
480
+
481
+ ## 0.20.0 - 2024-09-23
482
+
483
+ * Switch to Tableau revamped connector
484
+
485
+ ## 0.19.9 - 2024-09-19
486
+
487
+ * Databricks: multithreading to retrieve column lineage
488
+
489
+ ## 0.19.8 - 2024-09-18
490
+
491
+ * Metabase: Handle duplicate dashboards
492
+ * Snowflake: Exclude unnamed tables from extraction
493
+ * Bump dependencies: cryptography, setuptools
494
+
495
+ ## 0.19.7 - 2024-09-05
496
+
497
+ * Metabase: Handle compatibility with older version
498
+
499
+ ## 0.19.6 - 2024-09-03
500
+
501
+ * Metabase: Adding error handler on API call
502
+
503
+ ## 0.19.5 - 2024-09-02
504
+
505
+ * Databricks/Salesforce: Remove deprecated client dependencies
506
+
507
+ ## 0.19.4 - 2024-08-29
508
+
509
+ * Tableau Pulse: extract Metrics and Subscriptions
510
+
511
+ ## 0.19.3 - 2024-08-27
512
+
513
+ - Sigma: Add SafeMode to SigmaClient
514
+
515
+ ## 0.19.2 - 2024-08-23
516
+
517
+ - Reworked APIClient to unify client's behaviours
518
+
519
+ Impacted Technologies: Sigma, Soda, Notion
520
+
521
+ ## 0.19.1 - 2024-08-23
522
+
523
+ * Domo: extract datasources via cards metadata endpoint
524
+
525
+ ## 0.19.0 - 2024-08-21
526
+
527
+ * Breaking change Looker CLI:
528
+
529
+ `-u` and `--username` changed to `-c` `--client-id`
530
+
531
+ `-p` and `--password` changed to `-s` `--client-secret`
532
+
533
+ * Breaking change Metabase CLI:
534
+
535
+ `-u` and `--username` changed to `-u` `--user`
536
+
537
+
538
+ * Note: if you use environment variables you shouldn't be impacted
539
+
540
+ ## 0.18.13 - 2024-08-19
541
+
542
+ * Qlik: improve measures extraction
543
+
544
+ ## 0.18.12 - 2024-08-19
545
+
546
+ * Bumps: looker-sdk: 24, setuptools: 72
547
+
548
+ ## 0.18.11 - 2023-08-14
549
+
550
+ * Linting and formatting with Ruff
551
+
552
+ ## 0.18.10 - 2024-08-13
553
+
554
+ * Soda: Added Soda extractor (Castor-Managed integration only)
555
+
556
+ ## 0.18.9 - 2024-08-12
557
+
558
+ * Notion: Added Notion extractor
559
+
560
+ ## 0.18.8 - 2024-08-02
561
+
562
+ * Databricks: more reliable extraction of queries
563
+
564
+ ## 0.18.7 - 2024-08-01
565
+
566
+ * Salesforce: extract table descriptions
567
+
568
+ ## 0.18.6 - 2024-07-30
569
+
570
+ * BigQuery: introduce extended regions to extract missing queries
571
+
572
+ ## 0.18.5 - 2024-07-17
573
+
574
+ * Salesforce: extract DeveloperName and tooling url
575
+
576
+ ## 0.18.4 - 2024-07-16
577
+
578
+ * Fix environment variables assignments for credentials
579
+
580
+ ## 0.18.3 - 2024-07-16
581
+
582
+ * bump dependencies (minor and patches)
583
+
584
+ ## 0.18.2 - 2024-07-08
585
+
586
+ * Added StatusCode handling to SafeMode
587
+
588
+ ## 0.18.1 - 2024-07-04
589
+
590
+ * Bump dependencies: numpy, setuptools, tableauserverclient
591
+
592
+ ## 0.18.0 - 2024-07-03
593
+
594
+ * Dashboarding technologies : Reworked credentials using Pydantic
595
+
596
+ ## 0.17.5 - 2024-07-03
597
+
598
+ * Snowflake, Synapse, Redshift: Remove default_value from the extracted column
599
+
600
+ ## 0.17.4 - 2024-07-03
601
+
602
+ * Sigma: Add `input-table`, `pivot-table` and `viz` in the list of supported **Elements**
603
+
604
+ ## 0.17.3 - 2024-06-24
605
+
606
+ * Databricks: extract tags for tables and column
607
+
608
+ ## 0.17.2 - 2024-06-14
609
+
610
+ * Uploader: support multipart
611
+
612
+ ## 0.17.1 - 2024-06-12
613
+
614
+ * Databricks: extract table source links
615
+
616
+ ## 0.17.0 - 2024-06-10
617
+
618
+ * Uploader: redirect to the proxy, replace credentials with token
619
+
620
+ ## 0.16.15 - 2024-06-07
621
+
622
+ * Tableau: extract database_name for CustomSQLTables
623
+
624
+ ## 0.16.14 - 2024-06-06
625
+
626
+ * Snowflake: Extract SQL user defined function
627
+
628
+ ## 0.16.13 - 2024-06-05
629
+
630
+ * Tableau: extract database_name for tables
631
+
632
+ ## 0.16.12 - 2024-06-04
633
+
634
+ * Databricks: Extract lineage
635
+
636
+ ## 0.16.11 - 2024-06-03
637
+
638
+ * Tableau: add extra fields to optimise storage
639
+
640
+ ## 0.16.10 - 2024-05-30
641
+
642
+ * Salesforce: extract sobjects Label as table name
643
+
644
+ ## 0.16.9 - 2024-05-28
645
+
646
+ * Tableau: extract only fields that are necessary
647
+
648
+ ## 0.16.8 - 2024-05-21
649
+
650
+ * Add compatibility with python 3.12
651
+ * Looker: Bump looker-sdk and refactor client
652
+
653
+ ## 0.16.7 - 2024-05-16
654
+
655
+ * Databricks: allow no emails on user
656
+
657
+ ## 0.16.6 - 2024-05-14
658
+
659
+ * Introducing the revamped connector for Tableau
660
+
661
+ ## 0.16.5 - 2024-04-25
662
+
663
+ * Salesforce: remove DeploymentStatus from EntityDefinition query
664
+
665
+ ## 0.16.4 - 2024-04-25
666
+
667
+ * Salesforce: extract sobjects and fields
668
+
669
+ ## 0.16.3 - 2024-04-24
670
+
671
+ * Databricks: Extract table owners
672
+
673
+ ## 0.16.2 - 2024-04-09
674
+
675
+ * PowerBI: Extract pages from report
676
+
677
+ ## 0.16.1 - 2024-04-02
678
+
679
+ * Systematically escape nul bytes on CSV write
680
+
681
+ ## 0.16.0 - 2024-03-26
682
+
683
+ * Use pydantic v2
684
+
685
+ ## 0.15.4 - 2024-03-25
686
+
687
+ * Pagination: Fix behavior when next page token is missing
688
+
689
+ ## 0.15.3 - 2024-03-08
690
+
691
+ * Sigma: Regenerate token when expired
692
+
693
+ ## 0.15.2 - 2024-03-01
694
+
695
+ * DBT: Add host base URL, use of BaseSettings for DbtCredentials
696
+
697
+ ## 0.15.1 - 2024-03-06
698
+
699
+ * Salesforce: extract dashboard components
700
+
701
+ ## 0.15.0 - 2024-03-01
702
+
703
+ * Support Databricks Unity Catalog extraction
704
+
705
+ ## 0.14.14 - 2024-02-27
706
+
707
+ * Salesforce: Fix on salesforce folders URL
708
+
709
+ ## 0.14.13 - 2024-02-15
710
+
711
+ * Domo client: Handles cases where datasources aren't linked to any cards
712
+
713
+ ## 0.14.12 - 2024-02-13
714
+
715
+ * Domo client: No longer raise 400 exception upon API calls
716
+
717
+ ## 0.14.11 - 2024-02-13
718
+
719
+ * BigQuery client: Use partitioned `creation_time` instead of `start_time`
720
+
721
+ ## 0.14.10 - 2024-02-08
722
+
723
+ * Metabase ApiClient: Remove GET /api/dashboard that is deprecated
724
+
725
+ ## 0.14.9 - 2024-02-07
726
+
727
+ * Add support for python 3.11
728
+
729
+ ## 0.14.8 - 2024-02-06
730
+
731
+ * Salesforce client: extracting folders
732
+
733
+ ## 0.14.7 - 2024-02-05
734
+
735
+ * Domo: ignore 404 errors on datasources API endpoint
736
+
737
+ ## 0.14.6 - 2024-01-31
738
+
739
+ * Bump dependencies
740
+
741
+ ## 0.14.5 - 2024-01-31
742
+
743
+ * Allow support of external lineage for non-generic technologies
744
+
745
+ ## 0.14.4 - 2024-01-30
746
+
747
+ * Salesforce client: Renaming salesforce viz to salesforce reporting
748
+
749
+ ## 0.14.3 - 2024-01-29
750
+
751
+ * Domo: enhance pages with card's datasources to support direct tables lineage
752
+
753
+ ## 0.14.2 - 2024-01-25
754
+
755
+ * Salesforce client: Methods to extract users, dashboards and reports
756
+
757
+ ## 0.14.1 - 2024-01-24
758
+
759
+ * Add sensitive metadata information to credentials dataclass
760
+
761
+ ## 0.14.0 - 2024-01-24
762
+
763
+ * Adding Salesforce client
764
+
765
+ ## 0.13.0 - 2024-01-22
766
+
767
+ * Support MySQL catalog extraction
768
+
769
+ ## 0.12.3 - 2024-01-16
770
+
771
+ * Metabase: renaming of dashboard_cards for Metabase 0.48
772
+
773
+ ## 0.12.2 - 2023-12-27
774
+
775
+ * Metabase: Align postgres connection to postgres connector
776
+
777
+ ## 0.12.1 - 2023-12-27
778
+
779
+ * Tableau: replace luid with id during dashboards extraction
780
+
781
+ ## 0.12.0 - 2023-12-18
782
+
783
+ * SQL Server: extract catalog
784
+
785
+ ## 0.11.3 - 2023-12-21
786
+
787
+ * Metabase: Support postgres connection via SSL
788
+
789
+ ## 0.11.2 - 2023-12-20
790
+
791
+ * Extract: remove null byte characters
792
+
793
+ ## 0.11.1 - 2023-12-20
794
+
795
+ * Fixed bug with jitter argument in Retry class and added field validations
796
+
797
+ ## 0.11.0 - 2023-12-18
798
+
799
+ * Tableau: extract dashboards
800
+
801
+ ## 0.10.2 - 2023-12-13
802
+
803
+ * Redshift: Handle rows with mixed encodings
804
+
805
+ ## 0.10.1 - 2023-12-04
806
+
807
+ * Domo: fix pagination
808
+
809
+ ## 0.10.0 - 2023-11-28
810
+
811
+ * Looker : extract all Looker Explores, even if unused in Dashboards
812
+
813
+ ## 0.9.2 - 2023-11-23
814
+
815
+ * Looker : remove deprecated all_looks parameter
816
+
817
+ ## 0.9.1 - 2023-11-22
818
+
819
+ * Redshift : filter out queries exceeding 65535 char
820
+
821
+ ## 0.9.0 - 2023-11-20
822
+
823
+ * Snowflake : Add key-pair authentication
824
+
825
+ ## 0.8.1 - 2023-11-15
826
+
827
+ * Add a logging option to log to stdout
828
+
829
+ ## 0.8.0 - 2023-11-09
830
+
831
+ * Stream **Looker** Looks and Dashboards directly into their destination files
832
+
833
+ ## 0.7.8 - 2023-11-02
834
+
835
+ * Rollback `escapechar` in csv options
836
+
837
+ ## 0.7.7 - 2023-10-30
838
+
839
+ * Add `escapechar` in csv de-serialization
840
+
841
+ ## 0.7.6 - 2023-10-26
842
+
843
+ * Fetch Domo audits up to yesterday date
844
+
845
+ ## 0.7.5 - 2023-10-26
846
+
847
+ * Add `escapechar` in csv serialisation
848
+
849
+ ## 0.7.4 - 2023-10-23
850
+
851
+ * Pick the most recent sharded tables in `BigQuery`
852
+
853
+ ## 0.7.3 - 2023-10-19
854
+
855
+ * Add retry mechanism to LookerClient when multithreading
856
+
857
+ ## 0.7.2 - 2023-10-19
858
+
859
+ * pycryptodome moved as an optional dependency for extras: metabase and all
860
+
861
+ ## 0.7.1 - 2023-10-04
862
+
863
+ * Fix thread pool size verification
864
+
865
+ ## 0.7.0 - 2023-10-02
866
+
867
+ * Add option to fetch Looker Looks & Dashboards per folder
868
+
869
+ ## 0.6.3 - 2023-10-02
870
+
871
+ * Add refreshing mechanism for Domo authentication tokens
872
+
873
+ ## 0.6.2 - 2023-09-29
874
+
875
+ * Update field_size_limit in CSVFormatter
876
+
877
+ ## 0.6.1 - 2023-09-25
878
+
879
+ * Add support for Domo
880
+
881
+ ## 0.6.0 - 2023-09-25
882
+
883
+ * Move msal dependencies to powerbi extra
884
+
885
+ ## 0.5.10 - 2023-09-25
886
+
887
+ * Retrieve column_id instead of object_id for Snowflake column tags
888
+
889
+ ## 0.5.9 - 2023-09-21
890
+
891
+ * Add column tags for Snowflake
892
+
893
+ ## 0.5.8 - 2023-09-19
894
+
895
+ * Remove non-used dependencies
896
+ * Fix some import in tests
897
+ * Clean pyproject.toml
898
+ * Add deptry config
899
+
900
+ ## 0.5.7 - 2023-08-17
901
+
902
+ * Update column data type validator
903
+
904
+ ## 0.5.6 - 2023-08-10
905
+
906
+ * Use latest version of certifi (2023.7.22)
907
+
908
+ ## 0.5.5 - 2023-08-07
909
+
910
+ * Linting with flakeheaven
911
+
912
+ ## 0.5.4 - 2023-08-01
913
+
914
+ * Add support for Looker's `Users Attributes`
915
+
916
+ ## 0.5.3 - 2023-07-27
917
+
918
+ * Add support for PowerBI's `Activity Events`
919
+
920
+ ## 0.5.2 - 2023-07-12
921
+
922
+ * Fix Metabase DbClient url
923
+
924
+ ## 0.5.1 - 2023-07-03
925
+
926
+ * Add support for Looker's `ContentViews`
927
+
928
+ ## 0.5.0 - 2023-06-28
929
+
930
+ * Stop supporting python3.7
931
+
932
+ ## 0.4.1 - 2023-06-27
933
+
934
+ * Fix on Sigma elements extraction
935
+ * Fix BigQuery dataset extraction
936
+ * Fix the File Checker for View DDL file
937
+
938
+ ## 0.4.0 - 2023-06-12
939
+
940
+ * Added support for Sigma
941
+
942
+ ## 0.3.8 - 2023-05-02
943
+
944
+ * Added support for PowerBI datasets and fields
945
+
946
+ ## 0.3.7 - 2023-04-28
947
+
948
+ * Warning message to deprecate python < 3.8
949
+
950
+ ## 0.3.6 - 2023-04-24
951
+
952
+ * Update enum keys for Metabase credentials
953
+
954
+ ## 0.3.5 - 2023-04-07
955
+
956
+ * Extract metadata from successful dbt runs only
957
+
958
+ ## 0.3.4 - 2023-04-05
959
+
960
+ * Enhance uploader to support `QUALITY` files
961
+
962
+ ## 0.3.3 - 2023-04-04
963
+
964
+ * Tableau : Improve Table <> Datasource lineage
965
+
966
+ ## 0.3.2 - 2023-04-04
967
+
968
+ * Allow COPY statements from Snowflake
969
+
970
+ ## 0.3.1 - 2023-03-30
971
+
972
+ * Improved Field extraction in Tableau
973
+
974
+ ## 0.3.0 - 2023-03-29
975
+
976
+ * Added Tableau datasource and field integration
977
+
978
+ ## 0.2.3 - 2023-03-17
979
+
980
+ * Verify required admin permissions for Looker extraction
981
+
982
+ ## 0.2.2 - 2023-03-13
983
+
984
+ * Constraint `setuptools` explicitly added
985
+
986
+ ## 0.2.1 - 2023-02-23
987
+
988
+ * Constrain `google-cloud-bigquery` dependency below yanked 3.0.0
989
+
990
+ ## 0.2.0 - 2023-02-13
991
+
992
+ * Add connector for dbt-cloud
993
+
994
+ ## 0.1.2 - 2023-02-08
995
+
996
+ * Enhance **Looker** extraction of dashboard filters and groups with roles
997
+
998
+ ## 0.1.1 - 2023-02-06
999
+
1000
+ * Add **Looker** support to extract `groups`-related assets
1001
+ * Enhance **Looker** extraction of dashboard elements and users
1002
+
1003
+ ## 0.1.0 - 2023-01-17
1004
+
1005
+ * Upgrade to Python 3.8
1006
+ * Upgrade dependencies
1007
+
1008
+ ## 0.0.44 - 2023-01-02
1009
+
1010
+ * Introduce new extractor for visualization tool **PowerBi** with support for
1011
+ * `reports`
1012
+ * `dashboards`
1013
+ * `metadata`
1014
+
1015
+ ## 0.0.43 - 2022-12-21
1016
+
1017
+ * Update package dependencies
1018
+
1019
+ ## 0.0.42 - 2022-11-25
1020
+
1021
+ * Improve pagination
1022
+
1023
+ ## 0.0.41 - 2022-10-26
1024
+
1025
+ * Tableau: Optional `site-id` argument for Tableau Server users
1026
+
1027
+ ## 0.0.40 - 2022-10-25
1028
+
1029
+ * Fix command `file_check`
1030
+
1031
+ ## 0.0.39 - 2022-10-24
1032
+
1033
+ * Fix `FileChecker` template for `GenericWarehouse.view_ddl`
1034
+
1035
+ ## 0.0.38 - 2022-10-17
1036
+
1037
+ * Snowflake: extract `warehouse_size`
1038
+
1039
+ ## 0.0.37 - 2022-10-14
1040
+
1041
+ * Allow to skip "App size exceeded" error while fetching Qlik measures
1042
+ * Fix missing arguments `warehouse` and `role` passing for script `extract_snowflake`
1043
+
1044
+ ## 0.0.36 - 2022-10-13
1045
+
1046
+ * Patch error in Looker explore names
1047
+
1048
+ ## 0.0.35 - 2022-10-12
1049
+
1050
+ * Add safe mode to **Looker**
1051
+
1052
+ ## 0.0.34 - 2022-10-11
1053
+
1054
+ * Fix extras dependencies
1055
+
1056
+ ## 0.0.33 - 2022-10-10
1057
+
1058
+ * Migrate package generation to poetry
1059
+
1060
+ ## 0.0.32 - 2022-10-07
1061
+
1062
+ * Improved logging
1063
+
1064
+ ## 0.0.31 - 2022-10-05
1065
+
1066
+ * Safe mode for bigquery and file logger
1067
+
1068
+ ## 0.0.30 - 2022-09-20
1069
+
1070
+ * Add **Qlik** support to extract `connections` assets
1071
+
1072
+ ## 0.0.29 - 2022-08-31
1073
+
1074
+ * Switch to engine's connect for database connections
1075
+
1076
+ ## 0.0.28 - 2022-07-29
1077
+
1078
+ * Widen dependencies ranges
1079
+
1080
+ ## 0.0.27 - 2022-07-28
1081
+
1082
+ * Improve support for Qlik `measures` and `lineage` and drop extraction of `qvds`
1083
+
1084
+ ## 0.0.26 - 2022-07-22
1085
+
1086
+ * Add **Qlik** support to extract `measures` assets
1087
+
1088
+ ## 0.0.25 - 2022-07-04
1089
+
1090
+ * Add **Qlik** support to extract `qvds` and `lineage` assets
1091
+
1092
+ ## 0.0.24 - 2022-06-30
1093
+
1094
+ * Allow to use `all_looks` endpoint to retrieve looker Looks for param or env variable.
1095
+
1096
+ ## 0.0.23 - 2022-06-29
1097
+
1098
+ * Allow to change Looker api timeout through param or env variable.
1099
+
1100
+ ## 0.0.22 - 2022-06-20
1101
+
1102
+ * Introduce new extractor for visualization tool **Qlik** with support for
1103
+ * `spaces`
1104
+ * `users`
1105
+ * `apps`
1106
+
1107
+ ## 0.0.21 - 2022-06-09
1108
+
1109
+ * Fix typo in Snowflake schema extract query
1110
+
1111
+ ## 0.0.20 - 2022-06-08
1112
+
1113
+ * Fetch only distinct schemas in Snowflake warehouse
1114
+
1115
+ ## 0.0.19 - 2022-05-30
1116
+
1117
+ * Use versions with range to ease dependency resolution for python 3.7 to 3.10
1118
+
1119
+ ## 0.0.18 - 2022-05-19
1120
+
1121
+ * Enhance the file checker to search for prefixed files
1122
+
1123
+ ## 0.0.17 - 2022-05-18
1124
+
1125
+ * Add retry for mode analytics
1126
+
1127
+ ## 0.0.16 - 2022-05-18
1128
+
1129
+ * Add options to the pager:
1130
+ * `start_page`: to start pagination at another index (default to 1)
1131
+ * `stop_strategy`: to use different strategy to stop pagination (default to EMPTY_PAGE)
1132
+
1133
+ ## 0.0.15 - 2022-05-09
1134
+
1135
+ * Skip snowflake columns with no name
1136
+
1137
+ ## 0.0.14 - 2022-05-09
1138
+
1139
+ * Add missing metabase dependencies on Psycopg2
1140
+
1141
+ ## 0.0.13 - 2022-05-06
1142
+
1143
+ * Remove top-level imports to isolate modules with different extra dependencies
1144
+
1145
+ ## 0.0.12 - 2022-05-06
1146
+
1147
+ * Improved the file checker to detect repeated quotes in CSV.
1148
+
1149
+ ## 0.0.11 - 2022-05-02
1150
+
1151
+ * Fix import error in `file_checker` script
1152
+
1153
+ ## 0.0.10 - 2022-04-27
1154
+
1155
+ * Snowflake: discard 11 more `query_type` values when fetching queries
1156
+
1157
+ ## 0.0.9 - 2022-04-13
1158
+
1159
+ * allow Looker parameters `CASTOR_LOOKER_TIMEOUT_SECOND` and `CASTOR_LOOKER_PAGE_SIZE` to be passed through environment
1160
+ variables
1161
+ * fix import paths in `castor_extractor/commands/upload.py` script
1162
+ * use `storage.Client.from_service_account_info` when `credentials` is a dictionary in `uploader/upload.py`
1163
+
1164
+ ## 0.0.8 - 2022-04-07
1165
+
1166
+ * Fix links to documentation in the README
1167
+
1168
+ ## 0.0.7 - 2022-04-05
1169
+
1170
+ * Fix dateutil import issue
1171
+
1172
+ ## 0.0.6 - 2022-04-05
1173
+
1174
+ First version of Castor Extractor, including:
1175
+
1176
+ * Warehouse assets extraction
1177
+ * BigQuery
1178
+ * Postgres
1179
+ * Redshift
1180
+ * Snowflake
1181
+
1182
+ * Visualization assets extraction
1183
+ * Looker
1184
+ * Metabase
1185
+ * Mode Analytics
1186
+ * Tableau
1187
+
1188
+ * Utilities
1189
+ * Uploader to cloud-storage
1190
+ * File Checker (for generic metadata)