vibedasher 2.2.0__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 (703) hide show
  1. vibedasher-2.2.0/.gitignore +5 -0
  2. vibedasher-2.2.0/PKG-INFO +149 -0
  3. vibedasher-2.2.0/README.md +133 -0
  4. vibedasher-2.2.0/_query.py +577 -0
  5. vibedasher-2.2.0/factory.py +133 -0
  6. vibedasher-2.2.0/openapi-python-client.config.yaml +10 -0
  7. vibedasher-2.2.0/pyproject.toml +26 -0
  8. vibedasher-2.2.0/tests/test_datasets.py +228 -0
  9. vibedasher-2.2.0/tests/test_query.py +147 -0
  10. vibedasher-2.2.0/tests/test_region.py +105 -0
  11. vibedasher-2.2.0/vibedasher/__init__.py +36 -0
  12. vibedasher-2.2.0/vibedasher/_facade.py +948 -0
  13. vibedasher-2.2.0/vibedasher/_query.py +577 -0
  14. vibedasher-2.2.0/vibedasher/api/__init__.py +1 -0
  15. vibedasher-2.2.0/vibedasher/api/accounts/__init__.py +1 -0
  16. vibedasher-2.2.0/vibedasher/api/accounts/check_account_slug_exists.py +169 -0
  17. vibedasher-2.2.0/vibedasher/api/accounts/create_account.py +198 -0
  18. vibedasher-2.2.0/vibedasher/api/accounts/delete_account_logo.py +128 -0
  19. vibedasher-2.2.0/vibedasher/api/accounts/get_account.py +136 -0
  20. vibedasher-2.2.0/vibedasher/api/accounts/get_account_logo.py +136 -0
  21. vibedasher-2.2.0/vibedasher/api/accounts/put_account_logo.py +171 -0
  22. vibedasher-2.2.0/vibedasher/api/accounts/update_account.py +206 -0
  23. vibedasher-2.2.0/vibedasher/api/ai_providers/__init__.py +1 -0
  24. vibedasher-2.2.0/vibedasher/api/ai_providers/create_credential.py +178 -0
  25. vibedasher-2.2.0/vibedasher/api/ai_providers/create_user_provider.py +178 -0
  26. vibedasher-2.2.0/vibedasher/api/ai_providers/delete_credential.py +173 -0
  27. vibedasher-2.2.0/vibedasher/api/ai_providers/delete_user_provider.py +173 -0
  28. vibedasher-2.2.0/vibedasher/api/ai_providers/get_provider.py +173 -0
  29. vibedasher-2.2.0/vibedasher/api/ai_providers/get_system_provider_setting.py +175 -0
  30. vibedasher-2.2.0/vibedasher/api/ai_providers/get_user_provider.py +173 -0
  31. vibedasher-2.2.0/vibedasher/api/ai_providers/list_all_providers.py +140 -0
  32. vibedasher-2.2.0/vibedasher/api/ai_providers/list_credentials.py +140 -0
  33. vibedasher-2.2.0/vibedasher/api/ai_providers/list_user_providers.py +198 -0
  34. vibedasher-2.2.0/vibedasher/api/ai_providers/test_credential.py +173 -0
  35. vibedasher-2.2.0/vibedasher/api/ai_providers/test_provider_connection.py +178 -0
  36. vibedasher-2.2.0/vibedasher/api/ai_providers/update_credential.py +194 -0
  37. vibedasher-2.2.0/vibedasher/api/ai_providers/update_system_provider_setting.py +198 -0
  38. vibedasher-2.2.0/vibedasher/api/ai_providers/update_user_provider.py +194 -0
  39. vibedasher-2.2.0/vibedasher/api/api_keys/__init__.py +1 -0
  40. vibedasher-2.2.0/vibedasher/api/api_keys/create_api_key.py +178 -0
  41. vibedasher-2.2.0/vibedasher/api/api_keys/delete_api_key.py +173 -0
  42. vibedasher-2.2.0/vibedasher/api/api_keys/get_api_key.py +173 -0
  43. vibedasher-2.2.0/vibedasher/api/api_keys/get_api_keys.py +198 -0
  44. vibedasher-2.2.0/vibedasher/api/api_keys/update_api_key.py +194 -0
  45. vibedasher-2.2.0/vibedasher/api/chats/__init__.py +1 -0
  46. vibedasher-2.2.0/vibedasher/api/chats/delete_chat.py +173 -0
  47. vibedasher-2.2.0/vibedasher/api/chats/get_chat.py +173 -0
  48. vibedasher-2.2.0/vibedasher/api/chats/list_chats.py +246 -0
  49. vibedasher-2.2.0/vibedasher/api/chats/track_chat_location.py +218 -0
  50. vibedasher-2.2.0/vibedasher/api/chats/upload_chat_image.py +262 -0
  51. vibedasher-2.2.0/vibedasher/api/connections/__init__.py +1 -0
  52. vibedasher-2.2.0/vibedasher/api/connections/create_connection.py +170 -0
  53. vibedasher-2.2.0/vibedasher/api/connections/delete_connection.py +165 -0
  54. vibedasher-2.2.0/vibedasher/api/connections/exchange_google_analytics_oauth_code.py +182 -0
  55. vibedasher-2.2.0/vibedasher/api/connections/get_connection_schema.py +225 -0
  56. vibedasher-2.2.0/vibedasher/api/connections/get_connection_tables.py +245 -0
  57. vibedasher-2.2.0/vibedasher/api/connections/get_table_schema.py +264 -0
  58. vibedasher-2.2.0/vibedasher/api/connections/read_connection.py +165 -0
  59. vibedasher-2.2.0/vibedasher/api/connections/read_connections.py +190 -0
  60. vibedasher-2.2.0/vibedasher/api/connections/test_connection.py +195 -0
  61. vibedasher-2.2.0/vibedasher/api/connections/update_connection.py +186 -0
  62. vibedasher-2.2.0/vibedasher/api/connections/update_connection_metadata.py +254 -0
  63. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/__init__.py +1 -0
  64. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/create_subscription.py +186 -0
  65. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/delete_subscription.py +165 -0
  66. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/get_subscription.py +165 -0
  67. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/list_viz_subscriptions.py +208 -0
  68. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/test_subscription.py +185 -0
  69. vibedasher-2.2.0/vibedasher/api/dashboard_subscriptions/update_subscription.py +186 -0
  70. vibedasher-2.2.0/vibedasher/api/datasets/__init__.py +1 -0
  71. vibedasher-2.2.0/vibedasher/api/datasets/create_dataset.py +170 -0
  72. vibedasher-2.2.0/vibedasher/api/datasets/create_dataset_upload.py +186 -0
  73. vibedasher-2.2.0/vibedasher/api/datasets/delete_dataset.py +165 -0
  74. vibedasher-2.2.0/vibedasher/api/datasets/download_public_dataset.py +178 -0
  75. vibedasher-2.2.0/vibedasher/api/datasets/get_dataset_iceberg_metadata.py +219 -0
  76. vibedasher-2.2.0/vibedasher/api/datasets/get_dataset_lineage.py +185 -0
  77. vibedasher-2.2.0/vibedasher/api/datasets/get_dataset_upload.py +179 -0
  78. vibedasher-2.2.0/vibedasher/api/datasets/get_dataset_upload_download_url.py +181 -0
  79. vibedasher-2.2.0/vibedasher/api/datasets/get_dataset_upload_sizes.py +165 -0
  80. vibedasher-2.2.0/vibedasher/api/datasets/get_datasets_catalog.py +156 -0
  81. vibedasher-2.2.0/vibedasher/api/datasets/get_enabled_public_dataset_sources.py +142 -0
  82. vibedasher-2.2.0/vibedasher/api/datasets/get_public_dataset_suggestions.py +192 -0
  83. vibedasher-2.2.0/vibedasher/api/datasets/list_dataset_uploads.py +206 -0
  84. vibedasher-2.2.0/vibedasher/api/datasets/load_dataset_upload.py +179 -0
  85. vibedasher-2.2.0/vibedasher/api/datasets/read_dataset.py +165 -0
  86. vibedasher-2.2.0/vibedasher/api/datasets/read_datasets.py +230 -0
  87. vibedasher-2.2.0/vibedasher/api/datasets/read_folder_datasets.py +206 -0
  88. vibedasher-2.2.0/vibedasher/api/datasets/refresh_dataset.py +205 -0
  89. vibedasher-2.2.0/vibedasher/api/datasets/repartition_dataset.py +194 -0
  90. vibedasher-2.2.0/vibedasher/api/datasets/reset_checkpoint.py +173 -0
  91. vibedasher-2.2.0/vibedasher/api/datasets/retry_public_dataset_download.py +175 -0
  92. vibedasher-2.2.0/vibedasher/api/datasets/search_public_datasets.py +208 -0
  93. vibedasher-2.2.0/vibedasher/api/datasets/set_primary_keys.py +234 -0
  94. vibedasher-2.2.0/vibedasher/api/datasets/transfer_dataset_ownership.py +196 -0
  95. vibedasher-2.2.0/vibedasher/api/datasets/update_dataset.py +186 -0
  96. vibedasher-2.2.0/vibedasher/api/datasets/validate_sql_query.py +182 -0
  97. vibedasher-2.2.0/vibedasher/api/dbt/__init__.py +1 -0
  98. vibedasher-2.2.0/vibedasher/api/dbt/cleanup_stale_sources.py +152 -0
  99. vibedasher-2.2.0/vibedasher/api/dbt/compile_project.py +173 -0
  100. vibedasher-2.2.0/vibedasher/api/dbt/create_model.py +194 -0
  101. vibedasher-2.2.0/vibedasher/api/dbt/create_project.py +178 -0
  102. vibedasher-2.2.0/vibedasher/api/dbt/create_project_refresh.py +206 -0
  103. vibedasher-2.2.0/vibedasher/api/dbt/delete_model.py +185 -0
  104. vibedasher-2.2.0/vibedasher/api/dbt/delete_model_flat.py +171 -0
  105. vibedasher-2.2.0/vibedasher/api/dbt/delete_project.py +171 -0
  106. vibedasher-2.2.0/vibedasher/api/dbt/get_lineage.py +173 -0
  107. vibedasher-2.2.0/vibedasher/api/dbt/get_model_flat.py +173 -0
  108. vibedasher-2.2.0/vibedasher/api/dbt/get_project.py +173 -0
  109. vibedasher-2.2.0/vibedasher/api/dbt/get_run.py +187 -0
  110. vibedasher-2.2.0/vibedasher/api/dbt/list_models.py +173 -0
  111. vibedasher-2.2.0/vibedasher/api/dbt/list_project_refreshes.py +234 -0
  112. vibedasher-2.2.0/vibedasher/api/dbt/list_projects.py +140 -0
  113. vibedasher-2.2.0/vibedasher/api/dbt/list_runs.py +194 -0
  114. vibedasher-2.2.0/vibedasher/api/dbt/sync_model_sources.py +189 -0
  115. vibedasher-2.2.0/vibedasher/api/dbt/transfer_dbt_project_ownership.py +198 -0
  116. vibedasher-2.2.0/vibedasher/api/dbt/update_model_flat.py +194 -0
  117. vibedasher-2.2.0/vibedasher/api/dbt/update_project.py +194 -0
  118. vibedasher-2.2.0/vibedasher/api/folders/__init__.py +1 -0
  119. vibedasher-2.2.0/vibedasher/api/folders/check_folder_image_exists.py +173 -0
  120. vibedasher-2.2.0/vibedasher/api/folders/create_folder.py +170 -0
  121. vibedasher-2.2.0/vibedasher/api/folders/delete_folder.py +165 -0
  122. vibedasher-2.2.0/vibedasher/api/folders/delete_folder_image.py +173 -0
  123. vibedasher-2.2.0/vibedasher/api/folders/get_folder_image.py +171 -0
  124. vibedasher-2.2.0/vibedasher/api/folders/put_folder_image.py +173 -0
  125. vibedasher-2.2.0/vibedasher/api/folders/read_folder.py +165 -0
  126. vibedasher-2.2.0/vibedasher/api/folders/read_folders.py +190 -0
  127. vibedasher-2.2.0/vibedasher/api/folders/transfer_folder_ownership.py +194 -0
  128. vibedasher-2.2.0/vibedasher/api/folders/update_folder.py +186 -0
  129. vibedasher-2.2.0/vibedasher/api/groups/__init__.py +1 -0
  130. vibedasher-2.2.0/vibedasher/api/groups/create_group.py +170 -0
  131. vibedasher-2.2.0/vibedasher/api/groups/delete_group.py +165 -0
  132. vibedasher-2.2.0/vibedasher/api/groups/read_group.py +165 -0
  133. vibedasher-2.2.0/vibedasher/api/groups/read_groups.py +190 -0
  134. vibedasher-2.2.0/vibedasher/api/groups/update_group.py +186 -0
  135. vibedasher-2.2.0/vibedasher/api/images/__init__.py +1 -0
  136. vibedasher-2.2.0/vibedasher/api/images/create_image.py +170 -0
  137. vibedasher-2.2.0/vibedasher/api/images/delete_image.py +165 -0
  138. vibedasher-2.2.0/vibedasher/api/images/read_image.py +165 -0
  139. vibedasher-2.2.0/vibedasher/api/images/read_images.py +190 -0
  140. vibedasher-2.2.0/vibedasher/api/images/update_image.py +186 -0
  141. vibedasher-2.2.0/vibedasher/api/questions/__init__.py +1 -0
  142. vibedasher-2.2.0/vibedasher/api/questions/create_question.py +170 -0
  143. vibedasher-2.2.0/vibedasher/api/questions/delete_question.py +165 -0
  144. vibedasher-2.2.0/vibedasher/api/questions/execute_question.py +195 -0
  145. vibedasher-2.2.0/vibedasher/api/questions/get_question_bundle.py +217 -0
  146. vibedasher-2.2.0/vibedasher/api/questions/read_folder_questions.py +206 -0
  147. vibedasher-2.2.0/vibedasher/api/questions/read_question.py +165 -0
  148. vibedasher-2.2.0/vibedasher/api/questions/read_questions.py +230 -0
  149. vibedasher-2.2.0/vibedasher/api/questions/update_question.py +186 -0
  150. vibedasher-2.2.0/vibedasher/api/questions/validate_question_sql.py +186 -0
  151. vibedasher-2.2.0/vibedasher/api/refreshes/__init__.py +1 -0
  152. vibedasher-2.2.0/vibedasher/api/refreshes/create_refresh.py +170 -0
  153. vibedasher-2.2.0/vibedasher/api/refreshes/delete_refresh.py +165 -0
  154. vibedasher-2.2.0/vibedasher/api/refreshes/read_refresh.py +165 -0
  155. vibedasher-2.2.0/vibedasher/api/refreshes/read_refreshes.py +210 -0
  156. vibedasher-2.2.0/vibedasher/api/refreshes/update_refresh.py +186 -0
  157. vibedasher-2.2.0/vibedasher/api/sql/__init__.py +1 -0
  158. vibedasher-2.2.0/vibedasher/api/sql/cleanup_expired_sql_queries.py +142 -0
  159. vibedasher-2.2.0/vibedasher/api/sql/create_sql_query.py +214 -0
  160. vibedasher-2.2.0/vibedasher/api/sql/create_sql_query_batch.py +214 -0
  161. vibedasher-2.2.0/vibedasher/api/sql/delete_sql_query.py +165 -0
  162. vibedasher-2.2.0/vibedasher/api/sql/get_sql_query_result.py +165 -0
  163. vibedasher-2.2.0/vibedasher/api/sql/read_sql_queries.py +190 -0
  164. vibedasher-2.2.0/vibedasher/api/sql/read_sql_query.py +165 -0
  165. vibedasher-2.2.0/vibedasher/api/sql/update_sql_query.py +186 -0
  166. vibedasher-2.2.0/vibedasher/api/sql/warmup_worker.py +210 -0
  167. vibedasher-2.2.0/vibedasher/api/subscriptions/__init__.py +1 -0
  168. vibedasher-2.2.0/vibedasher/api/subscriptions/get_current_subscription.py +136 -0
  169. vibedasher-2.2.0/vibedasher/api/subscriptions/list_subscriptions.py +174 -0
  170. vibedasher-2.2.0/vibedasher/api/tasks/__init__.py +1 -0
  171. vibedasher-2.2.0/vibedasher/api/tasks/delete_task.py +165 -0
  172. vibedasher-2.2.0/vibedasher/api/tasks/read_task.py +165 -0
  173. vibedasher-2.2.0/vibedasher/api/tasks/read_tasks.py +210 -0
  174. vibedasher-2.2.0/vibedasher/api/tasks/read_viz_tasks.py +226 -0
  175. vibedasher-2.2.0/vibedasher/api/tasks/update_task.py +186 -0
  176. vibedasher-2.2.0/vibedasher/api/templates/__init__.py +1 -0
  177. vibedasher-2.2.0/vibedasher/api/templates/clone_template.py +173 -0
  178. vibedasher-2.2.0/vibedasher/api/templates/create_template.py +178 -0
  179. vibedasher-2.2.0/vibedasher/api/templates/delete_template.py +173 -0
  180. vibedasher-2.2.0/vibedasher/api/templates/get_template.py +173 -0
  181. vibedasher-2.2.0/vibedasher/api/templates/increment_template_usage.py +173 -0
  182. vibedasher-2.2.0/vibedasher/api/templates/list_public_templates.py +238 -0
  183. vibedasher-2.2.0/vibedasher/api/templates/list_templates.py +273 -0
  184. vibedasher-2.2.0/vibedasher/api/templates/match_templates.py +178 -0
  185. vibedasher-2.2.0/vibedasher/api/templates/update_template.py +194 -0
  186. vibedasher-2.2.0/vibedasher/api/tools/__init__.py +1 -0
  187. vibedasher-2.2.0/vibedasher/api/tools/get_tool_result.py +185 -0
  188. vibedasher-2.2.0/vibedasher/api/tools/update_tool_result.py +187 -0
  189. vibedasher-2.2.0/vibedasher/api/upload/__init__.py +1 -0
  190. vibedasher-2.2.0/vibedasher/api/upload/upload_file.py +201 -0
  191. vibedasher-2.2.0/vibedasher/api/users/__init__.py +1 -0
  192. vibedasher-2.2.0/vibedasher/api/users/analytics_endpoint.py +85 -0
  193. vibedasher-2.2.0/vibedasher/api/users/check_email_availability.py +169 -0
  194. vibedasher-2.2.0/vibedasher/api/users/create_user.py +174 -0
  195. vibedasher-2.2.0/vibedasher/api/users/delete_user.py +159 -0
  196. vibedasher-2.2.0/vibedasher/api/users/get_me.py +142 -0
  197. vibedasher-2.2.0/vibedasher/api/users/get_user.py +161 -0
  198. vibedasher-2.2.0/vibedasher/api/users/get_user_by_email.py +169 -0
  199. vibedasher-2.2.0/vibedasher/api/users/heatup_lambdas.py +209 -0
  200. vibedasher-2.2.0/vibedasher/api/users/list_users.py +186 -0
  201. vibedasher-2.2.0/vibedasher/api/users/resend_email_verification.py +190 -0
  202. vibedasher-2.2.0/vibedasher/api/users/update_user.py +210 -0
  203. vibedasher-2.2.0/vibedasher/api/viz/__init__.py +1 -0
  204. vibedasher-2.2.0/vibedasher/api/viz/batch_write_files.py +208 -0
  205. vibedasher-2.2.0/vibedasher/api/viz/check_slug_available.py +199 -0
  206. vibedasher-2.2.0/vibedasher/api/viz/confirm_screenshot.py +173 -0
  207. vibedasher-2.2.0/vibedasher/api/viz/create_branch.py +195 -0
  208. vibedasher-2.2.0/vibedasher/api/viz/create_viz.py +178 -0
  209. vibedasher-2.2.0/vibedasher/api/viz/delete_branch.py +185 -0
  210. vibedasher-2.2.0/vibedasher/api/viz/delete_file.py +201 -0
  211. vibedasher-2.2.0/vibedasher/api/viz/delete_screenshot.py +171 -0
  212. vibedasher-2.2.0/vibedasher/api/viz/delete_viz.py +171 -0
  213. vibedasher-2.2.0/vibedasher/api/viz/duplicate_viz.py +173 -0
  214. vibedasher-2.2.0/vibedasher/api/viz/get_branch.py +187 -0
  215. vibedasher-2.2.0/vibedasher/api/viz/get_branch_files.py +187 -0
  216. vibedasher-2.2.0/vibedasher/api/viz/get_commit_log.py +208 -0
  217. vibedasher-2.2.0/vibedasher/api/viz/get_file.py +201 -0
  218. vibedasher-2.2.0/vibedasher/api/viz/get_public_cached_result.py +243 -0
  219. vibedasher-2.2.0/vibedasher/api/viz/get_public_viz.py +187 -0
  220. vibedasher-2.2.0/vibedasher/api/viz/get_public_viz_by_global_slug.py +187 -0
  221. vibedasher-2.2.0/vibedasher/api/viz/get_public_viz_sql_query_result.py +203 -0
  222. vibedasher-2.2.0/vibedasher/api/viz/get_public_viz_sql_query_status.py +203 -0
  223. vibedasher-2.2.0/vibedasher/api/viz/get_public_viz_sql_query_status_batch.py +214 -0
  224. vibedasher-2.2.0/vibedasher/api/viz/get_screenshot.py +173 -0
  225. vibedasher-2.2.0/vibedasher/api/viz/get_viz.py +222 -0
  226. vibedasher-2.2.0/vibedasher/api/viz/get_viz_by_slug.py +199 -0
  227. vibedasher-2.2.0/vibedasher/api/viz/list_branches.py +173 -0
  228. vibedasher-2.2.0/vibedasher/api/viz/list_tags.py +173 -0
  229. vibedasher-2.2.0/vibedasher/api/viz/list_viz.py +253 -0
  230. vibedasher-2.2.0/vibedasher/api/viz/preview_publish.py +173 -0
  231. vibedasher-2.2.0/vibedasher/api/viz/publish_viz.py +257 -0
  232. vibedasher-2.2.0/vibedasher/api/viz/put_screenshot.py +173 -0
  233. vibedasher-2.2.0/vibedasher/api/viz/run_viz_query_batch.py +220 -0
  234. vibedasher-2.2.0/vibedasher/api/viz/set_bundle_state.py +242 -0
  235. vibedasher-2.2.0/vibedasher/api/viz/squash_branch.py +209 -0
  236. vibedasher-2.2.0/vibedasher/api/viz/transfer_ownership.py +194 -0
  237. vibedasher-2.2.0/vibedasher/api/viz/unpublish_viz.py +173 -0
  238. vibedasher-2.2.0/vibedasher/api/viz/update_viz.py +234 -0
  239. vibedasher-2.2.0/vibedasher/api/viz/write_file.py +222 -0
  240. vibedasher-2.2.0/vibedasher/client.py +282 -0
  241. vibedasher-2.2.0/vibedasher/errors.py +16 -0
  242. vibedasher-2.2.0/vibedasher/factory.py +133 -0
  243. vibedasher-2.2.0/vibedasher/models/__init__.py +953 -0
  244. vibedasher-2.2.0/vibedasher/models/access_right_create.py +126 -0
  245. vibedasher-2.2.0/vibedasher/models/access_right_list_response.py +97 -0
  246. vibedasher-2.2.0/vibedasher/models/access_right_response.py +67 -0
  247. vibedasher-2.2.0/vibedasher/models/access_right_update.py +86 -0
  248. vibedasher-2.2.0/vibedasher/models/access_right_view.py +193 -0
  249. vibedasher-2.2.0/vibedasher/models/access_type.py +16 -0
  250. vibedasher-2.2.0/vibedasher/models/account.py +396 -0
  251. vibedasher-2.2.0/vibedasher/models/account_create.py +133 -0
  252. vibedasher-2.2.0/vibedasher/models/account_logo_create.py +81 -0
  253. vibedasher-2.2.0/vibedasher/models/account_logo_create_response.py +90 -0
  254. vibedasher-2.2.0/vibedasher/models/account_logo_list_response.py +76 -0
  255. vibedasher-2.2.0/vibedasher/models/account_logo_response.py +68 -0
  256. vibedasher-2.2.0/vibedasher/models/account_logo_update.py +93 -0
  257. vibedasher-2.2.0/vibedasher/models/account_logo_view.py +153 -0
  258. vibedasher-2.2.0/vibedasher/models/account_payment_methods_item.py +47 -0
  259. vibedasher-2.2.0/vibedasher/models/account_theme.py +158 -0
  260. vibedasher-2.2.0/vibedasher/models/account_update.py +328 -0
  261. vibedasher-2.2.0/vibedasher/models/ai_provider_card_info.py +103 -0
  262. vibedasher-2.2.0/vibedasher/models/ai_provider_card_info_type.py +16 -0
  263. vibedasher-2.2.0/vibedasher/models/ai_provider_model_config.py +207 -0
  264. vibedasher-2.2.0/vibedasher/models/ai_provider_model_config_user_suggestions_template_mode.py +21 -0
  265. vibedasher-2.2.0/vibedasher/models/ai_token_price.py +69 -0
  266. vibedasher-2.2.0/vibedasher/models/api_key_create.py +94 -0
  267. vibedasher-2.2.0/vibedasher/models/api_key_create_response.py +90 -0
  268. vibedasher-2.2.0/vibedasher/models/api_key_list_response.py +98 -0
  269. vibedasher-2.2.0/vibedasher/models/api_key_response.py +68 -0
  270. vibedasher-2.2.0/vibedasher/models/api_key_update.py +154 -0
  271. vibedasher-2.2.0/vibedasher/models/api_key_view.py +213 -0
  272. vibedasher-2.2.0/vibedasher/models/athena_connection_info.py +310 -0
  273. vibedasher-2.2.0/vibedasher/models/athena_query.py +61 -0
  274. vibedasher-2.2.0/vibedasher/models/auto_topup_config.py +100 -0
  275. vibedasher-2.2.0/vibedasher/models/azure_data_lake_connection_info.py +302 -0
  276. vibedasher-2.2.0/vibedasher/models/azure_data_lake_query.py +69 -0
  277. vibedasher-2.2.0/vibedasher/models/big_query_connection_info.py +121 -0
  278. vibedasher-2.2.0/vibedasher/models/big_query_connection_info_credentials_type_0.py +47 -0
  279. vibedasher-2.2.0/vibedasher/models/big_query_query.py +61 -0
  280. vibedasher-2.2.0/vibedasher/models/body.py +47 -0
  281. vibedasher-2.2.0/vibedasher/models/body_batch_write_files.py +78 -0
  282. vibedasher-2.2.0/vibedasher/models/body_create_branch.py +61 -0
  283. vibedasher-2.2.0/vibedasher/models/body_create_dataset_upload.py +69 -0
  284. vibedasher-2.2.0/vibedasher/models/body_create_sql_query.py +183 -0
  285. vibedasher-2.2.0/vibedasher/models/body_create_sql_query_batch.py +81 -0
  286. vibedasher-2.2.0/vibedasher/models/body_create_sql_query_batch_queries_item.py +47 -0
  287. vibedasher-2.2.0/vibedasher/models/body_create_sql_query_context_type_type_0.py +20 -0
  288. vibedasher-2.2.0/vibedasher/models/body_create_sql_query_mode.py +16 -0
  289. vibedasher-2.2.0/vibedasher/models/body_download_public_dataset.py +156 -0
  290. vibedasher-2.2.0/vibedasher/models/body_get_public_viz_sql_query_status_batch.py +61 -0
  291. vibedasher-2.2.0/vibedasher/models/body_run_viz_query_batch.py +79 -0
  292. vibedasher-2.2.0/vibedasher/models/body_run_viz_query_batch_queries_item.py +47 -0
  293. vibedasher-2.2.0/vibedasher/models/body_squash_branch.py +61 -0
  294. vibedasher-2.2.0/vibedasher/models/body_test_default_email_provider_config.py +61 -0
  295. vibedasher-2.2.0/vibedasher/models/body_test_email_provider_config.py +61 -0
  296. vibedasher-2.2.0/vibedasher/models/body_transfer_dataset_ownership.py +61 -0
  297. vibedasher-2.2.0/vibedasher/models/body_transfer_dbt_project_ownership.py +61 -0
  298. vibedasher-2.2.0/vibedasher/models/body_transfer_folder_ownership.py +61 -0
  299. vibedasher-2.2.0/vibedasher/models/body_transfer_ownership.py +61 -0
  300. vibedasher-2.2.0/vibedasher/models/body_update_system_provider_setting.py +61 -0
  301. vibedasher-2.2.0/vibedasher/models/body_upload_chat_image.py +73 -0
  302. vibedasher-2.2.0/vibedasher/models/body_validate_sql_query.py +69 -0
  303. vibedasher-2.2.0/vibedasher/models/body_warmup_worker.py +61 -0
  304. vibedasher-2.2.0/vibedasher/models/body_write_file.py +61 -0
  305. vibedasher-2.2.0/vibedasher/models/build_complete.py +177 -0
  306. vibedasher-2.2.0/vibedasher/models/build_create.py +122 -0
  307. vibedasher-2.2.0/vibedasher/models/bundle_state.py +290 -0
  308. vibedasher-2.2.0/vibedasher/models/bundle_state_file_hashes_type_0.py +47 -0
  309. vibedasher-2.2.0/vibedasher/models/bundle_state_status.py +19 -0
  310. vibedasher-2.2.0/vibedasher/models/bundle_state_update.py +291 -0
  311. vibedasher-2.2.0/vibedasher/models/bundle_state_update_file_hashes_type_0.py +47 -0
  312. vibedasher-2.2.0/vibedasher/models/cassandra_connection_info.py +131 -0
  313. vibedasher-2.2.0/vibedasher/models/cassandra_query.py +61 -0
  314. vibedasher-2.2.0/vibedasher/models/chat_debug_event.py +103 -0
  315. vibedasher-2.2.0/vibedasher/models/chat_debug_events_response.py +135 -0
  316. vibedasher-2.2.0/vibedasher/models/chat_debug_events_response_source.py +18 -0
  317. vibedasher-2.2.0/vibedasher/models/column.py +130 -0
  318. vibedasher-2.2.0/vibedasher/models/column_type.py +19 -0
  319. vibedasher-2.2.0/vibedasher/models/column_view.py +187 -0
  320. vibedasher-2.2.0/vibedasher/models/config_error.py +128 -0
  321. vibedasher-2.2.0/vibedasher/models/config_error_errortype.py +61 -0
  322. vibedasher-2.2.0/vibedasher/models/connection_config.py +741 -0
  323. vibedasher-2.2.0/vibedasher/models/connection_create.py +93 -0
  324. vibedasher-2.2.0/vibedasher/models/connection_dataset_config.py +414 -0
  325. vibedasher-2.2.0/vibedasher/models/connection_list_response.py +99 -0
  326. vibedasher-2.2.0/vibedasher/models/connection_metadata_update.py +104 -0
  327. vibedasher-2.2.0/vibedasher/models/connection_response.py +68 -0
  328. vibedasher-2.2.0/vibedasher/models/connection_type.py +55 -0
  329. vibedasher-2.2.0/vibedasher/models/connection_update.py +162 -0
  330. vibedasher-2.2.0/vibedasher/models/connection_view.py +183 -0
  331. vibedasher-2.2.0/vibedasher/models/connection_view_config_type_0.py +47 -0
  332. vibedasher-2.2.0/vibedasher/models/contact_form_request.py +120 -0
  333. vibedasher-2.2.0/vibedasher/models/context.py +47 -0
  334. vibedasher-2.2.0/vibedasher/models/credit_deduction.py +84 -0
  335. vibedasher-2.2.0/vibedasher/models/csv_dataset_config.py +137 -0
  336. vibedasher-2.2.0/vibedasher/models/csv_dataset_config_updatemode.py +16 -0
  337. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_create.py +173 -0
  338. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_list_response.py +100 -0
  339. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_response.py +68 -0
  340. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_update.py +280 -0
  341. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_update_filter_state_type_0.py +47 -0
  342. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_view.py +332 -0
  343. vibedasher-2.2.0/vibedasher/models/dashboard_subscription_view_filter_state_type_0.py +47 -0
  344. vibedasher-2.2.0/vibedasher/models/dataset_config.py +258 -0
  345. vibedasher-2.2.0/vibedasher/models/dataset_create.py +273 -0
  346. vibedasher-2.2.0/vibedasher/models/dataset_full_list_response.py +99 -0
  347. vibedasher-2.2.0/vibedasher/models/dataset_list_response.py +98 -0
  348. vibedasher-2.2.0/vibedasher/models/dataset_processing_status.py +21 -0
  349. vibedasher-2.2.0/vibedasher/models/dataset_response.py +68 -0
  350. vibedasher-2.2.0/vibedasher/models/dataset_schema_change.py +119 -0
  351. vibedasher-2.2.0/vibedasher/models/dataset_schema_retype.py +78 -0
  352. vibedasher-2.2.0/vibedasher/models/dataset_summary_view.py +439 -0
  353. vibedasher-2.2.0/vibedasher/models/dataset_type.py +71 -0
  354. vibedasher-2.2.0/vibedasher/models/dataset_update.py +409 -0
  355. vibedasher-2.2.0/vibedasher/models/dataset_view.py +548 -0
  356. vibedasher-2.2.0/vibedasher/models/dataset_view_config_type_0.py +47 -0
  357. vibedasher-2.2.0/vibedasher/models/dbt_column_metadata.py +82 -0
  358. vibedasher-2.2.0/vibedasher/models/dbt_materialization_type.py +21 -0
  359. vibedasher-2.2.0/vibedasher/models/dbt_model.py +297 -0
  360. vibedasher-2.2.0/vibedasher/models/dbt_model_config.py +327 -0
  361. vibedasher-2.2.0/vibedasher/models/dbt_project.py +357 -0
  362. vibedasher-2.2.0/vibedasher/models/dbt_project_config.py +164 -0
  363. vibedasher-2.2.0/vibedasher/models/dbt_project_list_response.py +76 -0
  364. vibedasher-2.2.0/vibedasher/models/dbt_project_response.py +68 -0
  365. vibedasher-2.2.0/vibedasher/models/dbt_project_view.py +331 -0
  366. vibedasher-2.2.0/vibedasher/models/dbt_project_view_config_type_0.py +47 -0
  367. vibedasher-2.2.0/vibedasher/models/dbt_run_status.py +22 -0
  368. vibedasher-2.2.0/vibedasher/models/dynamo_db_connection_info.py +146 -0
  369. vibedasher-2.2.0/vibedasher/models/dynamo_db_query.py +183 -0
  370. vibedasher-2.2.0/vibedasher/models/dynamo_db_query_expression_attribute_values_type_0.py +47 -0
  371. vibedasher-2.2.0/vibedasher/models/email_attachment_model.py +100 -0
  372. vibedasher-2.2.0/vibedasher/models/email_data.py +47 -0
  373. vibedasher-2.2.0/vibedasher/models/email_priority.py +18 -0
  374. vibedasher-2.2.0/vibedasher/models/email_provider_config_create.py +153 -0
  375. vibedasher-2.2.0/vibedasher/models/email_provider_config_update.py +200 -0
  376. vibedasher-2.2.0/vibedasher/models/email_provider_config_update_config_type_0.py +47 -0
  377. vibedasher-2.2.0/vibedasher/models/email_provider_config_view.py +279 -0
  378. vibedasher-2.2.0/vibedasher/models/email_provider_config_view_config_type_0.py +47 -0
  379. vibedasher-2.2.0/vibedasher/models/email_provider_list_response.py +98 -0
  380. vibedasher-2.2.0/vibedasher/models/email_provider_response.py +68 -0
  381. vibedasher-2.2.0/vibedasher/models/email_provider_type.py +24 -0
  382. vibedasher-2.2.0/vibedasher/models/email_send_request.py +426 -0
  383. vibedasher-2.2.0/vibedasher/models/email_send_request_custom_headers_type_0.py +47 -0
  384. vibedasher-2.2.0/vibedasher/models/email_status.py +20 -0
  385. vibedasher-2.2.0/vibedasher/models/excel_dataset_config.py +141 -0
  386. vibedasher-2.2.0/vibedasher/models/excel_dataset_config_updatemode.py +16 -0
  387. vibedasher-2.2.0/vibedasher/models/feedback_context.py +119 -0
  388. vibedasher-2.2.0/vibedasher/models/feedback_create.py +166 -0
  389. vibedasher-2.2.0/vibedasher/models/feedback_list_response.py +84 -0
  390. vibedasher-2.2.0/vibedasher/models/feedback_response.py +67 -0
  391. vibedasher-2.2.0/vibedasher/models/feedback_view.py +231 -0
  392. vibedasher-2.2.0/vibedasher/models/feedback_view_context_type_0.py +47 -0
  393. vibedasher-2.2.0/vibedasher/models/fields.py +47 -0
  394. vibedasher-2.2.0/vibedasher/models/files.py +47 -0
  395. vibedasher-2.2.0/vibedasher/models/filterstate.py +47 -0
  396. vibedasher-2.2.0/vibedasher/models/folder_create.py +100 -0
  397. vibedasher-2.2.0/vibedasher/models/folder_list_response.py +97 -0
  398. vibedasher-2.2.0/vibedasher/models/folder_response.py +67 -0
  399. vibedasher-2.2.0/vibedasher/models/folder_update.py +113 -0
  400. vibedasher-2.2.0/vibedasher/models/folder_view.py +213 -0
  401. vibedasher-2.2.0/vibedasher/models/ga_date_range.py +69 -0
  402. vibedasher-2.2.0/vibedasher/models/ga_dimension.py +61 -0
  403. vibedasher-2.2.0/vibedasher/models/ga_metric.py +83 -0
  404. vibedasher-2.2.0/vibedasher/models/ga_report_request.py +154 -0
  405. vibedasher-2.2.0/vibedasher/models/get_me_response_200_type_0.py +47 -0
  406. vibedasher-2.2.0/vibedasher/models/google_analytics_connection_info.py +106 -0
  407. vibedasher-2.2.0/vibedasher/models/google_analytics_query.py +75 -0
  408. vibedasher-2.2.0/vibedasher/models/google_cloud_storage_connection_info.py +125 -0
  409. vibedasher-2.2.0/vibedasher/models/google_cloud_storage_connection_info_credentials_type_0.py +47 -0
  410. vibedasher-2.2.0/vibedasher/models/google_cloud_storage_query.py +69 -0
  411. vibedasher-2.2.0/vibedasher/models/google_sheets_query.py +69 -0
  412. vibedasher-2.2.0/vibedasher/models/group_create.py +83 -0
  413. vibedasher-2.2.0/vibedasher/models/group_list_response.py +97 -0
  414. vibedasher-2.2.0/vibedasher/models/group_response.py +67 -0
  415. vibedasher-2.2.0/vibedasher/models/group_update.py +156 -0
  416. vibedasher-2.2.0/vibedasher/models/group_view.py +164 -0
  417. vibedasher-2.2.0/vibedasher/models/heatup_lambdas_body_type_0.py +47 -0
  418. vibedasher-2.2.0/vibedasher/models/http_validation_error.py +79 -0
  419. vibedasher-2.2.0/vibedasher/models/hubspot_connection_info.py +61 -0
  420. vibedasher-2.2.0/vibedasher/models/hubspot_params.py +156 -0
  421. vibedasher-2.2.0/vibedasher/models/hubspot_query.py +101 -0
  422. vibedasher-2.2.0/vibedasher/models/image_create.py +135 -0
  423. vibedasher-2.2.0/vibedasher/models/image_list_response.py +97 -0
  424. vibedasher-2.2.0/vibedasher/models/image_response.py +67 -0
  425. vibedasher-2.2.0/vibedasher/models/image_update.py +165 -0
  426. vibedasher-2.2.0/vibedasher/models/image_view.py +184 -0
  427. vibedasher-2.2.0/vibedasher/models/incremental_config.py +170 -0
  428. vibedasher-2.2.0/vibedasher/models/incremental_config_rolling_window_unit_type_0.py +22 -0
  429. vibedasher-2.2.0/vibedasher/models/incremental_config_strategy.py +17 -0
  430. vibedasher-2.2.0/vibedasher/models/invoke_request.py +76 -0
  431. vibedasher-2.2.0/vibedasher/models/invoke_response.py +104 -0
  432. vibedasher-2.2.0/vibedasher/models/lang.py +15 -0
  433. vibedasher-2.2.0/vibedasher/models/mailchimp_connection_info.py +69 -0
  434. vibedasher-2.2.0/vibedasher/models/mailchimp_params.py +155 -0
  435. vibedasher-2.2.0/vibedasher/models/mailchimp_query.py +101 -0
  436. vibedasher-2.2.0/vibedasher/models/marketo_connection_info.py +99 -0
  437. vibedasher-2.2.0/vibedasher/models/marketo_params.py +142 -0
  438. vibedasher-2.2.0/vibedasher/models/marketo_query.py +101 -0
  439. vibedasher-2.2.0/vibedasher/models/metadata.py +183 -0
  440. vibedasher-2.2.0/vibedasher/models/models.py +47 -0
  441. vibedasher-2.2.0/vibedasher/models/mongo_db_connection_info.py +61 -0
  442. vibedasher-2.2.0/vibedasher/models/mongo_db_query.py +168 -0
  443. vibedasher-2.2.0/vibedasher/models/mongo_db_query_filter_type_0.py +47 -0
  444. vibedasher-2.2.0/vibedasher/models/mongo_db_query_projection_type_0.py +47 -0
  445. vibedasher-2.2.0/vibedasher/models/mssql_connection_info.py +181 -0
  446. vibedasher-2.2.0/vibedasher/models/mssql_query.py +61 -0
  447. vibedasher-2.2.0/vibedasher/models/my_sql_connection_info.py +268 -0
  448. vibedasher-2.2.0/vibedasher/models/my_sql_query.py +61 -0
  449. vibedasher-2.2.0/vibedasher/models/needs_review.py +129 -0
  450. vibedasher-2.2.0/vibedasher/models/needs_review_confidence.py +16 -0
  451. vibedasher-2.2.0/vibedasher/models/newsletter_subscribe_request.py +84 -0
  452. vibedasher-2.2.0/vibedasher/models/notification_list_response.py +97 -0
  453. vibedasher-2.2.0/vibedasher/models/notification_response.py +67 -0
  454. vibedasher-2.2.0/vibedasher/models/notification_view.py +215 -0
  455. vibedasher-2.2.0/vibedasher/models/oracle_connection_info.py +201 -0
  456. vibedasher-2.2.0/vibedasher/models/oracle_query.py +61 -0
  457. vibedasher-2.2.0/vibedasher/models/payload.py +47 -0
  458. vibedasher-2.2.0/vibedasher/models/permission_type.py +18 -0
  459. vibedasher-2.2.0/vibedasher/models/pk_compaction_request.py +62 -0
  460. vibedasher-2.2.0/vibedasher/models/postgres_connection_info.py +279 -0
  461. vibedasher-2.2.0/vibedasher/models/postgres_query.py +61 -0
  462. vibedasher-2.2.0/vibedasher/models/principal_type.py +16 -0
  463. vibedasher-2.2.0/vibedasher/models/provider_data.py +47 -0
  464. vibedasher-2.2.0/vibedasher/models/public_dataset_config.py +163 -0
  465. vibedasher-2.2.0/vibedasher/models/publish_body.py +232 -0
  466. vibedasher-2.2.0/vibedasher/models/publish_status.py +18 -0
  467. vibedasher-2.2.0/vibedasher/models/question_create.py +234 -0
  468. vibedasher-2.2.0/vibedasher/models/question_default_viz.py +156 -0
  469. vibedasher-2.2.0/vibedasher/models/question_default_viz_config_type_0.py +47 -0
  470. vibedasher-2.2.0/vibedasher/models/question_execute_body.py +108 -0
  471. vibedasher-2.2.0/vibedasher/models/question_execute_body_params_type_0.py +47 -0
  472. vibedasher-2.2.0/vibedasher/models/question_list_response.py +98 -0
  473. vibedasher-2.2.0/vibedasher/models/question_parameter.py +125 -0
  474. vibedasher-2.2.0/vibedasher/models/question_parameter_type.py +20 -0
  475. vibedasher-2.2.0/vibedasher/models/question_response.py +68 -0
  476. vibedasher-2.2.0/vibedasher/models/question_summary_view.py +334 -0
  477. vibedasher-2.2.0/vibedasher/models/question_update.py +287 -0
  478. vibedasher-2.2.0/vibedasher/models/question_validate_sql_body.py +102 -0
  479. vibedasher-2.2.0/vibedasher/models/question_view.py +420 -0
  480. vibedasher-2.2.0/vibedasher/models/question_viz_dimension.py +70 -0
  481. vibedasher-2.2.0/vibedasher/models/question_viz_measure.py +92 -0
  482. vibedasher-2.2.0/vibedasher/models/redshift_connection_info.py +181 -0
  483. vibedasher-2.2.0/vibedasher/models/redshift_query.py +61 -0
  484. vibedasher-2.2.0/vibedasher/models/refresh_checkpoint.py +163 -0
  485. vibedasher-2.2.0/vibedasher/models/refresh_checkpoint_watermarktype.py +19 -0
  486. vibedasher-2.2.0/vibedasher/models/refresh_create.py +119 -0
  487. vibedasher-2.2.0/vibedasher/models/refresh_list_response.py +97 -0
  488. vibedasher-2.2.0/vibedasher/models/refresh_request.py +87 -0
  489. vibedasher-2.2.0/vibedasher/models/refresh_request_mode_type_0.py +16 -0
  490. vibedasher-2.2.0/vibedasher/models/refresh_response.py +67 -0
  491. vibedasher-2.2.0/vibedasher/models/refresh_update.py +164 -0
  492. vibedasher-2.2.0/vibedasher/models/refresh_view.py +253 -0
  493. vibedasher-2.2.0/vibedasher/models/repartition_mode.py +16 -0
  494. vibedasher-2.2.0/vibedasher/models/repartition_request.py +93 -0
  495. vibedasher-2.2.0/vibedasher/models/request_body.py +47 -0
  496. vibedasher-2.2.0/vibedasher/models/resource_type.py +19 -0
  497. vibedasher-2.2.0/vibedasher/models/response_batch_write_files.py +47 -0
  498. vibedasher-2.2.0/vibedasher/models/response_check_account_slug_exists.py +47 -0
  499. vibedasher-2.2.0/vibedasher/models/response_check_email_availability.py +47 -0
  500. vibedasher-2.2.0/vibedasher/models/response_check_folder_image_exists.py +47 -0
  501. vibedasher-2.2.0/vibedasher/models/response_check_slug_available.py +47 -0
  502. vibedasher-2.2.0/vibedasher/models/response_cleanup_expired_sql_queries.py +47 -0
  503. vibedasher-2.2.0/vibedasher/models/response_cleanup_stale_sources.py +47 -0
  504. vibedasher-2.2.0/vibedasher/models/response_clone_template.py +47 -0
  505. vibedasher-2.2.0/vibedasher/models/response_compile_project.py +47 -0
  506. vibedasher-2.2.0/vibedasher/models/response_confirm_screenshot.py +47 -0
  507. vibedasher-2.2.0/vibedasher/models/response_create_account.py +60 -0
  508. vibedasher-2.2.0/vibedasher/models/response_create_branch.py +47 -0
  509. vibedasher-2.2.0/vibedasher/models/response_create_dataset_upload.py +47 -0
  510. vibedasher-2.2.0/vibedasher/models/response_create_model.py +47 -0
  511. vibedasher-2.2.0/vibedasher/models/response_create_project_refresh.py +47 -0
  512. vibedasher-2.2.0/vibedasher/models/response_create_sql_query.py +47 -0
  513. vibedasher-2.2.0/vibedasher/models/response_create_sql_query_batch.py +47 -0
  514. vibedasher-2.2.0/vibedasher/models/response_create_task.py +47 -0
  515. vibedasher-2.2.0/vibedasher/models/response_create_template.py +47 -0
  516. vibedasher-2.2.0/vibedasher/models/response_create_user_provider.py +47 -0
  517. vibedasher-2.2.0/vibedasher/models/response_delete_account_logo.py +47 -0
  518. vibedasher-2.2.0/vibedasher/models/response_delete_api_key.py +47 -0
  519. vibedasher-2.2.0/vibedasher/models/response_delete_chat.py +47 -0
  520. vibedasher-2.2.0/vibedasher/models/response_delete_connection.py +47 -0
  521. vibedasher-2.2.0/vibedasher/models/response_delete_credential.py +47 -0
  522. vibedasher-2.2.0/vibedasher/models/response_delete_dataset.py +47 -0
  523. vibedasher-2.2.0/vibedasher/models/response_delete_file.py +47 -0
  524. vibedasher-2.2.0/vibedasher/models/response_delete_folder.py +47 -0
  525. vibedasher-2.2.0/vibedasher/models/response_delete_folder_image.py +47 -0
  526. vibedasher-2.2.0/vibedasher/models/response_delete_group.py +47 -0
  527. vibedasher-2.2.0/vibedasher/models/response_delete_image.py +47 -0
  528. vibedasher-2.2.0/vibedasher/models/response_delete_question.py +47 -0
  529. vibedasher-2.2.0/vibedasher/models/response_delete_refresh.py +47 -0
  530. vibedasher-2.2.0/vibedasher/models/response_delete_sql_query.py +47 -0
  531. vibedasher-2.2.0/vibedasher/models/response_delete_subscription.py +47 -0
  532. vibedasher-2.2.0/vibedasher/models/response_delete_task.py +47 -0
  533. vibedasher-2.2.0/vibedasher/models/response_delete_template.py +47 -0
  534. vibedasher-2.2.0/vibedasher/models/response_delete_user_provider.py +47 -0
  535. vibedasher-2.2.0/vibedasher/models/response_exchange_google_analytics_oauth_code.py +47 -0
  536. vibedasher-2.2.0/vibedasher/models/response_execute_question.py +47 -0
  537. vibedasher-2.2.0/vibedasher/models/response_get_account.py +60 -0
  538. vibedasher-2.2.0/vibedasher/models/response_get_account_logo.py +47 -0
  539. vibedasher-2.2.0/vibedasher/models/response_get_branch.py +47 -0
  540. vibedasher-2.2.0/vibedasher/models/response_get_branch_files.py +47 -0
  541. vibedasher-2.2.0/vibedasher/models/response_get_chat.py +47 -0
  542. vibedasher-2.2.0/vibedasher/models/response_get_commit_log.py +47 -0
  543. vibedasher-2.2.0/vibedasher/models/response_get_connection_schema.py +47 -0
  544. vibedasher-2.2.0/vibedasher/models/response_get_connection_tables.py +47 -0
  545. vibedasher-2.2.0/vibedasher/models/response_get_current_subscription.py +47 -0
  546. vibedasher-2.2.0/vibedasher/models/response_get_dataset_iceberg_metadata.py +47 -0
  547. vibedasher-2.2.0/vibedasher/models/response_get_dataset_lineage.py +47 -0
  548. vibedasher-2.2.0/vibedasher/models/response_get_dataset_upload.py +47 -0
  549. vibedasher-2.2.0/vibedasher/models/response_get_dataset_upload_download_url.py +47 -0
  550. vibedasher-2.2.0/vibedasher/models/response_get_dataset_upload_sizes.py +47 -0
  551. vibedasher-2.2.0/vibedasher/models/response_get_datasets_catalog.py +47 -0
  552. vibedasher-2.2.0/vibedasher/models/response_get_enabled_public_dataset_sources.py +47 -0
  553. vibedasher-2.2.0/vibedasher/models/response_get_file.py +47 -0
  554. vibedasher-2.2.0/vibedasher/models/response_get_lineage.py +47 -0
  555. vibedasher-2.2.0/vibedasher/models/response_get_model_flat.py +47 -0
  556. vibedasher-2.2.0/vibedasher/models/response_get_provider.py +47 -0
  557. vibedasher-2.2.0/vibedasher/models/response_get_public_dataset_suggestions.py +47 -0
  558. vibedasher-2.2.0/vibedasher/models/response_get_public_viz.py +47 -0
  559. vibedasher-2.2.0/vibedasher/models/response_get_public_viz_by_global_slug.py +47 -0
  560. vibedasher-2.2.0/vibedasher/models/response_get_public_viz_sql_query_result.py +47 -0
  561. vibedasher-2.2.0/vibedasher/models/response_get_public_viz_sql_query_status.py +47 -0
  562. vibedasher-2.2.0/vibedasher/models/response_get_public_viz_sql_query_status_batch.py +47 -0
  563. vibedasher-2.2.0/vibedasher/models/response_get_question_bundle.py +47 -0
  564. vibedasher-2.2.0/vibedasher/models/response_get_run.py +47 -0
  565. vibedasher-2.2.0/vibedasher/models/response_get_screenshot.py +47 -0
  566. vibedasher-2.2.0/vibedasher/models/response_get_sql_query_result.py +47 -0
  567. vibedasher-2.2.0/vibedasher/models/response_get_system_provider_setting.py +47 -0
  568. vibedasher-2.2.0/vibedasher/models/response_get_table_schema.py +47 -0
  569. vibedasher-2.2.0/vibedasher/models/response_get_template.py +47 -0
  570. vibedasher-2.2.0/vibedasher/models/response_get_user_provider.py +47 -0
  571. vibedasher-2.2.0/vibedasher/models/response_heatup_lambdas.py +47 -0
  572. vibedasher-2.2.0/vibedasher/models/response_increment_template_usage.py +47 -0
  573. vibedasher-2.2.0/vibedasher/models/response_list_all_providers.py +47 -0
  574. vibedasher-2.2.0/vibedasher/models/response_list_branches.py +47 -0
  575. vibedasher-2.2.0/vibedasher/models/response_list_chats.py +47 -0
  576. vibedasher-2.2.0/vibedasher/models/response_list_dataset_uploads.py +47 -0
  577. vibedasher-2.2.0/vibedasher/models/response_list_models.py +47 -0
  578. vibedasher-2.2.0/vibedasher/models/response_list_project_refreshes.py +47 -0
  579. vibedasher-2.2.0/vibedasher/models/response_list_public_templates.py +47 -0
  580. vibedasher-2.2.0/vibedasher/models/response_list_runs.py +47 -0
  581. vibedasher-2.2.0/vibedasher/models/response_list_subscriptions.py +47 -0
  582. vibedasher-2.2.0/vibedasher/models/response_list_tags.py +47 -0
  583. vibedasher-2.2.0/vibedasher/models/response_list_templates.py +47 -0
  584. vibedasher-2.2.0/vibedasher/models/response_list_user_providers.py +47 -0
  585. vibedasher-2.2.0/vibedasher/models/response_load_dataset_upload.py +47 -0
  586. vibedasher-2.2.0/vibedasher/models/response_match_templates.py +47 -0
  587. vibedasher-2.2.0/vibedasher/models/response_preview_publish.py +47 -0
  588. vibedasher-2.2.0/vibedasher/models/response_publish_viz.py +47 -0
  589. vibedasher-2.2.0/vibedasher/models/response_put_account_logo.py +47 -0
  590. vibedasher-2.2.0/vibedasher/models/response_put_folder_image.py +47 -0
  591. vibedasher-2.2.0/vibedasher/models/response_put_screenshot.py +47 -0
  592. vibedasher-2.2.0/vibedasher/models/response_read_task.py +47 -0
  593. vibedasher-2.2.0/vibedasher/models/response_read_tasks.py +47 -0
  594. vibedasher-2.2.0/vibedasher/models/response_read_viz_tasks.py +47 -0
  595. vibedasher-2.2.0/vibedasher/models/response_refresh_dataset.py +47 -0
  596. vibedasher-2.2.0/vibedasher/models/response_repartition_dataset.py +47 -0
  597. vibedasher-2.2.0/vibedasher/models/response_resend_email_verification.py +47 -0
  598. vibedasher-2.2.0/vibedasher/models/response_reset_checkpoint.py +47 -0
  599. vibedasher-2.2.0/vibedasher/models/response_retry_public_dataset_download.py +47 -0
  600. vibedasher-2.2.0/vibedasher/models/response_run_project.py +47 -0
  601. vibedasher-2.2.0/vibedasher/models/response_run_viz_query.py +47 -0
  602. vibedasher-2.2.0/vibedasher/models/response_run_viz_query_batch.py +47 -0
  603. vibedasher-2.2.0/vibedasher/models/response_search_public_datasets.py +47 -0
  604. vibedasher-2.2.0/vibedasher/models/response_send_email_verification_code.py +47 -0
  605. vibedasher-2.2.0/vibedasher/models/response_set_bundle_state.py +47 -0
  606. vibedasher-2.2.0/vibedasher/models/response_set_primary_keys.py +47 -0
  607. vibedasher-2.2.0/vibedasher/models/response_squash_branch.py +47 -0
  608. vibedasher-2.2.0/vibedasher/models/response_sync_model_sources.py +47 -0
  609. vibedasher-2.2.0/vibedasher/models/response_test_connection.py +47 -0
  610. vibedasher-2.2.0/vibedasher/models/response_test_credential.py +47 -0
  611. vibedasher-2.2.0/vibedasher/models/response_test_provider_connection.py +47 -0
  612. vibedasher-2.2.0/vibedasher/models/response_test_subscription.py +47 -0
  613. vibedasher-2.2.0/vibedasher/models/response_track_chat_location.py +47 -0
  614. vibedasher-2.2.0/vibedasher/models/response_transfer_dataset_ownership.py +47 -0
  615. vibedasher-2.2.0/vibedasher/models/response_transfer_dbt_project_ownership.py +47 -0
  616. vibedasher-2.2.0/vibedasher/models/response_transfer_folder_ownership.py +47 -0
  617. vibedasher-2.2.0/vibedasher/models/response_transfer_ownership.py +47 -0
  618. vibedasher-2.2.0/vibedasher/models/response_trigger_project_refresh.py +47 -0
  619. vibedasher-2.2.0/vibedasher/models/response_unpublish_viz.py +47 -0
  620. vibedasher-2.2.0/vibedasher/models/response_update_account.py +60 -0
  621. vibedasher-2.2.0/vibedasher/models/response_update_model_flat.py +47 -0
  622. vibedasher-2.2.0/vibedasher/models/response_update_system_provider_setting.py +47 -0
  623. vibedasher-2.2.0/vibedasher/models/response_update_task.py +47 -0
  624. vibedasher-2.2.0/vibedasher/models/response_update_template.py +47 -0
  625. vibedasher-2.2.0/vibedasher/models/response_update_tool_result.py +47 -0
  626. vibedasher-2.2.0/vibedasher/models/response_update_user_provider.py +47 -0
  627. vibedasher-2.2.0/vibedasher/models/response_upload_chat_image.py +47 -0
  628. vibedasher-2.2.0/vibedasher/models/response_validate_connection_query.py +47 -0
  629. vibedasher-2.2.0/vibedasher/models/response_validate_question_sql.py +47 -0
  630. vibedasher-2.2.0/vibedasher/models/response_validate_sql_query.py +47 -0
  631. vibedasher-2.2.0/vibedasher/models/response_warmup_worker.py +47 -0
  632. vibedasher-2.2.0/vibedasher/models/response_write_file.py +47 -0
  633. vibedasher-2.2.0/vibedasher/models/salesforce_connection_info.py +111 -0
  634. vibedasher-2.2.0/vibedasher/models/salesforce_query.py +61 -0
  635. vibedasher-2.2.0/vibedasher/models/sap_connection_info.py +93 -0
  636. vibedasher-2.2.0/vibedasher/models/sap_params.py +52 -0
  637. vibedasher-2.2.0/vibedasher/models/sap_query.py +101 -0
  638. vibedasher-2.2.0/vibedasher/models/setup_session_request.py +74 -0
  639. vibedasher-2.2.0/vibedasher/models/snowflake_connection_info.py +267 -0
  640. vibedasher-2.2.0/vibedasher/models/snowflake_connection_info_session_parameters_type_0.py +47 -0
  641. vibedasher-2.2.0/vibedasher/models/snowflake_query.py +61 -0
  642. vibedasher-2.2.0/vibedasher/models/sql_dataset_config.py +130 -0
  643. vibedasher-2.2.0/vibedasher/models/sql_dataset_config_refreshmode.py +16 -0
  644. vibedasher-2.2.0/vibedasher/models/sql_query_list_response.py +98 -0
  645. vibedasher-2.2.0/vibedasher/models/sql_query_response.py +68 -0
  646. vibedasher-2.2.0/vibedasher/models/sql_query_update.py +128 -0
  647. vibedasher-2.2.0/vibedasher/models/sql_query_update_status_type_0.py +18 -0
  648. vibedasher-2.2.0/vibedasher/models/sql_query_view.py +312 -0
  649. vibedasher-2.2.0/vibedasher/models/sql_query_view_args_type_0.py +47 -0
  650. vibedasher-2.2.0/vibedasher/models/subscription_channel.py +16 -0
  651. vibedasher-2.2.0/vibedasher/models/subscription_format.py +16 -0
  652. vibedasher-2.2.0/vibedasher/models/task_update.py +151 -0
  653. vibedasher-2.2.0/vibedasher/models/task_update_config_type_0.py +47 -0
  654. vibedasher-2.2.0/vibedasher/models/template_create.py +532 -0
  655. vibedasher-2.2.0/vibedasher/models/template_create_component_config_type_0.py +47 -0
  656. vibedasher-2.2.0/vibedasher/models/template_create_dashboard_config_type_0.py +47 -0
  657. vibedasher-2.2.0/vibedasher/models/template_create_layout_config_type_0.py +47 -0
  658. vibedasher-2.2.0/vibedasher/models/template_create_layout_type_0.py +47 -0
  659. vibedasher-2.2.0/vibedasher/models/template_match_request.py +164 -0
  660. vibedasher-2.2.0/vibedasher/models/template_update.py +722 -0
  661. vibedasher-2.2.0/vibedasher/models/template_update_component_config_type_0.py +47 -0
  662. vibedasher-2.2.0/vibedasher/models/template_update_dashboard_config_type_0.py +47 -0
  663. vibedasher-2.2.0/vibedasher/models/template_update_layout_config_type_0.py +47 -0
  664. vibedasher-2.2.0/vibedasher/models/template_update_layout_type_0.py +47 -0
  665. vibedasher-2.2.0/vibedasher/models/theme_colors.py +89 -0
  666. vibedasher-2.2.0/vibedasher/models/topup_amount_request.py +84 -0
  667. vibedasher-2.2.0/vibedasher/models/topup_request.py +104 -0
  668. vibedasher-2.2.0/vibedasher/models/upload_file_folder.py +16 -0
  669. vibedasher-2.2.0/vibedasher/models/usage_type.py +31 -0
  670. vibedasher-2.2.0/vibedasher/models/user_ai_config.py +158 -0
  671. vibedasher-2.2.0/vibedasher/models/user_ai_credential_create.py +146 -0
  672. vibedasher-2.2.0/vibedasher/models/user_ai_credential_create_headers_type_0.py +47 -0
  673. vibedasher-2.2.0/vibedasher/models/user_ai_credential_list_response.py +76 -0
  674. vibedasher-2.2.0/vibedasher/models/user_ai_credential_response.py +68 -0
  675. vibedasher-2.2.0/vibedasher/models/user_ai_credential_update.py +180 -0
  676. vibedasher-2.2.0/vibedasher/models/user_ai_credential_update_headers_type_0.py +47 -0
  677. vibedasher-2.2.0/vibedasher/models/user_ai_credential_view.py +239 -0
  678. vibedasher-2.2.0/vibedasher/models/user_ai_credential_view_headers_type_0.py +47 -0
  679. vibedasher-2.2.0/vibedasher/models/user_ai_model.py +156 -0
  680. vibedasher-2.2.0/vibedasher/models/user_ai_provider_create.py +220 -0
  681. vibedasher-2.2.0/vibedasher/models/user_ai_provider_update.py +275 -0
  682. vibedasher-2.2.0/vibedasher/models/user_create.py +517 -0
  683. vibedasher-2.2.0/vibedasher/models/user_list_response.py +98 -0
  684. vibedasher-2.2.0/vibedasher/models/user_response.py +68 -0
  685. vibedasher-2.2.0/vibedasher/models/user_role.py +15 -0
  686. vibedasher-2.2.0/vibedasher/models/user_update.py +462 -0
  687. vibedasher-2.2.0/vibedasher/models/user_view.py +449 -0
  688. vibedasher-2.2.0/vibedasher/models/validation_error.py +123 -0
  689. vibedasher-2.2.0/vibedasher/models/view_mode.py +15 -0
  690. vibedasher-2.2.0/vibedasher/models/viz_create.py +439 -0
  691. vibedasher-2.2.0/vibedasher/models/viz_create_component_config_type_0.py +47 -0
  692. vibedasher-2.2.0/vibedasher/models/viz_create_dashboard_config_type_0.py +47 -0
  693. vibedasher-2.2.0/vibedasher/models/viz_create_date_configs_item.py +47 -0
  694. vibedasher-2.2.0/vibedasher/models/viz_create_dimension_configs_item.py +47 -0
  695. vibedasher-2.2.0/vibedasher/models/viz_create_filter_configs_item.py +47 -0
  696. vibedasher-2.2.0/vibedasher/models/viz_create_measure_configs_item.py +47 -0
  697. vibedasher-2.2.0/vibedasher/models/viz_list_response.py +98 -0
  698. vibedasher-2.2.0/vibedasher/models/viz_response.py +68 -0
  699. vibedasher-2.2.0/vibedasher/models/viz_summary_view.py +462 -0
  700. vibedasher-2.2.0/vibedasher/models/viz_update.py +227 -0
  701. vibedasher-2.2.0/vibedasher/models/viz_view.py +656 -0
  702. vibedasher-2.2.0/vibedasher/models/viz_view_files_type_0.py +47 -0
  703. vibedasher-2.2.0/vibedasher/types.py +54 -0
@@ -0,0 +1,5 @@
1
+ dist/
2
+ build/
3
+ *.egg-info/
4
+ __pycache__/
5
+ *.pyc
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: vibedasher
3
+ Version: 2.2.0
4
+ Summary: Official Python SDK for the Vibedasher API.
5
+ Project-URL: Homepage, https://vibedasher.com
6
+ Project-URL: Source, https://github.com/JulienGdnr/vibedasher
7
+ Author: Vibedasher
8
+ License: MIT
9
+ Keywords: analytics,api,bi,dashboards,sdk,vibedasher
10
+ Requires-Python: >=3.9
11
+ Requires-Dist: attrs>=22.2.0
12
+ Requires-Dist: httpx<0.29.0,>=0.23.0
13
+ Requires-Dist: msgpack>=1.0.0
14
+ Requires-Dist: python-dateutil>=2.8.0
15
+ Description-Content-Type: text/markdown
16
+
17
+ # vibedasher — Python SDK
18
+
19
+ Official Python SDK for the [Vibedasher](https://vibedasher.com) headless data
20
+ engine. The method you'll use most is `client.query(...)` — it runs SQL across your
21
+ **managed datasets** and returns **typed rows**, so you can render a dashboard
22
+ natively from your own backend.
23
+
24
+ ## Install
25
+
26
+ ```bash
27
+ pip install vibedasher
28
+ ```
29
+
30
+ ## Headless / eject — start here
31
+
32
+ Vibedasher hosts the data engine (ETL, datasets, query); **you own the frontend/app**.
33
+ You author a dashboard in Vibedasher, eject its code, and wire it to the engine with
34
+ a single call:
35
+
36
+ ```python
37
+ from vibedasher import Vibedasher
38
+
39
+ # Server-side (API key held on your server, never shipped to a browser).
40
+ client = Vibedasher(api_key="sk_...", region="eu-central-1")
41
+
42
+ result = client.query(
43
+ sql="SELECT region, AVG(lead_price_usd) AS avg_price FROM sales GROUP BY region",
44
+ params={"region": "Caribe"}, # bound/escaped server-side, never interpolated
45
+ )
46
+
47
+ for col in result.columns:
48
+ print(col.name, col.type) # e.g. region string / avg_price number
49
+ for row in result.rows:
50
+ print(row["region"], row["avg_price"])
51
+ ```
52
+
53
+ - **`dataset_ids` is optional (plural).** Omit it and the server infers the dataset
54
+ set from the aliases your `sql` references. Pass it to pin an exact set explicitly:
55
+ `client.query(sql=..., dataset_ids=[12, 47], params=...)` — each id resolves
56
+ server-side to that dataset's alias under RLS, and a dataset not in the set is
57
+ rejected (deny-don't-drop). A mistyped/unknown alias raises
58
+ `400 query_dataset_unresolved`.
59
+ - **`sql` is inline and alias-only** — it references dataset aliases, never a
60
+ physical table.
61
+ - **Results are typed columnar** — `result.columns` are `QueryColumn(name, type)`
62
+ with `type` ∈ `string | number | boolean | date | timestamp | json`, and
63
+ `result.rows` are dicts keyed by column name.
64
+ - **Transport is hidden** — inline vs presigned object storage, MessagePack
65
+ decoding, and transient retries all happen inside `query()`. One call in, typed
66
+ rows out.
67
+
68
+ > `query()` is the one hand-written method (`_query.py`); everything else is
69
+ > generated (see below).
70
+
71
+ ### Where the query runs: `type="wasm"`
72
+
73
+ By default the server executes your SQL and returns rows. Pass `type="wasm"` to
74
+ get a **plan** instead — the injected SQL plus one presigned Parquet per dataset —
75
+ and execute it yourself (in DuckDB-WASM in a browser, or plain DuckDB locally):
76
+
77
+ ```python
78
+ result = client.query(sql="SELECT region, COUNT(*) FROM sales GROUP BY region", type="wasm")
79
+
80
+ if result.mode == "wasm":
81
+ for src in result.plan.sources:
82
+ print(src.alias, src.url, src.bytes) # register each under `alias`
83
+ print(result.plan.sql) # then run this
84
+ else:
85
+ print(result.rows, result.fallback_reason) # ran server-side, and why
86
+ ```
87
+
88
+ **Authorization does not move.** The server still authorizes, validates
89
+ alias-only SQL, and injects row filters — in that order, *before* the capability
90
+ check. Asking for wasm skips no gate; you get a plan only for data you were
91
+ already allowed to read.
92
+
93
+ **Asking for wasm does not guarantee getting it.** If any participating dataset
94
+ isn't wasm-capable — no current extract, an extract over the size cap, or a
95
+ mandatory row-level filter — the query runs server-side and the response says so
96
+ via `mode: "backend"` and a `fallback_reason`. It is never a silent downgrade, so
97
+ **always branch on `result.mode`, never on what you requested.**
98
+
99
+ `VibedasherEmbedClient` (scoped-token) has no wasm lane and raises `ValueError`
100
+ rather than quietly serving rows.
101
+
102
+ ### Embed vs eject
103
+
104
+ - **Embed (iframe, zero-code):** paste a snippet; we host and render. Nothing to build.
105
+ - **Eject (this SDK, own-your-code):** pull the dashboard's code into your stack and
106
+ feed it data via `client.query(...)`. Your app owns the rendering; only the data
107
+ crosses the wire. See a runnable host app in `examples/nextjs-embed` (TS), the
108
+ same contract as here.
109
+
110
+ ### Client-side (no backend) auth
111
+
112
+ For a pure-frontend app, mint a short-TTL **scoped token** and use the same method
113
+ via the token-pinned client:
114
+
115
+ ```python
116
+ from vibedasher import VibedasherEmbedClient
117
+
118
+ client = VibedasherEmbedClient(token=scoped_token, region="eu-central-1")
119
+ result = client.query(sql=sql, params=params)
120
+ # The token pins the viz + datasets — dataset_ids are accepted for symmetry but the
121
+ # server enforces the token's bound set.
122
+ ```
123
+
124
+ ## Everything else: resource operations (generated)
125
+
126
+ Datasets, uploads, viz metadata, API keys, etc. are generated from the OpenAPI spec:
127
+
128
+ ```python
129
+ from vibedasher.factory import create_client
130
+ from vibedasher.api.datasets import read_datasets_v1_datasets_get
131
+
132
+ client = create_client(api_key="sk_...", region="eu-central-1")
133
+ # Each operation lives under vibedasher.api.<tag>.<operation_id> and exposes
134
+ # .sync(), .sync_detailed(), .asyncio(), .asyncio_detailed().
135
+ datasets = read_datasets_v1_datasets_get.sync(client=client)
136
+ ```
137
+
138
+ Auth is an API key sent as `X-Api-Key` (mint one via `POST /v1/api-keys`).
139
+
140
+ ## Layout
141
+
142
+ - `vibedasher/_query.py` — the hand-written `query()` (transport, decode, retry, typed rows).
143
+ - `vibedasher/api/<tag>/<operation>.py` — one module per API operation.
144
+ - `vibedasher/models/` — request/response models (attrs classes).
145
+ - `vibedasher/factory.py` — `create_client(api_key, region=..., base_url=...)`.
146
+
147
+ > **Generated code** — do not edit `vibedasher/` by hand. Regenerate with `make py`
148
+ > from `packages/sdk/`. Source of truth: `../openapi.json`. `query()` is the
149
+ > deliberate exception — hand-written and re-copied after each generation.
@@ -0,0 +1,133 @@
1
+ # vibedasher — Python SDK
2
+
3
+ Official Python SDK for the [Vibedasher](https://vibedasher.com) headless data
4
+ engine. The method you'll use most is `client.query(...)` — it runs SQL across your
5
+ **managed datasets** and returns **typed rows**, so you can render a dashboard
6
+ natively from your own backend.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pip install vibedasher
12
+ ```
13
+
14
+ ## Headless / eject — start here
15
+
16
+ Vibedasher hosts the data engine (ETL, datasets, query); **you own the frontend/app**.
17
+ You author a dashboard in Vibedasher, eject its code, and wire it to the engine with
18
+ a single call:
19
+
20
+ ```python
21
+ from vibedasher import Vibedasher
22
+
23
+ # Server-side (API key held on your server, never shipped to a browser).
24
+ client = Vibedasher(api_key="sk_...", region="eu-central-1")
25
+
26
+ result = client.query(
27
+ sql="SELECT region, AVG(lead_price_usd) AS avg_price FROM sales GROUP BY region",
28
+ params={"region": "Caribe"}, # bound/escaped server-side, never interpolated
29
+ )
30
+
31
+ for col in result.columns:
32
+ print(col.name, col.type) # e.g. region string / avg_price number
33
+ for row in result.rows:
34
+ print(row["region"], row["avg_price"])
35
+ ```
36
+
37
+ - **`dataset_ids` is optional (plural).** Omit it and the server infers the dataset
38
+ set from the aliases your `sql` references. Pass it to pin an exact set explicitly:
39
+ `client.query(sql=..., dataset_ids=[12, 47], params=...)` — each id resolves
40
+ server-side to that dataset's alias under RLS, and a dataset not in the set is
41
+ rejected (deny-don't-drop). A mistyped/unknown alias raises
42
+ `400 query_dataset_unresolved`.
43
+ - **`sql` is inline and alias-only** — it references dataset aliases, never a
44
+ physical table.
45
+ - **Results are typed columnar** — `result.columns` are `QueryColumn(name, type)`
46
+ with `type` ∈ `string | number | boolean | date | timestamp | json`, and
47
+ `result.rows` are dicts keyed by column name.
48
+ - **Transport is hidden** — inline vs presigned object storage, MessagePack
49
+ decoding, and transient retries all happen inside `query()`. One call in, typed
50
+ rows out.
51
+
52
+ > `query()` is the one hand-written method (`_query.py`); everything else is
53
+ > generated (see below).
54
+
55
+ ### Where the query runs: `type="wasm"`
56
+
57
+ By default the server executes your SQL and returns rows. Pass `type="wasm"` to
58
+ get a **plan** instead — the injected SQL plus one presigned Parquet per dataset —
59
+ and execute it yourself (in DuckDB-WASM in a browser, or plain DuckDB locally):
60
+
61
+ ```python
62
+ result = client.query(sql="SELECT region, COUNT(*) FROM sales GROUP BY region", type="wasm")
63
+
64
+ if result.mode == "wasm":
65
+ for src in result.plan.sources:
66
+ print(src.alias, src.url, src.bytes) # register each under `alias`
67
+ print(result.plan.sql) # then run this
68
+ else:
69
+ print(result.rows, result.fallback_reason) # ran server-side, and why
70
+ ```
71
+
72
+ **Authorization does not move.** The server still authorizes, validates
73
+ alias-only SQL, and injects row filters — in that order, *before* the capability
74
+ check. Asking for wasm skips no gate; you get a plan only for data you were
75
+ already allowed to read.
76
+
77
+ **Asking for wasm does not guarantee getting it.** If any participating dataset
78
+ isn't wasm-capable — no current extract, an extract over the size cap, or a
79
+ mandatory row-level filter — the query runs server-side and the response says so
80
+ via `mode: "backend"` and a `fallback_reason`. It is never a silent downgrade, so
81
+ **always branch on `result.mode`, never on what you requested.**
82
+
83
+ `VibedasherEmbedClient` (scoped-token) has no wasm lane and raises `ValueError`
84
+ rather than quietly serving rows.
85
+
86
+ ### Embed vs eject
87
+
88
+ - **Embed (iframe, zero-code):** paste a snippet; we host and render. Nothing to build.
89
+ - **Eject (this SDK, own-your-code):** pull the dashboard's code into your stack and
90
+ feed it data via `client.query(...)`. Your app owns the rendering; only the data
91
+ crosses the wire. See a runnable host app in `examples/nextjs-embed` (TS), the
92
+ same contract as here.
93
+
94
+ ### Client-side (no backend) auth
95
+
96
+ For a pure-frontend app, mint a short-TTL **scoped token** and use the same method
97
+ via the token-pinned client:
98
+
99
+ ```python
100
+ from vibedasher import VibedasherEmbedClient
101
+
102
+ client = VibedasherEmbedClient(token=scoped_token, region="eu-central-1")
103
+ result = client.query(sql=sql, params=params)
104
+ # The token pins the viz + datasets — dataset_ids are accepted for symmetry but the
105
+ # server enforces the token's bound set.
106
+ ```
107
+
108
+ ## Everything else: resource operations (generated)
109
+
110
+ Datasets, uploads, viz metadata, API keys, etc. are generated from the OpenAPI spec:
111
+
112
+ ```python
113
+ from vibedasher.factory import create_client
114
+ from vibedasher.api.datasets import read_datasets_v1_datasets_get
115
+
116
+ client = create_client(api_key="sk_...", region="eu-central-1")
117
+ # Each operation lives under vibedasher.api.<tag>.<operation_id> and exposes
118
+ # .sync(), .sync_detailed(), .asyncio(), .asyncio_detailed().
119
+ datasets = read_datasets_v1_datasets_get.sync(client=client)
120
+ ```
121
+
122
+ Auth is an API key sent as `X-Api-Key` (mint one via `POST /v1/api-keys`).
123
+
124
+ ## Layout
125
+
126
+ - `vibedasher/_query.py` — the hand-written `query()` (transport, decode, retry, typed rows).
127
+ - `vibedasher/api/<tag>/<operation>.py` — one module per API operation.
128
+ - `vibedasher/models/` — request/response models (attrs classes).
129
+ - `vibedasher/factory.py` — `create_client(api_key, region=..., base_url=...)`.
130
+
131
+ > **Generated code** — do not edit `vibedasher/` by hand. Regenerate with `make py`
132
+ > from `packages/sdk/`. Source of truth: `../openapi.json`. `query()` is the
133
+ > deliberate exception — hand-written and re-copied after each generation.