Detailed Version Log Deephaven 1.202601

Note

For information on changes to Deephaven Community, see the Github release page.

Certified versions

No Grizzly Plus versions are certified at this time.

Detailed Release Version Log: Deephaven v2026.01

PatchDetails
025DH-22020: Update web version to v1.16.0
DH-21947: Split out fetchVariableDefinitionByPredicate function
DH-21722: Fix Goto Value for Timestamps
DH-21807: Update envoy and certificates documentation
024Merge updates from 1.20240517.556
  • DH-21735: handle unresolved addresses
  • DH-21986: Update plotly-express to v0.19.0
  • DH-20808: Add subplot_titles param to make_subplots
  • DH-21383: Switch dx map center to TypedDict
  • DH-20716: WebClientData should share etcd client for query monitors.
  • DH-21912: Update deephaven.ui to v0.31.4
  • DH-21449: Fix dh.ui memoized table flashing when using frozen or hidden columns
  • DH-21909: Controller Election Observer can wait forever for an update after recreating a watcher
  • DH-21825: Build and push deephaven_qa image
  • DH-21976: RegionedColumnSourceManager should specify locations whose removal was illegally attempted
  • DH-21900: Example ImportColumn using transform
  • DH-21842: Allow user-defined classpaths for coreplus workers in k8s
  • DH-21416: DHE Combo Benchmarks
  • DH-21907: Bump Grizzly to Core+ 41.3
  • DH-21900: Case insensitive matching for transformPrecision
  • DH-21856: update configuration service config for Core+
  • DH-21746: Fix Pivot ClassCastException on Expand/Collapse All
023DH-22005: Fix CODEOWNERS entry for WebClientData2
DH-21516: Add template for feature planning document
DH-20052: add documentation for BLF LogFormat
DH-21931: implement simpler FileWriters
DH-21995: Remove jdom from CUS directory.
DH-21990: Move the cache directories used by mypy and ruff to the Main/build
DH-21972: update BLF release notes after renaming
DH-21754: Make hadoop-common dependency transitive
DH-21972: regenerate BLF loggers
DH-21959: CorePlusBenchmark Use New JVM Max Build Properties
022DH-21960: ForceLogoutProvider test fixes
DH-21972: BLF renaming
DH-21960: recent activity rework
DH-21960: Switch from int array to byte for days array
DH-21915: Switch to AggSortedLast
DH-21958: migrate ForceLogoutProvider to BLF loggers
DH-21752: remove extra characters from error message
DH-21939: Fix merge server config for various integration tests
DH-21882: Make Java client more resilient to missing JSON fields.
DH-21889: Add Python version specifiers for numpy, pandas, pyarrow, matplotlib
DH-21835: Construct LAS writer in BinaryRowUtils
DH-21780: add precision to time parameter javadoc in loggers
021DH-21932: memoize viewport subscription options
DH-21921: WebClientData2Objects.historicalAndLiveMerged should avoid get(0)
DH-20504: Add Java 21 and 25 support for G+
DH-21867: Importer transformation integration test and documentation updates
DH-21916: Create a CODEOWNERS entry for WebClientData2
020DH-21911: switch to maxBy on activeUsers
DH-21913, DH-19818: Update deephaven.ui to v0.33.0
DH-21714: Correctly create dynamic partition BLF loggers
019DH-21906: Bump G+ to Core 41.3
DH-21891: Remove numba from install-required of Core Py API
DH-21305: Downgrade jetty to 12.0.33
DH-21814: Reuse callsite for updateBy listener creation.
DH-21873: Schema Editor allow partitioning columns for extended storage type
DH-21875: Fix File Name from Schema Editor Export
DH-21860: Disable All Schema Fields on Parser Error
DH-21893: Avoid NPE due to stale/missing auth token
DH-21752: CorePlus CSV import error handling improvements
DH-21872: Schema Editor Data Index should wrap
DH-21895, DH-21449: Update deephaven.ui to v0.32.3
DH-21894, DH-21658: Update web version to 1.15.1
DH-21553: Clear Stale Validation Errors in Query Editor
DH-21874: Fix Schema Editor Formatting in Firefox
DH-21865, DH-21866: Exclude deephaven-csv-fast-double-parser from EnterpriseShadowed
DH-16844: Custom parsers in CorePlus
DH-21546: add missing sort for stale data
DH-21889: Remove numba and llvmlite from the requirements.txt of Core+ Py
DH-21816: Core+ CPP client needs to handle the null truststore-url case
DH-21864: HTTP Resolvers must use truststore when configured
DH-21568: Schema Editor column revert button
DH-21850: Don't Leave 'Zombie' Workers Running for Successful Tests.
DH-21214: Scheduled Force Logout
DH-21743: switch to definite time mocking
DH-21325: Drop Legacy Python 3.9 in G+
DH-21837: TestOrchestrator can start more tests than intended.
DH-21838: Suppress ClosedChannelException in LogHelper
018Merge updates from 1.20240517.555
  • DH-21434: Add integration test for ReplayDatabase filter prioritization.
  • DH-21705: Authentication close timeout kills dispatcher.
  • DH-21782: Update Grizzly to Core+ 41.2
  • DH-21772: C++ Client: Fix Base64Encode
  • DH-21732: Compromise for stateful partition filter reordering.
  • DH-21652: remove Core logger row flags
  • DH-21759: Migrate Util annotations to util-annotations
  • DH-21100: Allow formulas in rollups.
  • DH-21531: DeferredViewTable.TableReference forces coalesce too early
  • DH-21655: whereIn ClassCastException for single column partial data index.
  • DH-19765: Allow uncoalesced tables to display in Enterprise dashboards
  • DH-21783: Backport Use Historical Data for Query Logs to Correlate Serial to Id
  • DH-21117: Fix Swing Removing Attachment Type on Update
  • DH-20862: Add SAML auth support for C++ client
  • DH-21652: prepare for Core logger flag removal
  • DH-21707: Adjust dark mode running vs initializing query monitor…
  • DH-19662: TimeSeriesFilterGenerator
017DH-21733: Fix missing timeouts in Python Core+ client.
DH-21822: Remove requireNonNull check in LogAggregatorWriterMultiPartition
DH-21792: add loggerClass to LoggerInfo
DH-20052: remove IOException from Logger 'of' method
DH-19534: Corrections to CSV import documentation
DH-21731: Fix envoy config in K8s to allow wss connections to legacy workers
DH-20052: Binary Logger Factory improvements
016DH-21686: Make WCD2's WorkspaceDataWriter service plugin requests async
DH-21769: throttle activity write to localStorage
DH-21760: fix qa results for new release numbering format
DH-21215: Move user refresh outside of cache
DH-20707: Enforce a size limit on WorkspaceData writes on WCD2
DH-21562: Be clearer and consistent with which truststore is used
DH-20987: fix REPLACE mode concurrent modification error by syncing config version
DH-21750: Change the Keepalive Time to 20s for Authentication and Controller Connections.
DH-21636: Default to SHA-256 for public key md/mgf params
DH-21730: Update deephaven.ui to v0.32.2
DH-21670: Fix unbounded memory leak in deephaven.ui / python workers
DH-19973: Aggregations do not persist in deephaven UI tables
DH-19310: Add deleteQueries to EnterpriseClient definition
015Merge updates from 1.20240517.555 (in-progress)
  • DH-21699: Pin setuptools to 81.0 for py < 3.10
  • DH-21689: Update default swing merge-storage-type from DEFAULT to Default
  • DH-21704: Update Pivot plugin to v0.3.1
  • DH-21595: use alternatives --install and --set for jar and jps
014DH-21652: prepare for Core logger flag removal
DH-20361: Cleanup on window "unload"
013DH-21541: Swing Should not Edit Core+ Queries
DH-21729: Make sure client connection address is populated correctly
DH-21666: Use Historical Data for Query Logs to Correlate Serial to Id
DH-21540: Make sure launcher system socket factory is initialized
DH-21640: Rename WCD2 to WCD
012Merge updates from 1.20240517.554
  • DH-21684: Dockerized R Core+ client build is missing proto gen R files
  • DH-21711: dhconfig acl users remove from a csv file should allow a file without passwords
  • DH-21698: Better thread handling in worker cert readiness check
  • DH-21635: Defer table definition creation for ExportedObjectInfo to avoid Swing crash.
  • DH-21688: Do more CSV validations for dhconfig user add from CSV file
  • DH-21649: Jupyter logging package should specify the pydeephaven version
  • DH-21394: Small docs update
  • DH-21606: Support batch addition and removal of users via dhconfig
  • DH-21659: Fix helm template newline handling with qa shared volumes
  • DH-19492: allow ACL import after error
  • DH-21645: Update CODEOWNERS for python system test exclusions, and gradle/plugins/ and /Automation/ ownership.
  • DH-21140: Fire disconnect events from js pivot table
  • DH-21584: GrpcAuthenticationClientManager.verifyToken should only throw AuthException
  • DH-20363: Update Web UI, update Pivot js plugin
  • DH-21381: Change location of monit config files to avoid cross-device link error
  • DH-21510: Update Grizzly to Core+ 0.40.9
  • DH-21451: make Python packages: pytz and zoneinfo soft deps
  • DH-21486: Allow the clock filter to execute in parallel
  • DH-21462: Dictionaries would skip the last region if it had only one value
  • DH-21434: Update unit test expectations.
  • DH-21594: Update release script to ignore DOC tickets
  • DH-21585: Fix Web UI-breaking WCD catalog ACL issue
  • DH-21262: Make IServerSelectionProvider implementable outside of iris
  • DH-21276,DH-21275: Remove old dh-config files and monit processes when marking a node etcd-only
  • DH-21532: Use alternatives --install before --set
  • DH-21434: Do not check for empty tables in replay.
  • DH-21458: Use bcrypt-cost: 4 etcd config for k8s.
  • DH-21483: use poll instead of peek to drain queue
  • DH-21436: Support adding commonName to cert-manager certificate objects
  • DH-21518: Fix dependency name change for testcontainers dependency
  • DH-21426: CI image - add helm, skaffold to CI image
  • DH-21446: Fix Dispatcher startup notification ordering.
011DH-21674: Make nightly tests report correctly report results
DH-21211: Add inactivity timeout logoff
DH-21215: Refresh snap table
DH-21683: Update Core+ C++ and R client dockerized build for lib.core.toml
DH-21174: Don't shadow deephaven Core
DH-21419: Add shared filter list for Panel Dropdown and PQ Explorer
DH-15846: Fix InputTableEnums test bad merge.
DH-21695: Update Pivot plugin to v0.3.0
DH-21669: Pivot plugin should re-fetch on disconnect/reconnect
DH-21702: Pivot filtering UI
DH-21673: Update web version on G+ to v1.14.0
DH-21625: investigate podman tests
DH-21315: Adjust dark mode running vs initializing query monitor colors
DH-21506: Sort PQ object array by name
DH-21663: correct Expiration rolling logic
010DH-21609: WCD2 startup and initial usage memory concerns
DH-21661: update docker version in jenkinsfiles
DH-21316: Convert controller and config from deployments to statefulsets in Kubernetes
DH-15846: Validate Core+ Input Table Enums
DH-21551: Fix Dashboard Export Converting Arrays to Strings
DH-19985: Ensure Netty bom is used when we load gRPC
DH-21197: Remove "defaults" for PQs created from JS
DH-21339: ConsolePanel Variable Table Replacement Creating Duplicates
DH-21568: Improve Schema Editor Field Editing
DH-21595: use alternatives --install and --set for jar and jps
DH-21215: Force logout a user that has been deleted
DH-21645: fix codeowners to use exclusion pattern
DH-21099: Js API samples should check for the correct type string
DH-21527: Database name in JDBC import settings should be required
DH-21598: sort out mv file issue on nightlies
DH-20262: Safe Mode Query Editor
DH-21665: Change location of monit config files to avoid cross-device link error
DH-21595: Update images for java alternates (G+)
009DH-21607, DH-21234, DH-21610: Update web version in G+ to v1.13.0
DH-21566: Handle "DEFAULT" storage-format in Core+ Merge
DH-21422: Update build-to-version script to work with new build numbers
DH-21600: Added embedDashboardsAndWidgets feature flag
DH-21597: check-deephaven-cluster used wrong argument name.
DH-20724: Add .copy() and .getSourceTable() functions to JsPivotTable
DH-18554: Test Orchestrator - remove unhelpfully noisy grpc logging from output
DH-21502: vulnerability tracker
DH-21514: Update web version to 1.12.1
DH-21552: Add AclService and WebClientUtilsService to Enterprise Auth Module
DH-21574: Wrong ACL filter definition in WCD2 for UserAssignments table
DH-21249: Add Envoy route for SchemaApi service
DH-21530: fix dh-config install error, python test and use signed launcher
DH-21521: SessionMonitor does not wait for enough sessions
DH-21523: Update Grizzly+ Core+ to 41.1.
DH-20446: JS API should close session on disconnect
DH-21486: Allow the clock filter to execute in parallel.
DH-21462: Dictionaries would skip the last region if it had only one value.
DH-21480: Use protobuf instead of JSON for input table restrictions.
DH-20884: Update protobuf-java-util to expected protobuf-java ve…
DH-19985: Use Netty's BOM for consistent netty, boringssl
DH-21451: make Python packages: pytz and zoneinfo soft deps
DH-19489, DH-20658: structured filter support in Core Python client and server API
DH-21400: Implement findPositionForKey for StaticSymbolTableChunkedOperatorAggregationStateManager
DH-21297: correct shift handling for TreeTableFilter
DH-21319: Anonymous classes don't work in the query language
008DH-21265: Generate per-node certificates for envoy; fix legacy workers after envoy upgrade
DH-21511: fix csv import tests
DH-21394: fix failing test
DH-21478: add disabled test to demonstrate failure
DH-21490: Consistent use of Core+ Schema in all Core+ projects
DH-21394: properly check ColumnSpec invariants
DH-20000: backport test orchestrator
DH-21212: Rework backend API with system tables
DH-21475: Bump the others group across 2 directories with 41 updates
DH-15642: Web Bulk Data Ingestion
DH-21467: Bump deephaven-csv reference to 0.19.0
007Merge updates from 1.20240517.551
  • DH-21459: Disable crosscluster tests to G+
  • DH-21393: Improve help output for some dhconfig options
  • DH-21374: Docs CI and tooling
  • DH-21064: JS PivotTable support for filter/sort before subscription
006DH-21008: Fix failing tests
DH-21173: Remove Legacy and Core+ usage of deprecated codecs
DH-21459: Disable G+ Crosscluster test (G+)
DH-19846: empty password should fail differently
DH-21440: Integration Test for Core+ Schema
DH-21173: add ObjectCodec binary unit tests
DH-17050: Fix trim defaults for null and 1-character formatting
005DH-21444, DH-21259, DH-21027, DH-21367, DH-21407: Update web version v1.12.0
DH-21173: add ObjectCodec binary unit tests
DH-21343: Move IngesterPersistentQueryConstants
DH-21173: add ObjectCodec binary unit tests
DH-21306: Refresh token did not update deadline
DH-21008, DH-21249: Fix missing JS API configs after JS API refactor
DH-21097: revert exposing SchemaXmlParser.getColumnTypes
DH-21097: Fix javadoc
004Merge updates from 1.20240517.550
  • DH-21430: Update Core+ to 0.40.8.
  • DH-19309: Corrections to data routing filtering
  • DH-21366: Upgrade fabric8 lib and worker pod logging robustness
  • DH-21399: Avoid setting a timeout that applies to all RPC methods in controller_service_config.json
003DH-21097, DH-21110: Schema interface in Core+
DH-21356: Compute the correct image version
DH-21421: Update Java style guide for record formatting
DH-20247: corrections to data routing filters and code enhancements
DH-21415, DH-21259: Upgrade deephaven-plugin-plotly-express to 0.18.3
DH-21158: DH-21295: Correctly map between TS/JS and Proto concerning nulls
DH-20987: Dependent queries not handled correctly when importing queries
DH-21348: Clean up target import-directory on failed BinlogImport job
DH-21411: Fix G+ wheel name normalization.
DH-19506: simplify tailerConfigDbInternal.xml
DH-21410: Updates to officially release gplus
002Merge updates from 1.20240517.549
  • DH-21396: Fix potential NPE when building worker ResourceRequirements
  • DH-21341: Fix typo for controller service in controller_service_config.json
  • DH-21358: Fix Helm lint failure
  • DH-21336: fix bad link in grizzly pydoc
  • DH-21324: Give the configuration server more memory in default Helm values
  • DH-21285: Allow setting default CPU requests/limits for Kubernetes workers
001DH-19828: no PQ restart triggered when adding/removing replicas or spares
DH-21330: Fix glob CSV import preview
DH-21271: migrate lz4 dependency for enterprise
DH-21352: Fix Schema JDBC API for Import Source
DH-21356: Make sure the build supports the new version scheme
DH-21380: remove extraneous ImporterBase wrapping
DH-21143: More responsively terminate closed Code Studios.
DH-21157: Blue checkmark should be set to indicate the currently selected DataType
DH-21027: Adjust setting menu header for proper contrast
DH-18617: Filter interactive consoles and schema editors from PQ explorer

Detailed Release Candidate Version Log: Deephaven v1.20250219beta

PatchDetails
138DH-19548: Fix ImportJobs javadoc
DH-21337: bump podman to rocky9 and python312
DH-21334: Add QueryDisplayType enum and complete QueryType enum
DH-20762: Convert auth and acl procs to stateful sets that can have multiple replicas
DH-21187: Remove WCD legacy from gplus
DH-19548: Fix issues with delimiter and trim using CSV import builder
DH-21129: Persist Schema Connection State to Workspace
DH-21115: Use new theme variables for diff colors
DH-20305, DH-20295, DH-19435: Various updates to default property files
DH-21172: Fix Layout for Schema Editor Import Source
137Merge updates from 1.20240517.547
  • DH-21328: Allow access to k8s resource 'pod/logs'
  • DH-21288: Workaround for Groovy Anonymous classes not reporting themselves as anonymous.
  • DH-19620: Kubernetes default storage class should be null, not "default"
  • DH-21283: Add resource requests/limits for containers that were missing them
  • DH-21278: Bump kafka-clients to 3.9.1
  • DH-21250: Remove critEmail and smtp.mx.domain from default property files
  • DH-13699: gRPC timeout for client auth invalidate cookie should be short
  • DH-21233: Add param 'channel_options' in the ControllerClient initializer
  • DH-21044: Ignore pre/post install scripts
  • DH-21165: Change coreplus py version required to 3.9
136DH-20627: Make WorkspaceDataTool work with WCD2
DH-21317, DH-21093, DH-20243, DH-21048, DH-21144, DH-21258: Update web version to v1.11.0
DH-21322: Update G+ to Core 41.0
DH-18056: Null and NaN Core engine Consistency
DH-10139: Introduce structured errors for input table updates.
DH-18811: Core+ input tables can't be edited after other columns joined on
DH-19047: Selectables with Barriers and Serial Marking
DH-19279: Use ColumnExpressionValidator for HierarchicalTableFilters.
DH-19382: add server side timing to JsCommandResult
DH-19461: Apply linting/type-checking on Core Py APIs
DH-19475: predicate pushdown - parquet dictionary support
DH-19563: JsTreeTable copy throwing breaking advanced filters on tree tables
DH-19929: support Avro String[] types
DH-20248: Update server base images to Ubuntu LTS 24.04
DH-20307: Throw errors when worker connection has been Disconnected
DH-20408: Allow column renames to properly mask collisions.
DH-20448, DH-20449: Better schema information for complex types
DH-20464: support table level data indexing for all filters
DH-20465: Fixes for MethodListValidator dependencies.
DH-20516: Add implicit barriers to serial Selectables.
DH-20517: Add ConcurrencyControl and Selectable wrappers in Py Server API
DH-20523: Include update graph name in log messages.
DH-20533: Catch/ignore warnings in _wrapper.py
DH-20540: Ensure DataIndex pushdown is not short-circuited
DH-20563: Improve juli log level translation
DH-20568: Refactor DHProcess Module for use outside EngineMetrics.
DH-20590: Add Add ColumnExpressionValidator to TicketResolverOptions.
DH-20607: Bump kafka version to 7.9.2
DH-20611: Add dependency constraint on json-smart
DH-20614: correct PartitionAwareSourceTable partition column filter handling
DH-20616: better URI parsing
DH-20625: SelectAndViewAnalyzer track barriers for real and aliased columns
DH-20638: selectDistinct on SourceTable throws an Exception while notifying
DH-20652: retain column definitions when columns retained
DH-20682: Update deephaven-csv to 0.18.0 for shutdown fix
DH-20685: Make Resolver and InferenceInstructions equals better
DH-20720: Add PluginOptions for service loaded plugins to get the ColumnExpressionValidator.
DH-20736: Add more column validation.
DH-20714: Convert Filters and Selectables to Stateless by Default
DH-20783: Update sort operations to put NULL first, NaN last
DH-20784: Mathematical agg ops should ignore NULLs, and poison with NaN
DH-20785: nan/null comparison in filter and query language
DH-20809: Fix Core+ WorkerConnection goes back into Reconnecting state after Disconnected
DH-20816: Refactor WhereFilter.Visitor pattern
DH-20854: TailInitializationFilter that uses rows not timestamps.
DH-20884: Update Jetty to 12.1.5, gRPC to 1.76.2
DH-20990: Fix predicate pushdown for renamed columns in a merged table.
DH-20994: Corrected sort(float), sort(double) to fix chunk sorting issue.
DH-20997: Allow prevFlusher for Distinct operators to run when not exposeInternal
DH-20998: ClassCastException when subscribing to BarrageTable with a ZonedDateTime.
DH-21004: include char in Numeric code generation
DH-21056: Use the value attribute of Pandas Timedelta to avoid type-checking error
DH-21091: Restore QueryLanguageFunction auto-generation
DH-21105: Remove hard-coded stateful ViewColumnSource constructors
DH-21109: Add Configuration constructor parameter for PropertyInputStreamLoader.
DH-21112: Prevent Python formula parallelism in non-free-threaded Python.
DH-21116: Make _to_sequence public to not break DH enterprise Py APIs (Grizzly, G+, SanLuis)
DH-21128: Always call Java Consumer's accept method regardless of whether partition value is provided
DH-21156: IncrementalReleaseFilter support for add-only tables.
DH-21231: WhereIn / WhereNotIn (DynamicWhereFilter) to handle NaN and +/-0 properly
DH-21266: migrate lz4 dependency
DH-19544: remove deprecated IrisLogCreator constructors
DH-13683, DH-21264: fixed remote logout users and groups
DH-21304: Update G+ to Core 41.0-SNAPSHOT
DH-20797: Hide settings tabs for Code Studio and Schema Editor queries
DH-13683: Revert remote logout users and groups
135DH-21271: Gradle workaround for lz4 relocation
DH-21237: Update G+ to gRPC 1.76.2 and Jetty 12.1
DH-21256: io.deephaven.importers.csv.CsvSinkFactory used Legacy ColumnSources.
DH-21247: Fix MatchFilter constructor signatures.
DH-13683: remote logout users and groups
DH-20526: Upgrade envoy; fix envoy cert handling
DH-21087, DH-21069: Schema XML preview diff view, fix XML preview button bar
DH-21196: Back button for login screen doesn't work
DH-20409: Fix multi-partition imports
DH-21176: Use AEL instead of PQSL for integration test
DH-20409: Core+ CSV schema editor preview
134Merge updates from 1.20240517.545
  • DH-21195: Update launcher to address vulnerabilities from SBOM scan
  • DH-21188: Allow setting Kubernetes CPU limit to requested value
  • DH-20981: Safe Mode reset workspace is resetting all user workspaces
  • DH-20654, DH-20435: Update Web UI to v0.85.39, update js-plugin-pivot to v0.2.0
  • DH-21147: Revert fabric8 vulnerability update.
  • DH-21182: Exclude JDOM1
  • DH-21182: Exclude transitive jdom1 dependency from IJ form designer library.
  • DH-21178: Update commons-beanutils in Core+
  • DH-21169: Resolve all high vulnerability reported in web packages
  • DH-21171: Update grpc to 1.76.2 for shadow-proto
  • DH-21177: Swing ACL Editor is broken in Grizzly
  • DH-21164: Update to Jetty 11.0.26 for Core+
  • DH-21107, DH-21108: Runtime security enhancements to Kubernetes containers
  • DH-21167: Relocate netty, bouncycastle, vertx in k8s shadow jar
  • DH-20962: Bump commons-lang3 and logback to address vulnerabilities
  • DH-21047: All Pivot column and row sources reported as not sortable.
  • DH-21151: update protobuf-java, commons compress, and jackson core to address vulnerabilities
  • DH-21147: Update k8sclient
  • DH-21133: Using envoy on default https port results in errors in python and java client
  • DH-21154: Update avro for shadow
  • DH-21151: Address protobuf-java vulnerabilities
  • DH-21148: Bump commons-io in shadow-resteasy
  • DH-20949: Update parquet-hadoop, parquet-jackson and dependencies to address vulnerabilities
  • DH-21125: PersistentQueryClient token factory retries should include retries for fishlib command failure.
  • DH-19967: Fix ResolverReader.getServers() API for getting updates
  • DH-20787: update WebClientData default heap
133DH-20375: Schema JDBC API Query
DH-21131: Placeholder for Schema Draft empty table name
DH-21170: Improve Schema Config Tab Behavior
DH-21039: Revert query monaco diff editor fixes
DH-21176: Fix integration-test for cases where there are no PQSL binlogs
DH-21210: Exclude Automation dir from CODEOWNERS
DH-20477, DH-19534, DH-20340: CSV format tests, CSV/JDBC javadocs and fixes
DH-21208: Remove DH_DEFAULT_CERTIFICATE
DH-20306: A solution to the TableDefinition serialization issue
DH-19587, DH-19586: one cert per machine, truststore optional
DH-21204: Cover new enum cases in PqDerivedTables.
DH-20945: Update launcher to address vulnerabilities from SBOM scan
DH-20513: Import - Deephaven Binary Logs Web UI fixes
DH-21163: Save as PQ button crashes and loses notebook data
DH-21172: Fix bottom margin for Schema Import Source panel
DH-21065: Add missing proto enum values
DH-21095: Improve Schema Search
DH-21055: Fix layout for Enterprise tooltip worker name
DH-21071: DH-21009: JS gRPC transport impl and buffer fix
DH-21058: Query monitor errors out when inputting Owner/Name OR filter
DH-21065: Handle legacy object types first in JS API
DH-21122: Fix JDBC codec shadowing
DH-20745: Can't stop code studio or schema editor query
132DH-21015: Replace all usages of deprecated QueryInfo methods and IrisClient events
DH-21141: Web Schema Editor UI Fixes for CSV Import Source Preview
DH-20968: Bump the others group across 2 directories with 83 updates
DH-21039: Revert query improvements
DH-21113: GetPropertyRequest reads from classpath not etcd
DH-21081: Log when JettyServerBuilder doesn't enable CORS
DH-21120: Update CODEOWNER for web/client-ui folder to web team
DH-16956: update font loading to re-use fontbootstrap
DH-21044: Ignore pre/post install scripts
DH-21030: Handle formatting multiple jvm args in connection info
DH-20980: Add back missing validation when reverting draft query
DH-20745: Disable restart for Schema API and Code Studio queries
DH-20739: More Schema Editor UI fixes
DH-20776: Add python bindings for EnterpriseTableTools.readBin(...)
DH-20979: Use snapshots for shadowed build.
DH-21051: JS QueryInfo should return null for unset dates
DH-21073: Add missing IP addr for JS public key auth
DH-21060: JS dispatcher list should show correct summary for groups
DH-21084, DH-21085: JS should correctly handle nulls in query configs
DH-21082: Use schema file extension in Web Schema Editor
DH-21052: ConsoleCreator kills workers when used in an iframe
DH-20631: Add methods to retrieve PQ scripts
DH-20257: workspace snapshot schedule daily
DH-20152: Better error message when error creating a console
DH-20743: Reconnect plots correctly after wifi disconnect
131Merge updates from 1.20240517.541
  • DH-20917: Use same auth service with and without saml
  • DH-21043: envoy installs with the internal installer fail when envoy is not setup yet
  • DH-21016: Improve jetcd client retry schedule for increased resiliency
130DH-20391: CorePlus imports - remove append flag and clean CSV import exception
DH-15406: Table not refetching after being closed
DH-21042: request JDBC driver keys for JS API
DH-20999: New Tab screen's Shortcuts section is broken
DH-21032: JS API must actually pass saml key to auth server
DH-21032: SAML configs/templates accessible by config server
DH-15407: Alignment for Show Groups Without ACLs
DH-15407: Don't throw if user doesn't exist
DH-20979: Update Grizzly+ to Core 0.41.0-SNAPSHOT
DH-21030: Remove ConsoleConfig to fix code studio creation
DH-21029: Refresh token was not getting stored properly
DH-20980: Query settings flashes validation errors when changing namespace
DH-21018: Add back format document button
DH-20986: Wrap some console creator typing tests in act
DH-17975: Replace web_api_service endpoints with gRPC-web calls
129Merge updates from 1.20240517.539
  • DH-21011: Update to Core 0.40.7
  • DH-18811: Core+ input tables can't be edited after other columns joined on
  • DH-20997: Allow prevFlusher for Distinct operators to run when not expose Internal.
  • DH-20998: ClassCastException when subscribing to BarrageTable with a ZonedDateTime.
  • DH-20990: Fix predicate pushdown for renamed columns in a merged table.
  • DH-20996, DH-20934: Update Web UI to v0.85.38
  • DH-20936: coreplus py client timeout isn't passed to auth/controller clients
128DH-15407: Add showGroupsWithoutAcls flag, error if user does not exist
DH-21014: remove duplicate heap label in console status bar
DH-20414: Update scripted csv import to use specific merge server
DH-21006: Better handling when 20k queries are removed/updated
DH-20513: Enable Import - Deephaven Binary Logs in web
DH-19534: Make CsvImportOptions immutable
DH-20414: Release CSV integration tests
DH-20992: Update packages to resolve critical vulnerabilities
DH-20855: Use tls crt for all certificates in installer
DH-20485: Make connection json optional
DH-20984: Exclude core JDBC tests from nightlies
DH-19998: Revert Query
DH-20972, DH-19382: Update web version in G+ to v1.10.0
DH-20795: Update QM Custom Filtering
DH-20828: add 'ruffFixAndFormat' gradle task and improve static analysis of Py code
127Merge updates from 1.20240517.538
  • DH-20909: Disable Legacy Web Column Name Completion Preload
  • DH-20346: Replace nightly test jdk17 with jdk8 as we already run jdk17 tests
  • DH-19055: Add release notes for the removal of -jdk segments from installation media filenames
  • DH-20881: Git script dropdown doesn't show enough of script paths
  • DH-20947: Update shadow-mssql to latest version
  • DH-20525: error count reset on dependency restart
  • DH-19177: correct a syntax error
  • DH-17403: Dashboard with Deleted Query has Maximum Call Stack Exceeded
  • DH-20838: Update commons-io and commons-lang dependencies in Enterprise build.
  • DH-19497: add more diagnostics
  • DH-20838: Update avro version in Enterprise to 1.11.5
  • DH-20929: Change iriscat default so that its timestamp inference works after 2025/09/23
  • DH-20839: Provide explicit supplemental groups on the installer pod in K8s deployments
126DH-20769: Use new useViewportData props to request data where necessary
DH-20970: Bump the patch-only group across 1 directory with 2 updates
DH-19535, DH-20418: CorePlus JDBC import and schema discovery
DH-20744: Use url encoded-comma separated lists for JDBC virtual properties.
DH-20952: Upgrade deephaven-plugin-plotly-express to 0.18.2
DH-15406: Permission analyzer UI
DH-20942, DH-18780, DH-20734, DH-18960, DH-18779, DH-20594: Update Web Version v1.9.0
DH-20944: Fix failing test
DH-20340: Make CsvSchemaCreator builder package visible
DH-20659: Query logs table recovering correctly on request restart
DH-20712: Fix failing console creator unit test
DH-20935: Cleanup subscription leaks after switching to createViewportSubscription
DH-15407: Fix broken javadoc
DH-20829: Use TLS for worker comms in Kubernetes
DH-15407: JS API for ACL Permission Analyzer
DH-20712, DH-20255, DH-20319, DH-20500, DH-19413, DH-20229, DH-19098, DH-20410: Update web version v1.8.0 and React v18
125Merge updates from 1.20240517.536
  • DH-20920, DH-18779, DH-18780: Update Web UI to v0.85.37
  • DH-20700: Legacy worker Web UI presents incorrect data in oneClick
  • DH-20898: Fix JobScheduler close race condition
  • DH-20887: Fix Check for Spares with Unlimited Restart Error Count
  • DH-19497: Add troubleshooting info to flaky input-table test
124DH-20561: heap usage indicator
DH-20916: TabNavigation not focusing the correct element on click
DH-19055: remove extraneous generate projects
DH-20901: Core+ python client SessionManager.create_auth_client takes optional string argument but if given fails
DH-20344: Remove dead code incorrectly merged
DH-20867: use correct precondition when deciding to create envoy certs
DH-19538: Core+ Binary log import
DH-20187: Schema Editor Bulk Import and Export
123Merge updates from 1.20240517.535
  • DH-19786: Confirm pod is gone before confirming worker is deleted [Kubernetes]
  • DH-20861: Add imagePullPolicy to containers that are missing it
  • DH-20831: Add supplementalGroups to pre-release hook
  • DH-20850: Remove unnecessary files from the Core C++ client tar bundle created by docker-build.sh
  • DH-20853: correct expected error messages
  • DH-20412: Close Core+ clients / connections when services / queries restart
  • DH-19177: add retries and more diagnostics
  • DH-20593: Linker broken on grid widgets when switching between dashboards
  • DH-20822: Disable Minikube test
122DH-20427: Web UI Should Close WCD2 Widgets
DH-19951: Fix web publish action in G+
DH-19957: Fix Check for Spares with Unlimited Restart Error Count
DH-20518: Iris Java Client Connection JSON Default
DH-18577: Rename io.deephaven.dnd to io.deephaven.coreplus
DH-20863: Fix installer handling of core+ -SNAPSHOT version
DH-20832: Fix jetcd 0.8.5 shadow build
DH-20759: Controller Configuration to Include WorkerKind, Protobuf Comments
DH-20834: http/1.1 is required by vscode
DH-19943: clear SchemaService for tests before using
121Merge updates from 1.20240517.534
  • DH-20806: Fix saveContainerImages gradle task
  • DH-20794: Configurable Core+ python client's SessionManager rpc timeouts
  • DH-20750: Run deephaven_management container (and install hook) as irisadmin instead of root
  • DH-20804: service account role update
  • DH-20805: Update Grizzly Core+ to 0.40.5
  • DH-20307: Throw errors when worker connection has been Disconnected
  • DH-20682: Update deephaven-csv to 0.18.0 for shutdown fix
  • DH-20464: cherry-pick filter barrier support for ParquetTableLocation data indexes
  • DH-20688: Kubernetes deploy from Jenkins and run automation tests
  • DH-20737: Helm values for cert-manager's IssuerKind are called "issuerType"
  • DH-20546, DH-20703: Use namespaced roles with limited permissions for Kubernetes service accounts
  • DH-20761: Make Envoy service's type configurable in Kubernetes
  • DH-20780: Backport to grizzly DH-20234 Controller believes Core+ worker is still running when actually down
  • DH-20790: Move dependencies out of task configuration block
120DH-19943: move readBin options into builder
DH-20374: Schema Editor CSV API
DH-20833: Set corePlusManager in useIframeContentLogin
DH-20739: Schema Editor UI enhancements
DH-20414: Add delay for int-test CSV import
DH-20818: Upgrade deephaven-plugin-plotly-express to 0.18.1
DH-20827: Modify CODEOWNERS for web directory ownership
DH-20604: PQs on merge server automatically become a Draft
DH-20473: Provide truststore directly to Jetty h2 client
DH-20781: Update jetcd version to 0.8.5
DH-20748: Web UI crashing when reordering dashboard tabs with a new dashboard open
DH-19948: Allow longer dashboard names in top tabs
DH-20708: Notebook classloading should be disabled for Core+ system PQs
119Merge updates from 1.20240517.533
  • DH-19994, DH-18788, DH-20010: automate system upgrades, support vmUp/vmDown on systems without local scripts, restart envoy internally (fixed)
  • DH-20767: CART requires tracking rowset for InverseWrappedRowSetRowRedirection
  • DH-20740: Use correct decoder for Core+ String and StringSet columns
118DH-20481: Create Import Source as Valid
DH-20344: Console creator now uses CorePlusManager
DH-20298: Core+ Run Local Query Script
DH-18918,DH-19076,DH-17469: Extract remotely scripts into .sh files, rename DH_DND_VERSIONS to DH_COREPLUS_VERSIONS, more diskspace installer validation
DH-20782: Disable SNI checks
DH-20234: Controller believes Core+ worker is still running when actually down
117DH-19943: Port readBin to Core+
DH-20659: CorePlusManager caching and logging
DH-20538: Use new createViewportSubscrtipion for ItemUpdateListener causing false sharing changes
DH-20472: DH Services should use hostname as authority
DH-20765: Small fixes for Core+ MergeJob
116Merge updates from 1.20240517.532
  • DH-20706: Fix Iceberg test resources
  • DH-19805: Upload Core+ client to testpypi (for now) as part of republication job.
  • DH-20620: Fix listener generation for dbSetter="none"
  • DH-20620: Support instrumentation columns in readBin
  • DH-20500, DH-19973: Update web version v0.85.36 and dh.ui v0.31.3
115DH-20730: rebuild images with expect
DH-20744: Add virtual properties for jsapi.
114DH-20687: Publish Enterprise JS API type for RefreshToken
DH-20040: optimize selectDistinct for partitioning columns in DeferredACLTable
DH-20562: Make the test more specific to avoid false positives
DH-20212: repair the checkpoint record after changing table files or definition
DH-20729: Update plotly to v0.18.0
DH-20545: Expose JS VariableDefinition objects without GWT type info
113Merge updates from 1.20240517.531
  • DH-19994, DH-18788, DH-18855, DH-18872: Revert original change
  • DH-20598: Fix broken links in release notes
  • DH-19994, DH-18788, DH-18855, DH-18872: automate system upgrades, fix pull_cnf, support vmUp/vmDown on systems without local scripts, restart envoy internally
  • DH-20623: Publish kuberenetes images in JDK17 only
  • DH-20534: Fix kubernetes legacy python workers issue
  • DH-20553: Fix kubernetes swing login issues
  • DH-19284: Update podman internal readme to build from local branches
  • DH-19851: fix internal config for qa-results box
  • DH-20341: Update CART to reduce unnecessary data copying
112DH-20695: Support PQ import/export via gRPC.
DH-20697: gRPC endpoints for config property access
DH-19595: add hostname SAN and remove static authorities from system certs
DH-20095: Right chevron icon doesn't disable when scrolled to end of dashboard tabs
DH-20699: Schema API Query Should Run on Merge
DH-20586: Use new JS API when loading workspace storage data
DH-20693: Fix UnifiedServiceTest, correctly expose Jetty gRPC port
DH-20691: Schema Editor should preserve CDATA
DH-20577: Allow user to call containsAnyWithSplit
111Merge updates from 1.20240517.528
  • DH-20469: Use deleteRecursivelyOnNFS(...) in HiveLocationsTableKeyFinder
  • DH-20639: correct TestDatabase buildExpectedHistTable
  • DH-20639: Use LinkedHashMap to ensure proper partition order
110DH-20690: G+ Should use Parsed ColumnExpressionValidator
DH-20689: Properly Apply WorkspaceData Filters to Latest Snapshot
DH-20340: CSV schema inference infrastructure
DH-20677: Stop Schema API Query on Unload
DH-19899: Use Jetty instead of Netty for our gRPC services
DH-20481: Update Schema Editor Validation for Backwards Compatibility
DH-20661: generate up-to-date loggers / listeners
109Merge updates from 1.20240517.527
  • DH-20643: Update Grizzly Core+ to 0.40.4
  • DH-20638: selectDistinct on SourceTable throws an Exception while notifying
  • DH-20626: Update Grizzly Core+ to 0.40.3
  • DH-20614: correct PartitionAwareSourceTable partition column filter handling
  • DH-20611: Add dependency constraint on json-smart
  • DH-19929: support Avro String[] types
  • DH-20607: Bump kafka version to 7.9.2
  • DH-20621: Acl Filter Barriers should Ignore non-Simple Filters only Partition Columns
  • DH-20585: GrpcAuthenticationService should validate the cookie provided in the refreshCookie call
108DH-20531: Discover schema from JDBC screen
DH-20635: Replace call to client.getQuerySelectionPermission
DH-20637: Fix Schema API query disconnect while active
DH-20443: Schema Editor No Compile Option
DH-20510: Fix array-column based validation tests
107Merge updates from 1.20240517.525
  • DH-20555: Add resource preset for etcd install, set nfs version to non-deprecated image version
  • DH-20595: Fix minikube test
  • DH-20390: Upgrade DHE Benchmark to Community Benchmark 0.40.0
  • DH-20584: Change CsvImportProcessorTest setup to reduce execution time.
  • DH-20321: Merge to Parquet fails when source table has array columns with column codecs
  • DH-20554: Increase webapi memory from 1Gi to 2Gi in Kubernetes
  • DH-20553: Swing launch issue in Kubernetes
  • DH-13515: Basic UI support for Pivot tables
  • DH-19413: Web UI Grid expand/collapse column groups functionality
106DH-19722: Better handling for large numbers of open dashboards
DH-20439: Convert Schema Explorer ListView to use a TreeTable
DH-20562: Exclude grpc-servlet classes from producing <warning logs
DH-20505: Create new JDBC import source screen
DH-20123: Schema API Query
105Merge updates from 1.20240517.524
  • DH-20541: Update Grizzly Core+ to 0.40.2
  • DH-20533: Catch/ignore warnings in _wrapper.py
  • DH-20516: Add implicit barriers to serial Selectables.
  • DH-20527: Use pyarrow 20 instead of 21 for ubuntu20 support.
  • DH-19719: Revert getdown changes
  • DH-20092: Always use pre-built binaries during pip install
  • DH-20509: Rename pivot projects instead of output jars.
104DH-20545: Fetching tables from PQs was not working
DH-20529: Use new JS subscription API to fetch viewport data
DH-20360: WCD2 fails to track properly lifetimes of table objects returned to the client
DH-20303: A regular user's default PQ filtering in the QM is incorrect
DH-19889: Added some unit tests specific to gplus
103DH-20506: Unshadow gRPC for DHE/Core+ usage
DH-20502: MessageUtilTest.testWebServerParameters failure
DH-19272: Bump GWT/jsinterop/elemental2 versions
102Merge updates from 1.20240517.523
  • DH-20497: Update Core+ to 0.40.1
  • DH-20448, DH-20449: Better schema information for complex types
  • DH-19047: Selectables with Barriers and Serial Marking
  • DH-20465: Shadow openrewrite for MethodListValidator
  • DH-20479: add retries for installation upload
  • DH-18080: Use old method name validator, fix properties and property sync.
  • DH-20460: Require lock for PivotTable creation and apply method.
  • DH-17519: Installer must pass --direct to dhconfig
  • DH-19889: ParquetShadowHelper should preserve all fields when copying metadata
  • DH-20432: Update Grizzly to Core+ 0.40.0
  • DH-20493: VS Code extension - Deephaven UI is broken on Envoy servers
  • DH-20385: migrate to ZoneId
  • DH-19895: New JS API for requesting data
  • fail-fast when SimpleSourceTable has non-simple TableDefinition
  • DH-19905: Port LeaderTableFilter to Core
  • DH-20383: Add inputTable.isValue to table attributes.
  • DH-18080: Make column expression validation more configurable.
  • DH-19410: Add multiple row-group write support
  • DH-18062: Make IcebergCatalogAdapter Closeable
  • DH-18062: Added custom AWS Client factory for Iceberg
  • DH-16341: Keyed transpose
  • DH-20171: Allow Comparators for Object Sorts
  • DH-20148: Make Vector Comparable.
  • DH-18857: Allow Vector and Array columns to be handled by quick filter backend.
  • DH-20059: Predicate pushdown through merged tables (UnionSourceManager)
  • DH-20077: Simplify client builds and prepare for CI automation
  • Update web version 1.6.0
  • DH-19961: Add RowKeyAgnostic sources to pushdown
  • DH-19978: Add assertBlink, assertAddOnly and assertAppendOnly to Table.
  • use JobScheduler for pushdown estimate
  • DH-19045: FilterBarriers and FilterRespectsBarriers
  • DH-18316: throw error if FileHandle key changes
  • DH-19859: WindowCheck should not force a table to be refreshing if nothing will ever change.
  • DH-18998, DH-18999: Enable etags
  • DH-19798: Unsortable Columns Should not have Delayed Error in Rollups.
  • Make newTable and mergeTables available from IdeConnection
  • DH-19501: Expose Aggregated Columns in JSTreeTable
  • add AWS SessionCredentials to S3 module
  • DH-19448: Use S3 client for Iceberg from S3FileIO
  • implement pushdown predicate filtering for where() calls
  • Add Iceberg BuildCatalogOptions
  • DH-18260: Added support to read/write list types to Iceberg
  • DH-19044: implement serial Filter API
  • DH-18145: Write timeout configuration with S3
  • DH-20419: Ensure no leading/trailing spaces in auth headers
  • DH-20413: Expand UpdateBy timestamp column types
  • DH-19644: JS Rollup constituents can appear multiple times
  • DH-20379: Python scope does not work in format_columns
  • DH-20103: Improve error message for unsupported Timestamp column data types
  • DH-20139: Remove CLASSNAME Substitution
  • DH-20166: Log all export errors.
  • DH-20146: make codec-api and implementations Java 8 compatible
  • DH-20132: Lazy MergedDataIndex must include key columns.
  • DH-20129: Return delegated AwsCredentialsProvider
  • DH-20018: Update Python Arrow to Table Converter Type Mapping
  • DH-20058: Address inappropriate chunk freeing in CountWhereOperator (aggBy and updateBy)
  • DH-19970, DH-19958: Make it harder to accidentally create unpooled chunks, refactor pooling code to improve giving pattern, and make poolable capacities configurable
  • Guard against nulls when transforming filter messages
  • DH-20035: whereIn must coalesce set table.
  • DH-19935: ensure CharSequenceUtils case-insensitive is consistent
  • DH-20002: Mismatched Tree Table ID and Parent Column Results in Poor Error Message.
  • DH-19924: Rewrite ungroup.
  • DH-20003: auth transform should not be applied to outputs of HierarchicalTable or PartitionedTable service ops.
  • DH-20027: ModifiedColumnSet.ALL.containsAll does not always return True.
  • DH-19964: Absolute Rollup Sorts Broken
101DH-20384: Discover schema from CSV screen
DH-20414: Temporarily disable CorePlus CSV import integration tests
DH-20441: Add linting/type-checking/formatting for Core+ Py
DH-19985: gRPC/proto/barrage/arrow/dhc versions should be consistent
100Merge updates from 1.20240517.521
  • DH-20442: Restrict plugin publishing to the publishing stage
  • DH-20430: Fix publication of io.deephaven.gradle:tools jar
  • DH-20343: Disallow Pivots without Any Output Columns
  • DH-20392: Add TstUtils methods to support array codec and BigDecimal unit tests
  • DH-20394: Handle row groups in parquet from TLMI
  • DH-20284: Minikube test fix to use Deephaven packaged etcd instead of bitnami
  • DH-18806: Coreplus Benchmarks Nightly CI/CD Workflow
099DH-20461: Migrate UpdatePerformanceAncestors to BLF
DH-20346: Remove unnecessary JDKs from tests
DH-20450, DH-20388, DH-20401: Update Web Version 1.6.0
DH-20332, DH-18648, DH-19948, DH-20255: Update Web Version 1.5.3
DH-19898: Require h2 everywhere
DH-20400: Core+ Merge should filter intraday source on partition
DH-19235: EnterpriseCorePlusManager cache management
DH-20356: Add py.typed marker file for generated py proto package
098Merge updates from 1.20240517.519
  • DH-20393: Update hostconfig to use DH_JAVA over ILLUMON_JAVA
  • DH-20372: Teach RPM installs to write correct value to JAVA_VERSION during install
  • DH-20128: Add script to install K8s etcd from distributable package
  • DH-20125: Revise js pivot table root expansion methods
  • DH-19719: Handle same name files in different locations in DHFileDigester
  • DH-20359: Trim whitespace from previousReleaseFile for upgrade tests
097DH-20333: Create new CSV import source screen
DH-20397: failure to creat auth client
DH-20356: linting-typechecking-coreplus-py-client
DH-20316: exclude circular BLF output directory from javadoc task
096DH-19534: Core Plus CSV import
DH-20337: WCD2 query shutdown/kept restarting due to a suspected authentication issue
DH-18062: Fix Iceberg javadocs
095Merge updates from 1.20240517.517
  • DH-20326: fix add-opens for DB.gradle
  • DH-19055: Make gradle plugins publish with the same version as iris
  • DH-19055: Fix java_env checks
  • DH-20327: Remove jdk8/11 Jenkinsfiles
  • DH-19055: Fix java_env to do a < check instead of a != check
  • DH-20328: Fix plugin_hash.sh to avoid mac-incompatible uniq -z
  • DH-19055: Publish to Google Artifact Registry, support all java versions with one artifact.
  • DH-19865: add --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED to test parameters
  • DH-20163: Fix broken link in version logs
  • DH-19954: Correct JIRA ticket number in version log
  • DH-19762: Release JavaFileManager after compilation
  • DH-19860: Disable web jupyter grid
  • DH-19055: Remove developer branch from Jenkinsfiles
  • DH-19055: Remove JavaVersion.current() from core+ test-conventions.gradle
  • DH-19055: Publish to Google Artifact Registry, support all java versions with one artifact.
  • DH-20205: Fix crosscluster xml issue
  • DH-20205: Add GPlus Cluster to automated client tests
  • DH-20168: Fix broken link in release notes
  • DH-20162: Fix broken links in release notes
  • DH-20291: remove baltocdn from ubuntu build images
  • DH-19055: Merge artifact registry from next/grizzly to rc/grizzly
094DH-18062: Added fix for failing iceberg merge tests
093DH-20196: Publish npm should fail on error
DH-18062: Added support for merging into iceberg tables
DH-19990: Update some dbaWorkflow PQs to use Core+ versions
092DH-19055: Merge artifact registry from next/gplus to rc/gplus
DH-20196: GH action to NPM Publish Core+ JS API types
091Merge updates from 1.20240517.515
  • DH-20312: ResolverReader uses wrong deadline when fetching with etcd watcher
  • DH-20293: Disable directory listing for SAML server
  • DH-20276: Multiple authentication servers race between session purge and token use
  • DH-20191: Avoid no-backoff etcd watcher retries that go into a tight retry loop
090DH-20311: Update Core+ C++ and R client dockerized build for lib.versions.toml
DH-20065: Schema Config
DH-19001: ui.resolve to reference widgets from other PQs that resolve on the web client
DH-20280: Migrate coreplus-loggers
DH-20221: Check object definition in query before attempting to fetch from server
DH-20289, DH-18443, DH-18653: Update plotly-express to v0.17.2
089Merge updates from 1.20240517.513
  • DH-20290: Integration test failures after changes to ConfigurationServicePropertyInputStreamLoader
  • DH-19425: correct use of hashed password in examples
088DH-20181: Fix deserialization of shadowed ImportStatePartitionIndex
DH-20252: correct text in dhctl intraday loggers command
087Merge updates from 1.20240517.512
  • DH-20185: Add 2 hour time to all installer tests
  • DH-20259: Log unused tokens when an auth client session is removed in the auth server
086DH-20286, DH-18443: Update deephaven.ui to 0.32.1
DH-19668: backport Python Version splitting between legacy and core engines
DH-20261: try to make LocalReadUsesCheckpoint less flaky
085DH-20246: Import coreplus prop files in k8s install script
DH-20204: remove sidecar BLF code generation
DH-18711: activate 9.10 installer in gplus, restore capability to build the installer project
DH-20237, DH-18601, DH-19416, DH-19988, DH-10205: Update deephaven.ui to v0.32.0
084Merge updates from 1.20240517.511
  • DH-20226: Update Core+ to 0.39.8
  • DH-16341: Pivot tables as real tables supporting downstream operations
  • DH-20166: IllegalStateException in TicketTransfomer did not produce a log message
  • DH-20195: Error during KeyedObjectHash rehashing
  • DH-19237: KeyedObjectHash#replace() can throw an NPE in normal operation
  • DH-18711: use Launcher 9.10 in grizzly
083DH-20177, DH-19601, DH-10205: Update web version to v1.5.1
082Merge updates from 1.20240517.510
  • DH-20218: create Java client session with provided RootAllocator
  • DH-19876: Nonexistent Table Should Result in a Better Error
  • DH-20179: JDBC driver does not work outside localhost
  • DH-20131: Mention RHEL 9 in README.md
081DH-19367: fix DB test
DH-20208: Get catalog table from wcd2 service factory
080DH-19487: Add validator for comparing Intraday and Historical row counts
DH-19367: Use data sizes from checkpoint records
DH-20180: make V2Logger Immutable
DH-20176: FileSearchViewportUpdater was wired up poorly
DH-20102: rename test binlogs package to binlog
DH-20136: Backport to gplus remaining Core+ V2 Loggers from sanluis
079Merge updates from 1.20240517.509
  • DH-20167: Update Grizzly Core+ to 0.39.7
  • DH-20129: Fix DeephavenS3ClientCredentialsProvider improperly caching AwsCredentials
  • DH-19970: makeWritableChunkForPool should either be protected/private or be renamed
  • DH-19958: Pooled chunk range should be configurable
  • DH-20058: Fix CountWhereOperator is freeing chunks it does not own
  • DH-20132: Fix broken case insensitive where in for Core+ historical tables
  • DH-20161: SimpleFilterGenerator incorrectly reuses WhereFilter
  • DH-19988: Update Deephaven UI JS to 0.31.1
  • DH-19988: Update Deephaven UI to 0.31.1
  • DH-19498: increase a timeout for data population in a test
  • DH-19873: Publish typedoc .tar.gz to Jenkins artifacts.
  • DH-20047: Allow mount of ssh secret in controller for git actions in K8s
  • DH-18106: Controller logs should explicitly specify which host is the leader after election
  • DH-18312, DH-20075: Improve test reliability, remove nfs on nightly test query nodes
  • DH-20131: Add support for ubi 9.6 to cpp docker build.
  • DH-20076: Fix typo and share implementation of small method
  • DH-20079: Make Docker Core+ C++ build indifferent to name of directory
  • DH-19768: Fix condition that could prevent worker startup on K8s platforms
  • DH-20078: Fix broken docker C++ build on fedora and RHEL
078DH-19793: Throw error if FileHandle key changes
DH-19536: use Immutables for ValidationTableDescription
077DH-20157: on-demand, asynchronous DataBufferPool cleanup
DH-17960: WebClientData Core+ Frontend
DH-19800: correctly source logroot property for web_api_service logs
DH-20095: Account for sub-pixel rendering in right chevron disable state
DH-13241: Operate As For Web Console Creation
DH-19632: Add shortcuts to cycle stacks and panels
DH-20105: Set connection headers only once
DH-19529: Core+ embed widget
DH-20137: Permit empty URL segments for CUS
076DH-20134: Ensure Core+ WorkspaceSnapshot uses non-refreshing data
DH-20106: Disable SNI Host Check on Kubernetes Installs
DH-19915: Add coreplus properties to Configuration Service (Backport)
DH-20124, DH-18281, DH-18840, DH-19839: Update plotly-express to v0.17.1
DH-16676: Port WebClientData to Core+ (Backend, gplus)
DH-20114: Restore missing annotation processor
DH-17858: replace javax.servlet-api 3.0.1 with 4.0.1 for saml support
DH-20100: Backport Envoy fixes with Jetty 12 to gplus
DH-19609: Schema XML Editor
DH-20117: restore spotless exclusion for /generated/ files
075Merge updates from 1.20240517.507
  • DH-20097: Include machine load sampling in dispatcher and auth server logs
  • DH-20071: UOE when attempting to merge to extended storage
  • DH-20067: Use only-binary=:all: flag to allow downgrading to pyarrow 20 instead of failing to build 21 on Ubuntu 20.04.
074DH-20111: Handle undefined dashboardid
DH-19536: Port Validation Job (PQ) to Core+
073Merge updates from 1.20240517.506
  • DH-20068: make jq install more defensive
  • DH-20061: fix podman nightly tests for rocky8
  • DH-20029: Update Helm chart appVersion without modifying working tree
  • DH-19883: fix flaky test
  • DH-19567: Use the materialized NameMapping
  • DH-19498: address flaky test, add logging
  • DH-19452: allow ImporterDatabase to use existing authentication
  • DH-20003: Test for tree operation in a PQ with ACLs.
  • DH-20057, DH-19792, DH-20035, DH-20003: Update Grizzly to Core 0.39.6
  • DH-19702: Acl Transformer is not Producing Actionable Server-side Error Message
  • DH-18836: Test failures with enterprise IrisGridPanel linker
072DH-20082: Fix shadowed README local instructions
DH-20028: syncWeb action was not filtering outputs before copying
071Merge updates from 1.20240517.505
  • DH-20034: Properly defer the resolution of JDK download URL until it is needed
  • DH-19983: Backport DH-18365: Introduce 'iceberg' extended storage type
  • DH-20017: fix ubuntu20 test failures
070DH-20038: Backport to gplus DH-17714 BLF2 loggers for controller, DH-17753 BLF2 listeners
DH-19892: Backport kafka tests from San Luis to GPlus
DH-20028: Fix copying web IDE files into the jsJar
DH-19529: Embedded dashboard route
069Merge updates from 1.20240517.504
  • DH-19974, DH-19428, DH-18836: Update deephaven.ui to version v0.31.0
  • DH-19959: Add curl, net-tools, less, and jq packages to deephaven_os image
  • DH-17554: Allow building images for AMD64/ARM64 explicitly in buildAllForK8s.sh
  • DH-16723: Add missing labels to certificates and secrets in Kubernetes
  • DH-18853: Update Helm chart appVersion
  • DH-19671, DH-18912, DH-19385: Open ports automatically; add diff to image; return on success instead of exit
  • DH-20004, DH-18976, DH-19614, DH-19693, DH-19963: Update web version v0.85.34
  • DH-19925: Verify tokens directly to auth server origin from java auth client
  • DH-19894, DH-19036: Update plotly-express to v0.16.1
068DH-20028: Incorrect caching for child web packages
DH-19903: upgrade jetty to 12.0.18
DH-14431: Add shortcuts to cycle dashboards
DH-20005, DH-19897, DH-18976, DH-19917, DH-19963, DH-19882, DH-19911: Update web version to v1.3.0
067Merge updates from 1.20240517.503
  • DH-18607: Added support to reinterpret bytes as booleans at region level
  • DH-19979: Add deephaven.PythonExec.fullPath config
  • DH-19955: Default QueryLogsHelper to Query_1
  • DH-18490: Ensure Gradle knows about inputs and outputs for tasks
066DH-18057: Add hasTable(...) method to Database interface
DH-18490: Ensure Gradle knows about inputs and outputs for tasks
DH-19951: Add isConnected property to EnterpriseClient
065Merge updates from 1.20240517.502
  • DH-19921: Use build module instead of setup.py.
  • DH-19399: Tailer binlog deletion improvements
  • DH-19711: Fix QueryLogs IllegalStateException
  • DH-19927: React Spectrum process undefined error
  • DH-19933: Update Sonatype Repository for Core Nightly Snapshot Builds.
  • DH-19478: qa-results dashboard lineup
  • DH-19744: Fix Query Monitor Disable Selection Menu Item
  • DH-17767: Load Balancing - fix slot assignment table rendering
  • DH-19392, DH-19864: Update web version to v0.85.33
  • DH-19886, DH-19292, DH-18354, DH-19000, DH-18349: Update deephaven.ui to v0.30.0
  • DH-19880: Pivots with Instants Fail with ClassCastException.
064Merge updates from 1.20240517.500
  • DH-19904, DH-18998, DH-19748, DH-19338, DH-19792, DH-19830, DH-19808: Update Grizzly to Core 0.39.5.
  • DH-19662: Java 11 testCompile fix.
  • DH-19884: Remove js-client dependencies
  • DH-19662: Add TimeSeriesFilterGenerator to ACL filter generators
  • DH-19862: TDCP cannot apply Core+ filter generators for access check.
  • DH-19739: Disable TestAbstractMultiSeries.
  • DH-19724: Fix permissions for queries with mixed status replicas.
  • DH-19434: File explorer not reconnecting after WebClientData restart
  • DH-19884: Remove js-client dependencies
063Merge updates from 1.20240517.498
  • DH-19767: Fix link in release notes file
  • DH-19728: Add inotifywait to rocky8 jenkins images
  • DH-17440: Migrate all Jenkins builds off gcr.io images
  • DH-19455: Update bard VM images for Ubuntu 20.04 EOL
  • DH-12106: Correct locking around ScriptRepository script lookups
  • DH-12106: Improve locking around controller git actions
  • DH-19692: PQ backed dashboards shared with multiple users not always visible
  • DH-19074: Disable :js-client:gwtCheck.
  • DH-19074: JS API support for pivot tables
  • DH-19871: Pivot filtered after sort would drop sorts.
  • DH-17737: Publish Core+ Client to Jfrog (minor fixes)
  • DH-17737: Publish Core+ Client to Jfrog
062DH-19829: Make docker image building from source work with toml change
DH-19834: Fix missing gradle bit from sphinxTar target.
DH-19834: Backport Py changes in SanLuis to GPlus
DH-19651: Backport DH-16190 Improved Binary Logger to G+
061Merge updates from 1.20240517.496
  • DH-19850: Sort Query Logs by Timestamp
  • DH-19813: py client util.py import issue
  • DH-19803: Pivot key table compatibility check, better duplicate columns check.
  • DH-19759: Copy Core Docker.groovy and use copy specs.
  • DH-19808, DH-19809, DH-18315: Expose the owned FlightSession in DndSession
060DH-19849, DH-19632, DH-18906, DH-14431, DH-19731, DH-19693, DH-19614: Update web version v1.1.0
059Merge updates from 1.20240517.495
  • DH-19803: Pivot Table key table validation.
  • DH-19726: Fix Podman cluster.cnf generation and non-envoy client configuration
  • DH-19766: Fix swing client connecting to non-Envoy Grizzly Podman deployment
  • DH-19022: Check Controller Connected on Web Login Failure
  • DH-18703: Update deephaven.ui to v0.29.4
  • DH-18906: Update web version to 0.85.32
  • DH-19705, DH-19696: Update deephaven.ui to v0.29.3
058DH-19727: Use property in Merge job that allows force-close of file-handles
057Merge updates from 1.20240517.493
  • DH-19686: Merge common logic from snapshot backed table location types
  • DH-19302: Allow for custom base images in containers for K8s
  • DH-19743, DH-19713, DH-19501, DH-19694: Update Grizzly to Core 0.39.4.
  • DH-18842: Advanced Pivots
  • DH-19681: Add property to MergeData that allows force-close of file-handles
  • DH-19504: Configurable worker pod DNS lookup with delay on Kubernetes
  • DH-19738: Fix Draft Query Reselects on Update
056DH-19673: Improve reliability of Kafka integration-tests
DH-19754: make client-base depend on deephaven-java-client-session
DH-19660: improve another error message in 'dhconfig dis add'
055Merge updates from 1.20240517.490
  • DH-19363: Separate non-worker annotations from worker templates in K8s
  • DH-18752: Set only a worker cpu request and not a limit in Kubernetes
  • DH-19700: Fix a few unit tests
  • DH-19718, DH-19612: Update Web UI to v0.85.30
  • DH-15595: Print volume delete warning and look for etcd backup pvc to delete in K8s uninstall script
  • DH-19708: Fix QueryLogs Exception when Query is not Running
  • DH-19265: avoid sudo usage and other installer improvements
  • DH-19556: NewTabScreen checkboxes hit target size increased
  • DH-19706: enable flight sql in grizzly
  • DH-19704: Query monitor showed incorrect WorkerKind for workers not started yet
  • DH-19633: Move Virtual Environment Creation into Separate Gradle Tasks
  • DH-19677: Fix Race in performance_overview_binds.py Integration Test
  • DH-19500: Fix Safe Mode Logout Crashes with 20k Queries
  • DH-19395: Internal Installer ensure FeedOS pulled in with force no-compile
  • DH-19649: Keep track of opened channels and close them upon SessionManager closing
054DH-19660: improve error message in 'dhconfig dis add'
053DH-19684: Update web packages to v1.0.0
DH-18562: Deephaven UI picker hover blends in with non hovered styling in dark mode
DH-18921: CountDistinct aggregation name overflows background in web UI
DH-19307: Theme overrides in iframes
DH-19350: Ruff WASM - Dev Tools console error
DH-19393: Fix select distinct from table sidebar if aggregation is applied
DH-19673: Improve reliability of Kafka integration-tests
052Merge updates from 1.20240517.489
  • DH-19360: remove unused property
  • DH-19360: convert LAS audit logging to use current features
  • DH-19505: Fix release notes
  • DH-19144: correction to in-process LAS for unit tests
  • DH-19457: JS API usage of GetAttributesQuery should be concurrent
  • DH-19365: Added releases notes
  • DH-19365: Add printf-style formatting for log-format suffix
  • DH-19144: correction to removeTable method
  • DH-19144: add audit logging to user table operations in legacy workers
  • DH-2972: Display Query Logs in Client UI
  • DH-19462: Remove the rest of the legacy jupyter code from build
051DH-19679: add safety checks around FileHandle write
DH-19497: Ensure atomic blocking-add for input-tables
050Merge updates from 1.20240517.487
  • DH-19557: Fix the props used for enabling CORS on BHS
  • DH-19545: expose auth external login
  • DH-19630: Update generated ResourceUtilizationFormat2Logger to match schema
  • DH-19654: Web SAML login error
  • DH-19577: Add missing 'f' for f-string
  • DH-19623, DH-19646: Fix a number of build and jenkins related reliability issues
049DH-19233: Port WorkspaceSnapshotQuery to Core+
DH-18548, DH-17600, DH-19466: Cherry-picking back remaining web changes for iframes, canceled interactive workers
DH-19337: Possibly include sort-ordering in core+ merge-job
048Merge updates from 1.20240517.485
  • DH-19627: Core+ build should useMavenLocal=true by default
  • DH-19592: fix ubuntu nightlies on TaDriver prop file
  • DH-19022: Better Login Error Message When Controller Disconnected
  • DH-19607: Correctly expose DEBIAN_FRONTEND so that "apt" actually sees it
  • DH-19571: Clarify meaning of empty RefreshCookieResponse.cookie field
  • DH-18925: Configurable annotations can be set on processes in Kubernetes
  • DH-19583, DH-19570, DH-19561, DH-19594: Update Grizzly to Core 0.39.3
  • DH-19557: Internal BHS installations should enable CORS
  • DH-19394: prevent installs from failing if hostname command fails
  • DH-19462: Completely remove all legacy jupyter code from build
  • DH-18791: Remove default com.sun.management.jmxremote.ssl=false
  • DH-15595: Add dh_uninstall.sh script to remove everything from a Kubernetes namespace
  • DH-19562: permit new grpcio versions for Core+ client
  • DH-19581: Fix tailer link
  • DH-19438: Wait for PQ state change before checking again to avoid log flooding
047DH-18483, DH-18492, DH-18470, DH-17922, DH-19603: Cherry-pick interactive consoles back to G+
046DH-18365: Introduce 'iceberg' extended storage type
DH-19580: fix missing import
DH-19469: Fix broken uploadDocs
DH-19469: Backport TOML changes to Grizzly+
045DH-18826: Cherry-pick back UI changes from 1.20250801.229beta
DH-19333: Update web version to v0.108.0
DH-13244: remove trailing whitespace from console log message
DH-18152: Fix PQ Explorer resetting load balancing settings on query update
DH-19271: Update web version to v0.107.2
DH-13095: Fix right click while dragging column freezes UI
DH-19205: Resolve import order issue from Grizzly forward merge
DH-19037: Server Config and UI Settings for Display of Null and Empty Strings
DH-19190: Update web version to v0.107.1
DH-17599: Fix table name validation
DH-19089: Fix context menu using stale selection
DH-19138: Determine Totals Column Name by Num Aggs Per Column
DH-19153: Split out a couple of login components to make them more re-usable
DH-19141: Update Web UI to to v0.107.0
DH-17599: Web ACL Editor Does not Permit Hyphen in Names
DH-18279: Fix unstable one click plot titles on Web
DH-18681: Fix web inability to delete IT rows with null or empty keys
DH-18856: Support for Median in "Aggregate Columns" in UI
DH-19015: PartitionAwareSourceTable UI Widget Swaps from Merge to Coalesce
DH-19080: Remove sessionWrapper from exported logs
DH-19119: Update deephaven.ui to v0.29.1
DH-18461: deephaven.ui dashboard error is shown after query restart
DH-19014: Update deephaven.ui to v0.29.0
DH-18090: Handle document delta updates sent from the server
DH-18652: Programmatically display aggregates rows with ui.table
DH-18185: ui.date_picker not calling on_change handler for granularity="day"
DH-18854: Implement list format options for ui.labeled_value
DH-18650: Implement dates and date formatting for ui.labeled_value
DH-18894: Update deephaven.ui to v0.28.1
DH-18398: Fix ui.dialog should throw error for invalid children
DH-18131: Update deephaven.ui to v0.28.0
DH-18135: ui.toast component
DH-18089: ui.menu and ui.menu_trigger component
DH-18320: ui.color_picker component
DH-18136: ui.accordion component
DH-18090: Document delta updates
DH-18536: Fix Callable not found error in dh.ui
DH-18582: Update deephaven.ui plugin to v0.26.1
DH-18132: ui.labeled_value component
DH-18133: ui.logic_button component
DH-18134: ui.disclosure component
DH-18137: ui.breadcrumbs component
DH-18138: ui.divider component
DH-18397: ui.footer component
DH-18591: Fix ui.markdown code blocks styling
DH-18461: Ensure ReactPanelErrorBoundary does not throw an error itself
DH-18415: Cannot expand rows after applying a rollup to tables wrapped with ui.table
DH-18359: ui.tag_group
DH-19128: Resolve type errors from Grizzly forward merge
DH-18292: Fix Worker Kind Summary for null Status Query
DH-18965: Update Web UI to to v0.106.3
DH-18734: Fix column width calculation logic in grid
DH-18964: Console history changes when holding shift or other modifier keys to navigate text
DH-18895: Update Web UI to to v0.106.2
DH-18645: Fix Don't use innerHTML to populate drag item
DH-18852: Fix avoid exceeding call stack when exporting logs with large number of queries
DH-18341: Method to export logs when login or connection fails
DH-18545: Update to web dependencies to 0.106.0 for Core+ Proxy Model Partition Fix
DH-18171: Resize all columns option in web UI
DH-18695: Update web version to v0.105.0
DH-18542: Ruff quick fix quirks
DH-18392: Columns not auto-sizing correctly in some cases
DH-18645: Security vulnerability: Stored XSS
DH-18358: No context menu item for "Paste" in an input table
DH-18624: Paste option shows when it shouldn't
DH-17517: New tab screen sharing text is not aligned
DH-17704: WebClientData is down prompt should make the current status of the PQ clear to the user
DH-17510: Long dashboard titles overflow the navbar
DH-17642: Fix incorrect DB Server value when changing query type
DH-18434: Fix markdown inline code appearing incorrectly
DH-18465: Update Restart Attempts label
DH-18427: Update to deephaven.ui v0.25.0
DH-18030: Allow double and floats to be rollupable
DH-18158: Fix San Luis build broken by a wrong QueryColumns import
DH-17497: Don't show replicas in PQ Explorer
DH-17988: Fix Web PQ Editor not updating after save
DH-17997: Fix DropdownFilter unusable after console disconnect
DH-18078: Fix widget plugins not always loading correctly
DH-18025: Fixed vite.config.mts input in gradle CI build
DH-17923: Fix for login when upgrading server to support Ruff
DH-17923: Enable Ruff Python linter and formatter
DH-14318: Fix QM Save Button Layout on Summary
DH-17778: Fix circular references in support logs, update Web UI to v0.98.0
DH-17459: Fix a typo in DefaultWorkspaceData typo
DH-14318: Show Save Button on Query Summary
DH-17986: Change Question Tooltips to Contextual Help
DH-16608: UI to Select Core Worker Thread Counts
DH-17459: Grid Density Setting
DH-17797: Fixed a double encoding bug
DH-17797: Split out @deephaven-enterprise/auth-nodejs package
DH-16081: Checkbox Filters for Panels Menu
DH-17964: Updated dh packages version to ^0.97.0 and jsapi-types to ^1.0.0-dev0.36.1
DH-17907: Option for "Thousands" in default number format dropdown
DH-17797: Fixed env variable bug in publish-alpha
DH-17797: build: Personal access token override for alpha publishing
DH-17796: build: Lerna npm publishing
DH-17796: Fixed working directory in alpha GH action
DH-17796: Set lerna.json version from GH action
DH-17797: Handle TemporaryAutoDelete
DH-17797: QueryScheduler.makeTemporaryScheduling function
DH-17851: DH-17861: Unable to copy TreeTable data if selection contains rows after the viewport
DH-17416: Fix Console Connection Issue from Grizzly Merge
DH-17865: Fix grizzly to sanluis merge
DH-17796: Removed @deephaven/console dependency and updated package.json
DH-17833: Update @deephaven/eslint-config to v0.95
DH-17797: build: Split out @deephave-enterprise/query-utils npm package
DH-17796: build: Github action for publishing alpha npm packages for web
DH-16263: Core UI plugins (Grid, Chart, ChartBuilder, Pandas)
DH-17797: refactor: Cleaned up query types a bit
DH-17425: Split out @deephaven-enterprise/jsapi-types sub package.
DH-17679: Fix New Unchanged Dashboards being Saved
DH-17425: refactor: Removed DraftQuery dependency from Iris types
DH-17699: Remove ts-nocheck from WorkspaceStorage
DH-17644: Remove TS No Check from Login
DH-17694: Upgrade to Vite 5
DH-17581: Remove TS No Check from AppMainContainer
DH-17567: Remove @ts-nocheck from DashboardContainer
DH-17425: Split out minimal @deephaven-enterprise/types npm package
044Merge updates from 1.20240517.484
  • DH-18996: Allow disabling DHE JS examples
  • DH-19554: Update Grizzly to Core 0.39.2
  • DH-17509: CUS must also support http HEAD method
  • DH-19453: better JAVA_HOME error message
  • DH-18145: Write timeout configuration with S3
  • DH-18260: Added support to read/write list types to Iceberg
  • DH-19386: Allow disabling of directory listing for /iriside/static/
  • DH-19448: Use S3 client for Iceberg from S3FileIO
  • DH-19465: Sort on rollup table breaks when keys are removed
  • DH-19523: Respect Future API by Respecting thenApply May Run on
  • DH-19525: HTTP Customizers on CUS Port 8443
  • DH-19527: Allow Overriding Metadata for BarrageMessageWriterImpl.SubView
  • DH-19540: NPE in uncoalesced SourceTable Ancestor Discovery
043DH-19440: Drop java11 builds in G+
DH-19543: Backport Upgrade to gradle 8
DH-19528: Fix Controller test failure
DH-19479: Do not generate DH-format grouping files for parquet merge
042Merge updates from 1.20240517.483
  • DH-19431: Use tailer cleanup functionality on QA servers
  • DH-18646: Disable CORP header to allow JS API cross origin load
  • DH-16032: Fix Query Monitor not Updating on Save
  • DH-16032: Reduce Query Monitor Viewport Size for Stability
  • DH-19081: retry opening ReferenceCountedStringCache to fix race
  • DH-19152: client side limit on size of atomic table append via LAS (Core+)
  • DH-19300: add project defaults for DhcInDhe
  • DH-19396: Add rc build ID parsing script
  • DH-19477: add in the pids limit to Podman
041DH-19418: build new gplus VM images to fix rhel8 tests
040Merge updates from 1.20240517.481
  • DH-19398: Increase worker resource overhead defaults in Kubernetes
  • DH-18959: Core+ Java client cannot access underlying BarrageSession
  • DH-19470: Add prepareCorePlusTask to publish Core+ dependencies from Main Iris Project
  • DH-19468: Refactor Protobuf Generation into Reusable Gradle Convention
039DH-19467: Backport DH-18917, avoid shutdown deadlock
038Merge updates from 1.20240517.480
  • DH-19398: Allow Kubernetes worker memory overhead default values to be helm-configurable
  • DH-18646: Drop duplicate headers in Envoy
  • DH-19183: Fix dependency for combined client jars
  • DH-19183: Add combined jar for Core+ client variants
  • DH-19439: don't run spotless checks on generated code
  • DH-19433: fix republishing for branch splitting
  • DH-19426: Update web version to v0.85.27
037DH-19449: fix csv import unit tests
036DH-19347: DIS aggressively removes unused table locations and associated resources
DH-19286: Fix j11 build
035Merge updates from 1.20240517.477
  • DH-19418: fix minikube, rhel8 tests and python versioning
  • DH-19419: Update Grizzly Core+ to 0.39.1
  • DH-19415: Update bcrypt-cost after update
  • DH-19311: Fix errors opening PEL PartitionedTable in groovy and python
  • DH-19357: Fix pydeephaven.experimental.plugin_client
  • DH-19384: Barrage and Client Refactors For Pivots
  • DH-19417: Incorrect Error Message for Invalid Login Credentials
  • DH-15042: Use Correct Permissions for Query Monitor Context Menu
  • DH-19359: Update vm-tools readme
  • DH-17509: Enforce stricter web security rules
  • DH-19381: Use internal google artifact registry for docker images
  • DH-14382: Make failed worker start error more actionable.
  • DH-19405: Ignore new UpdatePerformanceAncestors table for QA merges
  • DH-18025: fix web cache, stop accruing deleted files in cache
  • DH-18083: Reduce memory overhead for hive .location_table reads
  • DH-16032: Web UI has issues displaying script and query details when very busy
  • DH-18832: Can't change axis ranges in web plotting
  • DH-18124: Fix Widget Panel Overlay z-index
  • DH-19383: Update plotly-express to v0.16.0
  • DH-18685: Express plots have too much top padding if title not specified
  • DH-19371: fix versioning script to mkdir before tee
  • DH-19371: Fix release version numbering in jenkins
  • DH-19297: Add ability to directly create Core AclFilterGenerator for Database ACLs
034DH-19286: Backport Core+ Merge to Grizzly Plus
DH-19348: force .header to disk after writing
033Merge updates from 1.20240517.473
  • DH-19060: Display Replica Heap Sum with same Decimals as Heap Size
  • DH-19336: Always include InternalPartition in db.historicalPartitionedTable & db.livePartitionedTable
  • DH-19371: release branch version numbering fixes
  • DH-18581: Avoid ephemeral ports; use defined range
  • DH-19321: Correct Defaults for Copied Draft Queries
  • DH-19298: Update deephaven-ui to 0.29.2
  • DH-18869: Provide a test script for easier validation of C++/R clients.
  • DH-19223: Log UpdatePerformanceTracker ancestors
  • DH-19341: Fix equals versus equals equals in DhcInDhe/Main/build.gradle
  • DH-19362: Update Grizzly Core+ to 0.39.0
  • DH-18551: add updateView() capabilities to rollup tables
  • DH-18926: pydeephaven ticking client: Can’t convert pyarrow type list<:string> to Deephaven type
  • DH-19167: Constituent filtering for rollups
  • DH-19274: Flush HTVS Barrage Metrics At Least Once
  • DH-19289: NPE Generating Compiler Diagnostic Message
  • DH-18581: Avoid ephemeral ports for podman; use defined range
  • DH-19039: Improved Auth Login Error
032DH-18949: Revert makePartitionedTable should use SPT‐provided partitioning columns
DH-19369: Update shadow version for gplus
031Merge updates from 1.20240517.471
  • DH-19354: fix integration test failures
  • DH-19349: Fix date command for mac
030Merge updates from 1.20240517.470
  • DH-18821: Split release branches in git
  • DH-18947: Auto-numbering of rc branches
  • DH-18821: Update github workflows to accomodate rc/grizzly branch
029Merge updates from 1.20240517.468
  • DH-19332: Update web version to v0.83.23
  • DH-13244: remove trailing whitespace from console log messages
  • DH-19304: Release notes fixes
  • DH-19216: CART clearOnDisconnect is not reliably honored.
  • DH-19219: Remove Jupyter notebook integrations
  • DH-19208: Add __DbConfig.Tables as a default irisInternal schema to import
  • DH-19129, DH-17574: correct release note, add bounds checking to properties
  • DH-19129: server side limit on size of atomic table append via LAS
  • DH-17574: client side limit on size of atomic table append via LAS
  • DH-14383: make result of IntradayControlImpl commands easier to use
  • DH-19179: Fix NPE in Kafka ingestion with transformation
  • DH-19135: Disable nightly podman tests (for vplus only)
  • DH-18984: Connected Legacy CodeStudios cause an unexpectedly large support log file
028Merge updates from 1.20240517.466
  • DH-19249: Add a check for bcrypt-cost etcd setting to integration test setup
  • DH-19213: Remove Java17 annotation from ExportedObjectInfo
  • DH-19213: Make ExportedObjectInfo use proto serialization to allow custom class tolerance.
  • DH-18559: Register podman ingesters with externally-resolvable name
  • DH-19295: envoy on podman version support to match supported docs
027Merge updates from 1.20240517.461
  • DH-19280: Add ability to use Core SNAPSHOT jars from sonatype in Enterprise Build
  • DH-19250: Python wrappers for the results of performance_overview()
  • DH-19255: Separate Core+'s Core JAR version from Core Python version
  • DH-19291: ACL etcd watcher should be setup with WithRequireLeader etcd option
  • DH-18330: Revert AutoMerge and AutoQuery for system queries
  • DH-18330: Use AutoMerge and AutoQuery for system queries
  • DH-19060: Fix floating point display issue in Heap Size
  • DH-19275: Fix release-note-generation script and wrong link in release note
026Merge updates from 1.20240517.453
  • DH-19221: Adding internally-facing README for podman
  • DH-19207: fix: client.getDbServersForType incorrectly returns empty arrays for certain query types
  • DH-19142: Cleanup coreplus venvs on clusters
  • DH-19195: Fix bad image save in podman
025DH-19020: remove inter-grizzly compatibility bridge
024Merge updates from 1.20240517.449
  • DH-19214: Update Web UI to v0.85.21
  • DH-19089: Fix Right clicking does not trigger the full secondary table menu when 1st clicked
  • DH-19097: Fix Row deletion in Input Tables sometimes removes the wrong row
  • DH-19138: Fix Adding aggregations Sum and Count crashes the table
  • DH-19208: Add __DbConfig.Tables as a default irisInternal schema to import
  • DH-19151: Update Web UI version to 0.85.20
  • DH-17599: Fix Namespace and Table name validation in Web ACL Editor
  • DH-19079: Fix large log files when active legacy code studio
023DH-18977: Auth server should not hold client calls when forwarding RPCs
022DH-18949: makePartitionedTable should use SPT‐provided partitioning columns
021Merge updates from 1.20240517.446
  • DH-19162: Stop using getQuerySerialsForDependent
  • DH-19088: Fix stale pid in podman
  • DH-19133: Fix Multi-user Podman upgrade fails with Permission denied
  • DH-18599: CorePlusBenchmark Project First Check-in
  • DH-17387: Ensure partitioned user table changes are reflected in future historical table calls
020DH-16905: Add etcd monitoring to Prometheus/Grafana
019DH-18662: Update Shadow to for TOML for dependabot
018Merge updates from 1.20240517.441
  • DH-18956: Fix eggplant manager url for multiple repos
  • DH-19149: dhconfig must have GIT_SSH set to work properly with check-repo
  • DH-19139: Release note documentation fixes
  • DH-18651: Use cache for pypi in podman
017Merge updates from 1.20240517.437
  • DH-19122: Release note documentation fixes
  • DH-18792: Config server deadlock (fishlib push)
  • DH-18792: Config server deadlock
  • DH-18723: Input Tables cannot paste more rows than number of visible rows
  • DH-18622: Fix controller issue for started-then-deleted PQs
  • DH-17824: Fix docs for restart
  • DH-18954: updateBy ArrayIndexOutOfBoundsException
  • DH-18967: Do not use local -n in locally-run installer scripts
  • DH-17419: Show dashboard modifications with deephaven.ui changes
  • DH-17418: Fix dashboard major/minor notifications
  • DH-18442: Fix Export Logs Fails with Large Number of Queries
  • DH-18830: Update internal VM images to version 7
  • DH-18645: Fix XSS issue in file list drag and drop
  • Update UI packages to v0.78.9
  • DH-18798: Fix token cache growing indefinitely
  • DH-18101: Adding keepalive seconds for win boxes
  • DH-18125: close the LAS logger in DatabaseImpl.appendLiveTable
  • DH-18708: Change gRPC logging exclusion list separator from semicolon to comma
  • DH-18701: Update web packages to v0.78.8
  • DH-18645: Fix panel titles using html instead of just text
  • DH-18346: Fix partial holiday range breaks
  • DH-16016: Fix xBusinessTime throwing errors
  • DH-18176: Suppress scary "non-fatal" warnings; only upload missing files
  • DH-15878: Automatically upload etcd*tar.gz files to remote machines
  • DH-18422: Update generation of iris-endpoints.prop for Podman so Web ACL Editor will work correctly
  • DH-18345: Update USNYSE calendar with national day of mourning for Jimmy Carter
  • DH-18166: Avoid lock inversion in OneClickUtils (swing)
  • DH-17927: Backport DH-16434, automatic node being at the top of the list, to jackson
  • DH-18028: Fix ConnectorWrapper race conditions
  • DH-18468: Wire up kubernetes flag to jenkins for eggplant
  • DH-18519: Allow adding GrpcLogging exclusions via properties and env vars
  • DH-18510: Ensure the exclusions list class names for gRPC logging match inner classes as well
  • DH-18153: Fix bad substitution in installer script error handling function
  • DH-18426: Expose DHLog in global context to allow changing the log level via the browser console
  • DH-16191: Core+ Python Auth Context Methods
  • DH-16872: Fix Web not displaying PQ error restart count >10 correctly
  • DH-18329: Allow user calendars to override system calendars in Core+
  • DH-18187: Fix console history not sticking to bottom
  • DH-18071: Add test to support DeephavenUI dashboards from a code studio.
  • DH-18175: Modified Podman start_command.sh to support Podman on MacOS and to fix --nohup always being applied
  • DH-17696: Added A to start_command.sh dig call, to ensure IPv4 address is retrieved.
  • DH-17932: Change array handling and add label searches to dh_helm uninstall functions
  • DH-16189: Fix deephaven.ui panels when permissions change
  • DH-17936: Warn when DH_JAVA is set to an invalid path
  • DH-17798: Pin deephaven.ui version to 0.15.4
  • DH-16150: deephaven.ui in Enterprise
  • DH-17292: Fix tables opened with deephaven.ui throw error when disconnected
  • DH-17880: Change Podman start_command.sh default behavior to preserve existing properties
  • DH-17977: Add volume options to Podman start_command.sh for illumon.d/java_lib and illumon.d/calendars volumes
  • DH-17999: Fix coreplus_test_query.py nightly test
016Merge updates from 1.20240517.436
  • DH-18956: Fix eggplant nightly test compilation
  • DH-19110: Fix R client methods live_table and historical_table
  • DH-18368: Closing a ui.dashboard in a code studio shouldn't prompt
  • DH-18694: The gear icon on login screen appears to be broken in web with saml auth plugin
015Merge updates from 1.20240517.432
  • DH-18279: Fix unstable one click plot titles in web
  • DH-18893: Update deephaven-hash to 0.3.0
  • DH-18778: Fix wrong Assert import used.
  • DH-18727: Fix unbound variable in podman for envoy admin
  • DH-18729: Podman change image creation to be single-user
  • DH-18930: handle SocketException, Connection reset better in LAS client
  • DH-18988: Python Core+ auth client should log client UUID to facilitate troubleshooting
  • DH-16352: Ability to disable password authentication in web UI
014Merge updates from 1.20240517.425
  • DH-19061: Update web packages to v0.85.17
  • DH-18856: Support Median Aggregation in the UI
  • DH-18681: Fix Inability to delete Input Table row with null key
  • DH-18778: Javadoc fix.
  • DH-19041: Updates to the version log generation script
  • DH-19052: Core+ test stage should not cause Jenkins pipeline failures.
  • DH-18778: Cannot apply ACLs to Rollups or Trees
  • DH-18756: Make sure that internal partitions do not have invalid characters.
  • DH-19028: Update Grizzly to Core 0.38.0
  • DH-18351: Add CountWhere feature to UpdateBy Rolling and Cumulative
  • DH-18491: Implement optimized FirstBy / LastBy + NaturalJoin feature
  • DH-18414: SourcePartitionedTable: Allow deferred existence checking and add partitioning columns
  • DH-18856: Add Median to jsapi Aggregation Options
013Merge updates from 1.20240517.418
  • DH-18989: Misconfiguring git repositories results in opaque controller crash loop and inability to login
  • DH-18754: Web API Service should create workers off-thread, avoid blocking other calls
  • DH-18815: Enable TCP KeepAlive for clients downstream of Envoy
  • DH-18986: Fix bugs in Py Client's controller module
  • DH-18941: NPE in local swing console log when creating a new PQ
  • DH-18001: correct consumerBufferSize calculation
012Merge updates from 1.20240517.412
  • DH-19007: Adjust formatting in Grizzly Release Notes to be Salmon-compatible
  • DH-19009: Fix EggplantTask gradle wiring
  • DH-19006: Disable DynamicTableWriter Integration test for now.
  • DH-18682: Make InputTableUpdater a LivenessReferent, able to materialize input table views
  • DH-18001: Tailer reduces buffer size to match DIS
  • DH-18751: report on tailer/DIS buffer configuration errors better
  • DH-14692: Stop exporting client from support logs
  • DH-18744: Add support for VPlus to Grizzly upgrade of Podman deployments
  • DH-18838: port fishlib Client fix to Deephaven
  • DH-18981: Update CODEOWNERS for Enterprise.
  • DH-18669: Revert scoping changes from DH-18877
011Merge updates from 1.20240517.402
  • DH-18946: Make dh_preinstall_check require/install rsync if needed
  • DH-16487: Validate installer host uses rsync>=3.1
  • DH-18669: Improve handling of internal partition column
  • DH-18877: UncoalescedBlinkTable must manage its source, Use LivenessScope.computeEnclosed in DatabaseImpl
010DH-18560: Merge common logic from snapshot backed table location types
009Merge updates from 1.20240517.399
  • DH-18439: Introduce dh_preinstall_check.sh for early installation validation
  • DH-18800: Reliability changes for automation and integration tests.
008DH-18940: Fix previousReleaseBranch for MajorVersionUpgradeTests
007Merge updates from 1.20240517.397
  • DH-18867: Include the proto-wrappers dir in the C++ client source tarball
  • DH-18754: Add missing JS client details for replica instances
006Merge updates from 1.20240517.395
  • DH-18897: Check condition for PqStorageEtcdV2Impl delete is wrong
  • DH-18794: Allow kubernetes flags to align input params to eggplant manager
  • DH-18747: Per-worker pod cleanup delay
  • DH-18794: Investigate bhs not contactable by eggplant
  • DH-18709: Performance under load of Controller Query Tracker operations
  • DH-18691: Automatically migrate sql->etcd acls
  • DH-18620: Provide means to change timeout to get properties from etcd and increase default
  • DH-18660: Scripts for load testing of Controller subscriptions and PQ restart, stop and modify requests
  • DH-18741: Improved Error Message when Shortcuts Fail to Load
005DH-18167: Fix LivenessStateException with plotly-express
004Merge updates from 1.20240517.386
  • DH-18732: Fix XSS issue in file list drag and drop
  • DH-18596: Fix MultiScriptPathLoader#getAvailableScriptPaths caching
  • DH-18569: Allow configuration of worker pod toleration on authenticated username
  • DH-18747: Per-worker pod cleanup delay
  • Update web UI packages to v0.85.15
  • DH-18798: Fix token cache growing unbounded
  • DH-18820: Fix jenkins publish docs script
003DH-3262: introduce 'dhconfig <configuration type> edit' commands
002Merge updates from 1.20240517.380
  • DH-18758: Fix C++ Client Docker build
001Initial release creation from 1.20240517.379

Added support for Java 21 and 25

Deephaven deployments now support Java versions 21 and 25

TimeSeriesFilterGenerator

Core+ workers can now apply a TimeSeriesFilter as part of table ACLs. The io.deephaven.enterprise.acl.generator.TimeSeriesFilterGenerator is constructed with three arguments:

  1. The period as a String (e.g. PT15m).
  2. The column name to filter.
  3. Whether to exclude recent values or past values. For example, with a period of PT15m and excludeRecent=true, only data that is 15 minutes or more old is displayed.

For convenience, the AclFilterGenerator.outOfWindow and AclFilterGenerator.inWindow static methods are provided to include only rows that are less recent than the specified period or more recent the specified period, respectively.

If a TimeSeriesFilterGenerator is applied for a user, then they cannot access the table from Legacy workers.

Add Core+ CSV import job

CSV import persistent queries can now be executed in a Core+ worker. Previously, all CSV import job workers were Legacy.

Since legacy workers will not be supported after Grizzly Plus, users are encouraged to migrate their CSV import jobs to Core+ as soon as possible.

Input Table specification updates

io.deephaven.enterprise.inputtables.ColumnSpec

dataType

ColumnSpec has been updated to properly enforce the expected type restrictions. Previously, callers who used ColumnSpec.Builder.dataType could construct a ColumnSpec with any dataType. Now, ColumnSpec explicitly checks that dataType is one of:

  • byte
  • char
  • short
  • int
  • long
  • float
  • double
  • Boolean
  • String
  • Instant

The helper method ColumnSpec.Builder.setDataType, which applies a data type conversion (converts the incoming dataType from boolean to Boolean, and from non-Boolean boxed primitives to primitives) has been deprecated; callers are encouraged to migrate to the more explicit method ColumnSpec.Builder.dataType.

enumValues

The requirements for enumValues remains the same: if dataType is a primitive, the enum values must be an instance of the boxed version of that primitive (for example, if dataType is int, the enumValues instances must be Integers); if dataType is not a primitive, the enum values must be an instance of the same dataType.

The helper method ColumnSpec.Builder.addToEnumValues, which applies an automatic conversion of incoming values from BigDecimal to Double, has been deprecated; callers are encouraged to migrate to the more explicit method ColumnSpec.Builder.addEnumValues or ColumnSpec.Builder.addAllEnumValues.

Core+ Input Table Validation

Core+ Input Tables now validate additions and deletions. In particular, columns created with an enum reject updates containing values that do not belong to the permitted set of values.

Input Table updates and deletions are now validated both for gRPC initiated updates and programatically initiated updates within a worker. Previously, updates initiated within a worker were not validated. The most noticeable change is that in-worker deletion operations now reject invalid key columns. The delete method requires a table argument that contains only key columns; a table with additional columns results in an ArgumentException.

ObjectCodec deprecations

The com.illumon.util.codec.ObjectCodec interface is being deprecated in favor of io.deephaven.util.codec.ObjectCodec. Any custom codecs that have been written against com.illumon.util.codec.ObjectCodec should be updated to implement io.deephaven.util.codec.ObjectCodec instead. The interfaces are otherwise identical.

Built-in codec updates

The following codecs have been re-implemented against io.deephaven.util.codec.ObjectCodec, and should otherwise be identical (see the Notes column for exceptions). While these deprecated codec classes still exist, customers are encouraged to use the replacement codecs going forward.

ReplacementDeprecatedNotes
io.deephaven.util.codec.BigDecimalCodeccom.illumon.util.codec.BigDecimalCodec
io.deephaven.util.codec.BigDecimalCodeccom.illumon.util.codec.BigDecimalCodec
io.deephaven.util.codec.ExternalizableCodeccom.illumon.util.codec.ExternalizableCodec
io.deephaven.enterprise.codec.IntArrayCodeccom.illumon.util.codec.IntArrayCodec
io.deephaven.util.codec.LocalDateCodeccom.illumon.util.codec.LocalDateCodec
io.deephaven.util.codec.LocalTimeCodeccom.illumon.util.codec.LocalTimeCodec
io.deephaven.enterprise.codec.LongArrayCodeccom.illumon.util.codec.LongArrayCodec
io.deephaven.util.codec.SerializableCodeccom.illumon.util.codec.SerializableCodec
io.deephaven.enterprise.codec.StringArrayCodeccom.illumon.util.codec.StringArrayCodec
io.deephaven.util.codec.StringBooleanMapCodeccom.illumon.util.codec.StringBooleanMapCodecThe replacement codec can read data written by the deprecated codec, but the deprecated codec can't read data written by the replacement codec.
io.deephaven.util.codec.StringDoubleMapCodeccom.illumon.util.codec.StringDoubleMapCodec
io.deephaven.util.codec.StringFloatMapCodeccom.illumon.util.codec.StringFloatMapCodec
io.deephaven.util.codec.StringIntMapCodeccom.illumon.util.codec.StringIntMapCodec
io.deephaven.util.codec.StringLongMapCodeccom.illumon.util.codec.StringLongMapCodec
io.deephaven.util.codec.StringStringMapCodeccom.illumon.util.codec.StringStringMapCodec
io.deephaven.util.codec.UTF8StringAsByteArrayCodeccom.illumon.util.codec.UTF8StringAsByteArrayCodec
io.deephaven.util.codec.ZonedDateTimeCodeccom.illumon.util.codec.ZonedDateTimeCodec

Future release

While the deprecated classes will be removed in a future release, any data written using the deprecated codecs will continue to be readable indefinitely, and new data written from Schemas that reference the deprecated codecs will inherit the replacement codecs automatically.

Schema interface in Core+

Core+ workers are now able to access Schema and SchemaService implementations without the need to directly access shadowed classes.

Class packages changed

A number of classes have changed packages in order to allow non-shadow package access from Core+.

  1. Sub-interfaces and helper-classes of the Legacy Schema are moved to io.deephaven.enterprise.schema.internal, which are included in the shadow jar, but not in a shadowed package. This allows the Core+ Schema interface to use the interfaces/classes "as-is", without using shadow packages. The .internal package is likely to change and is intended for Deephaven internal use only.
  2. XML implementations of some interfaces are moved to io.deephaven.enterprise.schema.xml, which are included in the shadow jar, but not in a shadowed package. This allows the Core+ Schema implementation(s) to use the objects directly without using shadow packages. The .xml package is likely to change and is intended for Deephaven internal use only.
  3. Schema related exceptions have been moved to io.deephaven.enterprise.schema.exception, which matches the target package in Sanluis.
  4. NamespaceSet has been copied to io.deephaven.enterprise.database, which matches the target package in Sanluis.
  5. SchemaConstants has been safely moved from com.illumon.iris.db.tables.dataimport to io.deephaven.enterprise.schema. A simple wrapper-class has been left at com.illumon.iris.db.tables.dataimport to prevent Legacy workers from breaking. Core+ workers should prefer io.deephaven.enterprise.schema.SchemaConstants over the shadowed version, which will be removed in Sanluis.
  6. A new StorageType enum is added to Core+, which wraps the DefaultTableDefinition.STORAGETYPE_* constants. This enum should be preferred over using the shadowed DefaultTableDefinition.STORAGETYPE_* constants because the package for the constants will change (no longer be shadowed) in Sanluis.

Changes to data routing filtering

This corrects several errors and ambiguities in how filters were applied to sources in Table Data Services (TDS) and failover groups.

Sources with single elements not honoring filter

If the sources of a TDS had only one value, the filter (if any) on that source was not honored. When multiple sources are listed (as in source_composite), the filters on the sources were checked. This creates inconsistent processing, although in most cases the result was the same because the source (incorrectly) queried for table locations would just return an empty set.

Sources without a filter

Sources that are not Data Import Servers or failover groups are now assigned the null filter, instead of the if not claimed filter.

When a source is a Data Import Server or failover group, the filter for that DIS or group is used. Otherwise, the source is some other delegate TDS, and it was assigned an if not claimed filter. This was an incorrect assumption, because the delegate TDS might actually handle a claimed table.

Failover groups

Ad hoc failover groups are now assigned the correct filter for the group members (which must all be identical), instead of the if not claimed filter.

A failover group defines multiple DISes that process the same data and can serve as backups to each other. You can create a failover group using the failoverGroup keyword in each member DIS configuration. This creates a TDS for the group that you can use in the data routing configuration.

You can also define a failover group inline in the sources of a TDS by listing the member names in a list. Deephaven recommends explicit configuration using the failoverGroup keyword to define the group and create a TDS with the given name.

See The dataImportServers keyword for some important caveats when using ad hoc failover groups.

Simplify of default tailer config file, tailerConfigDbInternal.xml

The Tailer process is configured with an XML file described in Tailer XML configuration files. The default tailer configuration file is /usr/illumon/latest/etc/tailerConfigDbInternal.xml. In current installations, binary log files are named in a standard way, and the StandardBinaryLogFileManager class is sufficient for managing them.

This change simplifies the default tailer configuration file and removes a complex configuration section that is largely obsolete.

The new file contains:

The original file contained:

Custom gRPC-web transport for Deephaven JS API

The createClient function in the clientUtils module in auth-nodejs now supports a ConnectOptions object that allows customization of the gRPC-web transport used by the Deephaven JS API client. See TypeScript definitions for details on how to create a custom transport.

Additionally, the clientUtils module in auth-nodejs no longer exports a getWsUrl function. This function should no longer be necessary when using dh.Client, and URL will always be rewritten to use the correct protocol and path as needed.

One Artifact Supports All Java Versions

In previous versions of Deephaven, there was a different set of product tar files for each supported JDK.

Starting in versions 1.20231218.550 and 1.20240517.527, there is only one set of artifacts to support all JDK versions.

The mechanisms for selecting your JDK, such as DH_JAVA_VERSION in cluster.cnf or --jdk* flags passed to containerized deployments, remain unchanged.

The Enterprise installer and Core+ tar files no longer have a -jdkN classifier. For example, deephaven-enterprise-1.20231212.123-jdk17.tar.gz is now deephaven-enterprise-1.20231212.123.tar.gz.

The Enterprise rpm no longer has the jdk major version as deephaven-enterprise minor version; the minor version is always 1. For example, deephaven-enterprise-1.20231212.123-17-1.rpm is now deephaven-enterprise-1.20231212.123-1-1.rpm.

The Core+ tar file has removed its jdkN classifier.
For example, deephaven-coreplus-0.32.0-1.20231212.123-jdk17.tgz is now deephaven-coreplus-0.32.0-1.20231212.123.tgz.

Note that ONLY the filenames and RPM package name have changed. All paths on the filesystem still reflect previous locations.

Rename core+ artifacts to use io.deephaven.coreplus maven groupId

Previously, Core+ artifacts were published as io.deephaven.dnd in Deephaven maven repositories.

These artifacts now use io.deephaven.coreplus for their groupId.

Fix Core+ mis-decoding of certain String and StringSet values

Previously, Core+ reading of Deephaven-format Table data would assume all String and StringSet columns were encoded using ISO-8859-1; this is an issue for encoded characters that aren't the same as in ISO-8859-1. All encodings should now decode correctly.

The issue would manifest differently depending on the character set / encoding:

ASCII

Corresponds to Schema Column with attribute encoding="US_ASCII".

No issues. (ASCII is a subset of ISO-8859-1.)

ISO-8559-1 (also known as Latin-1)

Corresponds to Schema Column with attribute encoding="ISO_8559_1", or a Schema column without the encoding attribute.

No issues.

UTF-8

Corresponds to Schema Column with attribute encoding="UTF_8".

All UTF-8 single-byte characters (ASCII) will decode correctly. All other characters would have decoded incorrectly.

UTF-16

Corresponds to Schema Column with attribute encoding="UTF_16", encoding="UTF_16LE", or encoding="UTF_16BE".

All UTF-16 characters would have decoded incorrectly.

Column Expression Validation

Column expression validation now uses the parsed validator by default, which provides more precise control over which methods users may invoke.

See Formula validation configuration for more details.

HTTP/2 support in Deephaven

The Grizzly Plus version of Deephaven now supports HTTP/2 for all web connections. This requires TLS, and Envoy requires a configuration change to allow WebSocket connections to continue to work.

HTTP+TLS required for all Deephaven web connections

All Deephaven servers now require TLS for web connections. This was already enabled by default in previous versions, except for the DIS.

Change to Envoy configuration to allow HTTP/2 CONNECT method

Deephaven now uses HTTP2 instead of HTTP/1.1 for its web connections. In order to support WebSocket connections over HTTP/2, the Envoy configuration needs to support the CONNECT method.

This change can be applied to the default Envoy configuration of earlier Deephaven versions:

Exception thrown if FileHandle key changes

A safety check has been added for whenever a FileHandle is refreshed to ensure it represents the same physical file as it did previously. When this is not the case, it can lead to very hard to debug downstream issues.

This check is enabled by default. In order to revert to previous behavior, the following flag may be added to a query's configuration:

Core+ Validation Queries

Validation Jobs may now be executed in a Core+ worker. Previously, all Validation Job workers were Legacy. Schema-based Validation queries should migrate seamlessly.

There are a number of steps required to convert custom a Legacy Validation class to a Core+ Validation class.

  • A number of supporting classes have changed package-path from com.illumon.iris.validation to io.deephaven.enterprise.validation, including:
    • DataQualityTestCase
    • ValidationTableDescription
    • ImportDetailsUtils
    • ...
  • The following Deephaven classes have changed from Legacy to Core+, which may require a number of changes each. See Converting Legacy scripts to Core+ Scripts Cheat Sheet for a more in-depth analysis.
    • Database
      • db.i(...) -> db.liveTable(...)
      • db.t(...) -> db.historicalTable(...)
    • Table
      • Numerous changes
    • TableDefinition
      • Please note that the Core+ TableDefinition does not include grouping information. Grouping information may still be accessed from the Schema or from the shadowed TableDefinition provided by theSchema.
  • com.fishlib.io.logger.DelegatingLoggerImpl may be replaced with io.deephaven.internal.log.LoggerFactory.getLogger()
  • The ValidationTableDescription has been modified to remove FullTableLocationKey implementation details. The getLocation() method has been replaced with a self-reference to the ValidationTableDescription instance in order to simplify the porting process. The following new methods have been added to the ValidationTableDescription interface:
    • String getTableName() - the Table Name for the associated Table
    • String getNamespace() - the Namespace for the associated Table
    • String getColumnPartition() - the Partition Value (for the Partition Column) for the associated Table
    • String getInternalPartition() - the Internal Partition, if applicable, for the associated Table

Note that RunDataQualityTests#main is not ported. In effect, this disables the RunDataQualityTests command-line utility for Core+ validations. All Core+ validations should be executed in a Data Validation PQ .

On-Demand Asynchronous Cleanup of the DataBufferPool

The AutoReclaimingObjectPool (DataBufferPool) now triggers asynchronous cleanup as soon as the pool occupancy exceeds the configured threshold, rather than waiting for the next scheduled interval. Consequently, the synchronous cleanup path—logged as "Failed to take() an item for thread=<thread name>, initiating synchronous cleanup"—is invoked far less often.

Because of this, the DataBufferConfiguration.cleanupIntervalMillis setting has become largely irrelevant and may be removed in a future release.

Improved support for Iceberg tables in Core+

Core+ has better support for reading Iceberg tables as historical tables. This includes correctly handling Iceberg Schema evolution, nested Iceberg Structs, and proper field id mapping into Parquet files.

Configuration

Iceberg-specific configuration options is out-of-scope for release notes, as they are highly dependent on the specifics of the Iceberg Catalog and data storage setup. In general, Deephaven has good support for the "rest" and "glue" catalog types, but should support other Catalog implementations as well. The Iceberg-specific configurations options that work with Deephaven will be similar to the configuration options needed for Spark (given that Spark is also a JVM-based application). See the Iceberg Documentation, or the documentation for your specific Catalog, for configuration property details.

Verification:

Deployment

Verification:

Tailer cleanup of old binary log files

A new property, log.tailer.fileCleanup.startupDeletionCutoffTime, allows the tailer to find and delete old binary log files when it starts. Further information can be found in the tailer configuration page.

Improved Binary Logger and Listener Generation

Previously, to generate Java binary loggers from Deephaven schema, the IntradayLoggerFactory was the preferred tool. In this release, we have introduced a new binary logger factory that generates much improved logging classes that can operate more independently of the Deephaven system and with far fewer Java-level dependencies. The existing IntradayLoggerFactory continues to generate loggers and listeners for schema elements that are labelled Logger or LoggerListener. The new factory uses LogFormat elements.

See binary Log format configuration for more details.

Deprecated Features and Java Changes

The com.illumon.iris.binarystore.RollingFileManagerBase.ExistingFilePolicy values for DELETE and APPEND, which were deprecated in 2018, have been removed from this release.

The com.illumon.iris.binarystore.RollingFileManagerBase provides the same functionality, but custom extensions must now provide template parameters for the expiration type.

New API to format the log-format suffix of internal partitions

A new builder method IntradayLoggerBuilder#setSuffixInternalPartitionWithLogFormat(String) has been added that lets caller provide a single-argument String.format pattern. The formatted log-format value is appended to the internal-partition name. This overloads the existing IntradayLoggerBuilder#setSuffixInternalPartitionWithLogFormat(boolean) which, when true, appends the suffix using the default %d pattern.

Example:

For internal partition "ABC" and log-format version 4:

  • For setSuffixInternalPartitionWithLogFormat(true), the actual partition used would be ABC-4
  • For setSuffixInternalPartitionWithLogFormat("%02d"), the actual partition used would be ABC-04

Enabled several HTTP security headers by default

Previously, when used with Envoy, Deephaven had several optional HTTP security headers configured, but left disabled. These defaults are now also available without Envoy, and additionally, some of them are on by default.

Configuration properties prefixed with envoy.add.header. will be set on outgoing responses from Envoy, while http.add.header. will be set on outgoing responses from the server itself, regardless of whether Envoy is used or not.

The following headers are now enabled by default:

  • X-XSS-Protection: 1; mode=block - Enables the Cross-Site Scripting (XSS) filter built into some browsers.
  • X-Content-Type-Options: nosniff - Prevents the browser from MIME-sniffing a response away from the declared content-type, but instead requires that the server deliberately set a content type.
  • Refer-Policy: no-referrer - Disables sending any Referer headers.
  • Cross-Origin-Resource-Policy: same-origin - Restricts the ability of a document to load 'no-cors' resources from other origins.
  • Cross-Origin-Embedder-Policy: require-corp - Limits embedding cross origin resources into the document.
  • Cross-Origin-Opener-Policy: same-origin - Prevents cross-origin documents from being able to interact with pages.

Optional limit on appendLiveTable table size

WritableDatabase.appendLiveTable(...) sends the given table to the Log Aggregator Service as an atomic update. A large enough table can cause the LAS to run out of memory.

You can now set a maximum table size (number of rows) that will be accepted by the appendLiveTable call, by setting the optional property LogAggregatorService.transactionLimit.rows. This check only looks at the number of rows and does not take the number of columns or actual data size into account.

Combined Jars for Core+ clients

Combined jars are now available for Core+ clients allowing you to use a single jar for client applications. The Legacy Core+ client jar is deephaven-ent-client-combined-<version>.jar and the Core+ Client combined jar is deephaven-coreplus-client-combined-<version>.jar

Data Import Server aggressively releases unused resources

The Data Import Server (DIS) now aggressively releases resources that are no longer in use. This change eliminates the slow accumulation of resources that could result from ingesting data over many days.

The DIS serves two functions: ingesting data from tailers, and serving intraday data to queries. When a tailer disconnects (e.g. when it finishes a day's data) and when the last subscriber to a location unsubscribes or disconnects, the relevant table locations are dropped when unused.

New information added to the DIS Web Server

The Data Import Server's web server now includes summary information about the table locations in the active set.

Backport Core+ Merge to Grizzly Plus

Merge Jobs may now be executed in a Core+ worker. Previously, all Merge Job workers were Legacy. The following tickets were backported;

  • DH-17611: Write to DH format from Core+ with Core chunks
  • DH-17680: Port Merge PQ to Core+ Engine (builder)
  • DH-18060: Add Core+ option to Engine drop-down for Merge PQs
  • DH-18377: Specify Merge_1 instead of AutoMerge for Core+ Kafka integration tests
  • DH-18531: Performance updates for Core+ Merge Jobs
  • DH-18463: Add sort formula handling to Core+ MergeJob
  • DH-18763: Fix Kafka integration-test failure

Directly create Core AclFilterGenerator for Database ACLs

Previously, the row and column ACLs applied to tables retrieved from a Database must have implemented the FilterGenerator interface, which produces Legacy filters. Optionally, the FilterGenerator can provide a Core filter generator using the getCommunityFilterGenerator method. This means that to build a Core+ AclFilterGenerator for source tables, you must create a corresponding Legacy FilterGenerator.

You can now provide a Core+ AclFilterGenerator directly in the ACL editor. In Core+ workers, the generated Core WhereFilter is applied to the returned table without the need to instantiate a Legacy FilterGenerator.

In a Legacy worker, an error occurs applying the ACL (typically a compilation error). If the user has no other ACLs defined, the table will not accessible. The tables with Core+ filters are not visible in the catalog table if the acl.filter.namespaces or acl.filter.tables Configuration properties are set to true.

The order that ACLs for different groups are generated is not guaranteed, and the user receives a union of the permissions across all their groups with defined ACLs. Therefore, you cannot depend on the existence of a Core+ filter generator to deny access to a table. If an all-access ACL for another of the user's group is processed first, then no other ACLs are processed and the table will be accessible. When evaluating catalog filtering, the system can short circuit evaluation after the first successful ACL application. Similarly, the existence of an another ACL does not ensure access to the table -- if the Core+ AclFilterGenerator fails to compile before another ACL is processed the table is inaccessible.

Removed Jupyter Notebook integration

Server side Jupyter Notebook integration has been removed from Deephaven. The Legacy worker Jupyter Notebook is no longer supported and will not be updated. Use the Deephaven Core+ Python client from Jupyter notebooks beginning in Deephaven 1.20231218 and later.

Optional limit on appendCentral table size (client side)

Database.appendCentral(...) sends the given table to the Log Aggregator Service as an atomic update. A large enough table can cause the LAS to run out of memory.

You can now set a maximum table size (number of rows) that will be accepted by the appendCentral call, by setting the optional property LogAggregatorService.transactionLimit.rows. This check only looks at the number of rows and does not take the number of columns into account. Zero or unset means no limit is enforced.

To make updates larger than the configured limit, either break the table into smaller pieces, or use the RemoteTableAppender directly to make a non-atomic update:

See also Optional server-side limit on appendCentral table size for related server-side changes.

Optional limit on appendCentral table size (server side)

Database.appendCentral(...) and RemoteTableAppender.appendAtomic(...) calls send the given table to the Log Aggregator Service as an atomic update. A large enough table can cause the LAS to run out of memory.

You can now set a maximum table size (number of rows or number of bytes) that will be accepted by the Log Aggregator, by setting the optional properties LogAggregatorService.transactionLimit.rows or LogAggregatorService.transactionLimit.bytes. Zero or unset means no limit is enforced. When the Log Aggregator accumulates more rows or more bytes in a transaction than the configured limit, it will abort the transaction and release the accumulated memory. The client will get an error.

To make updates larger than the configured limit, either break the table into smaller pieces, or use the RemoteTableAppender directly to make a non-atomic update:

See also Optional client-side limit on appendCentral table size for related client-side changes.

Ensure partitioned user table additions and deletions are reflected in future historical table calls

The following code block documents the expected behavior for partitioned user table with additions and deletions:

This reflection of this change is specific to the worker where these deleteTablePartition, addTablePartition calls were made. Other processes that have previously read this historical table may retain the previous behavior (that is, calls to historicalTable may not reflect the newly added partitions).

Note, the previous empty location caching behavior could also be exhibited without using db.deleteTablePartition, as illustrated by the following script:

Automatic Server Selection

Automated server-selection is now turned on by default on new non-Kubernetes installations. To turn it off or change the defaults, edit your iris-environment.prop file and remove or edit the properties from the iris_controller stanza, as described in automated server selection.

Changes to tailer process memory requirements

Tailer now uses constrained and pre-allocated buffer pools for both User and System tables

With default configuration, the tailer now uses constrained and pre-allocated buffer pools for sending data to Data Import Servers. This makes the tailer's memory consumption more predictable, and avoids potential out-of-memory conditions. There are separate pools for User and System tables, governed by the following properties:

PropertyDefaultDescription
DataContent.userPoolCapacity128The maximum number of User table locations that will be processed concurrently. If more locations are created at the same time, the processing is serialized.
DataContent.producerBufferSize.user256 * 1024The size in bytes of the buffers used to read and send data for User table locations.
DataContent.disableUserPoolfalseIf true, user table locations are processed without a constrained pool, in which case user actions can consume unbounded tailer resources.
DataContent.systemPoolCapacity128The maximum number of System table locations that will be processed concurrently. If more locations are created at the same time, the processing is serialized.
DataContent.producerBufferSize256 * 1024The size in bytes of the buffers used to read and send data for System table locations.
DataContent.disableSystemPoolfalseDisable the system pool, which results in an unconstrained number of buffers being used in the tailer.
DataContent.producersUseDirectBufferstrueProducers (the tailer) use a direct buffer for reading and sending data.

The tailer allocates two pools of buffers, one for user tables and one for system tables. Each item in that pool requires two buffers for concurrency, so the memory required will be double the buffer size times the pool capacity.

Total direct memory required for the tailer is approximately 2 * (DataContent.producerBufferSize * DataContent.systemPoolCapacity + DataContent.producerBufferSize.user * DataContent.userPoolCapacity).

Tailer now adjusts to DIS buffer size

When the tailer establishes a connection to a DIS, the processes now exchange configuration information. If the tailer is configured with a larger maximum message size than the DIS can accept, it will reduce it's maximum message size to match the DIS.

Change configuration to handle older tailers sending data to newer Data Import Servers

This section applies only to environments using default configuration values, and where tailers are outside the Deephaven system, either tailing from external systems or from different Deephaven installations. In this scenario, the tailer may send messages that are too large for the DIS to accept.

Older tailers do not accommodate to DIS settings, and may have default configuration settings that allow them to send larger messages than a DIS with default configuration can accept. This typically only happens when the tailer gets behind, or otherwise has file to process with more than 327,710 bytes.

When this happens, the DIS will reject the tailer with a message like:

A similar message might appear in the tailer log.

When an old tailer sends data to a new DIS, the DIS will log a warning like this:

If your environment includes older tailers that send data to current DISes, you should make one of the following configuration changes:

  1. update the tailers to the current Deephaven version
  2. update the tailer configurations to set the max message size, by setting the following properties in the tailer configuration or properties file:
  1. update the DIS max message size to match the tailer max message size by setting the following properties in the DIS configuration or properties file:

Note

The default max messages size from the tailer is reduced as of 20240517.262. Tailers respond to DIS configuration settings as of 20240517.403.

Database.inputTableUpdater improvements

The Database.inputTableUpdater method has been updated to return a new, more general interface io.deephaven.enterprise.database.inputtables.InputTableUpdater, which allows callers to have more control over table lineage with input tables. The InputTableUpdater can also be explicitly managed with a liveness scope, and is also now more efficient in caching intermediate operations.

When sourcing both an InputTableUpdater and an input Table view from db, the resulting objects may not share a common lineage:

With the new interface, callers can explicitly derive the corresponding input Table view from the InputTableUpdater:

Note, the python layer does not currently expose a stand-alone equivalent of InputTableUpdater; an input Table view must be created, and in that context, table lineage is already guaranteed.