Release notes for Soda Library
Review release notes for Soda Library, a Python library and CLI for testing data quality.
Review release notes for Soda Library, a Python library and CLI for testing data quality.
17 April 2026
feat: Add DB2 LUW + z/OS adapters
fix: Remove redundant df.count() from SparkDfCursor.fetchmany
fix: revert Databricks connection retry to 15 minutes
Quote column names for profiling boolean column
30 September 2025
Quote column names for profiling boolean column
23 September 2025
Fix getting last modification time for Postgres
8 September 2025
Bump deepdiff~=8.6 to fix CVE-2025-58367)
Fix data type for Redshift metadata row count
3 September 2025
Quote identitifiers in queries
Add private key auth support for snowflake
3 September 2025
Fix calculating total row count change metric
Introduce OAuth client credentials flow for trino
Enable OAuth client credentials flow for snowflake
28 August 2025
Fix using known partition column for v4 datasets
27 August 2025
Fix for Fabric metadata row counts and schema discovery
Fix default port for v4 datasources
Set default driver for SQL Server on v4
PLATL-127 - Refactor data source secrets, use AWS Secretsmanager and organization variables
Prevent duplicate quoting of schemas on databricks
Add Athena support
Fix main pipeline
Add MM support for different time partition units
19 August 2025
Fix generating defaults when partition is empty
Treat dates as midnight for MM
Impute missing groups
Fix handling cloud-generated dataset monitors
Limit max number of groups in group monitor
Fix check name for monitor groups
Fix group monitor names & defaults
13 August 2025
Fix handling None values in MM algorithm
Add MS Fabric support
Attempt to fix main workflow for Fabric on Python 3.9
Redshift - case sensitive identifiers in v4
Add support for group by monitors
Fix python 3.9 compatibility
06 August 2025
Add more hourly frequencies support and fix test assets files
Maintain consistency with soda-core: Oracle, DQN
04 August 2025
R-109: implement PK detection
01 August 2025
Improve handling of silent failures
Update default reviewer list
Add soda-synapse pkg to publish-pypi workflow
30 July 2025
Synapse add full support from scratch
29 July 2025
Updating Metric Monitoring Algorithm
Stabilize BigQuery CI
R-96: implement onboarding of datasets
Fix python 3.9 compatibility
22 July 2025
Redshift add v4 connection
PLATL-120 - Add manual data source pipeline for soda-library data source
Fix API reporting for v4 connection failure
16 July 2025
Potential fix for Bigquery CI failures
Bugfix for wrong timestamp being imputed for missing scans
Added testing for v4 data sources in metric monitoring
Obsl 511 bigquery add v4 support
Configure profiling sampling strategy from cloud
Fix python 3.9 compatibility
03 July 2025
Added support for v4 table identity profiling
Enable metadata collection & backfilling for redshift
Implemented v4 datasource for SQLServer
Add v4 data source: Oracle
fix(recon_row_diff): ensure cursor is drained prior to executing another query
26 June 2025
Bigquery support backfilling using metadata
Added length based metrics: min, max and avg
Bigquery get time partition column from metadata
Added duplicate_percentage metric
Added quantile metrics
Include version field in Soda Cloud requests
Add support for disabling metrics
Add support for more metrics
Skip metadata test on BigQuery
Rename to duplicate_values_percentage
Fix missing value percentage metric
Fix qualified table quoting
Quick fix for metadata backfilling for BigQuery
fix(group_evo_metric): diff query -> diff metric identity
Query postgres row count using SELECT COUNT(*)
19 June 2025
fix(json_helper): convert numpy int/floats to native int/floats
18 June 2025
Updated names for metrics
13 June 2025
Improve connection test for snowflake
Remove suggest generator & ia-questionary dependency
Fix handling cased table names on postgres
Added more authentication methods for Postgres v4 connector
Update test casing expectations for redshift
Add sum, distinct and non_missing_count metrics
12 June 2025
Support partition column suggestion per dataset
Fix connection_type for v4 databricks
Fix total row count change metric
Add support for env variables for v4 data sources
Use legacy behavior when --upload-mode not set
Limit databricks retries to 3 attempts in 1s-5s
Rename timeliness to Last modification time
Add support for Snowflake v4 data source
09 June 2025
Metric Monitoring General Availability in a separate package
09 June 2025
Skip data-based metrics when no partition column
Dtl 768/split library
Fix CI
Fix ci
Fix CI + remove obs package from requirements to exclude it from docker
05 June 2025
Add support for v4 data sources
Fix python 3.9 compatibility
Add --upload-mode CLI option
Filter out system schemas from discovery
Obsl 425 Create Postgres v4 Datasource
03 June 2025
Fix metric monitoring on postgres for capitalized partition column names
03 June 2025
Updated approach for acquiring last modification for OracleDB
Work around dependency resolution errors in pip 25.1
Update last modification timestamp for SQL Server
Updated Oracle implementation for new definition latest modification
23 May 2025
Cloud 5988 custom identity jinja resolve
22 May 2025
Replace sodaCoreHistoricMeasurements API
This addresses an issue for the total row count change metric. Due to using an old API it could return the change in row count between now and a random point in history, rather than between now and yesterday.
22 May 2025
Fix handling of null row count for MM
20 May 2025
Fix handling empty partition column
Remove old observability based on profiling
This also fixes an issue for discovery performed as part of metric monitoring on SQL Server
Handle case where metadata is missing
Fix observability discovery
Fix missing user configuration defaults
07 May 2025
Fix duplicate metrics & schema identity for MM
Use new optimized historic data queries
Fix freshness metric for empty partitions
Clean up redundant diagnostics mapping
06 May 2025
Remove error for invalid datasource names
30 April 2025
Ignore v4 data source configurations
Add missing values column metric to MM
Use cloud-generated name for column monitors
Fix checking for exclusion zone when alerting
Fix missing userConfiguration in DTO
Fix monitor error when partition doesn't have data
Fix python 3.9 compatibility
Extend column monitors
Fix getting history for column metric checks
Fix missing metadata metrics after backfilling
Verify dtype for suggested partition columns
Fix handling table without metrics
18 April 2025
Fix handling feedback when there is gaps in the data
17 April 2025
Fix prophet error on gaps in user feedback
Fix handling NaN values in total row count
added indexing to also feedback and predicted anomalies arrays
fix comment
Prevent recalculating imputed values
11 April 2025
update rounding_type logic to not require user input
Bump opentelemetry
Clean up misplaced group evolution test
07 April 2025
Trino: fix query pagination
04 April 2025
New: Reconciliation Reference check
03 April 2025
fix(dbt): handle missing column_name in test node by @adkinsty in #486
03 April 2025
Skip databricks history until table creation by @mivds in #482
Fix backfilling when there is no partition column by @mivds in #484
Fix incorrect row count for REPLACE TABLE by @mivds in #483
Fix 1-interval offset for table creation history by @mivds in #485
Use partition column suggestions from soda cloud by @mivds in #481
Limit partition_row_count metric to data range by @mivds in #487
Set numba log level to WARNING by @mivds in #489
01 April 2025
dbt: support ingestion of dbt test results from all versions of dbt by @adkinsty in #474
31 March 2025
Relax numpy requirement to < 3.0.0 by @adkinsty in #453
Oracle: add schema to dataset prefix, support custom prefix by @m1n0 in #460
Redshift: add keepalive by @m1n0 in #480
Group by: apply global attributes by @m1n0 in #475
Enable checking for column addition by @mivds in #462
Report metadata metrics using query time by @mivds in #461
Fix schema filter in snowflake metadata query by @mivds in #463
Fall back to default userConfig if not available by @mivds in #465
Update metric monitoring check names by @mivds in #467
Limit generation of userConfig missing warning by @mivds in #466
Inform user when metadata is not available by @mivds in #470
Fix backfilling scan with no data in date range by @mivds in #469
Fix warning when there are no matching tables by @mivds in #471
Fix backfilling missing partition row count by @mivds in #472
Fix backfilling for ‘most recent timestamp’ metric by @mivds in #476
Rename partition row count by @mivds in #479
Fix handling of partition column as datetime by @mivds in #478
Alert on lower threshold for time metrics by @mivds in #477
updating algorithm’s use of feedback by @nikosml in #468
Add rounding and more algorithm testing by @nikosml in #464
25 March 2025
Enable metric monitoring using new algorithm by @mivds in #455
Remove support for python 3.8 by @mivds in #458
14 March 2025
Fix scan time reporting by @mivds in #428
Validity check: fix complex mixed rules query (#2219) by @m1n0 in #440
fix(trino): handle period character in schema name by @adkinsty in #444
26 February 2025
Postgres: treat missing setting as warning by @mivds in #403
Use calendar chart for schema check by @mivds in #401
Fix reporting profiling for distributed scans by @mivds in #407
24 February 2025
Extend observability metadata support by @mivds in #399
Remove deprecated anomaly detection diagnostics by @mivds in #395
Fix date formatting for years before 1000 by @mivds in #397
21 February 2025
Trino: Add CI / CD, fix tests by @dakue-soda in #384
Profiling: Skip profiling if disabled on Cloud by @m1n0 in #389
Metric Monitoring: Wip MM with backfilling by @m1n0 in #387
Athena: Add session token parameter by @m1n0 in #391
Postgres: Handle unsupported options parameter by @m1n0 in #392
Chore: Remove unused MarkupSafe dependency by @m1n0 in #393
Chore: Relax opentelemetry version contraint by @m1n0 in #394
14 February 2025
Fix dask COUNT queries on windows by @mivds in #385
DT-158 - add JWT authentication to Trino data sources by @dakue-soda in #386
04 February 2025
Fix in dask wrong count query when row_count used with duplicate check on two columns. by @jzalucki in #381
Custom identity: support in Reference and Group Evolution (#2208) by @m1n0 in #382
ISO 8601 date: accept 24-hr times (#2133) by @m1n0 in #383
30 January 2025
Replace the conditional logic by proper dependency specification syntax. by @nielsn in #380
29 January 2025
Update soda-dbt to support dbt artifacts from dbt-core >=1.5, <2.0 by @adkinsty in #375
SAS-5475 - fix CVE on duckdb and python-mysql-connector by @dakue-soda in #377
Restore support for Python 3.8 by @nielsn in #378
REALLY fix support for Python 3.8 by @nielsn in #379
28 January 2025
Added fix for bug of NoneType by @teresama in #372
Run in managed distributed mode when scan type is managedAgentDistributed. by @jzalucki in #371
Failed rows: fix check value if samples disabled by @m1n0 in #373
09 January 2025
Revert of CLOUD-9009 by @jzalucki in #370
08 January 2025
Observability: Fix quoting in query parts by @m1n0 in #369
Logs: Add dataset/column info to Logs, support in obs by @m1n0 in #367
07 January 2025
Add support for numbers in identifier. by @jzalucki in #365
Move batched scan to scan execute method. by @jzalucki in #364
Move TIMEUNIT above IDENTIFIER_UNQUOTED. by @jzalucki in #368
06 January 2025
Profiling datetime fix after release by @teresama in #360
Removed time profiling. Added test for timestamp with timezone by @teresama in #356
Run partition detection algorithm during observability. by @jzalucki in #357
Chore: relax jinja autoescape by @m1n0 in #358
Feature: CLOUD 8690 implementation of date time profiling by @teresama in #336
02 December 2024
Pydantic: implicit v1 support for programmatic scans by @m1n0 in #352
Add include null to valid_count and invalid_count and percentage version. by @jzalucki in #351
Yaml: read and parse files thread-safe (#2188) by @m1n0 in #354
27 November 2024
Fix profiling. by @jzalucki in #350
26 November 2024
BROKEN RELEASE - DO NOT USE
Run all prerequisite jobs before performance testing. by @jzalucki in #341
Reference check: support identity by @m1n0 in #345
Fix doc link for soda-scientific package by @dirkgroenen in #347
First implementation of batch queue logger. by @jzalucki in #348
14 November 2024
Send mininum profiling information for observability scan. by @jzalucki in #344
Chore: Use jinja sandbox for templates by @m1n0 in #343
13 November 2024
Pydantic: Fix v1 support by @m1n0 in #340
Foreach: Resolve vars in queries by @m1n0 in #342
29 October 2024
CLOUD-8739: orchestrate observability by @jzalucki in #339
25 October 2024
Anomaly Detection check: add alert_directionality
Comparison row count check: secondary datasource filter fix (#2165) by @m1n0 in #337
Reconciliation row: fix multiple checks with filters by @m1n0 in #338
17 October 2024
Support both pydantic v1 and v2 by @m1n0 in #328
17 October 2024
Feature: changed auto_exclude_anomaly under TrainingDatasetParameters by @teresama in #333
Chore: performance testing CI pipeline
08 October 2024
Chore: Changed pandas version to be compatible with python 3.8 by @teresama in #323
Add tracing to bunch of classes + allow 1.6.4.dev0 by @jzalucki in #325
Update obs extreme values test after pandas2 by @m1n0 in #329
Run perf nightly, add more dd tags, fix none hostname. by @jzalucki in #330
Feature: offer user control to automatically exclude classified anomalies from training auto_exclude_anomalies in anomaly checks by @teresama in #327
Fix obs test for py38 by @m1n0 in #331
[CLOUD-8480] Revert “Put back global 10k query limit temporarily (#324)” by @dirkgroenen in #332
26 September 2024
Put back global 10k query limit temporarily by @m1n0 in #324
24 September 2024
Remove global hard limit on queries by @m1n0 in #321
Fix: exclude NaNs (as NULLS) from aggregate queries in databricks by @bastienboutonnet in #322
17 September 2024
Dataset level configuration for attributes and samples columns. by @jzalucki in #313
Do not collect samples if collecting of default samples were disabled in the cloud. by @jzalucki in #314
Use default cloud samples columns. by @jzalucki in #315
Fix: Handle cases where database returns NaN instead of NULL in aggs and frequent values queries by @bastienboutonnet in #316
Add support for collect failed rows table and checks level. by @jzalucki in #317
CLOUD-8251 - Fix Oracle in CI by @dakue-soda in #302
Add custom message to DefaultSampler depending on samples disabled reason. by @jzalucki in #319
Send soda library version during file upload, if fileId not present mark sample as not persisted with a message. by @jzalucki in #318
04 September 2024
Comparison check: Fix “other” table filter by @jzalucki in #304
Oracle: Bug fixes by @m1n0 in #260
Failed rows: Always expose failing sql for failed rows and user defined metric if failing query is available. by @jzalucki in #305
Failed rows: Add column property to failed rows and user defined metric checks. by @jzalucki in #307
Failed rows: Templatize rerouted sample message. by @jzalucki in #310
Observability: Catch issues when orchestrating profiling by @m1n0 in #311
Observability: Fall back to 1M if partition fails by @m1n0 in #312
Observability: Set duplicate percentage to None when zero rows in partition by @jzalucki in #301
Observability: Warn user when 24h partition is empty. by @jzalucki in #306
14 August 2024
Spark: Replicate implicit ‘include all’ in profiling by @m1n0 in #300 and #303
Freshness: Support variables in thresholds by @m1n0
13 August 2024
Adapt anomaly detector outcome messages for observability by @bastienboutonnet in #296
Always clean DB even on GH. by @jzalucki in #295
Group evolution: fix group changes not being detected by @m1n0 in #297
Feature: smaller min confidence interval ratio by @bastienboutonnet in #298
Execute observability checks outside of regular flow. by @jzalucki in #299
02 August 2024
Attempt to always show freshness even if last 24 hours partition does not return data. by @jzalucki in #291
Observability: Always add partition column to profiling result by @m1n0 in #293
01 August 2024
Observability: minimize metadata retrieval, do not push data into dis… by @m1n0 in #282
Handle SQL exception nicely for failed rows and user-defined check. by @jzalucki in #286
Spark: send discovery data despite errors. by @jzalucki in #290
Quote column names during observability partition detection. by @jzalucki in #288
Spark: failed rows should not be limited to max 100 total results. by @jzalucki in #292
31 July 2024
Add nchar, nvarchar and binary to text types for profiling. by @jzalucki in #281
CLOUD 8061: alias table names in sql queries by @jzalucki in #280
Oracle data source properties prefix should be None instead of “None” when no service name is provided. by @jzalucki in #283
Sqlserver: use appropriate aggregate methods to build queries by @jzalucki in #284
Cross row count check should support custom identity. by @jzalucki in #285
Copyedit on frequency detection error message by @janet-can in #287
Chore: update auto-assignments by @milanaleksic in #289
24 July 2024
Fix: make sure labelling incorrect anomalies always returns something by @bastienboutonnet in #265
23 July 2024
Always reset logger when new Scan instance is created. by @jzalucki in #277
Use SHOW TABLES and SHOW VIEWS instead of spark session catalog API. by @jzalucki in #278
Fix: apply cast to numerical for ms sqlserver by @bastienboutonnet in #279
22 July 2024
Use spark session catalog to get all table names including temporary views. by @jzalucki in #276
17 July 2024
Reconciliation: support custom source/target query with deepdiff strategy by @jzalucki in #269
Observability: apply 1M rows limit with time partition. by @jzalucki in #270
Snowflake: support custom hostname and port (#2109) by @m1n0 in #271
Add sslmode support to postgres and denodo (#2066) by @m1n0 in #273
Add Scan Context to read/write data from/to a scan (#2134) by @m1n0 in #272
Better user provided queries sanitize. (#2131) by @jzalucki in #275
16 July 2024
Observability: get all metric history by @m1n0 in #268
15 July 2024
Fix: cast SUM query to NUMERIC in BQ by @bastienboutonnet in #266
Fix: output outlier holidays even when no country holiday by @bastienboutonnet in #267
02 July 2024
Http Sampler: Do not invoke when no failed rows by @m1n0 in #264
Missing Count: Fix sample query by @m1n0 in #264
Between threshold: Fix error when using variables by @m1n0 in #264
Profiling: Fix discovery metadata bug by @m1n0 in #263
28 June 2024
Databricks: run tests in CI by @m1n0 in #239
Fix CI by @m1n0 in #261
Set minimum version of the freshness detector to 0.0.7 by @bastienboutonnet in #262
27 June 2024
SAS-3334 For duckdb do not use database as filter at all. by @jzalucki in #259
Fix: explictly construct country holiday df and concat with outliers by @bastienboutonnet in #256
24 June 2024
Fix: leave warning bounds and only make level be pass when warn by @bastienboutonnet in #257
Fix: handle overflowing timestamps for nanosecond precision overflow issues by @bastienboutonnet in #258
21 June 2024
CLOUD-7426 Add scan_time to http payload. by @jzalucki in #255
Feature: exclude outliers from training via holiday interface by @bastienboutonnet in #254
20 June 2024
Oracle: fix profiling/discovery queries by @m1n0 in #253
18 June 2024
Observability: Fix Anomaly Detection check history retrieval by @m1n0 in #246
Spark: profiling support more text types (#2099) by @m1n0 in #250
Feature: use fail_only flag instead of warning 0 by @bastienboutonnet in #249
Oracle: fix queries, profiling and other by @m1n0 in #251
Duplicate check: support sample exclude columns fully by @m1n0 in #241
Spark: profiling support more numeric types by @m1n0 in #242
Fix: make gap removal wait for at least 5 days and implement simpler thresholds by @bastienboutonnet in #243
Profiling: support casting numericals to large data type by @m1n0 in #244
Cloud: better error handling and logging by @m1n0 in #245
10 June 2024
Freshness in obs: add log msg when no data by @m1n0 in #238
Obs: get all metadata only when enabled, make tests more robust by @m1n0 in #240
05 June 2024
SAS-3519 CLOUD-7769: Correctly map statuses from remote scans by @dirkgroenen in #232
Bump requests and tox/docker by @m1n0 in #236
Feature: make all non critical error messages be warnings in profiling by @bastienboutonnet in #235
Feature: observability anomalies are considered correctly classified unless negative feedback given by @bastienboutonnet in #234
Duplicate check: fail gracefully in case of error in query by @m1n0 in #237
29 May 2024
CLOUD-7751 - fix nightly CI pipeline, use Snowflake CI account config… by @dakue-soda in #229
Feature: use partition row count (via aggregates) and use in duplicate percent by @bastienboutonnet in #230
28 May 2024
CLOUD-7400: Improve memory usage for Queries by @dirkgroenen in #227
CLOUD-7702: Add Snowflake CI account to pipeline for soda-library by @dakue-soda in #223
CLOUD-7725: use newer thrift 0.20.0 by @milanaleksic in #228
24 May 2024
Observability: handle one row scenario by @m1n0 in #224
User defined metric check: support failed rows query by @m1n0 in #226
22 May 2024
Fix float comparisons in tests by @m1n0 in #222
Observability: hash metric identities by @m1n0 in #225
20 May 2024
Observability beta (behind feature flag) @m1n0 in #198
17 May 2024
Failed rows: fix warn/fail thresholds for fail condition (#2084) by @m1n0 in #221
upgrade sqlparse version inside soda base package by @Antoninj in #220
14 May 2024
CLOUD-7400 Stream query data through memory, reducing memory footprint by @dirkgroenen in #210
07 May 2024
CLOUD-7362: add base exception to error log messages cloud payload by @Antoninj in #212
Fix automated monitoring, prevent duplicate queries by @m1n0 in #90
Denodo: fix connection timeout attribute (#2065) by @m1n0 in #215
DB2: Update db2_data_source.py (#2063) by @m1n0 in #216
Update autoflake precommit by @m1n0 in #214
SAS-3361: upgrade to latest version of ibm-db python client by @Antoninj in #213
Hive: support scheme by @m1n0 in #217
Bump dev requirements by @m1n0 in #218
10 April 2024
Rename argument in set_scan_results_file method (#2047)
Dremio: support disableCertificateVerification option (#2049)
04 April 2024
SAS-3165 Only reset sampler when originally SodaCloudSampler by @dirkgroenen in #207
Feature: enable new anomaly detection algo in group by checks by @bastienboutonnet in #208
23 March 2024
Failed rows: fix warn/fail thresholds by @m1n0 in #204
Bump opentelemetry to 1.22 by @m1n0 in #205
20 March 2024
Add missing import for type annotations backwards compatibility by @Antoninj in #196
Refactor: Parse access_url from dbt config for new multicell org by @bastienboutonnet in #194
Timestamp conversion fixes by @Antoninj in #200
SAS-2966 Remove scan reference exception throw in local mode by @dirkgroenen in #199
Add test for checks level attributes by @m1n0 in #201
Fix: Attribute handler timezone test by @m1n0 in #202
Feature: Better legend wording and nicer tooltip formatting by @bastienboutonnet in #203
05 March 2024
Dremio: fix token support (#2028) by @m1n0 in #195
01 March 2024
IA-533: Implement daily and monthly seasonality to external regressor by @baturayo in #189
Support GMT (Zulu) and microseconds time format by @m1n0 in #193
28 February 2024
Cloud 6550: remote scans by @m1n0 in #192
28 February 2024
Fix: timezone mismatch between the recent and historical ad results by @baturayo in #188
Feature: in anomaly detection simulator use soda core historic check results endpoint instead of test results by @baturayo in #190
Update dask-sql by @m1n0 in #191
13 February 2024
Fix: include simulator assets folder into the setup.py by @baturayo in #186
13 February 2024
Fix: simulator import and streamlit path by @m1n0 in #182
Oracle: create dsn if not provided (#2012) by @m1n0 in #183
Oracle: cast config to str/int to prevent oracledb errors (#2018) by @m1n0 in #184
Oracle: fix Cloud integration by @m1n0 in #185
09 February 2024
Feature: correctly identified anomalies are excluded from training data by @baturayo in #178
Fix: show more clearly the detected frequency using warning message first by @baturayo in #180
Pin segment analytics and typing-extensions by @m1n0 in #181
08 February 2024
Feature: anomaly detection simulator by @baturayo in #163
Feature: added dremio token support (#2009) by @m1n0 in #179
Temporarily affix Segment Analytics version by @dirkgroenen in #177
Cloud 6693 improve group by by @m1n0 in #176
31 January 2024
Feature: implement severity level paramaters by @baturayo in #169
Fix for min_confidence_interval_ratio parameter by @baturayo in #170
Always use datasource specifis COUNT expression (#2003) by @m1n0 in #172
Send result to Cloud if data source connection issue by @m1n0 in #171
CLOUD-6805: avoid sending empty error location when logging configuration file parsing errors by @Antoninj in #173
CLOUD-6817: Catch Cloud exceptions (failed insertions) properly by @dirkgroenen in #174
26 January 2024
Hive data source improvements by @robertomorandeira in sodadata/soda-core#1982
Feature: Implement migrate from anomaly score check config by @baturayo in sodadata/soda-core#1998
Bump Prophet by @m1n0 in sodadata/soda-core#2000
Tests: Use approx comparison for floats by @m1n0 in sodadata/soda-core#1999
\
Support token auth by @m1n0 in #159
Schema check: Support custom identity (#1988) by @m1n0 in #161
CLI: Omit exception if no cli args by @m1n0 in #162
Add semver release for major, minor and latest by @dirkgroenen in #164
Bug: Handle null values for continuous dist by @baturayo in #165
IA-486: implement new anomaly detection logic and syntax by @baturayo in #153
Fix Python3.8 type issues for new AD syntax by @baturayo in #166
Feature: Support built in prophet public holidays by @baturayo in #167
16 January 2024
cbt: improve parsing logs by @m1n0 in #157
Sampler: fix link href by @m1n0 in #158
BREAKING: Row Reconciliation, new simple strategy for batch processing by @m1n0 in #155
14 January 2024
Recon row fixes by @m1n0 in #160
03 January 2024
Feature: implement warn_only for anomaly score by @baturayo in #156
15 December 2023
Fix frequency aggregation bug for anomaly detection by @baturayo in #152
Bump pydantic from v1 to v2 by @baturayo in #151
Adding support for authentication via a chained list of delegate accounts by @m1n0 in #154
15 December 2023
Group by: support anomaly/cot, better names by @m1n0 in #147
04 December 2023
Freshness: support in-check filters (#1970) by @m1n0 in #150. Documentation to follow shortly.
24 November 2023
Reconciliation row: expose deepdiff config, lower sensitivity by @m1n0 in #149
Make custom identity fixed as v4 by @m1n0 in #143
Reconciliation row: fix key cols mapping, bugfixes by @m1n0 in #148
19 November 2023
Align usage of database/catalog and implement fallback by @dirkgroenen in #142
Remove segment logs by @m1n0 in #145
Align usage of exit codes and add exit_code(4) by @dirkgroenen in #146
14 November 2023
Cloud: Add ScanId by @dirkgroenen in #137
Athena: Set default catalog name by @dirkgroenen in #139
Sqlserver: remove % from pattern (#1956) by @m1n0 in #140
Sqlserver: support quoting tables with brackets, “quote_tables” mode by @m1n0 in #141
02 November 2023
Freshness: support mixed thresholds by @m1n0 in #134
Duckdb: Rename path to database by @dirkgroenen in #135
Failed rows: new ‘empty’ type, handle no rows scenario better by @m1n0 in #132
Extend Data Source identity migration to spark_df by @dirkgroenen in #133
23 October 2023
Fix: compute value counts in DB rather than in python for categoric distribution checks by @baturayo in #116
Run scientific unit tests in CI by @baturayo in #121
Raise a warning instead of exception when dataset name is incorrect in suggestions by @baturayo in #126
Add support for custom dask data source name by @dirkgroenen in #120
12 October 2023
Remove quotes from dataset name in check payload by @m1n0 in #124
Fix package specific tests by @m1n0 in #123
Cloud 4311 nightly dev builds by @vijaykiran in #125
