18.3.0 • Public • Published



This lambda function is responsible for augmenting granule metadata files with the correct Hyrax (OPeNDAP) URL to provide subsetting and reformatting services on your granules. The URL will convey enough information to Hyrax to discover the granule using CMR. Hyrax will then determine the archive location within Cumulus from the granule's metadata.

For example, the Hyrax URL for a granule with short name GLDAS_CLSM025_DA1_D and version 2.2 from collection ID C1233603862-GES_DISC and granule UR GLDAS_CLSM025_DA1_D.2.2:GLDAS_CLSM025_DA1_D.A20030204.022.nc4:


/UMM-C:{ShortName}.UMM-C:{Version} between "collections" and "granules" is optional and could be included using addShortnameAndVersionIdToConceptId: true in config.json. By default, it is false.

This url will be added to the Urls portion of the granule metadata as follows,

UMM-G example

"RelatedUrls": [
        "URL": "opendap.uat.earthdata.nasa.gov/collections/C1233603862-GES_DISC/GLDAS_CLSM025_DA1_D.2.2/granules/GLDAS_CLSM025_DA1_D.2.2:GLDAS_CLSM025_DA1_D.A20030204.022.nc4",
        "Type": "USE SERVICE API",
        "Subtype": "OPENDAP DATA",
        "Description": "OPeNDAP request URL"

ECHO-10 example

        <Description>OPeNDAP request URL</Description>
        <Type>GET DATA : OPENDAP DATA</Type>

The four properties we need to construct this url are as follows,

Property Source Notes
Provider ID Configuration config.cmr.provider
Collection ID Derived from retrieval of parent collection from CMR This requires a call to the CMR search API
ShortName --//-- optional
Version --//-- optional
Granule UR Granule metadata:
UMM-G GranuleUR
ECHO10 Granule->GranuleUR
Environment process.env.CMR_ENVIRONMENT Specifies the environment of Hyrax (e.g. SIT, UAT, PROD)

For more information on configuring a Cumulus Message Adapter task, see the Cumulus workflow input/output documentation.


Config object fields:

field name type default description
bucket string (required) Name of S3 bucket containing public/private key pair to decrypt CMR credentials
stack string (required) Name of deployment stack
cmr object (required) CMR credentials object
addShortnameAndVersionIdToConceptId boolean false Option to humanize the Hyrax URL. Humanizes when set to true.
skipMetadataValidation boolean false Option to skip metadata validation


Input object fields:

field name type default description
granules array<object> (required) List of granule objects


Output object fields:

field name type default description
granules array<object> N/A List of granule objects

About Cumulus

Cumulus is a cloud-based data ingest, archive, distribution and management prototype for NASA's future Earth science data streams.

Cumulus Documentation


To make a contribution, please see our contributing guidelines.

Package Sidebar


npm i @cumulus/hyrax-metadata-updates

Weekly Downloads






Unpacked Size

49.1 MB

Total Files


Last publish


  • cumuluspublisher
  • nsidc_kovarik
  • jennyhliu
  • npauzenga