Skip to content

Commit e1b65fc

Browse files
Merge branch 'development' into development
2 parents c961047 + 6ffb9f8 commit e1b65fc

6 files changed

Lines changed: 98 additions & 747 deletions

File tree

CHANGELOG.md

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
# MMGIS Changelog
22

3-
## Unreleased
3+
## 5.0.15
44

5-
_TBD_
6-
7-
## 5.0.0
8-
9-
_May 1, 2026_
5+
_June 11, 2026_
106

117
#### Summary
128

13-
This major release modernizes the MMGIS frontend by migrating core UI infrastructure from jQuery/Materialize to React 18 and Base UI. The separated tools system has been fully rewritten as React components. The Ancillary directory has been dissolved and its components reorganized. A comprehensive mobile UI overhaul improves toolbar layout, TimeUI integration, and responsive positioning. A configurable theme system with High Contrast support has been added. The internal test infrastructure (Test_ module) has been removed in favor of the Playwright-based E2E framework. The Cesium 3D globe link button has been restyled and repositioned. Various bug fixes address TimeControl, Legend, modal, tooltip, and z-index issues.
9+
This major release modernizes the MMGIS frontend by migrating core UI infrastructure from jQuery/Materialize to React 18 and Base UI. The separated tools system has been fully rewritten as React components. The Ancillary directory has been dissolved and its components reorganized. A comprehensive mobile UI overhaul improves toolbar layout, TimeUI integration, and responsive positioning. A configurable theme system with High Contrast support has been added. The internal test infrastructure (Test\_ module) has been removed in favor of the Playwright-based E2E framework. The Cesium 3D globe link button has been restyled and repositioned. Various bug fixes address TimeControl, Legend, modal, tooltip, and z-index issues. This release also introduces the Segment Tool, 3D gradient polyline and vectortile extrusion, KML import, a Zustand-based React UI migration, a comprehensive E2E and unit test infrastructure overhaul, PostgreSQL 18 and Express v5 upgrades, and extensive SQL parameterization and security hardening across the codebase.
1410

1511
### Compatibility
1612

@@ -25,7 +21,7 @@ The following breaking changes affect **developers who maintain custom tool plug
2521
- **Breaking (Developers): Ancillary directory dissolved.** Components previously under `src/essence/Ancillary/` have been reorganized into nested locations under `src/essence/Basics/UserInterface_/components/`. Any custom plugin code importing from `Ancillary/` paths will need import path updates.
2622
- **Breaking (Developers): jQuery UI components replaced with React.** Modal, Tooltip, Toast, Help, ContextMenu, and Coordinates components are now React-based. Any custom plugin code relying on jQuery selectors (e.g., `$('.modal')`, `$('.tooltipped')`) or Materialize CSS classes for these components will need updating to use the new React component APIs or DOM IDs.
2723
- **Breaking (Developers): Separated tools system rewritten.** The separated/floating tools system is now React-based. Custom tools that used the old jQuery-based separated tools DOM API will need migration. The tool module interface (`make()`, `destroy()`, `initialize()`, `finalize()`) is unchanged — only the DOM container rendering has changed.
28-
- **Breaking (Developers): Test_ module removed.** The internal `Test_` module, `testModules`, and `DrawTool.test` have been removed. Use the Playwright-based E2E test framework (`tests/e2e/`) instead.
24+
- **Breaking (Developers): Test\_ module removed.** The internal `Test_` module, `testModules`, and `DrawTool.test` have been removed. Use the Playwright-based E2E test framework (`tests/e2e/`) instead.
2925

3026
#### Added
3127

@@ -38,6 +34,22 @@ The following breaking changes affect **developers who maintain custom tool plug
3834
- Hover effect on MMGIS logo (subtle background highlight)
3935
- Per-layer fade control: time-enabled and shade/viewshed layers never fade
4036
- Selective tile fade: fade on pan/zoom, instant on refresh/reload
37+
- Segment Tool for measuring terrain profiles and distances (PR #940)
38+
- 3D Cesium gradient polyline support with performance optimizations (PR #936)
39+
- LithoSphere gradient layer support via lithosphere ^1.6.0 (PR #937)
40+
- 3D extrusion for vectortile layers and 3D Tiles support (PR #942)
41+
- KML import support for MMGIS vector layers (PR #945)
42+
- React UI migration: Zustand store, bridge, components, ToolController\_ and BottomBar React migration (PR #944)
43+
- Option to set a tool to open by default (PR #923)
44+
- Secrets Detection workflow via GitHub Actions (PR #921)
45+
- Comprehensive Playwright E2E and unit test infrastructure (Waves 1–4) (PR #929)
46+
- TiTiler Planetcantile E2E tests and auto-start of adjacent servers in test harness (PR #943)
47+
- Bounding box support for ViewshedTool (PR #948)
48+
- Lunar South Pole reference mission variant (IAU2000:30120) (PR #982)
49+
- Demo/Testing Mission exposing every feature (PR #919)
50+
- Per-plugin dependencies, validation, and shared discovery (PR #975)
51+
- Pass-through of reloadLayer flags in mmgisAPI.reloadLayers (PR #976)
52+
- Extra E2E test safety improvements: production fail-safe, test DB credentials, AI agent rules (PR #951)
4153

4254
#### Changed
4355

@@ -53,6 +65,9 @@ The following breaking changes affect **developers who maintain custom tool plug
5365
- Removed `separatedTool/justification` config toggles (field silently ignored if present in existing configs)
5466
- Removed separated tools offset logic from `Globe_.js`
5567
- Updated docs to remove references to deleted test infrastructure (PR #57)
68+
- Upgraded PostgreSQL from 16-3.4-alpine to 18-3.6-alpine (v16 still works) (PR #935)
69+
- Updated server/middleware packages including Express v5 and pg-promise v12 (PR #922)
70+
- Removed react-dev-utils and pinned all build toolchain dependencies (PR #924)
5671

5772
#### Fixed
5873

@@ -83,6 +98,23 @@ The following breaking changes affect **developers who maintain custom tool plug
8398
- StatusIndicator spacing and title attribute conflict with tippy tooltip
8499
- Tool headers fixed to 40px height
85100
- Various tool UI issues: ViewshedTool subheader, AnimationTool header, InfoTool close button
101+
- BLOCKER fixes and broad correctness improvements for security, correctness, and code quality (PR #928)
102+
- populateCogScale calculation (PR #926)
103+
- DrawTool templated point type points not respecting time filtering (PR #961)
104+
- Poor configure/upsert SQL and WebSocket body causing memory spike (PR #967)
105+
- Concurrent layer reloads serialized and stop mutating layer.url (PR #974)
106+
- MeasureTool config DEM field renamed from `dem` to `url` (PR #980)
107+
- SegmentTool background, Clipboard API, and context menu test selectors (PR #981)
108+
- Race condition: expose L*.Map* before makeLayers (PR #986)
109+
- clearGradientHoverPoint missing in mockLitho (PR #957)
110+
- Login pathing for external proxies (PR #956)
111+
- Dataset endpoint error catching (PR #953)
112+
- Infinite redirect loop when ROOT_PATH is set (PR #950)
113+
- DEM tile corruption by using nearest-neighbor resampling for RGBA-encoded float tiles (PR #947)
114+
- curl added to runtime Docker stage for healthcheck support (PR #949)
115+
- 5 security vulnerabilities from MMGIS security audit (PR #941)
116+
- Fixed Dockerfile COPY for blueprints (PR #920)
117+
- Fixed typo: Geographical → Geographic (PR #938)
86118

87119
#### Removed
88120

@@ -92,6 +124,16 @@ The following breaking changes affect **developers who maintain custom tool plug
92124
- Separated tools offset logic from `Globe_.js`
93125
- Stale `setShowUserCard` call in `handleLogout`
94126

127+
#### Security
128+
129+
- SQL parameterization improvements for Draw/Files filters (PR #930)
130+
- SQL parameterization improvements in filesutils.js with tests (PR #931)
131+
- SonarQube taint chain break in queryTilesetTimes fs.readdir (PR #932)
132+
- SQL parameterization improvements for geodatasets with comprehensive tests (PR #933)
133+
- SonarQube S3649 taint chain fixes in filesutils.js (PR #934)
134+
- 7 Sonar security recommendations applied with TDD (PR #983)
135+
- Security upgrades: 49→13 vulnerabilities, materialize-css removal (PR #987)
136+
95137
## 4.2.34
96138

97139
_April 2, 2026_

Dockerfile

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,7 @@ COPY . .
8484
RUN node scripts/resolve-plugin-deps.js
8585

8686
RUN --mount=type=cache,target=/root/.npm \
87-
if [ -s plugin-package.json ] && node -e "process.exit(Object.keys(require('./plugin-package.json').dependencies || {}).length ? 0 : 1)"; then \
88-
echo "Installing plugin npm dependencies..." && \
89-
node -e "const d=require('./plugin-package.json').dependencies||{};console.log(Object.entries(d).map(([k,v])=>k+'@'+v).join(' '))" \
90-
| xargs -r npm install --no-save --no-package-lock --ignore-scripts; \
91-
else \
92-
echo "No plugin npm dependencies to install."; \
93-
fi
87+
node scripts/install-plugin-deps.js
9488

9589
RUN if [ -s plugin-python-requirements.txt ] && grep -qv '^#' plugin-python-requirements.txt; then \
9690
echo "Installing plugin pip dependencies..." && \
@@ -149,14 +143,9 @@ RUN --mount=type=cache,target=/root/.npm \
149143
# this step. (Frontend plugin deps are unaffected because webpack
150144
# bundled them into `./build` during the builder stage.)
151145
COPY --from=builder /usr/src/app/plugin-package.json ./plugin-package.json
146+
COPY --from=builder /usr/src/app/scripts/install-plugin-deps.js ./scripts/install-plugin-deps.js
152147
RUN --mount=type=cache,target=/root/.npm \
153-
if [ -s plugin-package.json ] && node -e "process.exit(Object.keys(require('./plugin-package.json').dependencies || {}).length ? 0 : 1)"; then \
154-
echo "Installing plugin npm dependencies into runtime image..." && \
155-
node -e "const d=require('./plugin-package.json').dependencies||{};console.log(Object.entries(d).map(([k,v])=>k+'@'+v).join(' '))" \
156-
| xargs -r npm install --no-save --no-package-lock --ignore-scripts; \
157-
else \
158-
echo "No plugin npm dependencies to install in runtime image."; \
159-
fi
148+
node scripts/install-plugin-deps.js
160149

161150
# Copy built artifacts from builder
162151
COPY --from=builder /usr/src/app/build ./build

configure/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{
22
"name": "configure",
3+
<<<<<<< development
34
"version": "5.0.28-20260610",
5+
=======
6+
"version": "5.0.15-20260611",
7+
>>>>>>> development
48
"homepage": "./configure/build",
59
"private": true,
610
"dependencies": {

0 commit comments

Comments
 (0)