Releases: nasa/cumulus
v18.5.6
[v18.5.6] 2025-04-09
Added
- CUMULUS-4004
- Add documentation explaining use and configuration of changegranuleCollections workflow
- CUMULUS-3992
- Update
MoveCollectionsWorkflowreferences toChangeGranuleCollectionsWorkflow - Update
@cumulus/api-clientto add bulkChangeCollection endpoint - Update
@cumulus/apito add api endpoint to allow trigger ofChangeGranuleCollectionsWorkflow - Update ChangeGranuleCollections integration test to use endpoint to trigger test instead of direct step function invocation
- Update
- CUMULUS-3751
- Added
change-granule-collection-s3to move granules to a different collection.- expects a list of granuleIds along with a new (target) collection
- moves those granule files in S3 according to pathing of target collection
- update CMR metadata file according to new collection information
- Added CopyObject function in @cumulus/aws-client/S3 to facilitate multi-part s3 object copying
- Added functions to allow manipulation in memory of cmr metadata objects in @cumulus/cmrjs/cmr-utils
- updateUMMGMetadataObject updates file links for ummg metadata structure object
- updateEcho10XMLMetadataObject updates file links for echo10 metadata structure object
- setUMMGCollection sets collection name and version in ummg metadata structure object
- setEcho10Collection sets collection name and version in echo10 metadata structure object
- getCMRCollectionId gets collectionId from cmr metadata object using its filename to
determine how to correctly parse the object (echo10 vs ummg)
- Added MoveGranuleCollections workflow to cumulus core deployable according to terraform variables
- Added ingest module terraform variable "deploy_cumulus_workflows": a map of workflows that should be deployed
- as of merging only controls move_granule_collections_workflow
- defaults to true (deploy the workflow)
- Added
Fixed
- CUMULUS-3752
- Fixed api return codes expected in api-client for bulkPatch and bulkPatchGranuleCollections
Changed
- CUMULUS-3960
- Updated
PostToCmrtask to be able torepublishgranules
- Updated
v20.0.2
[v20.0.2] 2025-04-03
Fixed
- CUMULUS-4018
- Updated
@cumulus/db/searchto correctly handle string parameter when limit isnull
- Updated
v20.1.1
[v20.1.1] 2025-03-26
Notable Changes
- Users upgrading to Release v20.1.x must first deploy Release v20.0.x to allow for Cumulus module reconfiguration of workflow/framework lambdas. Once this deployment is complete, users may upgrade to Release v20.1.x.
- Release v20.1.x includes an update (CUMULUS-3994) that will permanently delete the Elasticsearch domain. Ensure that the Elasticsearch domain is no longer needed before applying this update.
Changed
- CUMULUS-3994
- Removed references to the Elasticsearch domain named
{prefix}-es-vpcin the data-persistence Terraform module and example. - Running
terraform applyon this change will permanently delete the Elasticsearch domain named{prefix}-es-vpcand all of the the data it contains. - Ensure that the Elasticsearch domain named
{prefix}-es-vpcis no longer needed before applying this update.
- Removed references to the Elasticsearch domain named
- CUMULUS-3842
- Removed references to the DynamoDB table named
{prefix}-ReconciliationReportsTablein the data-persistence Terraform module. - Running
terraform applyon this change will permanently delete the DynamoDB table named{prefix}-ReconciliationReportsTableand all of the the data it contains. - Ensure that the DynamoDB table named
{prefix}-ReconciliationReportsTableis no longer needed before applying this update.
- Removed references to the DynamoDB table named
- CUMULUS-4019
- Updated
@cumulus/lzards-backuptask to make checksum type name comparison case-insensitive
- Updated
Fixed
- CUMULUS-4018
- Updated
@cumulus/db/searchto correctly handle string parameter when limit isnull
- Updated
v20.0.1
[v20.0.1] 2025-03-12
Notable Changes
- The async_operation_image property of the cumulus module should be updated to pull
the ECR image for cumuluss/async-operation:53
Added
- CUMULUS-3993
- Added long PAN functionality and
panTypeconfiguration option toSendPantask - Updated example workflow configuration to better handle error exceptions,
see Workflow Configuration - Updated
PdrStatusChecktask to properly propagate workflow execution error.
- Added long PAN functionality and
Fixed
- CUMULUS-4006
- Created docker image from v20.0.0, and published new tag
53ofcumuluss/async-operationto Docker Hub
- Created docker image from v20.0.0, and published new tag
- CUMULUS-4018
- Fixed API list endpoints pagination missing records issue by sorting on unique cumulus_id column
v18.5.5
[v18.5.5] 2025-03-04
Please note changes in v18.5.5 may not yet be released in future versions, as this
is a backport/patch release on the v18.5.x series of releases. Updates that are
included in the future will have a corresponding CHANGELOG entry in future releases.
Added
- CUMULUS-3993
- Added long PAN functionality and
panTypeconfiguration option toSendPantask - Updated example workflow configuration to better handle error exceptions,
see Workflow Configuration - Updated
PdrStatusChecktask to properly propagate workflow execution error.
- Added long PAN functionality and
v20.0.0
[v20.0.0] 2025-02-04
ElasticSearch Removal Phase 2 Release
Dashboard Requirement
- Cumulus Dashboard v13.0.0
Breaking Changes
- CUMULUS-3934
- Removed
ecs_cluster_instance_allow_sshresource. - The
ecs_cluster_instance_allow_sshwas implemented before SSM hosts were deployed
to NGAP accounts and allowed for SSHing into an instance from an SSH bastion, which no longer exists. - Tunneling into an EC2 via SSM is still supported. Users relying solely on SSH will need to transition to SSM.
- Removed
- CUMULUS-2564
- Updated
sync-granuletask to adduseGranIdPathas a configuration flag.
This modifies the task behavior to stage granules to
<staging_path>/<collection_id>/<md5_granuleIdHash>to allow for better S3
partitioning/performance for large collections.
Because of this benefit
the default has been set totrue, however as sync-granules relies on
object name collision, this configuration changes the duplicate collision
behavior of sync-granules to be per-granule-id instead of per-collection
when active.
If the prior behavior is desired, please add"useGranIdPath": falseto your
task config in your workflow definitions that usesync-granule.
- Updated
- CUMULUS-3698
- GranuleSearch retrieving files/execution is toggled
by setting "includeFullRecord" field to 'true' in relevant api endpoint params - GranuleSearch does not retrieve files/execution by default unless includeFullRecord is set to 'true'
- @cumulus/db function getExecutionArnByGranuleCumulusId is removed. To replace this function use getExecutionInfoByGranuleCumulusId with parameter executionColumns set to ['arn'] or unset (['arn'] is the default argument)
- GranuleSearch retrieving files/execution is toggled
Migration Notes
CUMULUS-3833 Migration of ReconciliationReports from DynamoDB to Postgres after Cumulus is upgraded.
To invoke the Lambda and start the ReconciliationReport migration, you can use the AWS Console or CLI:
aws lambda invoke --function-name $PREFIX-ReconciliationReportMigration $OUTFILEPREFIXis your Cumulus deployment prefix.OUTFILE(optional) is the filepath where the Lambda output will be saved.
CUMULUS-3967
External tooling making use of searchContext in the GET /granules/ endpoint will need to update to make use of standard pagination via limit and page scrolling, as searchContext is no longer supported/is an ES specific feature.
CUMULUS-4006
The async_operation_image property of the cumulus module should be updated to pull the ECR image for cumuluss/async-operation:53.
This version of the image will be made the default in the next release.
Replace ElasticSearch Phase 2 Epic
- CUMULUS-3967
- Remove
searchContextfrom API granules GET/granulesendpoint. - Update relevant tests to validate expected behavior utilizing postgres pagination
- Remove
- CUMULUS-3229
- Remove ElasticSearch queries from Rule LIST endpoint
- CUMULUS-3230
- Remove ElasticSearch dependency from Rule Endpoints
- CUMULUS-3231
- Updated API
pdrsLISTendpoint to query postgres
- Updated API
- CUMULUS-3232
- Update API PDR endpoints
DELandGETto not update Elasticsearch
- Update API PDR endpoints
- CUMULUS-3233
- Updated
providerslist api endpoint and addedProviderSearchclass to query postgres - Removed Elasticsearch dependency from
providersendpoints
- Updated
- CUMULUS-3235
- Updated
asyncOperationsapi endpoint to query postgres
- Updated
- CUMULUS-3236
- Update API AsyncOperation endpoints
POSTandDELto not update
Elasticsearch - Update
@cumlus/api/ecs/async-operationto not update Elasticsearch index when
reporting status of async operation
- Update API AsyncOperation endpoints
- CUMULUS-3698
- GranuleSearch now can retrieve associated files for granules
- GranuleSearch now can retrieve latest associated execution for granules
- CUMULUS-3806
- Update
@cumulus/db/searchto allow for ordered collation as a
dbQueryParameter - Update
@cumulus/db/searchto allowdbQueryParameters.limitto be set to
nullto allow for optional unlimited page sizes in search results - Update/add type annotations/logic fixes to
@cumulus/apireconciliation report code - Annotation/typing fixes to
@cumulus/cmr-client - Typing fixes to
@cumulus/db - Re-enable Reconciliation Report integration tests
- Update
@cumulus/client/CMR.getTokento throw if a non-launchpad token is requested without a username - Update
InventoryandGranule Not Foundreports to query postgreSQL
database instead of elasticsearch - Update
@cumulus/db/lib/granule.getGranulesByApiPropertiesQueryto
allow order by collation to be optionally specified - Update
@cumulus/db/lib/granule.getGranulesByApiPropertiesQueryto
be parameterized and include a modifier ontemporalBoundByCreatedAt - Remove endpoint call to and all tests for Internal Reconciliation Reports
and updated API to throw an error if report is requested - Update Orca reconciliation reports to pull granules for comparison from
postgres viagetGranulesByApiPropertiesQuery
- Update
- CUMULUS-3837
- Added
reconciliation_reportstable in RDS, including indexes - Created pg model, types, and translation for
reconciliationReportsin@cumulus/db
- Added
- CUMULUS-3833
- Created api types for
reconciliation_reportsin@cumulus/types/api - Updated reconciliation reports lambda to write to new RDS table instead of Dynamo
- Updated
@cumulus/api/endpoints/reconciliation-reportsgetReportanddeleteReportto work with the new RDS table instead of Dynamo
- Created api types for
- CUMULUS-3718
- Updated
reconciliation_reportslist api endpoint and addedReconciliationReportSearchclass to query postgres - Added
reconciliationReportstype to stats endpoint, soaggregatequery will work for reconciliation reports
- Updated
- CUMULUS-3859
- Updated
@cumulus/api/bin/serveUtilsto no longer add records to ElasticSearch - Removed ElasticSearch from local API server code
- Updated CollectionSearch to filter granule fields in addition to time frame for active collections
- Updated
- CUMULUS-3847
- remove remaining ES indexing in code and tests
- for asyncOperations test data, change any ES related values to other options
- remove code from
@cumulus/api/lambdas/cleanExecutionsleaving a dummy handler, as the code worked with ES. lambda will be rewritten with CUMULUS-3982 - remove
@cumulus/api/endpoints/elasticsearch,@cumulus/api/lambdas/bootstrap, and@cumulus/api/lambdas/index-from-database
- CUMULUS-3983
- Removed elasticsearch references used in in cumulus
tf-modules
- Removed elasticsearch references used in in cumulus
Added
- CUMULUS-3757
- Added a
/granulesendpointPATCH/bulkPatchGranuleCollectionwhich updates a batch of granule records collectionId to a new collectionId. This endpoint takes a list of granules and a collectionId, updating the granules' to the collectionId passed with the payload in postgres. - Added a
/granulesendpointPATCH/bulkPatchwhich applies PATCH to a list of granules. For its payload, this endpoint takes a list of granules (the updates to be made to the granule, similar to the pre-existingPATCH), adbConcurrencyanddbMaxPoolvariables for configuring concurrency and database thoroughput for postgres to tailor to performance and database needs.
- Added a
- CUMULUS-3919
- Added terraform variables
disableSSLandrejectUnauthorizedtotf-modules/cumulus-rds-tfmodule.
- Added terraform variables
- CUMULUS-3959
- Added documentation to help DAACs troubleshoot database migration issues.
- CUMULUS-3978
- Added
iopsandthroughputoptions toelasticsearch_configvariable
intf-modules/data-persistence; These two options are necessary for gp3 EBS volume type.
- Added
Changed
- CUMULUS-3947
- Bump @cumulus/cumulus-message-adapter-js to version 2.3.0. This will explicitly put the Python cumulus-message-adapter spawn into UTF-8 mode. See https://github.com/nasa/cumulus-message-adapter-js/releases/tag/v2.3.0
- CUMULUS-3967
- Pinned @aws-sdk/client-s3 in @cumulus/aws-client to 3.726.0 to address breaking changes/incompatibility in releases > 3.726.0
- Pinned @aws-sdk/client-s3 in @cumulus/lib-storage to 3.726.0 to address breaking changes/incompatibility in releases > 3.726.0
- CUMULUS-3940
- Added 'dead_letter_recovery_cpu' and 'dead_letter_recovery_memory' to
cumulusandarchivemodule configuration to allow configuration of the dead_letter_recovery_operation task definition to better allow configuration of the tool's operating environment. - Updated the dead letter recovery tool to utilize it's own log group "${var.prefix}-DeadLetterRecoveryEcsLogs"
- Added
batchSize,concurrencyanddbMaxPooloptions to /endpoints/recoverCumulusMessage (note these values are correct at time of this release only):batchSize- specifies how many DLA objects to read from S3 and hold in memory. Defaults to 1000.concurrency- specifies how many messages to process at the same time. Defaults to 30.dbMaxPool- specifies how many database connections to allow the process to utilize. Defaults to 30. Process should at minimum the value set forconcurrency.
- Add API memory-constrained performance test to test minimum functionality under default+ configuration
- Updated
@cumulus/async-operations.startAsyncOperation to takecontainerName` as a parameter name, allowing it to specify a container other than the default 'AsyncOperations' container
- Added 'dead_letter_recovery_cpu' and 'dead_letter_recovery_memory' to
- CUMULUS-3759
- Migrated `tf-module...
v18.5.3
Release v18.5.3
Please note changes in v18.5.3 may not yet be released in future versions, as this
is a backport/patch release on the v18.5.x series of releases. Updates that are
included in the future will have a corresponding CHANGELOG entry in future releases.
Added
- CUMULUS-3757
- Added a
/granulesendpointPATCH/bulkPatchGranuleCollectionwhich updates a batch of granule records collectionId to a new collectionId. This endpoint takes a list of granules, a collectionId, and anesConcurrencyvariable, updating the granules' to the collectionId passed with the payload in both postgres and elasticsearch, while providing concurrency for updating elasticsearch to tailor for performance and database needs. - Added a
/granulesendpointPATCH/bulkPatchwhich applies PATCH to a list of granules. For its payload, this endpoint takes a list of granules (the updates to be made to the granule, similar to the pre-existingPATCH), adbConcurrencyanddbMaxPoolvariables for configuring concurrency and database thoroughput for postgres to tailor to performance and database needs.
- Added a
- CUMULUS-3978
- Added
iopsandthroughputoptions toelasticsearch_configvariable
intf-modules/data-persistence; These two options are necessary for gp3 EBS volume type.
- Added
Changed
-
CUMULUS-3967
- Pinned @aws-sdk/client-s3 in @cumulus/aws-client to 3.726.0 to address breaking changes/incompatibility in releases > 3.726.0
- Pinned @aws-sdk/client-s3 in @cumulus/lib-storage to 3.726.0 to address breaking changes/incompatibility in releases > 3.726.0
-
CUMULUS-3940
- Added 'dead_letter_recovery_cpu' and 'dead_letter_recovery_memory' to
cumulusandarchivemodule configuration to allow configuration of the dead_letter_recovery_operation task definition to better allow configuration of the tool's operating environment. - Updated the dead letter recovery tool to utilize it's own log group "${var.prefix}-DeadLetterRecoveryEcsLogs"
- Added
batchSize,concurrencyanddbMaxPooloptions to /endpoints/recoverCumulusMessage (note these values are correct at time of this release only):batchSize- specifies how many DLA objects to read from S3 and hold in memory. Defaults to 1000.concurrency- specifies how many messages to process at the same time. Defaults to 30.dbMaxPool- specifies how many database connections to allow the process to utilize. Defaults to 30. Process should at minimum the value set forconcurrency.
- Add API memory-constrained performance test to test minimum functionality under default+ configuration
- Updated
@cumulus/async-operations.startAsyncOperation to takecontainerName` as a parameter name, allowing it to specify a container other than the default 'AsyncOperations' container
- Added 'dead_letter_recovery_cpu' and 'dead_letter_recovery_memory' to
Fixed
- CUMULUS-3940
- Updated
process-s3-dead-letter-archiveand downstream calls to pass in a esClient towriteRecordsFunctionand update downstream calls to utilize the client.
- Updated
- CUMULUS-3981
- Added required $metadata field when creating new instance of ServiceException.
v18.5.2
[v18.5.2] 2024-12-12
Breaking Changes
- CUMULUS-3934
- Removed
ecs_cluster_instance_allow_sshresource. - The
ecs_cluster_instance_allow_sshwas implemented before SSM hosts were deployed
to NGAP accounts and allowed for SSHing into an instance from an SSH bastion, which no longer exists. - Tunneling into an EC2 via SSM is still supported. Users relying solely on SSH will need to transition to SSM.
- Removed
Changed
- CUMULUS-3936,CUMULUS-3948
- Updated
tf-modules/cumulus/ecs_cluster_instance_autoscaling_cf_template.yml.tmpl
user-data for compatibility with Amazon Linux 2023 AMI - Fixed
tf-modules/cumulusscripts to use Instance Metadata Service V2 - Updated
fake-provider-cf.ymlto work for Amazon Linux 2023 AMI
- Updated
- CUMULUS-3941
- Updated
SendPantask to generate short pan with FAILED disposition.
- Updated
- CUMULUS-3955
- Removed
VACUUMstatements from db migrations. In cases where the PG database is very large, these queries
can take a long time and exceed the Lambda timeout, causing failures on deployment.
- Removed
Fixed
- Security Vulnerabilities
- Updated
@octokit/graphqlfrom 2.1.1 to ^2.3.0 to address [CVE-2024-21538]
(GHSA-3xgq-45jj-v275)
- Updated
v19.2.0-alpha.1
Release v19.2.0-alpha.1
From feature/es-phase-2 deafd8b