Bigeye Connector SDK Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.14.2] - 2026-08-19
Security
- Bumped
cryptographyto >=50.0.0, fixing CVE-2026-69247.
[0.14.1] - 2026-08-19
Security
- Bumped
GitPythonto >=3.1.58, fixing a family of argument-injection advisories (GHSA-9rj7-rf2p-w77r, GHSA-539m-9xh6-q6rr, GHSA-p538-c434-8v24, GHSA-3f7w-8rr8-f37f, GHSA-hh9p-6wh2-4mfc, GHSA-4gmw-gg2m-w46p, GHSA-wvpp-8hx9-p66j, GHSA-hmq2-w58f-27jc, GHSA-jm78-9fvv-mhgr).
[0.14.0] - 2026-08-18
Added
- Matillion DPC:
matillion_dpc.variablesconfig option to supply values for pipeline variables not declared in the YAML. - Matillion DPC:
matillion_dpc.environment.default.databaseconfig option to resolve the[Environment Default]placeholder. - Matillion DPC: unresolved-variable diagnostics now list the specific missing variable names.
[0.13.1] - 2026-08-12
Fixed
- ADF / Synapse connector: fixed source-table resolution for ForEach Copy activities whose source table and SELECT come from
@item()config values.
[0.13.0] - 2026-08-11
Changed
- Matillion DPC lineage now collapses to two hops (source → output column → target).
- Matillion DPC catalog hierarchy changed to Project → Pipeline → Target Table → Column (external ids change; first sync rewrites the repository).
Added
- Matillion DPC: Table Update sinks now map target columns; deletes stay table-level.
- Matillion DPC: several additional component types now preserve columns (rank, window-calculation, first-last, lead-lag, detect-changes, except, convert-type).
- Matillion DPC: unresolved warehouse endpoints are now reported by reason.
[0.12.3] - 2026-07-24
Fixed
- Bumped
GitPythonto >=3.1.52, fixing argument-injection and env-var-exfiltration CVEs (GHSA-2f96-g7mh-g2hx, GHSA-956x-8gvw-wg5v, GHSA-v396-v7q4-x2qj, GHSA-rwj8-pgh3-r573).
[0.12.2] - 2026-07-21
Fixed
- Custom-repository connectors now suffix the repository name with the workspace name when targeting multiple workspaces, avoiding name collisions.
- dbt connector no longer fails on unknown dbt Cloud enum values (e.g. new
remote_backendtypes).
[0.12.1] - 2026-07-20
Changed
- AtScale connector migrated from the deprecated
LineageConnectortoCustomRepositoryConnector.
[0.12.0] - 2026-07-16
Added
- Added the Matillion Data Productivity Cloud (DPC) connector: parses DPL pipeline YAML into Project → Pipeline → Component → Column lineage.
[0.11.20] - 2026-07-15
Fixed
- ADF / Synapse connector: fixed cross-linked lineage for config-table ForEach activities with fully parameterized inner Copy steps.
[0.11.19] - 2026-07-07
Added
- ADF / Synapse connector: config-table-driven stored procedures now emit one source→target lineage flow per resolved row.
- Qlik Replicate connector: endpoints now resolve to Bigeye warehouses via a tiered binder, avoiding ambiguous matches.
[0.11.18] - 2026-07-02
Fixed
- ADF / Synapse connector: SQL Server source refs now resolve by schema/table containment instead of requiring a database-name match.
- Qlik Replicate connector: same schema/table containment fix applied to SQL Server source endpoints.
[0.11.17] - 2026-06-30
Fixed
- ADF / Synapse connector: transient temp tables now collapse correctly across differing dev/prod pool labels.
- Qlik Replicate connector: SQL Server source tables now resolve whether the schema is catalogued database-qualified or bare.
[0.11.16] - 2026-06-30
Fixed
- Rebuilt on the latest RHEL el10_2 errata, fixing CVE-2026-5450 (
glibc) and CVE-2025-5278 (coreutils).
[0.11.15] - 2026-06-25
Changed
- Moved the base image from UBI9 (python3.11) to UBI10 (python3.12).
Fixed
- Bumped
cryptographyto >=48.0.1, fixing GHSA-537c-gmf6-5ccf; rebuilt on the latest RHEL errata (openssl-fips-provider).
[0.11.14] - 2026-06-12
Fixed
- ADF / Synapse connector: fixed several lineage-graph issues — dangling edges no longer reject the whole sync, cross-activity column edges materialize correctly, database-name overrides apply consistently, and the SQL parser skips uncatalogued-table statements instead of retrying.
[0.11.13] - 2026-06-11
Fixed
- Shared REST client: API calls now use a connect/read timeout so stalled connections no longer hang extraction.
[0.11.12] - 2026-06-10
Fixed
- ADF / Synapse connector: fixed end-to-end lineage resolution for pipelines using dataset-level
sqlPoolreferences, cross-pool stored-procedure lookups, and parameterized linked-service database expressions; added logging for stored-procedure lookups.
[0.11.11] - 2026-06-10
Fixed
- ADF / Synapse connector: fixed stored-procedure lineage resolution — case-sensitive name matching, dynamic procedure names, and per-activity build isolation so one failure no longer aborts the whole pipeline.
[0.11.10] - 2026-06-02
Added
- ADF / Synapse connector: stored-procedure activities now produce column-level lineage via MetaCenter, and transient temp tables are collapsed to connect real source/target lineage.
[0.11.9] - 2026-05-13
Fixed
- Bumped Java 11 to Java 21 to resolve CVEs.
[0.11.7] - 2026-05-13
Added
- ADF / Synapse connector: dynamic Tabular Translator expressions are now resolved into concrete column mappings.
Fixed
- ADF / Synapse connector: long-running pipeline-history fetches now survive Azure AD bearer-token expiry via automatic re-authentication and retry.
- ADF / Synapse connector:
nextLinkpagination follow-ups now inherit the same retry/timeout/error handling as other API calls.
[0.11.6] - 2026-05-11
Fixed
- Qlik Replicate connector: QEM client now retries transient 5xx/connection errors with exponential backoff instead of failing the run.
[0.11.5] - 2026-05-11
Fixed
- ADF / Synapse connector: fixed activity-run pagination for Synapse's
continuationTokencontract (previously only ADF'snextLinkwas handled).
[0.11.4] - 2026-05-06
Changed
CustomRepositoryConnector.sync()default timeout raised from 2 hours to 8 hours, matching the server-side Temporal activity timeout.
[0.11.3] - 2026-05-05
Fixed
- dbt connector:
BEGIN; ...; COMMIT;transaction wrappers are now stripped before SQL is sent to the lineage parser.
[0.11.2] - 2026-05-04
Added
- Qlik Replicate connector: QEM client now logs proxy resolution details to help diagnose corporate-proxy connectivity issues.
Fixed
- ADF / Synapse connector: all HTTP calls now use a connect/read timeout with one retry on read timeout, instead of blocking indefinitely.
- ADF / Synapse connector: fixed the Synapse activity-runs API URI (previously used the ADF Management-plane URI for both platforms, causing 404s on Synapse).
- ADF / Synapse connector: per-pipeline run-history fetches are now wrapped in a 5-minute watchdog so one stuck pipeline can't block the whole run.
- ADF / Synapse connector: API errors now raise a descriptive
ConnectorApiErrorinstead of an unhelpful stringified exception.
[0.11.1] - 2026-05-01
Changed
- Qlik Replicate connector: Target Column enumeration now starts from the target warehouse's column inventory instead of the source's.
- Qlik Replicate connector: column-to-column lineage edges now require a cached column reference instead of falling back to a table-level edge.
Fixed
- Qlik Replicate connector: fixed several SAP HANA lineage-resolution issues — backend database resolution, default schema fallback, source-column enumeration retry, and schema-name normalization across warehouses.
[0.11.0] - 2026-04-29
Added
- New Qlik Replicate / Qlik Enterprise Manager (QEM) connector.
BIGEYE_TABLE_CACHE_SCHEMA_BATCH_SIZEandBIGEYE_TABLE_CACHE_SCHEMA_BATCH_CONCURRENCYenv vars to chunk and parallelize table-cache warm-up requests.
Changed
TableLookupCache.warm_cachenow applies schema-batch results all-or-nothing instead of partially loading the cache on a batch failure.
Fixed
- Qlik Replicate connector: target-side column lookup no longer falls back to the source schema, avoiding a self-referencing lineage cycle.
[0.10.4] - 2026-04-29
Added
BIGEYE_TABLE_CACHE_PAGE_SIZEenv var to control table-cache fetch page size for proxies with shorter request timeouts.TableLookupCache.warm_cachenow retries transport-level failures with backoff.
Fixed
TableLookupCache.warm_cacheno longer silently swallows fetch exceptions — failures now abort the run instead of proceeding with an empty cache (which previously caused destructive lineage cleanup).
[0.10.3] - 2026-04-27
Added
- dbt: Support for dbt 1.5 manifests, which omit
metadata.project_name. Newresolve_project_name(manifest)helper indbt/base/utils.pyreturnsmetadata.project_namewhen set, otherwise infers it from the first model/seed/snapshot node'spackage_name. BothDBTRepositoryConfigBuilder.build()andDBTConnector.create_monitors()apply the resolution during their parse loops, write the inferred value back ontomanifest.metadata.project_name, and log a warning naming the file path and dbt version. Manifests where inference also fails (e.g., no qualifying nodes) are skipped with a warning instead of crashing.
Fixed
- dbt:
Failed to sync for workspace ...: sequence item 1: expected str instance, NoneType foundcrash when a manifest'smetadata.project_namewas null/missing. The previous ternarymanifest.metadata.project_name if manifest.metadata else "dbt"only handled a missingmetadataobject; a present-but-nullproject_name(declaredOptional[str]onDbtMetadata) flowed asNoneinto_build_external_id's"__".join(...). Resolved by the dbt 1.5 inference described above. - dbt:
TableLookupCache.warm_cachenow dedupesschema_idsbefore callingget_tables_post._schema_cacheis keyed by lowercased fq_name, so callers passing case-variant fq_names (common across multi-project dbt syncs) previously appended the sameschema_id2–3× in a single request body. Switched the local accumulator fromlisttoSet[int]and sorted before sending for deterministic request bodies.
[0.10.2] - 2026-04-23
Added
- dbt Cloud: extract caching. When the same dbt Cloud
run_idis still the latest run for a job, the connector now reuses the previously downloadedmanifest.json,catalog.json,run_results.json, andrun/*.sqlartifacts instead of re-downloading them. **Cache is enabled by default** (dbt.cache.enabled=true); - dbt Cloud: parallel project extraction within an account. New
dbt.parallelismproperty (default4) bounds the thread pool used to process projects concurrently.
Changed
- dbt Cloud: Failed downloads of
catalog.jsonnow log at WARN instead of ERROR. - Framework:
BaseIntegrationClientnow retries automatically on HTTP 429 (rate limited). Retries honor theRetry-Afterheader when present (capped at 60s), otherwise use exponential backoff with ±20% jitter (1s → 2s → 4s → 8s → 16s, capped at 30s) up to 5 retries. - Framework:
Connector.sync()defaulttimeoutraised from 1200s (20 min) to 7200s (2 hours).
Fixed
- dbt Cloud: cross-project cache pruning. When multiple projects shared the same
dbt.local.manifests.location, each project's prune step would delete the other projects' currentrun_iddirectories. Pruning is now performed once at the end of extraction against the union of latest run IDs across all accounts and projects, so shared-cache setups behave correctly.
[0.10.1] - 2026-04-23
Added
BIGEYE_FILE_OUTPUT_ROOTenvironment variable (also settable asfile.output.rootinsettings.properties) that overrides the base directory for connector-generated files. Defaults to the current working directory; the directory is created if missing. Affects:extracts/<connector>/<env>directories (dbt, Looker, AtScale, ADF, S3, ADLS, SharePoint),debug_configs/written under--save-config, the defaultrun_summary.jsonlocation for bothrunandmonitorcommands, and the lineage_template.yaml paths under S3/ADLS/SharePoint. An explicit--summary-outputpath still wins over the env-var-derived default.
Fixed
- dbt Cloud:
GET /api/v3/accounts/{id}/projects/no longer fails with pydantic validation errors when the API returns values outside our internal enums.DBTJobSchedule.date/time,DBTJob.job_type,DBTJob.state,DBTRepository.state,DBTJobTriggers.custom_branch_only, andJobSchedule.datenow accept any string/int/None value returned by the API. AffectedDBTListProjectsResponseparsing for projects with jobs whosejob_typewasscheduled/other, schedule discriminators likedays_of_week/at_exact_hours, or nullcustom_branch_only— previously these caused the entire account's extraction to fail.
Security
- Bump
cryptographyto>=46.0.7,<47.0.0to resolve [CVE-2026-39892](https://nvd.nist.gov/vuln/detail/CVE-2026-39892) (CVSS 9.8 — buffer overflow when a non-contiguous Python buffer is passed tocryptographyAPIs such asHash.update()). Affected thebigeyedata/source-connectorimage via the previous46.0.6lock.
[0.10.0] - 2026-04-06
Added
- ADLS Gen2 support
[0.9.4] - 2026-04-03
Added
- SQL parser: Exponential retry policy on
/api/v1/sql-parserrequests. On 500 errors, retries up to 4 times with exponential backoff (1s, 2s, 4s, 8s). Non-500 errors are not retried. If all retries fail, logs a warning and continues processing with empty lineage for that query. - dbt: Connector now loads compiled SQL from
run/<package>/<path>/*.sqlfiles, falls back torun_results.jsoncompiled_code, thenmanifest.jsoncompiled_code. - dbt Cloud:
dbt.runs.last.x.daysconfig option to control how far back to query dbt Cloud runs (default: 7). The connector still selects only the latest successful run per job, but this allows finding runs older than 7 days when needed.
Fixed
- SQL parser: Fixed case-sensitive table name matching that caused output tables with mixed-case names (e.g., from dbt manifests) to not be found in the Bigeye catalog.
- SQL parser: Fixed column-level lineage for Snowflake variant field extraction (
SOURCE_DATA:FIELD::string as FIELD). Alias nodes from the SQL parser graph are now matched to output table columns. - dbt: Removed passthrough fallback that created incorrect column-level lineage edges and phantom columns (e.g.,
SOURCE_DATA) on dbt models. Models without deterministic column-level lineage now produce no lineage edges instead of incorrect ones.
[0.9.3] - 2026-04-02
Added
- ADF connector: Azure Synapse Analytics pipeline support.
[0.9.2] - 2026-04-01
Fixed
- dbt Cloud: Trigger cause filter now works correctly. Added
include_relatedparameter to the List Runs API call so thattriggerfields are populated in responses. Previously, thedbt.trigger.causefilter silently matched zero runs.
Added
- dbt Cloud:
dbt.environments.typeconfig option to filter runs by dbt environment type (deployment,development). Use this to include only deployment environments and exclude development environments. - dbt Cloud:
dbt.environments.deployment.typeconfig option to filter runs by dbt deployment type (production,staging). Use this to target production or staging deployment environments specifically. - dbt Cloud:
dbt.environments.includeanddbt.environments.excludeconfig options to filter runs by environment name. Allows separating production runs from QA/staging runs within the same project. Uses substring matching, consistent with existing account/project/job filters. - Run summary: Brief human-readable summary printed to stdout after each run/monitor command completes, showing status, duration, node/edge counts, and any errors or warnings per environment and workspace.
- Properties: Global base properties support. Properties defined without a
.Nnumeric suffix are now treated as base/global defaults applied to all indexed connections. Indexed properties (.1,.2, etc.) override base values when present. - Integration tests: End-to-end dbt connector integration tests that trigger a real dbt Cloud job, extract artifacts, sync to Bigeye staging, and validate catalog nodes, column structure, and column-level lineage paths.
[0.9.1] - 2026-03-30
Fixed
- PowerBI supplemental connector: Fix missing lineage from additional sources to reports caused by passing
data_node.id
(lineage ID) instead ofnode_entity_id(entity ID) to the catalog entity children API in the report resolver
[0.9.0] - 2026-03-30
Added
- ADF: SQL parser now discovers source table schemas from FROM/JOIN clauses in SQL queries, enabling upstream column-level lineage for Script activities with 2-part table names (e.g.,
replica_crossreference.DvmValue) - ADF: SQL parser treats SQL Server and Synapse warehouse types as compatible, so Synapse sources are found when pipelines reference SQL Server linked services
- ADF: MERGE INTO statement support for
extract_insert_into_targetandextract_insert_select_column_mappings, enabling lineage for pipelines that use MERGE-based data loads - ADF: CASE WHEN source column extraction —
_parse_select_columnsextracts the THEN column fromMAX(CASE WHEN ... THEN v.Value END) AS Aliaspatterns, mapping all output columns to their actual source column - ADF: ForEach iteration resolution Strategy 3 — when Lookup output and ForEach input are empty in run history, resolves iteration items from inner Script activity run inputs
- ADF: Table cache fallback for upstream lineage — when the backend SQL parser fails (400/500), source columns are resolved directly from FROM/JOIN tables via the Bigeye warehouse table cache
- ADF:
stored_procedure_namefield on ADFActivity now accepts ADF expression dicts (e.g.,{'value': '@item().StoredProcedure', 'type': 'Expression'}) - ADF: SQL Server bracket-quoted identifier support in SQL parsing (
[Location]aliases,[transaction]table names) - ADF:
resolve_database_for_schemamethod on table cache for suffix-matching 2-part schema names to their full database.schema form - ADF: Data flow column node deduplication — prevents duplicate Column nodes when multiple sinks share column names
Fixed
- ADF:
SELECT DISTINCTandSELECT ALLqueries now parse correctly for column mapping extraction - ADF: Parenthesis-aware column splitting prevents incorrect splits on commas inside function calls (e.g.,
CONVERT(VARCHAR(32), Hashbytes(...))) - ADF: Script activity downstream edges (ADF column -> target warehouse column) are now created before the SQL parser call, so they survive backend parser failures
- ADF: ForEach iteration naming uses placeholder default_database for 2-part INSERT INTO targets, producing descriptive names like
Sql Query [CR_EIACOMGRP]instead of numeric indices - ADF: Database name overrides are now applied to the output table before passing to the SQL parser, ensuring schema lookups use the correct environment-specific database name
- ADF:
ADFPipelineRun.messagefield handles explicitnullvalues from the API without validation errors
[0.8.0] - 2026-03-30
Added
- Support for Microsoft SharePoint
[0.7.1] - 2026-03-23
Added
- Proxy authentication support for connector HTTP clients via
settings.properties(proxy.auth.user,proxy.auth.password,auth.header.key) or environment variables (BIGEYE_PROXY_AUTH_USER,BIGEYE_PROXY_AUTH_PASSWORD,BIGEYE_AUTH_HEADER_KEY) - Configurable logging via
settings.properties(log.level,log.file) or environment variables (BIGEYE_LOG_LEVEL,BIGEYE_LOG_FILE) --settingsCLI flag to specify asettings.propertiesfile for cross-cutting configuration- dbt Cloud:
dbt.trigger.causeconfig option to filter job runs by trigger cause (e.g.Schedule,GitHub). When set, only the latest run whose trigger cause contains the specified value (case-insensitive) is selected per job. Defaults to latest run regardless of trigger cause when not set.
Fixed
- dbt Cloud: Use v2 API for runs and jobs endpoints (v3 does not support these resources)
- dbt Cloud: Use
Accept: */*header for artifact downloads to fix 406 errors on cell-based hosts (e.g.*.us1.dbt.com) - dbt Cloud: Use custom auth header for Bearer token in proxy environments instead of hardcoded
Authorization
Updated
- dbt Cloud client pagination support for all list endpoints
- dbt Cloud client uses per-instance headers instead of shared module-level headers
[0.7.0] - 2026-03-18
Added
- PowerBI Supplemental connector for additional PowerBI sources not supported by Lineage Plus
[0.6.0] - 2026-03-16
Added
- Initial support for Azure Data Factory
Updated
- Resolve environment variable references in property files (e.g.
${BIGEYE_API_KEY})
[0.5.1] - 2026-03-10
Updated
- Configurable lineage granularity for S3 connector (
s3.lineage.granularity=folder|file) - Auto-deploy support for S3 lineage templates when all edges are resolved
- Migrated S3 connector to
CustomRepositoryConnector - Folder mode derives folder names from lineage mapping prefixes
Fixed
- S3
s3_urino longer doubles the bucket name in paths table_fqnresolution for lineage edge sync
[0.5.0] - 2026-03-04
Added
- New
CustomRepositoryConnectorbase class that consolidates catalog creation and lineage sync into a single declarative configuration, replacing the legacy multi-stepLineageConnectorworkflow
Updated
- Migrated
DBTConnectorfromLineageConnectortoCustomRepositoryConnector
Deprecated
LineageConnectorbase class in favor ofCustomRepositoryConnectorSimpleSqlParserResponse.to_lineage_configurations()in favor ofto_repository_sync_edges()
Removed
DBTLineageController(replaced byDBTRepositoryConfigBuilder)
[0.4.4] - 2026-02-13
Updated
- SQLParser no longer requires the use of CTEs or temp tables in order to retrieve lineage for dbt
[0.4.3] - 2026-01-30
Added
- Support for custom webhook URL and webhook header notifications in the DBTConnector for external monitoring
[0.4.2] - 2026-01-29
Fixed
- Fixed path duplication for catalog.json files in the DBTConnector
[0.4.1] - 2026-01-21
Updated
- DBTConnector supports execution level statuses in addition to test level statuses
[0.4.0] - 2025-12-04
Added
- Support for external monitoring of dbt connector
[0.3.0] - 2025-11-26
Added
- Initial implementation for the Looker Connector
[0.2.4] - 2025-11-18
Fixed
- AtScale connector properly handles select star queries
- Various improvements and bugfixes to the AtScale connector
[0.2.3] - 2025-11-14
Fixed
- DBT Connector now correctly pulls the last successful run for each job, not just the last successful run for all jobs
[0.2.2] - 2025-11-12
Fixed
- Fixed docker image dependencies not getting installed
[0.2.1] - 2025-11-12
Fixed
- Fixed docker image dependencies not getting installed
[0.2.0] - 2025-11-07
Added
- Support for AtScale catalog generation and lineage
[0.1.0] - 2025-11-07
- Initial release
Updated about 7 hours ago
Did this page help you?
