Changelog
Releases of the Zipline engine and platform, pulled directly from GitHub.
v1.18.1
July 22, 2026What's Changed
Bug fixes
- handle ts projection and filter in flink by @BenMagyar in #2039
- Push readiness checks onto the driver for Joins by @BenMagyar in #2020
- reduce memory overhead for driver readiness checks by @BenMagyar in #2042
- Fix hourly GroupBy online (Ion) upload for sub-daily partitions by @nikhil-zlai in #2041
- avoid sharing logging codecs across threads by @BenMagyar in #2040
- Bound sensor retries to one partition interval; trim sensor resources by @nikhil-zlai in #2044
- Route NVMe canary output through Polaris by @tchow-zlai in #2048
- Normalize Iceberg timestamp partitions for readiness by @tchow-zlai in #2045
- Flink K8s submitter job crash / restart fixes by @piyush-zlai in #2047
- fix: load step details for Flink cleanup by @tchow-zlai in #2050
Full Changelog: v1.18.0...v1.18.1
What's Changed
Bug fixes
- Annotate registered steps with call site for failure tracing by @david-zlai in #1205
- ci: nightly AWS e2e (apply → admin install → full UC suite → destroy) by @kumar-zlai in #1202
- Treat cross-workflow submitted streaming steps as active by @tchow-zlai in #1203
- UI: Streamline status data payloads by @sean-zlai in #1207
- Add kill before retrigger for streaming jobs + port job restart fixes to Crucible Flink submitter by @piyush-zlai in #1208
Full Changelog: v1.18.0...v1.18.1
v1.18.0
July 17, 2026What's Changed
Minor features
- Flink URLs Through Hub by @chewy-zlai in #1986
Bug fixes
- Don't collapse a missing GroupByServingInfo into an opaque 500 by @nikhil-zlai in #2012
- cast date onto grid for cli commands by @BenMagyar in #2014
- We only need to read stats for the partition we are writing against by @BenMagyar in #1937
- Namespace should be substituted in key filter by @BenMagyar in #2016
- mixGridtoken produce unsafe sem hash by @BenMagyar in #2027
- feat: make fetcher thread pool configurable and add KV read timeout by @cceasy in #1874
- Bump logback to 1.5.38 to fix GHSA-jhq6-gfmj-v8fx grype failures by @tchow-zlai in #2015
- Add NVMe stress integration test by @tchow-zlai in #2035
- Defer join key compilation failures until derivation by @nikhil-zlai in #2030
- Fix stale version stamps in released jar manifests by @nikhil-zlai in #2007
Full Changelog: v1.17.7...v1.18.0
What's Changed
Minor features
- Flink Proxy Links and Local Testing of Unified Domain by @chewy-zlai in #1157
- Guard backfills and schedule deploys against competing version claims by @nikhil-zlai in #1200
Bug fixes
- Use engine labels for Crucible placement by @tchow-zlai in #1184
- Update homepage roundtable banner by @varant-zlai in #1188
- Remove NVMe-specific Spark storage configuration by @tchow-zlai in #1192
- Exclude Ping Requests From Audit Logs by @chewy-zlai in #1195
- Use submitted Spark configuration for resource sizing by @tchow-zlai in #1194
- Decouple SAML audience from issuer to fix SSO logins broken by the better-auth 1.6.23 bump by @sean-zlai in #1196
- UI: Show error message for failed logins due to configuration by @sean-zlai in #1198
- Promote only tested commits to main-passing-tests by @nikhil-zlai in #1174
Full Changelog: v1.17.7...v1.18.0
v1.17.7
July 10, 2026What's Changed
Bug fixes
- Add aws_databricks join + wire up aws canary adhoc CI tests by @piyush-zlai in #2004
- Fix sparse readiness partition boundary by @tchow-zlai in #2009
- Handle Dataproc cluster DELETING/UNRECOGNIZED/ERROR_DUE_TO_UPDATE states by @david-zlai in #2010
Full Changelog: v1.17.4...v1.17.7
What's Changed
Bug fixes
- Thread Kubernetes placement through Crucible submissions by @tchow-zlai in #1159
- Derive compute placement from workflow mode by @tchow-zlai in #1181
- Resolve dependencies to producer nodes by table + partition grid by @nikhil-zlai in #1180
- Use engine labels for Crucible placement by @tchow-zlai in #1182
- Disable Crucible Azure integration tests by @tchow-zlai in #1183
Full Changelog: v1.17.6...v1.17.7
v1.17.6
July 9, 2026What's Changed
Bug fixes
- Add aws_databricks join + wire up aws canary adhoc CI tests by @piyush-zlai in #2004
- Fix sparse readiness partition boundary by @tchow-zlai in #2009
- Handle Dataproc cluster DELETING/UNRECOGNIZED/ERROR_DUE_TO_UPDATE states by @david-zlai in #2010
Full Changelog: v1.17.4...v1.17.6
What's Changed
Bug fixes
- Sync infrastructure repo into the release flow by @tchow-zlai in #1179
Full Changelog: v1.17.5...v1.17.6
v1.17.5
July 9, 2026What's Changed
Bug fixes
- Add aws_databricks join + wire up aws canary adhoc CI tests by @piyush-zlai in #2004
- Fix sparse readiness partition boundary by @tchow-zlai in #2009
- Handle Dataproc cluster DELETING/UNRECOGNIZED/ERROR_DUE_TO_UPDATE states by @david-zlai in #2010
Full Changelog: v1.17.4...v1.17.5
What's Changed
Bug fixes
- Add crucible aws adhoc tests to platform CI by @piyush-zlai in #1172
- Ignore test_hub_run_adhoc.py in AWS 'prod' integration tests by @piyush-zlai in #1177
- Disable Azure integration tests in canary workflow by @tchow-zlai in #1178
Full Changelog: v1.17.4...v1.17.5
v1.17.4
July 8, 2026What's Changed
Minor features
- Add keyFilter to GroupBy to shrink batch uploads by @nikhil-zlai in #1991
Bug fixes
- Bump logback to 1.5.33 to fix GHSA-p47f-322f-whfh by @piyush-zlai in #1997
- Update Flink K8s submitter to suspend rather than delete jobs by @piyush-zlai in #1996
- Fix Flink Java 17 compatibility: add JDK to image, replace SAM lambdas by @piyush-zlai in #1999
- Make schedule-all a full sync of config-declared schedules by @nikhil-zlai in #1998
- Qualify sensor node names by dependency grid to stop cross-conf clobbering by @nikhil-zlai in #2001
- let readiness checks act as sparse data arrival checks like ds by @BenMagyar in #2005
Full Changelog: v1.17.3...v1.17.4
What's Changed
Minor features
- Schedule lifecycle: config declares which schedules exist by @nikhil-zlai in #1171
Bug fixes
- Fix wedged jobs after streaming job cancel by @piyush-zlai in #1167
- Fix Flink UI blank page when Hub is mounted at a sub-path by @piyush-zlai in #1168
- Support self-referential staging queries in eval by @nikhil-zlai in #1169
- Add support in LokiLogStore for flink logs by @piyush-zlai in #1170
Full Changelog: v1.17.3...v1.17.4
v1.17.3
July 5, 2026What's Changed
Bug fixes
- Support daily partitions with sub-daily offsets by @BenMagyar in #1990
- Allow for defaults over partition interval, offset and schedule by @BenMagyar in #1992
Full Changelog: v1.17.2...v1.17.3
What's Changed
Bug fixes
- Tolerate missing engine CRDs in KubernetesCrucibleJobStore by @nikhil-zlai in #1162
Full Changelog: v1.17.2...v1.17.3
v1.17.2
July 3, 2026What's Changed
Bug fixes
- Cut down Flink logging for warn / errors by @piyush-zlai in #1989
- Sense the newest data-bearing partition for timestamp partition columns by @nikhil-zlai in #1995
Full Changelog: v1.17.0...v1.17.2
What's Changed
Bug fixes
- Attempt fix for initializeNodeExecutionData by @david-zlai in #1164
Full Changelog: v1.17.1...v1.17.2
v1.17.1
July 3, 2026What's Changed
Bug fixes
- Cut down Flink logging for warn / errors by @piyush-zlai in #1989
- Sense the newest data-bearing partition for timestamp partition columns by @nikhil-zlai in #1995
Full Changelog: v1.17.0...v1.17.1
What's Changed
Bug fixes
- Add Crucible Azure deployment workflow by @tchow-zlai in #1158
Full Changelog: v1.17.0...v1.17.1
v1.17.1+july3
July 3, 2026What's Changed
Bug fixes
- Cut down Flink logging for warn / errors by @piyush-zlai in #1989
- Sense the newest data-bearing partition for timestamp partition columns by @nikhil-zlai in #1995
Full Changelog: v1.17.0...v1.17.1+july3
v1.17.1-july3
July 3, 2026What's Changed
Bug fixes
- Cut down Flink logging for warn / errors by @piyush-zlai in #1989
- Sense the newest data-bearing partition for timestamp partition columns by @nikhil-zlai in #1995
Full Changelog: v1.17.0...v1.17.1-july3
v1.17.0
July 2, 2026What's Changed
Minor features
- Support sub-daily partition intervals by @nikhil-zlai in #1914
- Add conf-level workflow concurrency API by @nikhil-zlai in #1965
- Update
zipline hub clear-downstreamfor API changes by @sean-zlai in #1968
Bug fixes
- Bump jackson-databind to 2.18.8 to clear grype CVE-2026-545xx advisories by @tchow-zlai in #1964
- fix(cloud_gcp): add logback.xml to suppress gRPC Bearer token leaks by @JoeTime17 in #1959
- JoinParts are not being reused in the monolith join by @BenMagyar in #1954
- Handle daily catalog partitions returned as timestamps by @nikhil-zlai in #1966
- Fix planner bug where we don't handle null Query objs in JoinSrc by @piyush-zlai in #1969
- Add user-activities src + GB for Crucible canary by @piyush-zlai in #1971
- Update schedule lifecycle integration expectations by @tchow-zlai in #1974
- Decouple Flink k8s checkpoint check from url by @piyush-zlai in #1975
- add new spark.chronon.kv_upload.batch_table_gc_age_days opt by @BenMagyar in #1984
Full Changelog: v1.16.2...v1.17.0
What's Changed
Minor features
- UI: Auth improvements by @sean-zlai in #1133
- Improve Crucible Flink support to be closer to existing EKS / AKS flows by @piyush-zlai in #1127
- Loki: add crucible-aws log profiles for AWS Crucible UI by @tchow-zlai in #1125
- UI: Add "Run Backfill" / "Adhoc" actions, "Clear downstream", graph chart maximize / scale to fit, and other improvements by @sean-zlai in #1131
- UI: Fetcher by @sean-zlai in #991
- Apply conf workflow concurrency defaults by @nikhil-zlai in #1141
Bug fixes
- Bump jackson-databind to 2.18.8 to clear grype CVE-2026-545xx advisories by @tchow-zlai in #1135
- Restore platform compile after Chronon API updates by @nikhil-zlai in #1138
- Guard AWS EMR validation behind compute mode by @tchow-zlai in #1136
- Fix sub-daily workflow scheduling status by @nikhil-zlai in #1128
- Wire up Flink urls + checkpoint health checks in the Crucible flow by @piyush-zlai in #1139
- Unify Crucible submitter path across clouds by @tchow-zlai in #1140
- Fix multiworkflow continuous node bug causing initializeNodeExecutionData error by @piyush-zlai in #1144
- Add Databricks Unity Catalog support to demo-scripts by @piyush-zlai in #1145
- CI: Bump mill JVM heap for cloud_azure assembly to avoid OOM by @david-zlai in #1146
- CTRL-249: forward-auth bridge for browser → Hub gateway by @kumar-zlai in #1150
- Update Aws & Azure verticles to use new K8sFlink health check + internal job id rails by @piyush-zlai in #1151
- UI: Improve status performance (sub-daily, large DAGs) by @sean-zlai in #1152
- Auth: Add
AUTH_ALLOWED_PRINCIPALSallowlist to gate user provisioning and login by email/domain by @sean-zlai in #1147 - Scope Crucible submit idempotency lookups by @tchow-zlai in #1154
- CTRL-249: reshape gateway UI URLs to /engines//jobs//ui by @kumar-zlai in #1155
Full Changelog: v1.16.2...v1.17.0
v1.16.2
June 24, 2026What's Changed
Bug fixes
- Support pinning the reader schema for a topic by @BenMagyar in #1944
- fix(gcp_cloud): resolve GCP_LOCATION for bulkPut job from env vars by @sai-muppiri-ck in #1947
- feat(aws): configure Flink (eks) pod labels via FLINK_EKS_POD_LABELS env var by @neeraj-lalji-depop in #1942
- Order join planning dependencies source-first by @tchow-zlai in #1953
- Honor KV upload timeout config by @nikhil-zlai in #1949
- Scope orchestration threadpool metrics by @nikhil-zlai in #1951
- CTRL-247: crucible env to new warehouse + artifacts buckets + shared-domain hub URL by @kumar-zlai in #1955
- docs: Clear & Rerun page CTRL-163 by @kumar-zlai in #1936
- Validate end-ds is on/after start-ds in hub CLI by @david-zlai in #1957
- Avoid DPP plan explosion in final join writes by @nikhil-zlai in #1952
- Drop online-flag gate from groupBy schema fetch by @nikhil-zlai in #1932
- Fix grype in cloud_azure around jline by @piyush-zlai in #1962
New Contributors
- @neeraj-lalji-depop made their first contribution in #1942
Full Changelog: v1.16.1...v1.16.2
What's Changed
Bug fixes
- CTRL-227: backfill end_time on pre-fix failed/upstreamFailed steps by @kumar-zlai in #1111
- CTRL-242: skip test_hub_backfill_uc.py on canary-aws by @kumar-zlai in #1120
- CTRL-243: restore Spark History Server URL on JobTrackingInfo.sparkUrl by @kumar-zlai in #1124
- UI: Impove performance of large DAGs, highlight execution lineage, and other improvements by @sean-zlai in #1126
- CTRL-248: Update Crucible AWS workflow CLUSTER_NAME → crucible-eks by @kumar-zlai in #1129
- CTRL-245: Mount Crucible gateway proxy routes in Hub for live SparkUI by @kumar-zlai in #1132
Full Changelog: v1.16.1...v1.16.2
v1.16.1
June 16, 2026What's Changed
Bug fixes
- Upgrade mill to 1.1.6 (and JDK 17 launcher) by @david-zlai in #1912
- Add an adds opens for java time for E2E tests by @piyush-zlai in #1940
- fix(cloud_gcp): pin bulkPut export job to GCP_LOCATION by @sai-muppiri-ck in #1938
- Flesh out docs on entity source behavior with Debezium rails by @piyush-zlai in #1934
- Retry when Dataproc cluster runs into an error state by @david-zlai in #1930
- Lower rate of hotpath logging in KV impls by @piyush-zlai in #1941
- Log iceberg partition row counts in postJobActions by @david-zlai in #1921
New Contributors
- @sai-muppiri-ck made their first contribution in #1938
Full Changelog: v1.16.0...v1.16.1
What's Changed
Bug fixes
- Add hostname for production logs by @david-zlai in #1113
- Bump JDK to 17 for mill 1.1.6 upgrade by @david-zlai in #1095
- fix(build): pin eval & orchestration thriftJava to --release 17 by @david-zlai in #1115
- CTRL-242: route AWS hub through CrucibleSubmitter via thin wrapper by @kumar-zlai in #1116
- CTRL-243: delete platform/k8s module (follow-up to CTRL-242) by @kumar-zlai in #1117
- Auth: Fix SAML redirect and device flow (
zipline auth login) behind proxy (CloudFront, API Gateway, etc) by @sean-zlai in #1118 - UI: Update deps / fix security vulns by @sean-zlai in #1119
Full Changelog: v1.16.0...v1.16.1
v1.16.0
June 12, 2026What's Changed
Minor features
- Add Debezium CDC Serde support by @piyush-zlai in #1906
- Extend Flink job code to support EntitySrc + add IT by @piyush-zlai in #1918
Bug fixes
- Expose partitions and timeout_ms on dyndb ion writer as conf by @BenMagyar in #1909
- deps: bump netty to 4.1.135.Final to fix Grype CVE failures by @piyush-zlai in #1920
- Fix groupBy schema fetch to read from batch serving info by @nikhil-zlai in #1891
- docker/spark: unified cross-cloud spark image CTRL-236 by @kumar-zlai in #1919
- canary: split aws_databricks bucket overrides into teams.canary.py CTRL-229 by @kumar-zlai in #1923
- fix(service): deduplicate OTLP resource attributes to prevent Microme… by @RickyDepop in #1915
- Increase timeout for backfill no data integration test by @david-zlai in #1924
- ci: mirror jar publishes to s3://zipline-artifacts-aws CTRL-236 by @kumar-zlai in #1926
- docker/spark: bake fs.s3a.aws.credentials.provider into image CTRL-236 by @kumar-zlai in #1928
- fix(ci): use github context vars instead of git rev-parse in push-jars CTRL-236 by @kumar-zlai in #1929
- canary: drop renewCredential opt-out for aws_databricks K8sSubmitter CTRL-236 by @kumar-zlai in #1931
- Increase number of warmup requests for BigTable by @david-zlai in #1925
Full Changelog: v1.15.2...v1.16.0
What's Changed
Minor features
- UI: Monitor overview by @sean-zlai in #1090
Bug fixes
- Remove version check to unblock but leave the logic and logs by @david-zlai in #1089
- K8sSubmitter: point jobUrl at Spark History Server URL by @tchow-zlai in #1098
- k8s: K8sSubmitter cloud-URI conf-path + AWS verticle defaults CTRL-231 CTRL-232 by @kumar-zlai in #1099
- Stamp end_time on terminal steps registered via batchRegisterSteps CTRL-227 by @kumar-zlai in #1096
- k8s: strip trailing/leading non-alphanumeric after sanitizeLabel truncation CTRL-235 by @kumar-zlai in #1100
- crucible-integration-test: target new crucible-aws Hub URL + auth CTRL-228 by @kumar-zlai in #1101
- k8s: K8sSubmitter loads chronon jar from S3 instead of baked image CTRL-236 by @kumar-zlai in #1102
- ci: add update_crucible_aws workflow CTRL-236 by @kumar-zlai in #1103
- ci: route crucible_integration_test through compiled_canary/ CTRL-229 by @kumar-zlai in #1104
- fix(ci): trigger update_crucible_aws on Update Canary completion CTRL-236 by @kumar-zlai in #1106
- fix(eval): concurrency issues for request catalog by @cristian-zlai in #1085
- CTRL-217: run crucible-aws integration tests after deploy by @kumar-zlai in #1109
- demo-scripts: add dim_listings CDC pipeline for Chronon EntitySource (AWS) by @piyush-zlai in #1088
Full Changelog: v1.15.2...v1.16.0
v1.15.2
June 5, 2026What's Changed
Minor features
- feat(k8s): tag Flink pods and metrics with the GroupBy name by @RickyDepop in #1888
Bug fixes
- Delete CrucibleSubmitter and CrucibleClient by @tchow-zlai in #1901
- Bump io.vertx:vertx-* from 4.5.24 to 4.5.27 by @tchow-zlai in #1902
- patch(emr-serverless): bake UC jars into custom image to enable credential renewal CTRL-223 by @kumar-zlai in #1898
- canary: test_id scoping + UC cleanup for aws_databricks UC backfill tests CTRL-217 by @kumar-zlai in #1899
- test_hub_backfill_uc: widen DS to 02-01..02-05 + fix UC cleanup default schema CTRL-217 by @kumar-zlai in #1904
- fix(spark): stabilize HeterogeneousPartitionColumnsTest by @bagipriyank in #1886
New Contributors
- @RickyDepop made their first contribution in #1888
Full Changelog: v1.15.1...v1.15.2
What's Changed
Bug fixes
- Add
/healthzendpoint / check for frontend container by @sean-zlai in #1079 - AWS K8sSubmitter + delete Crucible verticles broken by chronon#1901 by @tchow-zlai in #1084
- ci: keep CI eval service warm (minScale=1) to stop /eval cold-start 503s by @tchow-zlai in #1083
- Exclude jackson-dataformat-yaml in k8s excludeJackson to unbreak AWS hub by @tchow-zlai in #1086
- crucible_integration_test: add AWS twin running UC backfill suite (CTRL-217) by @kumar-zlai in #1081
- fix(eval): support group by derivations with ts by @cristian-zlai in #1092
- fix(eval): ADD JAR dependency fetch in local Spark mode by @cristian-zlai in #1091
Full Changelog: v1.15.1...v1.15.2
v1.15.1
June 3, 2026What's Changed
Bug fixes
- Preserve named JoinSource joins during normalization by @nikhil-zlai in #1894
- Add PR tests for zipline admin init and zipline compile by @david-zlai in #1887
- canary: add aws_databricks/demo UC + Delta hub-backfill integration test by @kumar-zlai in #1897
- Fail empty GroupBy uploads with a single shared zero-row guard by @tchow-zlai in #1900
Full Changelog: v1.15.0...v1.15.1
What's Changed
Bug fixes
- update_canary: remove Crucible integration test jobs by @kumar-zlai in #1080
- fix(eval): Enable Hive Support for all by @cristian-zlai in #1078
Full Changelog: v1.15.0...v1.15.1
v1.15.0
June 1, 2026What's Changed
Bug fixes
- Add more docs around our metrics setup by @piyush-zlai in #1883
- test(aws_databricks): new join for team by @cristian-zlai in #1876
- Make temporal boundaries strict everywhere by @nikhil-zlai in #1884
- Fix imported config attribution during compile by @tchow-zlai in #1885
- Respect end cutoff in input readiness checks by @nikhil-zlai in #1890
Full Changelog: v1.14.1...v1.15.0
What's Changed
Minor features
- UI: Cancel streaming job by @sean-zlai in #1066
- Add Scala Crucible gateway module CTRL-215 by @nikhil-zlai in #1074
Bug fixes
- UI: Improve display (decimal versions, multi-line sensor name, etc) by @sean-zlai in #1060
- bug(eval): enable hive in eval spark session by @cristian-zlai in #1069
- UI: Fix null crash in NodeExecutionDrawer when step deselects (reading
runId) by @sean-zlai in #1075
Full Changelog: v1.14.1...v1.15.0
v1.14.1
May 27, 2026What's Changed
Bug fixes
- refactor(cli): deprecate repo root alias by @tchow-zlai in #1877
- Handle Enum types in Avro conversion by @BenMagyar in #1879
- Extract stats for clustered iceberg tables by @BenMagyar in #1870
Full Changelog: v1.13.0...v1.14.1
What's Changed
Bug fixes
- feat(eval): setups, get remote urls and add locally by @cristian-zlai in #1042
- fix: Make
dotenvprod dependency
Full Changelog: v1.14.0...v1.14.1
v1.14.0
May 27, 2026What's Changed
Bug fixes
- refactor(cli): deprecate repo root alias by @tchow-zlai in #1877
- Handle Enum types in Avro conversion by @BenMagyar in #1879
- Extract stats for clustered iceberg tables by @BenMagyar in #1870
Full Changelog: v1.13.0...v1.14.0
What's Changed
Minor features
- Add an API endpoint to cancel adhoc streaming jobs by @piyush-zlai in #1055
Bug fixes
- Fix
zipline auth loginflow by @sean-zlai in #1065
Full Changelog: v1.13.0...v1.14.0