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.