4.2.34
April 2, 2026
Summary
This release introduces beta CesiumJS integration as an alternative 3D globe renderer, a new Plugin Components system for extensible UI behaviors, and a Playwright-based end-to-end testing framework. The DrawTool gains DynamicExtent for viewport-based feature loading and a new Point template type. AnimationTool receives multiple improvements and STAC URL fixes. TimeControl is promoted to core infrastructure under Basics. New API callbacks and events expand extensibility (newActiveFeature, layersToolHeaderStateChange, madeLegendTool, viewer_open). Mobile mode sees significant improvements including configurable initial zoom, layout fixes, and a responsive login page. Security hardening includes adjacent servers placed behind authentication, npm audit fixes, and multiple vulnerability patches. The codebase is cleaned up with D3 largely removed, legacy scripts and files pruned, and an improved Dockerfile. Two new open-source components are released: AnalysisTool and OperationsClock.
Added
- Beta CesiumJS integration as an alternative 3D globe renderer (#810)
- Plugin Components system for lightweight, extensible UI behaviors (#849)
- AnalysisTool and OperationsClock released as open-source components (#904)
- Playwright end-to-end testing framework (#216)
- DrawTool DynamicExtent for viewport-based feature loading (#852)
- DrawTool Template for Point type (#843)
- DrawTool endpoint support via long-term tokens (#841)
- TiTiler layer support in Cesium Globe (#898)
- External MMGIS STAC catalog linking (#863)
- viewer_open as a new layer Kind (#855)
- Configurable initial zoom for mobile mode (#866)
- Latitude/Longitude option in coordinates display (#905)
- Callback for layersToolHeaderStateChange (#846)
- Callback for madeLegendTool (#858)
- Additional newActiveFeature events (#845)
- Font types as webpack assets (#874)
- AGENTS.md and spec-kit for AI development (#828)
- .gitattributes file (#901)
Changed
- Moved TimeControl from Ancillary/ to Basics/TimeControl_/ to reflect its role as core infrastructure (#835)
- Breaking change for external plugins: Import path changed from 'Ancillary/TimeControl' to 'Basics/TimeControl_/TimeControl'
- Removed D3 dependency (mostly) (#826)
- Improved Dockerfile with multi-stage build and reduced image size (#868)
- Upgraded all adjacent servers and sample ENVs (#897)
- Updated time and timetype metaconfigurations (#891)
- Removed redundant urlencoded middleware (#888)
- AnimationTool improvements including playback and UI enhancements (#856)
- Updated GitHub workflow: docker-build.yml (#917)
- Updated README.md (#913)
Fixed
- LegendTool overflow (#848)
- Viewer and globe splitter icons (#850)
- Time and Refresh Interval enabled layers incorrectly set to layernotfound (#853)
- AnimationTool STAC URLs (#860, #861, #867)
- Return value for layersToolHeaderStateChange event (#862)
- Bug in viewer_open kind (#865, #882)
- titiler-pgstac performance issue (#870)
- DynamicExtent + Threshold layers not properly updating (#871)
- Multiple mobile mode layout and interaction issues (#875, #878)
- Login page layout on smaller screens (#883)
- Initial Start and End Time configuration parameters (#886)
- Time Type = Local and Refresh Interval not working together (#889)
- queryTilesetTimes not updating on layer toggles (#892)
- DrawTool bugs: template field naming, not-null advanced filters (#895)
- DrawTool Templated Point origin point getting stuck (#909)
- updateClampedRasterForLayer is not a function error (#907)
- Image loading in OpenSeadragon (#899)
- Missions middleware (#914)
- Hover Feature Label and Layer Tags wrongly assigned (#915)
- Critical security vulnerabilities (#880, #884)
Removed
- Legacy jQuery/Materialize configure page and /configure-legacy route (#830)
- database/ directory containing old Docker Postgres migration scripts (#830)
- src/essence/Tools/_OLD/ directory (#830)
- Dockerfile.legacy (#830)
Security
What's Changed
- #810 Beta Cesium Integration by @tariqksoliman in #827
- Agents.md and spec-kit for AI development by @tariqksoliman in #828
- Update CHANGELOG.md for 4.1.0 by @tariqksoliman in #829
- #830 Remove outdated scripts and files by @tariqksoliman in #831
- #826 Remove D3 (mostly) by @tariqksoliman in #833
- #832 npm audit fix (unforced) by @tariqksoliman in #834
- #835 Move TimeControl to Basics by @tariqksoliman in #836
- #216 Playwright Testing Framework by @tariqksoliman in #837
- #841 Support Draw Endpoints via Longtermtokens by @tariqksoliman in #842
- #843 DrawTool - Template for Point Type by @tariqksoliman in #844
- Fix LegendTool overflow by @ac-61 in #848
- Fix viewer and globe splitter icons by @ac-61 in #850
- Add more events for newActiveFeature by @ac-61 in #845
- Add new callback for layersToolHeaderStateChange by @ac-61 in #846
- #853 If Time and Refresh Interval Enabled, do not set to layernotfound by @tariqksoliman in #854
- #849 Plugin Components by @tariqksoliman in #851
- Add viewer_open as new Kind by @ac-61 in #855
- #856 AnimationTool Improvements by @tariqksoliman in #857
- Add new callback for madeLegendTool by @ac-61 in #858
- #852 DrawTool DynamicExtent by @tariqksoliman in #859
- Fix AnimationTool Stac urls by @tariqksoliman in #860
- Fix AnimationTool Stac urls 2 by @tariqksoliman in #861
- Fix return value for layersToolHeaderStateChange event by @ac-61 in #862
- Fix bug in viewer_open kind by @ac-61 in #865
- Add config option to set initial zoom in mobile mode by @ac-61 in #866
- AnimationTool fixes by @tariqksoliman in #867
- #868 Improve Dockerfile by @tariqksoliman in #869
- titiler-pgstac perf fix by @tariqksoliman in #870
- #871 Bug: DyanmicExtent+Threshold Layers do not properly update by @tariqksoliman in #872
- Add font types as asset to webpack by @ac-61 in #874
- Fix issues in mobile version by @ac-61 in #875
- More fixes for mobile mode by @ac-61 in #878
- #863 Allow linking to external MMGIS stac catalogs by @tariqksoliman in #864
- Security fixes by @tariqksoliman in #880
- Fix security issues by @tariqksoliman in #884
- Improve login page for smaller screens by @ac-61 in #883
- Fix bug in viewer_open kind by @ac-61 in #882
- #886 Fix Initial Start and End Time configurations parameters by @tariqksoliman in #887
- Remove redundant urlencoded by @tariqksoliman in #888
- #889 Fix Time Type = Local and Refresh Interval don't work together by @tariqksoliman in #890
- Update time and timetype metaconfigs by @tariqksoliman in #891
- #892 Fix queryTilesetTimes does not update on layer toggles by @tariqksoliman in #893
- #895 Fix DrawTool bugs, template field naming, not null adv filters by @tariqksoliman in #896
- Upgrade Adjacent Servers and sample ENVs by @tariqksoliman in #897
- #898 Support TiTiler layers in Cesium Globe by @tariqksoliman in #900
- Add .gitattributes by @tariqksoliman in #901
- Fix image loading in OpenSeadragon by @ac-61 in #899
- #904 Release AnalysisTool and OperationsClock by @tariqksoliman in #906
- #907 Fix updateClampedRasterForLayer is not a function by @tariqksoliman in #908
- Add option to display Latitude/Longitude in coordinates display by @ac-61 in #905
- #909 Fix DrawTool Templated Point Origin point sometimes get stuck by @tariqksoliman in #910
- #911 Put Adjacent Servers behind Auth by @tariqksoliman in #912
- Fix missions middleware by @tariqksoliman in #914
- Update README.md by @tariqksoliman in #913
- #915 Fix Hover Feature Label and Layer Tags can wrongly get assigned … by @tariqksoliman in #916
- Update github workflow: docker-build.yml by @tariqksoliman in #917
Full Changelog: 4.1.0...4.2.34