v10.0.0
laurenfrederick
released this
01 Feb 19:24
·
1711 commits
to master
since this release
Release v10.0.0
Migration steps
- Please read the documentation on the updates to the granule files schema for our Cumulus workflow tasks and how to upgrade your deployment for compatibility.
- (Optional) Update the
task-config
for all workflows that use thesync-granule
task to includeworkflowStartTime
set to
{$.cumulus_meta.workflow_start_time}
. See here for an example.
BREAKING CHANGES
- NDCUM-624:
- Functions in @cumulus/cmrjs renamed for consistency with
isCMRFilename
andisCMRFile
isECHO10File
->isECHO10Filename
isUMMGFile
->isUMMGFilename
isISOFile
->isCMRISOFilename
- Functions in @cumulus/cmrjs renamed for consistency with
- CUMULUS-2388:
- In order to standardize task messaging formats, please note the updated input, output and config schemas for the following Cumulus workflow tasks:
- add-missing-file-checksums
- files-to-granules
- hyrax-metadata-updates
- lzards-backup
- move-granules
- post-to-cmr
- sync-granule
- update-cmr-access-constraints
- update-granules-cmr-metadata-file-links
The primary focus of the schema updates was to standardize the format of granules, and
particularly their files data. The granulefiles
object now matches the file schema in the
Cumulus database and thus also matches thefiles
object produced by the API with use cases like
applyWorkflow
. This includes removal ofname
andfilename
in favor ofbucket
andkey
,
removal of certain properties such asetag
andduplicate_found
and outputting them as
separate objects stored inmeta
.
- Checksum values calculated by
@cumulus/checksum
are now converted to string to standardize
checksum formatting across the Cumulus library.
- In order to standardize task messaging formats, please note the updated input, output and config schemas for the following Cumulus workflow tasks:
Notable changes
- CUMULUS-2718
- The
sync-granule
task has been updated to support an optional configuration parameterworkflowStartTime
. The output payload ofsync-granule
now includes acreatedAt
time for each granule which is set to the
providedworkflowStartTime
or falls back toDate.now()
if not provided. Workflows using
sync-granule
may be updated to include this parameter with the value of{$.cumulus_meta.workflow_start_time}
in thetask_config
.
- The
- Updated version of
@cumulus/cumulus-message-adapter-js
from2.0.3
to2.0.4
for
all Cumulus workflow tasks - CUMULUS-2783
- A bug in the ECS cluster autoscaling configuration has been
resolved. ECS clusters should now correctly autoscale by adding new cluster
instances according to the policy configuration. - Async operations that are started by these endpoints will be run as ECS tasks
with a launch type of Fargate, not EC2:POST /deadLetterArchive/recoverCumulusMessages
POST /elasticsearch/index-from-database
POST /granules/bulk
POST /granules/bulkDelete
POST /granules/bulkReingest
POST /migrationCounts
POST /reconciliationReports
POST /replays
POST /replays/sqs
- A bug in the ECS cluster autoscaling configuration has been
Added
- Upgraded version of dependencies on
knex
package from0.95.11
to0.95.15
- Added Terraform data sources to
example/cumulus-tf
module to retrieve default VPC and subnets in NGAP accounts- Added
vpc_tag_name
variable which defines the tags used to look up a VPC. Defaults to VPC tag name used in NGAP accounts - Added
subnets_tag_name
variable which defines the tags used to look up VPC subnets. Defaults to a subnet tag name used in NGAP accounts
- Added
- Added Terraform data sources to
example/data-persistence-tf
module to retrieve default VPC and subnets in NGAP accounts- Added
vpc_tag_name
variable which defines the tags used to look up a VPC. Defaults to VPC tag name used in NGAP accounts - Added
subnets_tag_name
variable which defines the tags used to look up VPC subnets. Defaults to a subnet tag name used in NGAP accounts
- Added
- Added Terraform data sources to
example/rds-cluster-tf
module to retrieve default VPC and subnets in NGAP accounts- Added
vpc_tag_name
variable which defines the tags used to look up a VPC. Defaults to VPC tag name used in NGAP accounts - Added
subnets_tag_name
variable which defines the tags used to look up VPC subnets. Defaults to tag names used in subnets in for NGAP accounts
- Added
- CUMULUS-2299
- Added support for SHA checksum types with hyphens (e.g.
SHA-256
vsSHA256
) to tasks that calculate checksums.
- Added support for SHA checksum types with hyphens (e.g.
- CUMULUS-2439
- Added CMR search client setting to the CreateReconciliationReport lambda function.
- Added
cmr_search_client_config
tfvars to the archive and cumulus terraform modules. - Updated CreateReconciliationReport lambda to search CMR collections with CMRSearchConceptQueue.
- CUMULUS-2441
- Added support for 'PROD' CMR environment.
- CUMULUS-2456
- Updated api lambdas to query ORCA Private API
- Updated example/cumulus-tf/orca.tf to the ORCA release v4.0.0-Beta3
- CUMULUS-2638
- Adds documentation to clarify bucket config object use.
- CUMULUS-2684
- Added optional collection level parameter
s3MultipartChunksizeMb
to collection'smeta
field - Updated
move-granules
task to take in an optional config parameter s3MultipartChunksizeMb
- Added optional collection level parameter
- CUMULUS-2747
- Updated data management type doc to include additional fields for provider configurations
- CUMULUS-2773
- Added a document to the workflow-tasks docs describing deployment, configuration and usage of the LZARDS backup task.
Changed
- Made
vpc_id
variable optional forexample/cumulus-tf
module - Made
vpc_id
andsubnet_ids
variables optional forexample/data-persistence-tf
module - Made
vpc_id
andsubnets
variables optional forexample/rds-cluster-tf
module - Changes audit script to handle integration test failure when
USE\_CACHED\_BOOTSTRAP
is disabled. - CUMULUS-1823
- Updates to Cumulus rule/provider schemas to improve field titles and descriptions.
- CUMULUS-2638
- Transparent to users, remove typescript type
BucketType
.
- Transparent to users, remove typescript type
- CUMULUS-2718
- Updated config for SyncGranules to support optional
workflowStartTime
- Updated SyncGranules to provide
createdAt
on output based onworkflowStartTime
if provided,
falling back toDate.now()
if not provided. - Updated
task_config
of SyncGranule in example workflows
- Updated config for SyncGranules to support optional
- CUMULUS-2735
- Updated reconciliation reports to write formatted JSON to S3 to improve readability for
large reports - Updated TEA version from 102 to 121 to address TEA deployment issue with the max size of
a policy role being exceeded
- Updated reconciliation reports to write formatted JSON to S3 to improve readability for
- CUMULUS-2743
- Updated bamboo Dockerfile to upgrade pip as part of the image creation process
- CUMULUS-2744
- GET executions/status returns associated granules for executions retrieved from the Step Function API
- CUMULUS-2751
- Upgraded all Cumulus (node.js) workflow tasks to use
@cumulus/cumulus-message-adapter-js
version2.0.3
, which includes an
update cma-js to better expose CMA stderr stream output on lambda timeouts
as well as minor logging enhancements.
- Upgraded all Cumulus (node.js) workflow tasks to use
- CUMULUS-2752
- Add new mappings for execution records to prevent dynamic field expansion from exceeding
Elasticsearch field limits- Nested objects under
finalPayload.*
will not dynamically add new fields to mapping - Nested objects under
originalPayload.*
will not dynamically add new fields to mapping - Nested keys under
tasks
will not dynamically add new fields to mapping
- Nested objects under
- Add new mappings for execution records to prevent dynamic field expansion from exceeding
- CUMULUS-2753
- Updated example/cumulus-tf/orca.tf to the latest ORCA release v4.0.0-Beta2 which is compatible with granule.files file schema
- Updated /orca/recovery to call new lambdas request_status_for_granule and request_status_for_job.
- Updated orca integration test
- PR #2569
- Fixed
TypeError
thrown by@cumulus/cmrjs/cmr-utils.getGranuleTemporalInfo
when
a granule's associated UMM-G JSON metadata file does not contain aProviderDates
element that has aType
of either"Update"
or"Insert"
. If neither are
present, the granule's last update date falls back to the"Create"
type
provider date, orundefined
, if none is present.
- Fixed
- CUMULUS-2775
- Changed
@cumulus/api-client/invokeApi()
to accept a single accepted status code or an array
of accepted status codes viaexpectedStatusCodes
- Changed
- PR #2611
- Changed
@cumulus/launchpad-auth/LaunchpadToken.requestToken
andvalidateToken
to use the HTTPS request optionhttps.pfx
instead of the deprecatedpfx
option
for providing the certificate.
- Changed
- CUMULUS-2836
- Updates
cmr-utils/getGranuleTemporalInfo
to search for a SingleDateTime
element, when beginningDateTime value is not
found in the metadata file. The granule's temporal information is
returned so that both beginningDateTime and endingDateTime are set to the
discovered singleDateTimeValue.
- Updates
- CUMULUS-2756
- Updated
_writeGranule()
inwrite-granules.js
to catch failed granule writes due to schema validation, log the failure and then attempt to set the status of the granule tofailed
if it already exists to prevent a failure from allowing the granule to get "stuck" in a non-failed status.
- Updated
Fixed
- CUMULUS-2775
- Updated
@cumulus/api-client
to not log an error for 201 response fromupdateGranule
- Updated
- CUMULUS-2783
- Added missing lower bound on scale out policy for ECS cluster to ensure that
the cluster will autoscale correctly.
- Added missing lower bound on scale out policy for ECS cluster to ensure that
- CUMULUS-2835
- Updated
hyrax-metadata-updates
task to support reading the DatasetId from ECHO10 XML, and the EntryTitle from UMM-G JSON; these are both valid alternatives to the shortname and version ID.
- Updated