← Overview
Reference

Glossary

Repo-specific vocabulary. The words you'd struggle to define on day one.

L_

The global map state singleton, exported from Basics/Layers_/Layers_.js. Owns mission name, view, planet radius, the full configData, and the layer registry (data, dataFlat, layer, on, opacity, filters, nameToUUID). Nearly every Essence module reads from it. Defined in Core runtime.

F_

The shared math grab-bag, exported from Basics/Formulae_/Formulae_.js. Planet-radius math, lat/lng distance and bearing helpers, GeoJSON normalization, file/path utilities, azimuth/elevation. Imported almost everywhere in Essence; touch with care.

Map_

The 2D viewport facade. Historically Leaflet-only, now an engine-agnostic surface over LeafletAdapter and DeckGLAdapter. Map_.map still points at the live Leaflet map for backwards-compatible callers. See Core runtime.

Globe_

The 3D viewport. Delegates to GlobeRenderer.js, a Cesium/THREE-based lithosphere renderer driven from the same L_.view and tile resources as Map_.

Viewer_

The third "image viewer" pane — Leaflet-on-image for raster imagery, plus a THREE-based Photosphere, ModelViewer, and PDFViewer for 3D and document content attached to features.

Essence

The main MMGIS browser app, under src/essence/. Bundled by the custom Webpack pipeline. Not an idiomatic React app — a hybrid of jQuery-era imperative modules and React 16 islands.

Configure

The separate React 17 admin SPA under configure/, served at /configure. Its own react-scripts build, its own React major version. Writes the JSON config blob that Essence reads at boot. See Configure.

Mission

A single mission's bundled set of layers, tools, configuration, and metadata — selected via ?mission= and the MAIN_MISSION env var, then handed to L_.init(config). The unit of personalization for Mars rovers, lunar ops, and similar deployments.

Geodataset

A PostGIS-backed table registered with the Geodatasets feature module. Served as GeoJSON or Mapbox Vector Tiles. The vector counterpart to plain "Datasets," which are non-spatial.

Tool_

The Essence convention for a user-facing capability — a directory under src/essence/Tools/<Name>/ containing a <Name>Tool.js, a config.json, and a .css. Implements a small lifecycle (initialize, make, destroy, optional notify/finalize/getUrlString) called by ToolController_. Detailed in Mapping tools.

ToolController

The Basics module that loads tools, builds the toolbar, owns activeTool, and dispatches keyboard shortcuts. Reads its tool list from src/pre/tools.js, the file generated by API/updateTools.js before webpack runs.

mmgisAPI

The public, JSDoc'd JavaScript surface attached to window.mmgisAPI — what iframe embedders and plugin authors are allowed to depend on. Lives in src/essence/mmgisAPI/mmgisAPI.js. Also hosts the newer mitt-based pub/sub plus request/response bus that tools use to talk without import-coupling. See mmgisAPI.

PostGIS

The Postgres spatial extension MMGIS depends on. Installed by init-db.js via CREATE EXTENSION IF NOT EXISTS postgis. Backs every Geodataset, Draw user-feature, and spatial query.

Sequelize

The ORM MMGIS uses for table definitions, model hooks, and the connect-pg-simple-backed session store. Spatial queries bypass it and use raw SQL through pg-promise.

connect-pg-simple

The Express session store implementation. Persists MMGISSession rows in the same Postgres MMGIS uses for everything else, so restarts and horizontal scale don't log users out.

Spec-kit

The in-repo design-doc workflow under /specs and /.specify. Reference material for contributors, not runtime code. Skip when reading the codebase to understand behavior.

CSSO

The mission-control single-sign-on integration. When AUTH=csso is set, cssoHandler middleware reads upstream proxy headers to populate req.user and req.groups; ensureGroup then checks group membership. No-op otherwise.

adjacent-server

A separate, optional Python service MMGIS proxies through to — TiTiler, TiTiler-pgSTAC, STAC (stac-fastapi), or tipg. Wired in via Compose profiles or adjacent-servers.js child-process spawn, fronted by adjacent-servers-proxy.js. See Adjacent servers.