ingestr 0.13.93__tar.gz → 0.14.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.
Potentially problematic release.
This version of ingestr might be problematic. Click here for more details.
- {ingestr-0.13.93 → ingestr-0.14.0}/.github/workflows/tests.yml +1 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/Makefile +6 -3
- {ingestr-0.13.93 → ingestr-0.14.0}/PKG-INFO +12 -7
- {ingestr-0.13.93 → ingestr-0.14.0}/README.md +7 -2
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/.vitepress/config.mjs +3 -0
- ingestr-0.14.0/docs/supported-sources/anthropic.md +356 -0
- ingestr-0.14.0/docs/supported-sources/docebo.md +75 -0
- ingestr-0.14.0/docs/supported-sources/fluxx.md +305 -0
- ingestr-0.14.0/docs/supported-sources/fundraiseup.md +83 -0
- ingestr-0.14.0/docs/supported-sources/trino.md +96 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/adjust/__init__.py +4 -4
- ingestr-0.14.0/ingestr/src/anthropic/__init__.py +277 -0
- ingestr-0.14.0/ingestr/src/anthropic/helpers.py +525 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/applovin/__init__.py +1 -1
- ingestr-0.14.0/ingestr/src/buildinfo.py +1 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/destinations.py +145 -7
- ingestr-0.14.0/ingestr/src/docebo/__init__.py +589 -0
- ingestr-0.14.0/ingestr/src/docebo/client.py +435 -0
- ingestr-0.14.0/ingestr/src/docebo/helpers.py +97 -0
- ingestr-0.14.0/ingestr/src/elasticsearch/helpers.py +112 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/facebook_ads/__init__.py +10 -5
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/factory.py +14 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/fluxx/__init__.py +4175 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/frankfurter/__init__.py +157 -157
- ingestr-0.14.0/ingestr/src/fundraiseup/__init__.py +49 -0
- ingestr-0.14.0/ingestr/src/fundraiseup/client.py +81 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_analytics/__init__.py +1 -1
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/mongodb/__init__.py +1 -1
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/mongodb/helpers.py +101 -79
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/sources.py +151 -4
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/tests/unit/test_smartsheets.py +1 -1
- {ingestr-0.13.93 → ingestr-0.14.0}/requirements.in +2 -1
- {ingestr-0.13.93 → ingestr-0.14.0}/requirements.txt +15 -6
- {ingestr-0.13.93 → ingestr-0.14.0}/requirements_arm64.txt +14 -5
- ingestr-0.13.93/docs/supported-sources/fluxx.md +0 -119
- ingestr-0.13.93/ingestr/src/buildinfo.py +0 -1
- {ingestr-0.13.93 → ingestr-0.14.0}/.dlt/config.toml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.dockerignore +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.githooks/pre-commit-hook.sh +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.github/workflows/deploy-docs.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.github/workflows/release.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.github/workflows/secrets-scan.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.gitignore +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.gitleaksignore +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.python-version +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/.vale.ini +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/Dockerfile +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/LICENSE.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/.vitepress/theme/custom.css +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/.vitepress/theme/index.js +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/commands/example-uris.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/commands/ingest.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/getting-started/core-concepts.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/getting-started/data-masking.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/getting-started/incremental-loading.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/getting-started/quickstart.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/getting-started/telemetry.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/index.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/applovin_max.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/athena.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/clickhouse_img.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/clickup_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/cratedb-destination.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/cratedb-source.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/freshdesk_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/gcp_spanner_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/github.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/google_analytics_realtime_report.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/googleanalytics.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/ingestion_elasticsearch_img.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/kinesis.bigquery.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/linear.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/linkedin_ads.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/mixpanel_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/personio.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/personio_duckdb.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/phantombuster.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/pipedrive.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/quickbook_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/sftp.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/stripe_postgres.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/tiktok.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/wise_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/media/zoom_ingestion.png +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/adjust.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/airtable.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/applovin.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/applovin_max.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/appsflyer.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/appstore.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/asana.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/athena.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/attio.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/bigquery.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/chess.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/clickhouse.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/clickup.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/cratedb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/csv.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/custom_queries.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/databricks.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/db2.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/duckdb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/dynamodb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/elasticsearch.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/facebook-ads.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/frankfurter.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/freshdesk.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/gcs.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/github.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/google-ads.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/google_analytics.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/gorgias.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/gsheets.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/hubspot.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/influxdb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/isoc-pulse.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/kafka.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/kinesis.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/klaviyo.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/linear.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/linkedin_ads.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/mixpanel.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/mongodb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/motherduck.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/mssql.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/mysql.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/notion.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/oracle.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/personio.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/phantombuster.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/pinterest.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/pipedrive.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/postgres.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/quickbooks.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/redshift.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/revenuecat.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/s3.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/salesforce.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/sap-hana.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/sftp.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/shopify.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/slack.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/smartsheets.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/snowflake.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/solidgate.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/spanner.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/sqlite.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/stripe.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/tiktok-ads.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/trustpilot.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/wise.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/zendesk.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/supported-sources/zoom.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/tutorials/load-kinesis-bigquery.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/tutorials/load-personio-duckdb.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/docs/tutorials/load-stripe-postgres.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/conftest.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/main.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/.gitignore +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/adjust/adjust_helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/airtable/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/applovin_max/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appsflyer/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appsflyer/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appstore/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appstore/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appstore/errors.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appstore/models.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/appstore/resources.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/arrow/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/asana_source/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/asana_source/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/asana_source/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/attio/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/attio/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/blob.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/chess/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/chess/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/chess/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/clickup/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/clickup/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/collector/spinner.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/dynamodb/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/elasticsearch/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/errors.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/facebook_ads/exceptions.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/facebook_ads/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/facebook_ads/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/facebook_ads/utils.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/filesystem/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/filesystem/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/filesystem/readers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/filters.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/fluxx/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/frankfurter/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/freshdesk/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/freshdesk/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/github/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/github/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/github/queries.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/github/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_ads/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_ads/field.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_ads/metrics.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_ads/predicates.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_ads/reports.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_analytics/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_sheets/README.md +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_sheets/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/gorgias/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/gorgias/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/http_client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/hubspot/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/hubspot/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/hubspot/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/influxdb/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/influxdb/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/isoc_pulse/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/kafka/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/kafka/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/kinesis/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/kinesis/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/klaviyo/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/klaviyo/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/klaviyo/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/linear/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/linear/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/linkedin_ads/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/linkedin_ads/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/loader.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/masking.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/mixpanel/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/mixpanel/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/notion/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/notion/helpers/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/notion/helpers/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/notion/helpers/database.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/notion/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/partition.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/personio/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/personio/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/phantombuster/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/phantombuster/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pinterest/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/helpers/pages.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/pipedrive/typing.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/quickbooks/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/resource.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/revenuecat/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/revenuecat/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/salesforce/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/salesforce/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/shopify/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/shopify/exceptions.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/shopify/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/shopify/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/slack/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/slack/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/slack/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/smartsheets/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/solidgate/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/solidgate/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/sql_database/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/sql_database/callbacks.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/stripe_analytics/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/stripe_analytics/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/stripe_analytics/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/table_definition.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/telemetry/event.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/testdata/fakebqcredentials.json +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/tiktok_ads/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/time.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/trustpilot/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/trustpilot/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/version.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/wise/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/wise/client.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/helpers/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/helpers/credentials.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zendesk/settings.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zoom/__init__.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/src/zoom/helpers.py +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/.gitignore +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/create_replace.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/delete_insert_expected.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/delete_insert_part1.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/delete_insert_part2.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/merge_expected.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/merge_part1.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/ingestr/testdata/merge_part2.csv +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/package-lock.json +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/package.json +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/pyproject.toml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/requirements-dev.txt +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/resources/demo.gif +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/resources/demo.tape +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/resources/ingestr.svg +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/AMPM.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Acronyms.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Colons.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Contractions.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/DateFormat.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Ellipses.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/EmDash.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Exclamation.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/FirstPerson.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Gender.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/GenderBias.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/HeadingPunctuation.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Headings.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Latin.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/LyHyphens.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/OptionalPlurals.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Ordinal.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/OxfordComma.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Parens.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Passive.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Periods.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Quotes.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Ranges.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Semicolons.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Slang.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Spacing.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Spelling.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Units.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/We.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/Will.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/WordList.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/meta.json +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/Google/vocab.txt +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/bruin/Ingestr.yml +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/styles/config/vocabularies/bruin/accept.txt +0 -0
- {ingestr-0.13.93 → ingestr-0.14.0}/test.env.template +0 -0
|
@@ -31,11 +31,14 @@ test-specific: venv lock-deps
|
|
|
31
31
|
. venv/bin/activate; set -a; source test.env; set +a; TESTCONTAINERS_RYUK_DISABLED=true pytest -n auto -rP -vv --tb=short --capture=no -k $(test)
|
|
32
32
|
|
|
33
33
|
lint-ci:
|
|
34
|
-
ruff format ingestr && ruff check ingestr --
|
|
35
|
-
|
|
34
|
+
@ruff format --diff ingestr && ruff check ingestr && mypy --config-file pyproject.toml --explicit-package-bases ingestr
|
|
35
|
+
|
|
36
|
+
format:
|
|
37
|
+
@ruff format ingestr && ruff check ingestr --fix
|
|
38
|
+
@mypy --config-file pyproject.toml --explicit-package-bases ingestr
|
|
36
39
|
|
|
37
40
|
lint: venv lock-deps
|
|
38
|
-
. venv/bin/activate; $(MAKE)
|
|
41
|
+
. venv/bin/activate; $(MAKE) format
|
|
39
42
|
|
|
40
43
|
lint-docs:
|
|
41
44
|
vale docs --glob='!**/.vitepress/**'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ingestr
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.0
|
|
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
|
|
@@ -48,7 +48,7 @@ Requires-Dist: dataclasses-json==0.6.7
|
|
|
48
48
|
Requires-Dist: decorator==5.2.1
|
|
49
49
|
Requires-Dist: deprecation==2.1.0
|
|
50
50
|
Requires-Dist: dlt-cratedb==0.0.2
|
|
51
|
-
Requires-Dist: dlt==1.
|
|
51
|
+
Requires-Dist: dlt==1.16.0
|
|
52
52
|
Requires-Dist: dnspython==2.7.0
|
|
53
53
|
Requires-Dist: duckdb-engine==0.17.0
|
|
54
54
|
Requires-Dist: duckdb==1.2.1
|
|
@@ -104,7 +104,6 @@ Requires-Dist: jsonpath-ng==1.7.0
|
|
|
104
104
|
Requires-Dist: leb128==1.0.8
|
|
105
105
|
Requires-Dist: lxml==5.3.1
|
|
106
106
|
Requires-Dist: lz4==4.4.3
|
|
107
|
-
Requires-Dist: makefun==1.15.6
|
|
108
107
|
Requires-Dist: mako==1.3.9
|
|
109
108
|
Requires-Dist: markdown-it-py==3.0.0
|
|
110
109
|
Requires-Dist: markupsafe==3.0.2
|
|
@@ -118,7 +117,7 @@ Requires-Dist: mysql-connector-python==9.2.0
|
|
|
118
117
|
Requires-Dist: numpy==2.2.3
|
|
119
118
|
Requires-Dist: oauthlib==3.2.2
|
|
120
119
|
Requires-Dist: openpyxl==3.1.5
|
|
121
|
-
Requires-Dist: orjson==3.
|
|
120
|
+
Requires-Dist: orjson==3.11.3
|
|
122
121
|
Requires-Dist: packaging==24.2
|
|
123
122
|
Requires-Dist: pandas==2.2.3
|
|
124
123
|
Requires-Dist: paramiko==3.5.1
|
|
@@ -161,7 +160,7 @@ Requires-Dist: reactivex==4.0.4
|
|
|
161
160
|
Requires-Dist: requests-file==2.1.0
|
|
162
161
|
Requires-Dist: requests-oauthlib==1.3.1
|
|
163
162
|
Requires-Dist: requests-toolbelt==1.0.0
|
|
164
|
-
Requires-Dist: requests==2.32.
|
|
163
|
+
Requires-Dist: requests==2.32.5
|
|
165
164
|
Requires-Dist: requirements-parser==0.11.0
|
|
166
165
|
Requires-Dist: rich-argparse==1.7.0
|
|
167
166
|
Requires-Dist: rich==13.9.4
|
|
@@ -195,6 +194,7 @@ Requires-Dist: thrift==0.16.0
|
|
|
195
194
|
Requires-Dist: time-machine==2.16.0
|
|
196
195
|
Requires-Dist: tomlkit==0.13.2
|
|
197
196
|
Requires-Dist: tqdm==4.67.1
|
|
197
|
+
Requires-Dist: trino==0.336.0
|
|
198
198
|
Requires-Dist: typer==0.13.1
|
|
199
199
|
Requires-Dist: types-requests==2.32.0.20240907
|
|
200
200
|
Requires-Dist: types-setuptools==75.8.2.20250305
|
|
@@ -333,7 +333,7 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
333
333
|
<tr>
|
|
334
334
|
<td>Elasticsearch</td>
|
|
335
335
|
<td>✅</td>
|
|
336
|
-
<td
|
|
336
|
+
<td>✅</td>
|
|
337
337
|
</tr>
|
|
338
338
|
<tr>
|
|
339
339
|
<td>GCP Spanner</td>
|
|
@@ -353,7 +353,7 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
353
353
|
<tr>
|
|
354
354
|
<td>MongoDB</td>
|
|
355
355
|
<td>✅</td>
|
|
356
|
-
<td
|
|
356
|
+
<td>✅</td>
|
|
357
357
|
</tr>
|
|
358
358
|
<tr>
|
|
359
359
|
<td>MotherDuck</td>
|
|
@@ -395,6 +395,11 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
395
395
|
<td>✅</td>
|
|
396
396
|
<td>❌</td>
|
|
397
397
|
</tr>
|
|
398
|
+
<tr>
|
|
399
|
+
<td>Trino</td>
|
|
400
|
+
<td>✅</td>
|
|
401
|
+
<td>✅</td>
|
|
402
|
+
</tr>
|
|
398
403
|
<tr>
|
|
399
404
|
<td colspan="3" style='text-align:center;'><strong>Platforms</strong></td>
|
|
400
405
|
</tr>
|
|
@@ -115,7 +115,7 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
115
115
|
<tr>
|
|
116
116
|
<td>Elasticsearch</td>
|
|
117
117
|
<td>✅</td>
|
|
118
|
-
<td
|
|
118
|
+
<td>✅</td>
|
|
119
119
|
</tr>
|
|
120
120
|
<tr>
|
|
121
121
|
<td>GCP Spanner</td>
|
|
@@ -135,7 +135,7 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
135
135
|
<tr>
|
|
136
136
|
<td>MongoDB</td>
|
|
137
137
|
<td>✅</td>
|
|
138
|
-
<td
|
|
138
|
+
<td>✅</td>
|
|
139
139
|
</tr>
|
|
140
140
|
<tr>
|
|
141
141
|
<td>MotherDuck</td>
|
|
@@ -177,6 +177,11 @@ Pull requests are welcome. However, please open an issue first to discuss what y
|
|
|
177
177
|
<td>✅</td>
|
|
178
178
|
<td>❌</td>
|
|
179
179
|
</tr>
|
|
180
|
+
<tr>
|
|
181
|
+
<td>Trino</td>
|
|
182
|
+
<td>✅</td>
|
|
183
|
+
<td>✅</td>
|
|
184
|
+
</tr>
|
|
180
185
|
<tr>
|
|
181
186
|
<td colspan="3" style='text-align:center;'><strong>Platforms</strong></td>
|
|
182
187
|
</tr>
|
|
@@ -114,6 +114,7 @@ export default defineConfig({
|
|
|
114
114
|
{ text: "Adjust", link: "/supported-sources/adjust.md" },
|
|
115
115
|
{ text: "Airtable", link: "/supported-sources/airtable.md" },
|
|
116
116
|
{ text: "Amazon Kinesis", link: "/supported-sources/kinesis.md" },
|
|
117
|
+
{ text: "Anthropic", link: "/supported-sources/anthropic.md" },
|
|
117
118
|
{ text: "AppsFlyer", link: "/supported-sources/appsflyer.md" },
|
|
118
119
|
{ text: "Apple App Store", link: "/supported-sources/appstore.md"},
|
|
119
120
|
{ text: "Applovin", link: "/supported-sources/applovin.md"},
|
|
@@ -122,6 +123,7 @@ export default defineConfig({
|
|
|
122
123
|
{ text: "Attio", link: "/supported-sources/attio.md" },
|
|
123
124
|
{ text: "Chess.com", link: "/supported-sources/chess.md" },
|
|
124
125
|
{ text: "ClickUp", link: "/supported-sources/clickup.md" },
|
|
126
|
+
{ text: "Docebo", link: "/supported-sources/docebo.md" },
|
|
125
127
|
{
|
|
126
128
|
text: "Facebook Ads",
|
|
127
129
|
link: "/supported-sources/facebook-ads.md",
|
|
@@ -129,6 +131,7 @@ export default defineConfig({
|
|
|
129
131
|
{ text: "Fluxx", link: "/supported-sources/fluxx.md" },
|
|
130
132
|
{ text: "Frankfurter", link: "/supported-sources/frankfurter.md" },
|
|
131
133
|
{ text: "Freshdesk", link: "/supported-sources/freshdesk.md" },
|
|
134
|
+
{ text: "FundraiseUp", link: "/supported-sources/fundraiseup.md" },
|
|
132
135
|
{ text: "Trustpilot", link: "/supported-sources/trustpilot.md" },
|
|
133
136
|
{ text: "Google Cloud Storage (GCS)", link: "/supported-sources/gcs.md" },
|
|
134
137
|
{ text: "Google Analytics", link: "/supported-sources/google_analytics.md" },
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
# Anthropic
|
|
2
|
+
|
|
3
|
+
[Anthropic](https://www.anthropic.com/) is an AI safety company that builds Claude, a family of large language models. This source enables you to extract comprehensive data from the Anthropic Admin API, including Claude Code usage metrics, API usage reports, cost data, and organization management information.
|
|
4
|
+
|
|
5
|
+
## URI Format
|
|
6
|
+
|
|
7
|
+
The URI format for Anthropic is:
|
|
8
|
+
|
|
9
|
+
```plaintext
|
|
10
|
+
anthropic://?api_key=<admin_api_key>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### URI Parameters:
|
|
14
|
+
|
|
15
|
+
- `api_key` (required): Your Anthropic Admin API key (must start with `sk-ant-admin...`)
|
|
16
|
+
|
|
17
|
+
::: warning Admin API Key Required
|
|
18
|
+
This source requires an **Admin API key** which is different from standard API keys. Only organization members with the admin role can provision Admin API keys through the [Anthropic Console](https://console.anthropic.com/settings/admin-keys).
|
|
19
|
+
|
|
20
|
+
The Admin API is unavailable for individual accounts. To use this source, you must have an organization set up in Console → Settings → Organization.
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
## Available Tables
|
|
24
|
+
|
|
25
|
+
### claude_code_usage
|
|
26
|
+
|
|
27
|
+
The `claude_code_usage` table contains daily aggregated usage metrics for Claude Code users in your organization. This data helps you analyze developer productivity and monitor Claude Code adoption.
|
|
28
|
+
|
|
29
|
+
#### Schema
|
|
30
|
+
|
|
31
|
+
| Column | Type | Description |
|
|
32
|
+
|--------|------|-------------|
|
|
33
|
+
| `date` | `string` | Date in RFC 3339 format (UTC timestamp) |
|
|
34
|
+
| `actor_type` | `string` | Type of actor (`user_actor` or `api_actor`) |
|
|
35
|
+
| `actor_id` | `string` | Email address for users or API key name for API actors |
|
|
36
|
+
| `organization_id` | `string` | Organization UUID |
|
|
37
|
+
| `customer_type` | `string` | Type of customer account (`api` or `subscription`) |
|
|
38
|
+
| `terminal_type` | `string` | Terminal/environment where Claude Code was used (e.g., `vscode`, `iTerm.app`) |
|
|
39
|
+
| `num_sessions` | `integer` | Number of distinct Claude Code sessions |
|
|
40
|
+
| `lines_added` | `integer` | Total lines of code added across all files |
|
|
41
|
+
| `lines_removed` | `integer` | Total lines of code removed across all files |
|
|
42
|
+
| `commits_by_claude_code` | `integer` | Number of git commits created through Claude Code |
|
|
43
|
+
| `pull_requests_by_claude_code` | `integer` | Number of pull requests created through Claude Code |
|
|
44
|
+
| `edit_tool_accepted` | `integer` | Number of Edit tool proposals accepted |
|
|
45
|
+
| `edit_tool_rejected` | `integer` | Number of Edit tool proposals rejected |
|
|
46
|
+
| `multi_edit_tool_accepted` | `integer` | Number of MultiEdit tool proposals accepted |
|
|
47
|
+
| `multi_edit_tool_rejected` | `integer` | Number of MultiEdit tool proposals rejected |
|
|
48
|
+
| `write_tool_accepted` | `integer` | Number of Write tool proposals accepted |
|
|
49
|
+
| `write_tool_rejected` | `integer` | Number of Write tool proposals rejected |
|
|
50
|
+
| `notebook_edit_tool_accepted` | `integer` | Number of NotebookEdit tool proposals accepted |
|
|
51
|
+
| `notebook_edit_tool_rejected` | `integer` | Number of NotebookEdit tool proposals rejected |
|
|
52
|
+
| `total_input_tokens` | `integer` | Total input tokens across all models |
|
|
53
|
+
| `total_output_tokens` | `integer` | Total output tokens across all models |
|
|
54
|
+
| `total_cache_read_tokens` | `integer` | Total cache read tokens across all models |
|
|
55
|
+
| `total_cache_creation_tokens` | `integer` | Total cache creation tokens across all models |
|
|
56
|
+
| `total_estimated_cost_cents` | `integer` | Total estimated cost in cents USD |
|
|
57
|
+
| `models_used` | `string` | Comma-separated list of Claude models used |
|
|
58
|
+
|
|
59
|
+
### usage_report
|
|
60
|
+
|
|
61
|
+
The `usage_report` table contains detailed token usage metrics from the Messages API, aggregated by time bucket, workspace, API key, model, and service tier.
|
|
62
|
+
|
|
63
|
+
#### Schema
|
|
64
|
+
|
|
65
|
+
| Column | Type | Description |
|
|
66
|
+
|--------|------|-------------|
|
|
67
|
+
| `bucket` | `string` | Time bucket in ISO 8601 format |
|
|
68
|
+
| `api_key_id` | `string` | API key identifier |
|
|
69
|
+
| `workspace_id` | `string` | Workspace identifier |
|
|
70
|
+
| `model` | `string` | Claude model used |
|
|
71
|
+
| `service_tier` | `string` | Service tier (scale or default) |
|
|
72
|
+
| `input_tokens` | `integer` | Number of input tokens |
|
|
73
|
+
| `output_tokens` | `integer` | Number of output tokens |
|
|
74
|
+
| `input_cached_tokens` | `integer` | Number of cached input tokens |
|
|
75
|
+
| `api_first_response_latency_ms_p50` | `float` | 50th percentile first response latency in milliseconds |
|
|
76
|
+
| `api_first_response_latency_ms_p95` | `float` | 95th percentile first response latency in milliseconds |
|
|
77
|
+
| `api_first_response_latency_ms_p99` | `float` | 99th percentile first response latency in milliseconds |
|
|
78
|
+
| `api_total_latency_ms_p50` | `float` | 50th percentile total latency in milliseconds |
|
|
79
|
+
| `api_total_latency_ms_p95` | `float` | 95th percentile total latency in milliseconds |
|
|
80
|
+
| `api_total_latency_ms_p99` | `float` | 99th percentile total latency in milliseconds |
|
|
81
|
+
| `api_request_count` | `integer` | Number of API requests |
|
|
82
|
+
| `server_tool_search_count` | `integer` | Number of server tool searches |
|
|
83
|
+
| `server_tool_result_count` | `integer` | Number of server tool results |
|
|
84
|
+
|
|
85
|
+
### cost_report
|
|
86
|
+
|
|
87
|
+
The `cost_report` table contains aggregated cost data broken down by workspace and cost description.
|
|
88
|
+
|
|
89
|
+
#### Schema
|
|
90
|
+
|
|
91
|
+
| Column | Type | Description |
|
|
92
|
+
|--------|------|-------------|
|
|
93
|
+
| `bucket` | `string` | Time bucket in ISO 8601 format |
|
|
94
|
+
| `workspace_id` | `string` | Workspace identifier |
|
|
95
|
+
| `description` | `string` | Cost description (e.g., "Usage - claude-3-5-sonnet-20241022") |
|
|
96
|
+
| `amount_cents` | `integer` | Cost amount in cents USD |
|
|
97
|
+
|
|
98
|
+
### organization
|
|
99
|
+
|
|
100
|
+
The `organization` table contains information about your Anthropic organization.
|
|
101
|
+
|
|
102
|
+
#### Schema
|
|
103
|
+
|
|
104
|
+
| Column | Type | Description |
|
|
105
|
+
|--------|------|-------------|
|
|
106
|
+
| `id` | `string` | Organization UUID |
|
|
107
|
+
| `name` | `string` | Organization name |
|
|
108
|
+
| `settings` | `object` | Organization settings (JSON) |
|
|
109
|
+
| `created_at` | `string` | Creation timestamp |
|
|
110
|
+
|
|
111
|
+
### workspaces
|
|
112
|
+
|
|
113
|
+
The `workspaces` table contains all workspaces in your organization.
|
|
114
|
+
|
|
115
|
+
#### Schema
|
|
116
|
+
|
|
117
|
+
| Column | Type | Description |
|
|
118
|
+
|--------|------|-------------|
|
|
119
|
+
| `id` | `string` | Workspace UUID |
|
|
120
|
+
| `name` | `string` | Workspace name |
|
|
121
|
+
| `type` | `string` | Workspace type (default or custom) |
|
|
122
|
+
| `created_at` | `string` | Creation timestamp |
|
|
123
|
+
|
|
124
|
+
### api_keys
|
|
125
|
+
|
|
126
|
+
The `api_keys` table contains all API keys in your organization.
|
|
127
|
+
|
|
128
|
+
#### Schema
|
|
129
|
+
|
|
130
|
+
| Column | Type | Description |
|
|
131
|
+
|--------|------|-------------|
|
|
132
|
+
| `id` | `string` | API key UUID |
|
|
133
|
+
| `name` | `string` | API key name |
|
|
134
|
+
| `status` | `string` | API key status (active or disabled) |
|
|
135
|
+
| `created_at` | `string` | Creation timestamp |
|
|
136
|
+
| `workspace_id` | `string` | Associated workspace UUID |
|
|
137
|
+
| `created_by_user_id` | `string` | User who created the key |
|
|
138
|
+
| `last_used_at` | `string` | Last usage timestamp |
|
|
139
|
+
|
|
140
|
+
### invites
|
|
141
|
+
|
|
142
|
+
The `invites` table contains all pending organization invites.
|
|
143
|
+
|
|
144
|
+
#### Schema
|
|
145
|
+
|
|
146
|
+
| Column | Type | Description |
|
|
147
|
+
|--------|------|-------------|
|
|
148
|
+
| `id` | `string` | Invite UUID |
|
|
149
|
+
| `email` | `string` | Invitee email address |
|
|
150
|
+
| `role` | `string` | Invited role (admin or member) |
|
|
151
|
+
| `expires_at` | `string` | Expiration timestamp |
|
|
152
|
+
| `workspace_ids` | `array` | List of workspace UUIDs |
|
|
153
|
+
| `created_at` | `string` | Creation timestamp |
|
|
154
|
+
| `created_by_user_id` | `string` | User who created the invite |
|
|
155
|
+
|
|
156
|
+
### users
|
|
157
|
+
|
|
158
|
+
The `users` table contains all users in your organization.
|
|
159
|
+
|
|
160
|
+
#### Schema
|
|
161
|
+
|
|
162
|
+
| Column | Type | Description |
|
|
163
|
+
|--------|------|-------------|
|
|
164
|
+
| `id` | `string` | User UUID |
|
|
165
|
+
| `email` | `string` | User email address |
|
|
166
|
+
| `name` | `string` | User full name |
|
|
167
|
+
| `role` | `string` | User role (admin or member) |
|
|
168
|
+
| `created_at` | `string` | Creation timestamp |
|
|
169
|
+
| `last_login_at` | `string` | Last login timestamp |
|
|
170
|
+
|
|
171
|
+
### workspace_members
|
|
172
|
+
|
|
173
|
+
The `workspace_members` table contains workspace membership information.
|
|
174
|
+
|
|
175
|
+
#### Schema
|
|
176
|
+
|
|
177
|
+
| Column | Type | Description |
|
|
178
|
+
|--------|------|-------------|
|
|
179
|
+
| `workspace_id` | `string` | Workspace UUID |
|
|
180
|
+
| `user_id` | `string` | User UUID |
|
|
181
|
+
| `role` | `string` | Role in workspace |
|
|
182
|
+
| `added_at` | `string` | When user was added to workspace |
|
|
183
|
+
|
|
184
|
+
## Examples
|
|
185
|
+
|
|
186
|
+
### Basic Usage
|
|
187
|
+
|
|
188
|
+
Load all Claude Code usage data to a DuckDB database:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
ingestr ingest \
|
|
192
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
193
|
+
--source-table "claude_code_usage" \
|
|
194
|
+
--dest-uri "duckdb:///anthropic_data.db" \
|
|
195
|
+
--dest-table "claude_code_usage"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Incremental Loading
|
|
199
|
+
|
|
200
|
+
Load data incrementally starting from a specific date:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
ingestr ingest \
|
|
204
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
205
|
+
--source-table "claude_code_usage" \
|
|
206
|
+
--dest-uri "postgresql://user:password@localhost:5432/analytics" \
|
|
207
|
+
--dest-table "claude_code_usage" \
|
|
208
|
+
--interval-start "2024-01-01" \
|
|
209
|
+
--interval-end "2024-12-31"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Load to BigQuery
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
ingestr ingest \
|
|
216
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
217
|
+
--source-table "claude_code_usage" \
|
|
218
|
+
--dest-uri "bigquery://project-id.dataset" \
|
|
219
|
+
--dest-table "claude_code_usage"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Load Organization Data
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
ingestr ingest \
|
|
226
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
227
|
+
--source-table "organization" \
|
|
228
|
+
--dest-uri "duckdb:///anthropic_data.db" \
|
|
229
|
+
--dest-table "organization"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Load Usage Report
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
ingestr ingest \
|
|
236
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
237
|
+
--source-table "usage_report" \
|
|
238
|
+
--dest-uri "postgresql://user:password@localhost:5432/analytics" \
|
|
239
|
+
--dest-table "api_usage" \
|
|
240
|
+
--interval-start "2024-01-01" \
|
|
241
|
+
--interval-end "2024-12-31"
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Load Cost Report
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
ingestr ingest \
|
|
248
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
249
|
+
--source-table "cost_report" \
|
|
250
|
+
--dest-uri "duckdb:///costs.db" \
|
|
251
|
+
--dest-table "anthropic_costs"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Load All Users and Workspaces
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Load users
|
|
258
|
+
ingestr ingest \
|
|
259
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
260
|
+
--source-table "users" \
|
|
261
|
+
--dest-uri "duckdb:///org_data.db" \
|
|
262
|
+
--dest-table "users"
|
|
263
|
+
|
|
264
|
+
# Load workspaces
|
|
265
|
+
ingestr ingest \
|
|
266
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
267
|
+
--source-table "workspaces" \
|
|
268
|
+
--dest-uri "duckdb:///org_data.db" \
|
|
269
|
+
--dest-table "workspaces"
|
|
270
|
+
|
|
271
|
+
# Load workspace members
|
|
272
|
+
ingestr ingest \
|
|
273
|
+
--source-uri "anthropic://?api_key=sk-ant-admin-..." \
|
|
274
|
+
--source-table "workspace_members" \
|
|
275
|
+
--dest-uri "duckdb:///org_data.db" \
|
|
276
|
+
--dest-table "workspace_members"
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Incremental Loading
|
|
280
|
+
|
|
281
|
+
The following tables support incremental loading:
|
|
282
|
+
- `claude_code_usage` - incremental based on the `date` field
|
|
283
|
+
- `usage_report` - supports date range filtering with `--interval-start` and `--interval-end`
|
|
284
|
+
- `cost_report` - supports date range filtering with `--interval-start` and `--interval-end`
|
|
285
|
+
|
|
286
|
+
Other tables (`organization`, `workspaces`, `api_keys`, `invites`, `users`, `workspace_members`) use full refresh mode as they represent current state data.
|
|
287
|
+
|
|
288
|
+
When running incremental loads:
|
|
289
|
+
- The source tracks the last loaded date for `claude_code_usage`
|
|
290
|
+
- Subsequent runs will only fetch new data
|
|
291
|
+
- Use `--interval-start` and `--interval-end` to specify a custom date range
|
|
292
|
+
- Default start date is January 1, 2023
|
|
293
|
+
|
|
294
|
+
## Use Cases
|
|
295
|
+
|
|
296
|
+
### Developer Productivity Analysis
|
|
297
|
+
|
|
298
|
+
Track how your team uses Claude Code:
|
|
299
|
+
- Monitor adoption rates across different teams
|
|
300
|
+
- Analyze code generation patterns
|
|
301
|
+
- Track tool acceptance rates
|
|
302
|
+
|
|
303
|
+
### Cost Monitoring
|
|
304
|
+
|
|
305
|
+
Monitor Claude Code costs:
|
|
306
|
+
- Track token usage by user and model
|
|
307
|
+
- Analyze spending patterns
|
|
308
|
+
- Allocate costs by team or project
|
|
309
|
+
|
|
310
|
+
### Executive Dashboards
|
|
311
|
+
|
|
312
|
+
Create reports showing:
|
|
313
|
+
- Claude Code impact on development velocity
|
|
314
|
+
- Lines of code generated vs. manual coding
|
|
315
|
+
- Commit and PR creation metrics
|
|
316
|
+
- API usage patterns across workspaces
|
|
317
|
+
- Cost allocation by team and project
|
|
318
|
+
|
|
319
|
+
### Organization Management
|
|
320
|
+
|
|
321
|
+
Monitor and audit your organization:
|
|
322
|
+
- Track user access and permissions
|
|
323
|
+
- Monitor API key usage and lifecycle
|
|
324
|
+
- Audit workspace memberships
|
|
325
|
+
- Track pending invites and onboarding
|
|
326
|
+
|
|
327
|
+
## Data Freshness
|
|
328
|
+
|
|
329
|
+
Claude Code analytics data typically appears within 1 hour of user activity completion. The API provides daily aggregated metrics only.
|
|
330
|
+
|
|
331
|
+
## Rate Limits
|
|
332
|
+
|
|
333
|
+
The Anthropic Admin API has rate limits in place. The source handles pagination automatically and respects these limits.
|
|
334
|
+
|
|
335
|
+
## Notes
|
|
336
|
+
|
|
337
|
+
- This source only tracks Claude Code usage on the Anthropic API (1st party)
|
|
338
|
+
- Usage on Amazon Bedrock, Google Vertex AI, or other third-party platforms is not included
|
|
339
|
+
- All dates and timestamps are in UTC
|
|
340
|
+
- The source requires organization-level access (not available for individual accounts)
|
|
341
|
+
|
|
342
|
+
## Available Tables Summary
|
|
343
|
+
|
|
344
|
+
| Table | Incremental | Primary Key | Description |
|
|
345
|
+
|-------|-------------|-------------|-------------|
|
|
346
|
+
| `claude_code_usage` | ✅ | date, actor_type, actor_id, terminal_type | Daily Claude Code usage metrics |
|
|
347
|
+
| `usage_report` | Date Range | bucket, api_key_id, workspace_id, model, service_tier | API usage and latency metrics |
|
|
348
|
+
| `cost_report` | Date Range | bucket, workspace_id, description | Cost breakdown by workspace |
|
|
349
|
+
| `organization` | ❌ | - | Organization information |
|
|
350
|
+
| `workspaces` | ❌ | id | Workspace list |
|
|
351
|
+
| `api_keys` | ❌ | id | API key management |
|
|
352
|
+
| `invites` | ❌ | id | Pending invitations |
|
|
353
|
+
| `users` | ❌ | id | User list |
|
|
354
|
+
| `workspace_members` | ❌ | workspace_id, user_id | Workspace memberships |
|
|
355
|
+
|
|
356
|
+
For feature requests or issues, please create a GitHub issue at https://github.com/bruin-data/ingestr
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Docebo
|
|
2
|
+
|
|
3
|
+
[Docebo](https://www.docebo.com/) is a cloud-based Learning Management System (LMS) platform that provides enterprise learning solutions for employee training, customer education, and partner enablement.
|
|
4
|
+
|
|
5
|
+
ingestr supports Docebo as a source.
|
|
6
|
+
|
|
7
|
+
## URI format
|
|
8
|
+
|
|
9
|
+
The URI format for Docebo is as follows:
|
|
10
|
+
|
|
11
|
+
```plaintext
|
|
12
|
+
docebo://?base_url=<base_url>&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
URI parameters:
|
|
16
|
+
- `base_url`: the base URL of your Docebo instance (e.g., `https://yourcompany.docebosaas.com`)
|
|
17
|
+
- `client_id`: OAuth2 client ID for API authentication
|
|
18
|
+
- `client_secret`: OAuth2 client secret for API authentication
|
|
19
|
+
- `username`: (optional) username for password grant type authentication
|
|
20
|
+
- `password`: (optional) password for password grant type authentication
|
|
21
|
+
|
|
22
|
+
## Setting up a Docebo Integration
|
|
23
|
+
|
|
24
|
+
To obtain your Docebo API credentials:
|
|
25
|
+
|
|
26
|
+
1. Log in to your Docebo platform as a Super Admin
|
|
27
|
+
2. Navigate to **Settings** → **API and SSO**
|
|
28
|
+
3. Create a new OAuth2 application
|
|
29
|
+
4. Note the Client ID and Client Secret
|
|
30
|
+
5. Configure the appropriate scopes for your integration needs
|
|
31
|
+
|
|
32
|
+
You can use either:
|
|
33
|
+
- **Client Credentials Grant**: Use only `client_id` and `client_secret` (recommended for server-to-server integrations)
|
|
34
|
+
- **Password Grant**: Include `username` and `password` along with client credentials (for user-specific access)
|
|
35
|
+
|
|
36
|
+
Here's a sample command that will copy data from Docebo into a DuckDB database:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ingestr ingest \
|
|
40
|
+
--source-uri 'docebo://?base_url=https://yourcompany.docebosaas.com&client_id=your_client_id&client_secret=your_client_secret' \
|
|
41
|
+
--source-table 'users' \
|
|
42
|
+
--dest-uri duckdb:///docebo.duckdb \
|
|
43
|
+
--dest-table 'dest.users'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Tables
|
|
47
|
+
|
|
48
|
+
Docebo source supports ingesting the following sources into separate tables:
|
|
49
|
+
|
|
50
|
+
| Table | PK | Inc Key | Inc Strategy | Details |
|
|
51
|
+
|-------|----|---------|--------------|---------|
|
|
52
|
+
| [branches](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Organizational units/branches in the org chart. Full reload on each run. |
|
|
53
|
+
| [categories](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Course categories for organizing content. Full reload on each run. |
|
|
54
|
+
| [certifications](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Certification programs and their configurations. Full reload on each run. |
|
|
55
|
+
| [course_enrollments](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | All course enrollment records with completion status. Full reload on each run. |
|
|
56
|
+
| [course_fields](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Custom course field definitions. Full reload on each run. |
|
|
57
|
+
| [course_learning_objects](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Learning objects (modules) within all courses. Full reload on each run. |
|
|
58
|
+
| [courses](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | All courses in the platform including e-learning, ILT, and webinars. Full reload on each run. |
|
|
59
|
+
| [external_training](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | External training records tracked in Docebo. Full reload on each run. |
|
|
60
|
+
| [group_members](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Membership records for all groups. Full reload on each run. |
|
|
61
|
+
| [groups](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | User groups/audiences for organizing learners. Full reload on each run. |
|
|
62
|
+
| [learning_plan_course_enrollments](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Course enrollments within learning plans. Full reload on each run. |
|
|
63
|
+
| [learning_plan_enrollments](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | User enrollments in learning plans. Full reload on each run. |
|
|
64
|
+
| [learning_plans](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Learning plans (learning paths) that group courses. Full reload on each run. |
|
|
65
|
+
| [sessions](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | ILT/classroom sessions for instructor-led courses. Full reload on each run. |
|
|
66
|
+
| [user_fields](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | Custom user field definitions. Full reload on each run. |
|
|
67
|
+
| [users](https://help.docebo.com/hc/en-us/articles/360019499600) | - | - | replace | All platform users including learners, instructors, and administrators. Full reload on each run. |
|
|
68
|
+
|
|
69
|
+
Use the table name as the `--source-table` parameter in the `ingestr ingest` command.
|
|
70
|
+
|
|
71
|
+
> [!WARNING]
|
|
72
|
+
> Docebo does not currently support incremental loading, which means ingestr will do a full-refresh on each run.
|
|
73
|
+
|
|
74
|
+
> [!NOTE]
|
|
75
|
+
> Date fields containing invalid dates (e.g., '0000-00-00') are automatically normalized to Unix epoch (1970-01-01) for compatibility.
|