ingestr 0.13.85__tar.gz → 0.13.87__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.

Potentially problematic release.


This version of ingestr might be problematic. Click here for more details.

Files changed (343) hide show
  1. {ingestr-0.13.85 → ingestr-0.13.87}/PKG-INFO +1 -1
  2. {ingestr-0.13.85 → ingestr-0.13.87}/docs/.vitepress/config.mjs +2 -0
  3. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/appstore.md +12 -4
  4. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/chess.md +5 -4
  5. ingestr-0.13.87/docs/supported-sources/clickup.md +45 -0
  6. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/facebook-ads.md +9 -108
  7. ingestr-0.13.87/docs/supported-sources/fluxx.md +116 -0
  8. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/frankfurter.md +7 -3
  9. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/freshdesk.md +9 -8
  10. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/google_analytics.md +8 -1
  11. ingestr-0.13.87/docs/supported-sources/gorgias.md +42 -0
  12. ingestr-0.13.87/docs/supported-sources/hubspot.md +52 -0
  13. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/isoc-pulse.md +18 -15
  14. ingestr-0.13.87/docs/supported-sources/klaviyo.md +57 -0
  15. ingestr-0.13.87/docs/supported-sources/linear.md +57 -0
  16. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/linkedin_ads.md +6 -3
  17. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/mixpanel.md +4 -2
  18. ingestr-0.13.87/docs/supported-sources/personio.md +58 -0
  19. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/phantombuster.md +6 -2
  20. ingestr-0.13.87/docs/supported-sources/pinterest.md +30 -0
  21. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/pipedrive.md +8 -6
  22. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/quickbooks.md +7 -5
  23. ingestr-0.13.87/docs/supported-sources/revenuecat.md +62 -0
  24. ingestr-0.13.87/docs/supported-sources/shopify.md +45 -0
  25. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/slack.md +8 -4
  26. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/solidgate.md +7 -4
  27. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/tiktok-ads.md +5 -0
  28. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/trustpilot.md +4 -3
  29. ingestr-0.13.87/docs/supported-sources/zendesk.md +87 -0
  30. ingestr-0.13.87/docs/supported-sources/zoom.md +39 -0
  31. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appstore/__init__.py +1 -0
  32. ingestr-0.13.87/ingestr/src/buildinfo.py +1 -0
  33. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/chess/__init__.py +1 -1
  34. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/factory.py +4 -0
  35. ingestr-0.13.87/ingestr/src/fluxx/__init__.py +5725 -0
  36. ingestr-0.13.87/ingestr/src/fluxx/helpers.py +216 -0
  37. ingestr-0.13.87/ingestr/src/frankfurter/__init__.py +161 -0
  38. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/frankfurter/helpers.py +4 -4
  39. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/klaviyo/__init__.py +5 -5
  40. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/linear/__init__.py +10 -9
  41. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/linear/helpers.py +20 -10
  42. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/mongodb/__init__.py +1 -1
  43. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/mongodb/helpers.py +36 -15
  44. ingestr-0.13.87/ingestr/src/revenuecat/__init__.py +108 -0
  45. ingestr-0.13.87/ingestr/src/revenuecat/helpers.py +291 -0
  46. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/shopify/__init__.py +1 -1
  47. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/sources.py +134 -13
  48. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/stripe_analytics/__init__.py +1 -18
  49. {ingestr-0.13.85 → ingestr-0.13.87}/pyproject.toml +3 -2
  50. ingestr-0.13.85/docs/supported-sources/clickup.md +0 -45
  51. ingestr-0.13.85/docs/supported-sources/gorgias.md +0 -53
  52. ingestr-0.13.85/docs/supported-sources/hubspot.md +0 -49
  53. ingestr-0.13.85/docs/supported-sources/klaviyo.md +0 -50
  54. ingestr-0.13.85/docs/supported-sources/linear.md +0 -55
  55. ingestr-0.13.85/docs/supported-sources/personio.md +0 -51
  56. ingestr-0.13.85/docs/supported-sources/pinterest.md +0 -27
  57. ingestr-0.13.85/docs/supported-sources/shopify.md +0 -43
  58. ingestr-0.13.85/docs/supported-sources/zendesk.md +0 -84
  59. ingestr-0.13.85/docs/supported-sources/zoom.md +0 -47
  60. ingestr-0.13.85/ingestr/src/buildinfo.py +0 -1
  61. ingestr-0.13.85/ingestr/src/frankfurter/__init__.py +0 -163
  62. {ingestr-0.13.85 → ingestr-0.13.87}/.dlt/config.toml +0 -0
  63. {ingestr-0.13.85 → ingestr-0.13.87}/.dockerignore +0 -0
  64. {ingestr-0.13.85 → ingestr-0.13.87}/.githooks/pre-commit-hook.sh +0 -0
  65. {ingestr-0.13.85 → ingestr-0.13.87}/.github/workflows/deploy-docs.yml +0 -0
  66. {ingestr-0.13.85 → ingestr-0.13.87}/.github/workflows/release.yml +0 -0
  67. {ingestr-0.13.85 → ingestr-0.13.87}/.github/workflows/secrets-scan.yml +0 -0
  68. {ingestr-0.13.85 → ingestr-0.13.87}/.github/workflows/tests.yml +0 -0
  69. {ingestr-0.13.85 → ingestr-0.13.87}/.gitignore +0 -0
  70. {ingestr-0.13.85 → ingestr-0.13.87}/.gitleaksignore +0 -0
  71. {ingestr-0.13.85 → ingestr-0.13.87}/.python-version +0 -0
  72. {ingestr-0.13.85 → ingestr-0.13.87}/.vale.ini +0 -0
  73. {ingestr-0.13.85 → ingestr-0.13.87}/Dockerfile +0 -0
  74. {ingestr-0.13.85 → ingestr-0.13.87}/LICENSE.md +0 -0
  75. {ingestr-0.13.85 → ingestr-0.13.87}/Makefile +0 -0
  76. {ingestr-0.13.85 → ingestr-0.13.87}/README.md +0 -0
  77. {ingestr-0.13.85 → ingestr-0.13.87}/docs/.vitepress/theme/custom.css +0 -0
  78. {ingestr-0.13.85 → ingestr-0.13.87}/docs/.vitepress/theme/index.js +0 -0
  79. {ingestr-0.13.85 → ingestr-0.13.87}/docs/commands/example-uris.md +0 -0
  80. {ingestr-0.13.85 → ingestr-0.13.87}/docs/commands/ingest.md +0 -0
  81. {ingestr-0.13.85 → ingestr-0.13.87}/docs/getting-started/core-concepts.md +0 -0
  82. {ingestr-0.13.85 → ingestr-0.13.87}/docs/getting-started/incremental-loading.md +0 -0
  83. {ingestr-0.13.85 → ingestr-0.13.87}/docs/getting-started/quickstart.md +0 -0
  84. {ingestr-0.13.85 → ingestr-0.13.87}/docs/getting-started/telemetry.md +0 -0
  85. {ingestr-0.13.85 → ingestr-0.13.87}/docs/index.md +0 -0
  86. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/applovin_max.png +0 -0
  87. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/athena.png +0 -0
  88. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/clickhouse_img.png +0 -0
  89. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/clickup_ingestion.png +0 -0
  90. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/cratedb-destination.png +0 -0
  91. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/cratedb-source.png +0 -0
  92. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/freshdesk_ingestion.png +0 -0
  93. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/gcp_spanner_ingestion.png +0 -0
  94. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/github.png +0 -0
  95. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/google_analytics_realtime_report.png +0 -0
  96. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/googleanalytics.png +0 -0
  97. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/ingestion_elasticsearch_img.png +0 -0
  98. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/kinesis.bigquery.png +0 -0
  99. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/linear.png +0 -0
  100. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/linkedin_ads.png +0 -0
  101. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/mixpanel_ingestion.png +0 -0
  102. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/personio.png +0 -0
  103. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/personio_duckdb.png +0 -0
  104. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/phantombuster.png +0 -0
  105. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/pipedrive.png +0 -0
  106. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/quickbook_ingestion.png +0 -0
  107. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/sftp.png +0 -0
  108. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/stripe_postgres.png +0 -0
  109. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/tiktok.png +0 -0
  110. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/wise_ingestion.png +0 -0
  111. {ingestr-0.13.85 → ingestr-0.13.87}/docs/media/zoom_ingestion.png +0 -0
  112. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/adjust.md +0 -0
  113. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/airtable.md +0 -0
  114. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/applovin.md +0 -0
  115. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/applovin_max.md +0 -0
  116. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/appsflyer.md +0 -0
  117. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/asana.md +0 -0
  118. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/athena.md +0 -0
  119. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/attio.md +0 -0
  120. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/bigquery.md +0 -0
  121. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/clickhouse.md +0 -0
  122. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/cratedb.md +0 -0
  123. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/csv.md +0 -0
  124. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/custom_queries.md +0 -0
  125. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/databricks.md +0 -0
  126. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/db2.md +0 -0
  127. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/duckdb.md +0 -0
  128. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/dynamodb.md +0 -0
  129. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/elasticsearch.md +0 -0
  130. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/gcs.md +0 -0
  131. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/github.md +0 -0
  132. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/google-ads.md +0 -0
  133. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/gsheets.md +0 -0
  134. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/influxdb.md +0 -0
  135. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/kafka.md +0 -0
  136. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/kinesis.md +0 -0
  137. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/mongodb.md +0 -0
  138. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/motherduck.md +0 -0
  139. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/mssql.md +0 -0
  140. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/mysql.md +0 -0
  141. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/notion.md +0 -0
  142. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/oracle.md +0 -0
  143. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/postgres.md +0 -0
  144. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/redshift.md +0 -0
  145. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/s3.md +0 -0
  146. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/salesforce.md +0 -0
  147. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/sap-hana.md +0 -0
  148. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/sftp.md +0 -0
  149. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/smartsheets.md +0 -0
  150. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/snowflake.md +0 -0
  151. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/spanner.md +0 -0
  152. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/sqlite.md +0 -0
  153. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/stripe.md +0 -0
  154. {ingestr-0.13.85 → ingestr-0.13.87}/docs/supported-sources/wise.md +0 -0
  155. {ingestr-0.13.85 → ingestr-0.13.87}/docs/tutorials/load-kinesis-bigquery.md +0 -0
  156. {ingestr-0.13.85 → ingestr-0.13.87}/docs/tutorials/load-personio-duckdb.md +0 -0
  157. {ingestr-0.13.85 → ingestr-0.13.87}/docs/tutorials/load-stripe-postgres.md +0 -0
  158. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/conftest.py +0 -0
  159. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/main.py +0 -0
  160. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/.gitignore +0 -0
  161. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/adjust/__init__.py +0 -0
  162. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/adjust/adjust_helpers.py +0 -0
  163. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/airtable/__init__.py +0 -0
  164. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/applovin/__init__.py +0 -0
  165. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/applovin_max/__init__.py +0 -0
  166. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appsflyer/__init__.py +0 -0
  167. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appsflyer/client.py +0 -0
  168. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appstore/client.py +0 -0
  169. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appstore/errors.py +0 -0
  170. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appstore/models.py +0 -0
  171. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/appstore/resources.py +0 -0
  172. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/arrow/__init__.py +0 -0
  173. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/asana_source/__init__.py +0 -0
  174. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/asana_source/helpers.py +0 -0
  175. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/asana_source/settings.py +0 -0
  176. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/attio/__init__.py +0 -0
  177. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/attio/helpers.py +0 -0
  178. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/blob.py +0 -0
  179. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/chess/helpers.py +0 -0
  180. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/chess/settings.py +0 -0
  181. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/clickup/__init__.py +0 -0
  182. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/clickup/helpers.py +0 -0
  183. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/collector/spinner.py +0 -0
  184. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/destinations.py +0 -0
  185. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/dynamodb/__init__.py +0 -0
  186. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/elasticsearch/__init__.py +0 -0
  187. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/errors.py +0 -0
  188. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/facebook_ads/__init__.py +0 -0
  189. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/facebook_ads/exceptions.py +0 -0
  190. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/facebook_ads/helpers.py +0 -0
  191. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/facebook_ads/settings.py +0 -0
  192. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/facebook_ads/utils.py +0 -0
  193. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/filesystem/__init__.py +0 -0
  194. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/filesystem/helpers.py +0 -0
  195. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/filesystem/readers.py +0 -0
  196. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/filters.py +0 -0
  197. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/freshdesk/__init__.py +0 -0
  198. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
  199. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/freshdesk/settings.py +0 -0
  200. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/github/__init__.py +0 -0
  201. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/github/helpers.py +0 -0
  202. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/github/queries.py +0 -0
  203. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/github/settings.py +0 -0
  204. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_ads/__init__.py +0 -0
  205. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_ads/field.py +0 -0
  206. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_ads/metrics.py +0 -0
  207. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_ads/predicates.py +0 -0
  208. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_ads/reports.py +0 -0
  209. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_analytics/__init__.py +0 -0
  210. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_analytics/helpers.py +0 -0
  211. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_sheets/README.md +0 -0
  212. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_sheets/__init__.py +0 -0
  213. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  214. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  215. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  216. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/gorgias/__init__.py +0 -0
  217. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/gorgias/helpers.py +0 -0
  218. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/http_client.py +0 -0
  219. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/hubspot/__init__.py +0 -0
  220. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/hubspot/helpers.py +0 -0
  221. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/hubspot/settings.py +0 -0
  222. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/influxdb/__init__.py +0 -0
  223. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/influxdb/client.py +0 -0
  224. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/isoc_pulse/__init__.py +0 -0
  225. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/kafka/__init__.py +0 -0
  226. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/kafka/helpers.py +0 -0
  227. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/kinesis/__init__.py +0 -0
  228. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/kinesis/helpers.py +0 -0
  229. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/klaviyo/client.py +0 -0
  230. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/klaviyo/helpers.py +0 -0
  231. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/linkedin_ads/__init__.py +0 -0
  232. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
  233. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/linkedin_ads/helpers.py +0 -0
  234. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/loader.py +0 -0
  235. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/mixpanel/__init__.py +0 -0
  236. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/mixpanel/client.py +0 -0
  237. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/notion/__init__.py +0 -0
  238. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/notion/helpers/__init__.py +0 -0
  239. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/notion/helpers/client.py +0 -0
  240. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/notion/helpers/database.py +0 -0
  241. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/notion/settings.py +0 -0
  242. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/partition.py +0 -0
  243. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/personio/__init__.py +0 -0
  244. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/personio/helpers.py +0 -0
  245. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/phantombuster/__init__.py +0 -0
  246. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/phantombuster/client.py +0 -0
  247. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pinterest/__init__.py +0 -0
  248. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/__init__.py +0 -0
  249. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
  250. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  251. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/helpers/pages.py +0 -0
  252. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/settings.py +0 -0
  253. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/pipedrive/typing.py +0 -0
  254. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/quickbooks/__init__.py +0 -0
  255. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/resource.py +0 -0
  256. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/salesforce/__init__.py +0 -0
  257. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/salesforce/helpers.py +0 -0
  258. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/shopify/exceptions.py +0 -0
  259. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/shopify/helpers.py +0 -0
  260. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/shopify/settings.py +0 -0
  261. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/slack/__init__.py +0 -0
  262. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/slack/helpers.py +0 -0
  263. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/slack/settings.py +0 -0
  264. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/smartsheets/__init__.py +0 -0
  265. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/solidgate/__init__.py +0 -0
  266. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/solidgate/helpers.py +0 -0
  267. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/sql_database/__init__.py +0 -0
  268. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/sql_database/callbacks.py +0 -0
  269. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/stripe_analytics/helpers.py +0 -0
  270. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/stripe_analytics/settings.py +0 -0
  271. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/table_definition.py +0 -0
  272. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/telemetry/event.py +0 -0
  273. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  274. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/tiktok_ads/__init__.py +0 -0
  275. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
  276. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/time.py +0 -0
  277. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/trustpilot/__init__.py +0 -0
  278. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/trustpilot/client.py +0 -0
  279. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/version.py +0 -0
  280. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/wise/__init__.py +0 -0
  281. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/wise/client.py +0 -0
  282. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/__init__.py +0 -0
  283. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  284. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  285. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  286. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  287. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zendesk/settings.py +0 -0
  288. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zoom/__init__.py +0 -0
  289. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/src/zoom/helpers.py +0 -0
  290. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/.gitignore +0 -0
  291. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/create_replace.csv +0 -0
  292. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/delete_insert_expected.csv +0 -0
  293. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/delete_insert_part1.csv +0 -0
  294. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/delete_insert_part2.csv +0 -0
  295. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/merge_expected.csv +0 -0
  296. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/merge_part1.csv +0 -0
  297. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/testdata/merge_part2.csv +0 -0
  298. {ingestr-0.13.85 → ingestr-0.13.87}/ingestr/tests/unit/test_smartsheets.py +0 -0
  299. {ingestr-0.13.85 → ingestr-0.13.87}/package-lock.json +0 -0
  300. {ingestr-0.13.85 → ingestr-0.13.87}/package.json +0 -0
  301. {ingestr-0.13.85 → ingestr-0.13.87}/requirements-dev.txt +0 -0
  302. {ingestr-0.13.85 → ingestr-0.13.87}/requirements.in +0 -0
  303. {ingestr-0.13.85 → ingestr-0.13.87}/requirements.txt +0 -0
  304. {ingestr-0.13.85 → ingestr-0.13.87}/requirements_arm64.txt +0 -0
  305. {ingestr-0.13.85 → ingestr-0.13.87}/resources/demo.gif +0 -0
  306. {ingestr-0.13.85 → ingestr-0.13.87}/resources/demo.tape +0 -0
  307. {ingestr-0.13.85 → ingestr-0.13.87}/resources/ingestr.svg +0 -0
  308. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/AMPM.yml +0 -0
  309. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Acronyms.yml +0 -0
  310. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Colons.yml +0 -0
  311. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Contractions.yml +0 -0
  312. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/DateFormat.yml +0 -0
  313. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Ellipses.yml +0 -0
  314. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/EmDash.yml +0 -0
  315. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Exclamation.yml +0 -0
  316. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/FirstPerson.yml +0 -0
  317. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Gender.yml +0 -0
  318. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/GenderBias.yml +0 -0
  319. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/HeadingPunctuation.yml +0 -0
  320. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Headings.yml +0 -0
  321. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Latin.yml +0 -0
  322. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/LyHyphens.yml +0 -0
  323. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/OptionalPlurals.yml +0 -0
  324. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Ordinal.yml +0 -0
  325. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/OxfordComma.yml +0 -0
  326. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Parens.yml +0 -0
  327. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Passive.yml +0 -0
  328. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Periods.yml +0 -0
  329. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Quotes.yml +0 -0
  330. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Ranges.yml +0 -0
  331. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Semicolons.yml +0 -0
  332. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Slang.yml +0 -0
  333. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Spacing.yml +0 -0
  334. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Spelling.yml +0 -0
  335. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Units.yml +0 -0
  336. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/We.yml +0 -0
  337. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/Will.yml +0 -0
  338. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/WordList.yml +0 -0
  339. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/meta.json +0 -0
  340. {ingestr-0.13.85 → ingestr-0.13.87}/styles/Google/vocab.txt +0 -0
  341. {ingestr-0.13.85 → ingestr-0.13.87}/styles/bruin/Ingestr.yml +0 -0
  342. {ingestr-0.13.85 → ingestr-0.13.87}/styles/config/vocabularies/bruin/accept.txt +0 -0
  343. {ingestr-0.13.85 → ingestr-0.13.87}/test.env.template +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestr
3
- Version: 0.13.85
3
+ Version: 0.13.87
4
4
  Summary: ingestr is a command-line application that ingests data from various sources and stores them in any database.
5
5
  Project-URL: Homepage, https://github.com/bruin-data/ingestr
6
6
  Project-URL: Issues, https://github.com/bruin-data/ingestr/issues
@@ -125,6 +125,7 @@ export default defineConfig({
125
125
  text: "Facebook Ads",
126
126
  link: "/supported-sources/facebook-ads.md",
127
127
  },
128
+ { text: "Fluxx", link: "/supported-sources/fluxx.md" },
128
129
  { text: "Frankfurter", link: "/supported-sources/frankfurter.md" },
129
130
  { text: "Freshdesk", link: "/supported-sources/freshdesk.md" },
130
131
  { text: "Trustpilot", link: "/supported-sources/trustpilot.md" },
@@ -146,6 +147,7 @@ export default defineConfig({
146
147
  { text: "Pinterest", link: "/supported-sources/pinterest.md" },
147
148
  { text: "Pipedrive", link: "/supported-sources/pipedrive.md" },
148
149
  { text: "QuickBooks", link: "/supported-sources/quickbooks.md" },
150
+ { text: "RevenueCat", link: "/supported-sources/revenuecat.md" },
149
151
  { text: "S3", link: "/supported-sources/s3.md" },
150
152
  { text: "Salesforce", link: "/supported-sources/salesforce.md" },
151
153
  { text: "SFTP", link: "/supported-sources/sftp.md"},
@@ -69,7 +69,7 @@ We will run `ingestr` to save this data to a [duckdb](https://duckdb.org/) datab
69
69
 
70
70
  ```sh
71
71
  ingestr ingest \
72
- --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0 \
72
+ --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0" \
73
73
  --source-table "app-downloads-detailed" \
74
74
  --dest-uri "duckdb:///analytics.db" \
75
75
  --dest-table "public.app_downloads" \
@@ -80,7 +80,7 @@ ingestr ingest \
80
80
  We will extend the prior example with another app with ID `67890`. To achieve this, simply add another `app_id` query parameter to the URI.
81
81
  ```sh
82
82
  ingestr ingest \
83
- --source-uri "appstore://app_id=12345&app_id=67890&key_path=api.key&key_id=key_0&issuer_id=issue_0 \
83
+ --source-uri "appstore://app_id=12345&app_id=67890&key_path=api.key&key_id=key_0&issuer_id=issue_0" \
84
84
  --source-table "app-downloads-detailed" \
85
85
  --dest-uri "duckdb:///analytics.db" \
86
86
  --dest-table "public.app_downloads" \
@@ -94,7 +94,7 @@ ingestr ingest \
94
94
  To begin, we will first load all data till `2025-01-01` by specifying the `--interval-end` flag. We'll assume the same credentials from our [first example](#example-loading-app-downloads-analytics)
95
95
  ```sh
96
96
  ingestr ingest \
97
- --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0 \
97
+ --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0" \
98
98
  --source-table "app-downloads-detailed" \
99
99
  --dest-uri "duckdb:///analytics.db" \
100
100
  --dest-table "public.app_downloads" \
@@ -105,7 +105,7 @@ ingestr ingest \
105
105
 
106
106
  ```sh
107
107
  ingestr ingest \
108
- --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0 \
108
+ --source-uri "appstore://app_id=12345&key_path=api.key&key_id=key_0&issuer_id=issue_0" \
109
109
  --source-table "app-downloads-detailed" \
110
110
  --dest-uri "duckdb:///analytics.db" \
111
111
  --dest-table "public.app_downloads" \
@@ -115,6 +115,14 @@ ingestr ingest \
115
115
  Notice how we didn't specify a date parameter? `ingestr` will automatically use the metadata from last load and continue loading data from that point on.
116
116
 
117
117
  ## Tables
118
+ | Table | PK | Inc Key | Inc Strategy | Details |
119
+ |-------|----|---------|--------------|---------|
120
+ | `app-downloads-detailed` | [App Apple Identifier,App Name, App Version,Campaign,Date,Device,Download Type,Page Title,Page Type,Platform Version,Pre-Order,Source Info,Source Type,Territory] | processing_date | merge | App download analytics including first-time downloads, redownloads, updates, and more. |
121
+ | `app-store-discovery-and-engagement-detailed` | primary_key = [App Apple Identifier,App Name,Campaign,Date,Device,Engagement Type,Event,Page Title,Page Type,Platform Version,Source Info,Source Type,Territory] | processing_date | merge | App Store discovery and engagement metrics including data about user engagement with your app’s icons, product pages, in-app event pages, and other install sheets. |
122
+ |`app-sessions-detailed` | primary_key=[Date,App Name,App Apple Identifier,App Version,Device,Platform Version,Source Type,Source Info,Campaign,Page Type,Page Title,App Download Date,Territory] | processing_date | merge | App Session provides insights on how often people open your app, and how long they spend in your app. |
123
+ | app-store-installation-and-deletion-detailed | [App Apple Identifier,App Download Date,App Name,App Version,Campaign,Counts,Date,Device,Download Type,Event,Page Title,Page Type,Platform Version,Source Info,Source Type,Territory,Unique Devices] | processing_date | merge | App installation and deletion metrics including device to estimate the number of times people install and delete your App Store apps. |
124
+ | `app-store-purchases-detailed`| [App Apple Identifier,App Download Date,App Name,Campaign,Content Apple Identifier,Content Name,Date,Device,Page Title,Page Type,Payment Method,Platform Version,Pre-Order,Purchase Type,Source Info,Source Type,Territory] | processing_date | merge | App purchase analytics including revenue, payment methods, and content details. |
125
+ | `app-crashes-expanded`| [App Name,App Version,Build,Date,Device,Platform,Release Type,Territory] |processing_date | merge | App crash analytics including crash counts, device information, and version details. |
118
126
 
119
127
  ### `app-downloads-detailed`
120
128
  The App Downloads Report includes download data generated on the App Store. You can use this report to understand your total number of downloads, including first-time downloads, redownloads, updates, and more.
@@ -29,9 +29,10 @@ The result of this command will be a table in the `chess.duckdb` database.
29
29
  ## Tables
30
30
 
31
31
  Chess source allows ingesting the following sources into separate tables:
32
-
33
- - `profiles`: Retrieves player profiles based on a list of player usernames.
34
- - `games`: Retrieves players' games for specified players.
35
- - `archives`: Retrieves the URLs to game archives for specified players.
32
+ | Table | PK | Inc Key | Inc Strategy | Details |
33
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
34
+ | `profiles` | - | – | replace | Retrieves player profiles based on a list of player usernames. |
35
+ | `games` | - | – | replace | Retrieves players games for specified players.
36
+ | `archives` | - | – | replace | Retrieves the URLs to game archives for specified players. |
36
37
 
37
38
  Use these as `--source-table` parameter in the `ingestr ingest` command.
@@ -0,0 +1,45 @@
1
+ # ClickUp
2
+ [ClickUp](https://clickup.com/) is a cloud-based productivity platform designed to help teams and individuals manage tasks, projects, and workflows in one place.
3
+
4
+ ingestr supports ClickUp as a source.
5
+
6
+ ## URI format
7
+
8
+ ```
9
+ clickup://?api_token=<token>
10
+ ```
11
+
12
+ URI parameters:
13
+ - `api_token` is a personal token used to authenticate with the ClickUp API.
14
+
15
+ ClickUp requires a `api_token` to connect to the ClickUP API. For more information, read [here](https://developer.clickup.com/docs/authentication#generate-your-personal-api-token) to get credentail.
16
+
17
+ Once you've completed the guide, you should have `api_token`. Let's say your API Token is `token_123`, here's a sample command that will copy the data from Clickup into a DuckDB database:
18
+
19
+ To ingest tasks from ClickUp into a DuckDB database:
20
+
21
+ ```sh
22
+ ingestr ingest \
23
+ --source-uri "clickup://?api_token=token_123" \
24
+ --source-table "tasks" \
25
+ --dest-uri duckdb:///clickup.duckdb \
26
+ --dest-table "public.tasks"
27
+ ```
28
+ <img alt="clickup_img" src="../media/clickup_ingestion.png"/>
29
+
30
+ ## Tables
31
+
32
+ ClickUp source allows ingesting the following resources into separate tables:
33
+
34
+ | Table | PK | Inc Key | Inc Strategy | Details |
35
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
36
+ | [user](https://developer.clickup.com/reference/getauthorizeduser) | id | - | merge | The authorised user profile |
37
+ | [teams](https://developer.clickup.com/reference/getauthorizedteams) | id | – | merge | Workspaces available to the authenticated user. In ClickUp, a "team" in the API is equivalent to a workspace, which is the highest-level container for all spaces, folders, lists, and tasks |
38
+ | [spaces](https://developer.clickup.com/reference/getspaces) | id | - | merge | Spaces available within a workspace. Spaces are major sections used to organize work, such as departments, projects, or business units. Each space can contain folders, lists, and tasks |
39
+ | [lists](https://developer.clickup.com/reference/getlists) | id | – | merge | Lists contained in each space. Lists are collections of tasks, often representing projects, sprints, or workflow stages |
40
+ | [tasks](https://developer.clickup.com/reference/gettasks) | id | date_updated | merge | Tasks belonging to each list |
41
+
42
+ Use these as `--source-table` parameter in the `ingestr ingest` command.
43
+
44
+ > [!WARNING]
45
+ > ClickUp does not support incremental loading for many endpoints, which means ingestr will load endpoints incrementally if they support it, and do a full-refresh if not.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Facebook Ads is the advertising platform that helps users to create targeted ads on Facebook, Instagram and Messenger.
4
4
 
5
- ingestr supports Facebook Ads as a source.
5
+ ingestr supports Facebook Ads as a source using [Facebook Marketing API](https://developers.facebook.com/docs/marketing-api/).
6
6
 
7
7
  ## URI format
8
8
 
@@ -41,113 +41,14 @@ The result of this command will be a table in the `facebook.duckdb` database.
41
41
 
42
42
  Facebook Ads source allows ingesting the following sources into separate tables:
43
43
 
44
- - `campaigns`: Retrieves campaign data with fields:
45
- - `id`
46
- - `updated_time`
47
- - `created_time`
48
- - `name`
49
- - `status`
50
- - `effective_status`
51
- - `objective`
52
- - `start_time`
53
- - `stop_time`
54
- - `daily_budget`
55
- - `lifetime_budget`
56
-
57
- - `ad_sets`: Retrieves ad set data with fields:
58
- - `id`
59
- - `updated_time`
60
- - `created_time`
61
- - `name`
62
- - `status`
63
- - `effective_status`
64
- - `campaign_id`
65
- - `start_time`
66
- - `end_time`
67
- - `daily_budget`
68
- - `lifetime_budget`
69
- - `optimization_goal`
70
- - `promoted_object`
71
- - `billing_event`
72
- - `bid_amount`
73
- - `bid_strategy`
74
- - `targeting`
75
-
76
- - `leads`: Retrieves lead data with fields:
77
- - `id`
78
- - `created_time`
79
- - `ad_id`
80
- - `ad_name`
81
- - `adset_id`
82
- - `adset_name`
83
- - `campaign_id`
84
- - `campaign_name`
85
- - `form_id`
86
- - `field_data`
87
-
88
- - `ads_creatives`: Retrieves ad creative data with fields:
89
- - `id`
90
- - `name`
91
- - `status`
92
- - `thumbnail_url`
93
- - `object_story_spec`
94
- - `effective_object_story_id`
95
- - `call_to_action_type`
96
- - `object_type`
97
- - `template_url`
98
- - `url_tags`
99
- - `instagram_actor_id`
100
- - `product_set_id`
101
-
102
- - `ads`: Retrieves ad data with fields:
103
- - `id`
104
- - `updated_time`
105
- - `created_time`
106
- - `name`
107
- - `status`
108
- - `effective_status`
109
- - `adset_id`
110
- - `campaign_id`
111
- - `creative`
112
- - `targeting`
113
- - `tracking_specs`
114
- - `conversion_specs`
115
-
116
- - `facebook_insights`: Retrieves insights data with fields:
117
- - `campaign_id`
118
- - `adset_id`
119
- - `ad_id`
120
- - `date_start`
121
- - `date_stop`
122
- - `reach`
123
- - `impressions`
124
- - `frequency`
125
- - `clicks`
126
- - `unique_clicks`
127
- - `ctr`
128
- - `unique_ctr`
129
- - `cpc`
130
- - `cpm`
131
- - `cpp`
132
- - `spend`
133
- - `actions`
134
- - `action_values`
135
- - `cost_per_action_type`
136
- - `website_ctr`
137
- - `account_currency`
138
- - `ad_click_actions`
139
- - `ad_name`
140
- - `adset_name`
141
- - `campaign_name`
142
- - `country`
143
- - `dma`
144
- - `full_view_impressions`
145
- - `full_view_reach`
146
- - `inline_link_click_ctr`
147
- - `outbound_clicks`
148
- - `social_spend`
149
- - `conversions`
150
- - `video_thruplay_watched_actions`
44
+ | Table | PK | Inc Key | Inc Strategy | Details |
45
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
46
+ | `campaigns` | id | – | replace | Retrieves campaign data with `fields`: id, updated_time, created_time, name, status, effective_status, objective, start_time, stop_time, daily_budget, lifetime_budget |
47
+ | `ad_sets` | id | – | replace | Retrieves ad set data with `fields`: id, updated_time, created_time, name, status, effective_status, campaign_id, start_time, end_time, daily_budget, lifetime_budget, optimization_goal, promoted_object, billing_event, bid_amount, bid_strategy, targeting |
48
+ | `ads` | id | - | replace | Retrieves ad data with `fields`: id, updated_time, created_time, name, status, effective_status, adset_id, campaign_id, creative, targeting, tracking_specs, conversion_specs |
49
+ | `ad_creatives` | id | - | replace | Retrieves ad creative data with `fields`: id, name, status, thumbnail_url, object_story_spec, effective_object_story_id, call_to_action_type, object_type, template_url, url_tags, instagram_actor_id, product_set_id |
50
+ | `leads` | id | - | replace | Retrieves lead data with fields: id, created_time, ad_id, ad_name, adset_id, adset_name, campaign_id, campaign_name, form_id, field_data |
51
+ | `facebook_insights` | date_start | date_start | merge | Retrieves insights data with `fields`: campaign_id, adset_id, ad_id, date_start, date_stop, reach, impressions, frequency, clicks, unique_clicks, ctr, unique_ctr, cpc, cpm, cpp, spend, actions, action_values, cost_per_action_type, website_ctr, account_currency, ad_click_actions, ad_name, adset_name, campaign_name, country, dma, full_view_impressions, full_view_reach, inline_link_click_ctr, outbound_clicks, social_spend, conversions, video_thruplay_watched_actions. |
151
52
 
152
53
  Use these as `--source-table` parameter in the `ingestr ingest` command.
153
54
 
@@ -0,0 +1,116 @@
1
+ # Fluxx
2
+
3
+ [Fluxx](https://www.fluxx.io/) is a cloud-based grants management platform designed to streamline and automate the entire grantmaking process for foundations, corporations, governments, and other funding organizations.
4
+
5
+ ingestr supports Fluxx as a source.
6
+
7
+ ## URI format
8
+
9
+ The URI format for Fluxx is:
10
+
11
+ ```plaintext
12
+ fluxx://<instance>?client_id=<client_id>&client_secret=<client_secret>
13
+ ```
14
+
15
+ URI parameters:
16
+
17
+ - `instance`: Your Fluxx instance subdomain (e.g., `mycompany.preprod` for `https://mycompany.preprod.fluxxlabs.com`)
18
+ - `client_id`: OAuth 2.0 client ID for authentication
19
+ - `client_secret`: OAuth 2.0 client secret for authentication
20
+
21
+ ## Example usage
22
+
23
+ ### Basic usage - all fields
24
+
25
+ Assuming your instance is `myorg.preprod`, you can ingest grant requests into DuckDB using:
26
+
27
+ ```bash
28
+ ingestr ingest \
29
+ --source-uri 'fluxx://myorg.preprod?client_id=your_client_id&client_secret=your_client_secret' \
30
+ --source-table 'grant_request' \
31
+ --dest-uri duckdb:///fluxx.duckdb \
32
+ --dest-table 'raw.grant_request'
33
+ ```
34
+
35
+ ### Custom field selection
36
+
37
+ You can select specific fields to ingest using the colon syntax:
38
+
39
+ ```bash
40
+ ingestr ingest \
41
+ --source-uri 'fluxx://myorg.preprod?client_id=your_client_id&client_secret=your_client_secret' \
42
+ --source-table 'grant_request:id,amount_requested,amount_recommended,granted' \
43
+ --dest-uri duckdb:///fluxx.duckdb \
44
+ --dest-table 'raw.grant_request'
45
+ ```
46
+
47
+ ## Tables
48
+
49
+ Fluxx source currently supports the following 50 tables:
50
+
51
+ ### Core Resources
52
+ - `claim_expense_datum`: Individual data entries within claim expense forms with budget category details
53
+ - `claim_expense_row`: Specific line items or rows within claim expense forms
54
+ - `claim_expense`: Claim expense forms and templates for financial tracking
55
+ - `claim`: Grant claims and payment requests
56
+ - `concept_initiative`: Concept initiatives linking programs, initiatives, and sub-programs/sub-initiatives
57
+ - `dashboard_theme`: Dashboard theme configurations for UI customization
58
+ - `etl_claim_expense_datum`: ETL data for claim expense items with comprehensive budget tracking details
59
+ - `etl_grantee_budget_tracker_actual`: ETL data for actual grantee budget tracker amounts and expenses
60
+ - `etl_grantee_budget_tracker_period_datum`: ETL data for grantee budget tracker period information with detailed financial tracking
61
+ - `etl_relationship`: ETL data for entity relationships tracking connections between users, organizations, requests, and other entities
62
+ - `etl_request_budget`: ETL budget data for request funding sources with comprehensive financial details
63
+ - `etl_request_transaction_budget`: ETL budget data for request transaction funding sources including payment tracking
64
+ - `exempt_organization`: Tax-exempt organization data including EIN, classification, and financial information
65
+ - `geo_city`: City geographic data with coordinates and postal codes
66
+ - `geo_county`: County geographic data with FIPS codes
67
+ - `geo_place`: Geographic places with ancestry and location data
68
+ - `geo_region`: Geographic regions
69
+ - `geo_state`: State geographic data with abbreviations and FIPS codes
70
+ - `grant_request`: Grant applications and requests (300+ fields)
71
+ - `grantee_budget_category`: Budget category definitions used by grantees for expense tracking
72
+ - `grantee_budget_tracker_period_datum_actual`: Actual expenses and amounts recorded for budget tracking periods
73
+ - `grantee_budget_tracker_period_datum`: Budget data entries for specific tracking periods
74
+ - `grantee_budget_tracker_period`: Time periods for budget tracking with start and end dates
75
+ - `grantee_budget_tracker_row`: Individual budget line items and categories within budget trackers
76
+ - `grantee_budget_tracker`: Budget tracking documents for grantee financial management
77
+ - `integration_log`: Integration and system logs for tracking data processing and errors
78
+ - `mac_model_type_dyn_financial_audit`: Dynamic financial audit models with audit tracking, compliance status, and financial variance analysis
79
+ - `mac_model_type_dyn_mel`: Dynamic Monitoring, Evaluation & Learning (MEL) models with performance indicators, baseline tracking, and evaluation metrics
80
+ - `mac_model_type_dyn_tool`: Dynamic tool management models for tracking deployment status, usage metrics, and tool effectiveness
81
+ - `machine_category`: Machine category definitions for workflow state management
82
+ - `model_attribute_value`: Model attribute values with hierarchical data and dependencies
83
+ - `model_document_sub_type`: Document sub-type definitions and categories
84
+ - `model_document_type`: Document type configurations including DocuSign integration and permissions
85
+ - `model_document`: Document metadata including file information, storage details, and document relationships
86
+ - `model_theme`: Model themes for categorization and program hierarchy organization
87
+ - `organization`: Organizations (grantees, fiscal sponsors, etc.)
88
+ - `population_estimate_year`: Yearly population estimates with income and demographic breakdowns
89
+ - `population_estimate`: Population estimates by geographic area with demographic data
90
+ - `program`: Funding programs and initiatives
91
+ - `request_report`: Reports submitted for grants
92
+ - `request_transaction_funding_source`: Funding source details for specific request transactions
93
+ - `request_transaction`: Financial transactions and payments
94
+ - `request_user`: Relationships between requests and users with roles and descriptions
95
+ - `salesforce_authentication`: Salesforce authentication configurations with OAuth tokens, connection management, and API usage tracking
96
+ - `sub_initiative`: Sub-initiatives for detailed planning
97
+ - `sub_program`: Sub-programs under main programs
98
+ - `ui_version`: User interface version information and system configuration
99
+ - `user_organization`: Relationships between users and organizations with roles, departments, and contact details
100
+ - `user`: User accounts and profiles
101
+
102
+ ### Field Selection
103
+
104
+ Each resource contains numerous fields. You can:
105
+ 1. **Ingest all fields**: Use the resource name directly (e.g., `grant_request`)
106
+ 2. **Select specific fields**: Use colon syntax (e.g., `grant_request:id,name,amount_requested`)
107
+
108
+ The field selection feature is particularly useful for large resources like `grant_request` which has over 300 fields.
109
+
110
+ ## Authentication
111
+
112
+ Fluxx uses OAuth 2.0 with client credentials flow. To obtain credentials:
113
+
114
+ 1. Contact your Fluxx administrator to create an API client
115
+ 2. You'll receive a `client_id` and `client_secret`
116
+ 3. Note your Fluxx instance subdomain (the part before `.fluxxlabs.com`)
@@ -34,9 +34,13 @@ The result of this command will be a list of currency exchange rates from 20.03.
34
34
 
35
35
  ## Tables
36
36
 
37
- - `latest`: Fetches the latest exchange rates.
38
- - `exchange_rates`: Fetches historical exchange rates for a specified date range.
39
- - `currencies`: Fetches a list of the available currencies and their ISO 4217 currency code (e.g. `USD`, `EUR`, `GBP`).
37
+ Frankfurter source allows ingesting the following sources into separate tables:
38
+
39
+ | Table | PK | Inc Key | Inc Strategy | Details |
40
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | [currencies](https://www.frankfurter.dev/docs/#currencies) | - | – | replace | Retrieves list of available currencies with ISO 4217 codes and names. |
42
+ | [latest](https://www.frankfurter.dev/docs/#latest) | ["date", "currency_code", "base_currency"] | – | merge | Fetches latest exchange rates for all currencies. |
43
+ | [exchange_rates](https://www.frankfurter.dev/docs/#historical) | ["date", "currency_code", "base_currency"] | date | merge | Retrieves historical exchange rates for specified date range.|
40
44
 
41
45
  Use these as `--source-table` parameter in the `ingestr ingest` command.
42
46
 
@@ -33,15 +33,16 @@ This command copies data from the Freshdesk source to DuckDB.
33
33
  <img alt="freshdesk_img" src="../media/freshdesk_ingestion.png" />
34
34
 
35
35
  ## Available Tables
36
+
36
37
  The Freshdesk source allows you to ingest the following tables:
37
38
 
38
- | S.No. | Name | Description |
39
- | ----- | --------- | ----------------------------------------------------------------------------------------- |
40
- | 1. | agents | Users responsible for managing and resolving customer inquiries and support tickets. |
41
- | 2. | companies | Customer organizations or groups that agents support. |
42
- | 3. | contacts | Individuals or customers who reach out for support. |
43
- | 4. | groups | Agents organized based on specific criteria. |
44
- | 5. | roles | Predefined sets of permissions that determine what actions an agent can perform. |
45
- | 6. | tickets | Customer inquiries or issues submitted via various channels like email, chat, phone, etc. |
39
+ | Table | PK | Inc Key | Inc Strategy | Details |
40
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | [agents](https://developers.freshdesk.com/api/#agents) | id | updated_at | merge | Retrieves users responsible for managing and resolving customer inquiries and support tickets |
42
+ | [companies](https://developers.freshdesk.com/api/#companies) | id | updated_at | merge | Retrieves customer organizations or groups that agents support. |
43
+ | [contacts](https://developers.freshdesk.com/api/#contacts) | id | updated_at | merge | Retrieves individuals or customers who reach out for support. |
44
+ | [groups](https://developers.freshdesk.com/api/#groups) | id | updated_at | merge | Retrieves agents organized based on specific criteria. |
45
+ | [roles](https://developers.freshdesk.com/api/#roles) | id | updated_at | merge | Retrieves predefined sets of permissions that determine what actions an agent can perform.|
46
+ | [tickets](https://developers.freshdesk.com/api/#tickets) | id | updated_at | merge | Retrieves customer inquiries or issues submitted via various channels like email, chat, phone, etc.
46
47
 
47
48
  Use these as the `--source-table` parameter in the `ingestr ingest` command.
@@ -23,6 +23,13 @@ URI parameters:
23
23
  Google Analytics requires a few steps to set up an integration, please follow the guide dltHub [has built here](https://dlthub.com/docs/dlt-ecosystem/verified-sources/google_analytics#grab-google-service-account-credentials). Once you complete the guide, you should have an `.json` file and `project_id`.
24
24
 
25
25
  ## Available Tables:
26
+
27
+
28
+ | Table | PK | Inc Key | Inc Strategy | Details |
29
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
30
+ | [realtime](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-basics) | ingested_at | - | merge | Retrieves real-time analytics data based on specified dimensions and metrics. Format: `realtime:<dimensions>:<metrics>:<minutes_ranges>`. Supports incremental loading by ingestion timestamp. |
31
+ | `custom` | datetime_dimension | datetime_dimension | merge | Retrieves custom reports based on specified dimensions and metrics. Format: `custom:<dimensions>:<metrics>` |
32
+
26
33
  ### Custom reports
27
34
  - `Custom reports`: allow you to retrieve data based on specific `dimensions` and `metrics`.
28
35
 
@@ -79,4 +86,4 @@ ingestr ingest \
79
86
  ```
80
87
  This command will retrieve report and save it to the `dest.realtime` table in the DuckDB database.
81
88
 
82
- <img alt="google_analytics_realtime_report_img" src="../media/google_analytics_realtime_report.png"/>
89
+ <img alt="google_analytics_realtime_report_img" src="../media/google_analytics_realtime_report.png"/>
@@ -0,0 +1,42 @@
1
+ # Gorgias
2
+ [Gorgias](https://www.gorgias.com/) is a helpdesk for e-commerce merchants, providing customer service via email, social media, SMS, and live chat.
3
+
4
+ ingestr supports Gorgias as a source.
5
+
6
+ ## URI format
7
+ The URI format for Gorgias is as follows:
8
+
9
+ ```plaintext
10
+ gorgias://<domain>?api_key=<api-key>&email=<email>
11
+ ```
12
+
13
+ URI parameters:
14
+ - `domain`: the domain of the Gorgias account without the full `gorgias.com`, e.g. `mycompany`
15
+ - `api_key`: the integration token used for authentication with the Gorgias API
16
+ - `email`: the email address of the user to connect to the Gorgias API
17
+
18
+ The URI is used to connect to the Gorgias API for extracting data.
19
+
20
+ ## Examples
21
+ ```bash
22
+ # get all the tickets that are created/updated since 2024-06-19 and write them to `gorgias.ticket_messages` table on BigQuery
23
+ ingestr ingest --source-table 'tickets' --source-uri $GORGIAS_URI --dest-uri $BIGQUERY_URI --interval-start 2024-06-19 --dest-table 'gorgias.ticket_messages' --loader-file-format jsonl
24
+
25
+ # get all the customers and write them to `gorgias.customers` table on DuckDB
26
+ ingestr ingest --source-table 'customers' --source-uri $GORGIAS_URI --dest-uri duckdb:///gorgias.duckdb --interval-start 2024-01-01 --dest-table 'dest.customers'
27
+ ```
28
+
29
+
30
+
31
+ Gorgias source allows ingesting the following sources into separate tables:
32
+
33
+ | Table | PK | Inc Key | Inc Strategy | Details |
34
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
35
+ | [customers](https://developers.gorgias.com/reference/list-customers) | id | updated_datetime | merge | Customers are the users who have interacted with the support team. Each customer has a unique ID and contains information such as the name and email. Retrieves customers lists|
36
+ | [tickets](https://developers.gorgias.com/reference/list-tickets) | id | updated_datetime | merge | Tickets are the main entity in Gorgias, representing customer inquiries. Each ticket has a unique ID and contains information such as the customer, status, and messages. Retrieves tickets lists |
37
+ | [ticket_messages](https://developers.gorgias.com/reference/list-messages) | id | updated_datetime | merge | Ticket messages are the messages exchanged between the customer and the support agent in a ticket. Each message has a unique ID and contains information such as the sender, content, and timestamp. Retrieves messages lists |
38
+ | [satisfaction_surveys](https://developers.gorgias.com/reference/list-satisfaction-surveys) | id | updated_datetime | merge | Satisfaction surveys are sent to customers after a ticket is resolved to gather feedback on their experience. Each survey has a unique ID and contains information such as the rating and comments. Retrieves surveys lists.|
39
+
40
+ Use these as `--source-table` parameter in the `ingestr ingest` command.
41
+
42
+
@@ -0,0 +1,52 @@
1
+ # HubSpot
2
+
3
+ [HubSpot](https://www.hubspot.com/) is a customer relationship management software that helps businesses attract visitors, connect with customers, and close deals.
4
+
5
+ ingestr supports HubSpot as a source.
6
+
7
+ ## URI format
8
+
9
+ The URI format for HubSpot is as follows:
10
+
11
+ ```plaintext
12
+ hubspot://?api_key=<api-key-here>
13
+ ```
14
+
15
+ URI parameters:
16
+
17
+ - `api_key`: The API key is used for authentication with the HubSpot API.
18
+
19
+ The URI is used to connect to the HubSpot API for extracting data.
20
+
21
+ ## Setting up a HubSpot Integration
22
+
23
+ HubSpot requires a few steps to set up an integration, please follow the guide dltHub [has built here](https://dlthub.com/docs/dlt-ecosystem/verified-sources/hubspot#setup-guide).
24
+
25
+ Once you complete the guide, you should have an API key. Let's say your API key is `pat_test_12345`, here's a sample command that will copy the data from HubSpot into a DuckDB database:
26
+
27
+ ```sh
28
+ ingestr ingest --source-uri 'hubspot://?api_key=pat_test_12345' --source-table 'companies' --dest-uri duckdb:///hubspot.duckdb --dest-table 'companies.data'
29
+ ```
30
+
31
+ The result of this command will be a table in the `hubspot.duckdb` database.
32
+
33
+ ## Tables
34
+
35
+ HubSpot source allows ingesting the following sources into separate tables:
36
+
37
+ Table | PK | Inc Key | Inc Strategy | Details |
38
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | [companies](https://developers.hubspot.com/docs/reference/api/crm/objects/companies#get-%2Fcrm%2Fv3%2Fobjects%2Fcompanies) | - | – | replace | Retrieves information about organizations. |
40
+ | [contacts](https://developers.hubspot.com/docs/reference/api/crm/objects/contacts#get-%2Fcrm%2Fv3%2Fobjects%2Fcontacts) | - | – | replace | Retrieves information about visitors, potential customers, and leads. |
41
+ | [deals](https://developers.hubspot.com/docs/reference/api/crm/objects/deals#get-%2Fcrm%2Fv3%2Fobjects%2Fdeals) | - | – | replace | Retrieves deal records and tracks deal progress.|
42
+ | [tickets](https://developers.hubspot.com/docs/reference/api/crm/objects/tickets#basic) | - | – | replace | Handles requests for help from customers or users. |
43
+ | [products](https://developers.hubspot.com/docs/reference/api/crm/objects/products#get-%2Fcrm%2Fv3%2Fobjects%2Fproducts) | - | – | replace | Retrieves pricing information of products. |
44
+ | [quotes](https://developers.hubspot.com/docs/reference/api/crm/objects/quotes#get-%2Fcrm%2Fv3%2Fobjects%2Fquotes) | - | – | replace | Retrieves price proposals that salespeople can create and send to their contacts. |
45
+ | [schemas](https://developers.hubspot.com/docs/reference/api/crm/objects/schemas#get-%2Fcrm-object-schemas%2Fv3%2Fschemas) | id | – | merge | Returns all object schemas that have been defined for your account. |
46
+
47
+ Use these as `--source-table` parameter in the `ingestr ingest` command.
48
+
49
+ > [!WARNING]
50
+ > Hubspot does not support incremental loading, which means ingestr will do a full-refresh.
51
+
52
+
@@ -37,21 +37,24 @@ This will retrieve HTTPS adoption metrics for the specified date range and store
37
37
 
38
38
  Internet Society Pulse source allows ingesting the following metrics as separate tables:
39
39
 
40
- | Metric | Description | Country Support | Additional Options |
41
- |--------|-------------|----------------|-------------------|
42
- | `dnssec_adoption` | DNSSEC adoption metrics for specific domains | No | Domain name |
43
- | `dnssec_tld_adoption` | DNSSEC adoption metrics for top-level domains | Yes | Country code |
44
- | `dnssec_validation` | DNSSEC validation metrics | Yes | Country code |
45
- | `http` | HTTP protocol metrics | No | None |
46
- | `http3` | HTTP/3 protocol metrics | No | None |
47
- | `https` | HTTPS adoption metrics | Yes | `topsites`, Country code |
48
- | `ipv6` | IPv6 adoption metrics | Yes | `topsites`, Country code |
49
- | `net_loss` | Internet disconnection metrics | Yes | Shutdown type, Country code |
50
- | `resilience` | Internet resilience metrics | Yes | Country code |
51
- | `roa` | Route Origin Authorization metrics | Yes | IP version (`4`/`6`), Country code |
52
- | `rov` | Route Origin Validation metrics | No | None |
53
- | `tls` | TLS protocol metrics | No | None |
54
- | `tls13` | TLS 1.3 protocol metrics | No | None |
40
+ | Metric | Description | Country Support | Additional Options | PK | Inc Key | Inc Strategy |
41
+ |--------|-------------|-----------------|-------------------|-----|----------|--------------|
42
+ | `dnssec_adoption` | DNSSEC adoption metrics for specific domains | No | Domain name | date | date | merge |
43
+ | `dnssec_tld_adoption` | DNSSEC adoption metrics for top-level domains | Yes | Country code | date | date | merge |
44
+ | `dnssec_validation` | DNSSEC validation metrics | Yes | Country code | date | date | merge |
45
+ | `http` | HTTP protocol metrics | No | None | date | date | merge |
46
+ | `http3` | HTTP/3 protocol metrics | No | None | date | date | merge |
47
+ | `https` | HTTPS adoption metrics | Yes | topsites, Country code | date | date | merge |
48
+ | `ipv6` | IPv6 adoption metrics | Yes | topsites, Country code | date | date | merge |
49
+ | `net_loss` | Internet disconnection metrics | Yes | Shutdown type, Country code | date | date | merge |
50
+ | `resilience` | Internet resilience metrics | Yes | Country code | date | date | merge |
51
+ | `roa` | Route Origin Authorization metrics | Yes | IP version (4/6), Country code | date | date | merge |
52
+ | `rov` | Route Origin Validation metrics | No | None | date | date | merge |
53
+ | `tls` | TLS protocol metrics | No | None | date | date | merge |
54
+ | `tls13` | TLS 1.3 protocol metrics | No | None | date | date | merge |
55
+
56
+
57
+ Use these as `--source-table` parameter in the `ingestr ingest` command.
55
58
 
56
59
  ## Parameter Syntax
57
60