Environment variables are set within MMGIS/.env. A sample file MMGIS/sample.env is provided. On startup, erroneous .env setups are logged.
Required Variables
SERVER=
The kind of server running (apache is deprecated)
string enum
default ''
node: A node express server running NodeJS v20.11.1+
apache (deprecated): Served through Apache. Some or all functionality may not work
AUTH=
The kind of authentication method used
string enum
default ''
off: No authentication. Users cannot sign up or log in. Tools that require log in will not work.
none: No authentication. Users can still sign up and log in from within MMGIS.
local: Anyone without credentials is blocked. The Admin must log in, create accounts and pass out the credentials.
csso: Use a Cloud Single Sign On service that’s proxied in front of MMGIS.
NODE_ENV=
Instance type
string enum
default production
production:
development: Shows configure and documentation links on the landing page for convenience
SECRET=
Some random string
string
default null
DB_HOST=
URL of Postgres database
string
default null
DB_PORT=
Port for Postgres database
string
default null
DB_NAME=
Name of Postgres database
string
default null
DB_USER=
User of Postgres database
string
default null
DB_PASS=
Password of Postgres database
string
default null
Optional Variables
PORT=
Port to run on
positive integer
default 8888
DB_POOL_MAX=
Max number connections in the database’s pool. CPUs * 4 is a good number
integer
default 10
DB_POOL_TIMEOUT=
How many milliseconds until a DB connection times out
integer
default 30000 (30 sec)
DB_POOL_IDLE=
How many milliseconds for an incoming connection to wait for a DB connection before getting kicked away
integer
default 10000 (10 sec)
CSSO_GROUPS=
A list of CSSO LDAP groups that have access
string[]
default []
VERBOSE_LOGGING=
Potentially logs a bunch of extra stuff for development purposes
bool
default false
FRAME_ANCESTORS=
Sets the Content-Security-Policy: frame-ancestors header to allow the embedding of MMGIS in the specified external sites
string[]
default null
ex. FRAME_ANCESTORS=’[“http://localhost:8888”]’
FRAME_SRC=
Sets the Content-Security-Policy: frame-src header to allow the embedding iframes from external origins into MMGIS
string[]
default null
ex. FRAME_SRC=’[“http://localhost:8888”]’
THIRD_PARTY_COOKIES=
Sets “SameSite=None; Secure” on the login cookie. Useful when using AUTH=local as an iframe within a cross-origin page.
boolean
default false
ROOT_PATH=
Set MMGIS to be deployed under a subpath. For example if serving at the subpath ‘https://{domain}/path/where/I/serve/mmgis’ is desired, set ROOT_PATH=/path/where/I/serve/mmgis. If no subpath, leave blank.
string
default ""
WEBSOCKET_ROOT_PATH=
Overrides ROOT_PATH’s use when the client connects via websocket. Websocket url: ${ws_protocol}://${window.location.host}${WEBSOCKET_ROOT_PATH || ROOT_PATH || ''}/
string
default ""
CLEARANCE_NUMBER=
Sets a clearance for the website
string
default CL##-####
DISABLE_LINK_SHORTENER=
If true, users that use the ‘Copy Link’ feature will receive a full-length deep link. Writing new short links will be disabled but expanding existing ones will still work.
bool
default false
HIDE_CONFIG=
Make the configure page inaccessible to everyone
bool
default false
FORCE_CONFIG_PATH=
The path to a json config file that acts as the only configured mission for the instance
string
default ''
LEADS=
When not using AUTH=csso, this is a list of usernames to be treated as leads (users with elevated permissions)
string[]
default []
CSSO_LEAD_GROUP=
LDAP group of leads (users with elevated permissions)
string
default ''
ENABLE_MMGIS_WEBSOCKETS=
If true, enables the backend MMGIS websockets to tell clients to update layers
boolean
default false
ENABLE_CONFIG_WEBSOCKETS=
If true, notifications are sent to /configure users whenever the current mission’s configuration object changes out from under them and thne puts (overridable) limits on saving
boolean
default false
ENABLE_CONFIG_OVERRIDE=
For use when ENABLE_CONFIG_WEBSOCKETS=true (if ENABLE_CONFIG_WEBSOCKETS=false, all saves will freely overwrite already). If true, gives /configure users the ability to override changes made to the configuration while they were working on it with their own.
boolean
default false
MAIN_MISSION=
If the new MAIN_MISSION ENV is set to a valid mission, skip the landing page and go straight to that mission. Other missions will still be accessible by either forcing the landing page (clicking the top-left M logo) or by going to a link directly.
string
default ''
SKIP_CLIENT_INITIAL_LOGIN=
If true, MMGIS will not auto-login returning users. This can be useful when login is managed someplace else. The initial login process can be manually triggered with mmgisAPI.initialLogin()
boolean
default false
GENERATE_SOURCEMAP=
If true at build-time, JavaScript source maps will also be built
boolean
default false
SPICE_SCHEDULED_KERNEL_DOWNLOAD=
If true, then at every other midnight, MMGIS will read /Missions/spice-kernels-conf.json and re/download all the specified kernels. See /Missions/spice-kernels-conf.example.json
boolean
default false
SPICE_SCHEDULED_KERNEL_DOWNLOAD_ON_START=
If true, then also triggers the kernel download when MMGIS starts
When using composited time tiles, MMGIS queries the tileset’s folder for existing time folders. It caches the results of the these folder listings every COMPOSITE_TILE_DIR_STORE_MAX_AGE_MS milliseconds. Defaults to requerying every 30 minutes. If 0, no caching. If null or NaN, uses default.