Skip to main content

Feature Flags

This page documents the configuration flags available in the system. These flags control various features, experimental capabilities, and legacy behaviors.

Flag Lifecycle Legend

  • Stable: Intended as long-term flags to allow admins to change functionality. Safe for production.
  • Testing: Features that are ready for testing. These will either graduate to "Stable" or eventually be set to their target value and have the flag removed.
  • Under Construction: Currently hardcoded to false in the code, regardless of configuration. The feature is not yet ready for use.

🚀 Optimizations in testing

These are flags likely to be removed in the future.

touchThreadOnlyWhenItems

Description
Optimization flag. If true, the touch thread only runs when there are items to process.

PropertyDetails
LifecycleTesting
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.29.0

taskCacheClear

Description
Enables the background task that clears expired items from the cache.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.27.0

ncHeaderMakeFile

Description
If true the server will generate the entire nc file before creating the ncheader result. The new (preferred) behavior when false is to directly generate the ncheader result.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goalfalse
HistoryAdded in 2.29.0

useEddReflection

Description
Enables the use of Java Reflection to instantiate EDD (ERDDAP Dataset) classes.

PropertyDetails
LifecycleTesting
Current Defaulttrue
Long-term Goaltrue
HistoryDefault changed to true in 2.28.0, added in 2.25

backgroundCreateSubsetTables

Description
Allows subset tables to be created in background threads to improve datasets loading time.

PropertyDetails
LifecycleTesting
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.29.0

useNcMetadataForFileTable

Description
Uses NetCDF metadata to populate the file table view. In particular if an nc file includes actual_range for each variable, the dataset loading can skip reading the entire file.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.29.0

🛠 System & Core Behavior

emailIsActive

Description
Controls whether the system attempts to send actual emails (e.g., for subscription updates or error reports) via the configured SMTP server.

PropertyDetails
LifecycleStable
Current Defaultfalse
Long-term Goaltrue (Dependent on admin config)
HistoryLegacy
Logic

This flag is calculated dynamically at startup. It defaults to false unless all required SMTP credentials (host, port, user, password, from-address) are strictly provided in setup.xml.

showLoadErrorsOnStatusPage

Description
Determines if detailed dataset load errors are displayed publicly on the status page.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goalset as desired
HistoryAdded in 2.25

defaultAccessibleViaFiles

Description
Sets the default behavior for whether a dataset's underlying files can be accessed in the files service.

PropertyDetails
LifecycleStable
Current Defaultfalse
Long-term Goalfalse
HistoryAdded in 2.10

🗃️ Datasets

quickRestart

Description
If enabled, the system attempts to start up faster by skipping certain deep validation checks on datasets during initialization.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.38

enableEnvParsing

Description
Enables processing the datasets.xml file with a StringSubstitutor. This has many uses including setting private values (like passwords) using environment variables.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goalset as desired
HistoryAdded in 2.29.0

useSaxParser

Description
Switches the internal XML parsing engine to use a SAX (Simple API for XML) parser instead of the DOM parser. This enables some new advanced features like XInclude, and custom display attributes.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goaltrue
HistoryAdded in 2.25

listPrivateDatasets

Description
Determines if private datasets (those requiring authentication) appear in the main dataset list.

PropertyDetails
LifecycleStable
Current Defaultfalse
Long-term Goalfalse
HistoryAdded in 1.20

politicalBoundariesActive

Description
Controls whether political boundaries can be drawn on maps.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.80

📂 Metadata & Standards

fgdcActive

Description
Generates and serves FGDC (Federal Geographic Data Committee) metadata.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.38

iso19115Active

Description
Generates and serves ISO 19115 metadata.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.38

useSisISO19115

Description
Uses the Apache SIS library to generate ISO 19115 metadata instead of the legacy generator. If this is on and useSisISO19139 is not on, the default IOS 19115 metadata will be in ISO19115_3_2016 format. If this is false the default format will be in the legacy modified ISO19115_2 format.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goaltrue
HistoryAdded in 2.26

useSisISO19139

Description
Uses the Apache SIS library to generate ISO19139_2007 metadata.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goalfalse
HistoryAdded in 2.29.0

jsonldActive

Description
Generates and serves JSON-LD (Linked Data) metadata.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryLegacy

generateCroissantSchema

Description
Generates "Croissant" metadata schema as the default schema for machine learning readiness.

PropertyDetails
LifecycleTesting
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.28.0

variablesMustHaveIoosCategory

Description
Enforces that variables must have an IOOS category attribute.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goalset as desired
HistoryLegacy

includeNcCFSubsetVariables

Description
Legacy behavior was to generate subset variables only for EDDTableFromNcCFFiles datasets. This was added to default the behavior for EDDTableFromNcCFFiles to be consistent with other dataset types. If you need the legacy automatic subsetVariables you can enable this. The better solution would be to add subsetVariables to the dataset definition.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goalfalse
HistoryAdded in 2.26

🔔 Subscriptions and Notifications

subscriptionSystemActive

Description
Enables the email subscription system for dataset updates.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.14

subscribeToRemoteErddapDataset

Description
Allows this ERDDAP instance to subscribe to remote ERDDAP datasets for updates.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.70

updateSubsRssOnFileChanges

Description
Triggers subscription and RSS updates when underlying files change. The legacy behavior was only to do updates on dataset reload (which some servers had as infrequently as weekly).

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 2.26

enableMqttBroker

Description
Starts an internal MQTT broker within the application to handle messaging.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goalset as desired
HistoryAdded in 2.29.0

publishMqttNotif

Description
Enables publishing of notifications (like dataset changes) to the MQTT broker.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goalset as desired
HistoryAdded in 2.29.0

🌐 Web Headers/Configuration

useHeadersForUrl

Description
Allows using HTTP headers to determine the request URL details (useful behind proxies).

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryDefault changed to true in 2.28.0, Added in 2.27.0

enableCors

Description
Enables Cross-Origin Resource Sharing (CORS) headers on HTTP responses.

PropertyDetails
LifecycleStable
Current Defaultfalse
Long-term Goalset as desired
HistoryAdded in 2.26

useLuceneSearchEngine

Description
Switches the internal search engine to use Apache Lucene.

PropertyDetails
LifecycleTesting
Current Defaultfalse
Long-term Goal?
HistoryLegacy

📡 Services & Protocols

filesActive

Description
Enables the "Files" browser view for datasets that support it.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.58

convertersActive

Description
Enables conversion tools in the UI.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.44

slideSorterActive

Description
Enables the Slide Sorter.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.44

dataProviderFormActive

Description
Enables the form allowing data providers to input metadata.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryLegacy

outOfDateDatasetsActive

Description
Enables the reporting of out-of-date datasets.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.82

wmsActive

Description
Enables the Web Map Service (WMS) interface.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryAdded in 1.44

wmsClientActive

Description
Enables the internal WMS client features.

PropertyDetails
LifecycleStable
Current Defaulttrue
Long-term Goaltrue
HistoryLegacy

geoServicesRestActive

Description
Enables the RESTful interface for Geospatial Services. Not fully implemented.

PropertyDetails
LifecycleUnder Construction
Current Defaultfalse (Hardcoded)
Long-term Goaltrue

wcsActive

Description
Enables the Web Coverage Service (WCS) interface. Not fully implemented.

PropertyDetails
LifecycleUnder Construction
Current Defaultfalse (Hardcoded)
Long-term Goaltrue

sosActive

Description
Enables the Sensor Observation Service (SOS) interface.

PropertyDetails
LifecycleUnder Construction
Current Defaultfalse (Hardcoded)
Long-term Goaltrue