v1.10.2
·
8242 commits
to master
since this release
Important Note:
- Redeploy your
iam
stack.
Notable changes:
- Human-readable lambda versioning
- Duplicate granule handling - sync granule and move granule tasks now have an added, non-required parameter. Duplicate handling will default to error, if nothing is specified for the tasks or collection.
Added
- CUMULUS-885 CUMULUS-851 Human-readable lambda versioning
- Added 'human readable' version identifiers to Lambda Versioning lambda aliases
- Added workflow lambda versioning feature to allow in-flight workflows to use lambda versions that were in place when a workflow was initiated
- Updated Kes custom code to remove logic that used the CMA file key to determine template compilation logic. Instead, utilize a
customCompilation
template configuration flag to indicate a template should use Cumulus's kes customized methods instead of 'core'. - Added
useWorkflowLambdaVersions
configuration option to enable the lambdaVersioning feature set. This option is set to true by default and should be set to false to disable the feature. - Added uniqueIdentifier configuration key to S3 sourced lambdas to optionally support S3 lambda resource versioning within this scheme. This key must be unique for each modified version of the lambda package and must be updated in configuration each time the source changes.
- Added a new nested stack template that will create a
LambdaVersions
stack that will take lambda parameters from the base template, generate lambda versions/aliases and return outputs with references to the most 'current' lambda alias reference, and updated 'core' template to utilize these outputs (ifuseWorkflowLambdaVersions
is enabled).
- Updated Kes custom code to remove logic that used the CMA file key to determine template compilation logic. Instead, utilize a
@cumulus/ingest/granule.js
:ingestFile
inserts newduplicate_found: true
field in the file's record if a duplicate file already exists on S3.- CUMULUS-791 -
@cumulus/move-granules
:moveFileRequest
inserts newduplicate_found: true
field in the file's record if a duplicate file already exists on S3. Updated output schema to document newduplicate_found
field. @cumulus/api
:/execution-status
endpoint requests and returns complete execution output if execution output is stored in S3 due to size.- CUMULUS-705 Support for Async Operations
- Note: Make sure to update the IAM stack when deploying this update.
- Adds an AsyncOperations model and associated DynamoDB table to the
@cumulus/api
package - Adds an /asyncOperations endpoint to the
@cumulus/api
package, which can
be used to fetch the status of an AsyncOperation. - Adds a /bulkDelete endpoint to the
@cumulus/api
package, which performs an
asynchronous bulk-delete operation. This is a stub right now which is only
intended to demonstration how AsyncOperations work. - Adds an AsyncOperation ECS task to the
@cumulus/api
package, which will
fetch an Lambda function, run it in ECS, and then store the result to the
AsyncOperations table in DynamoDB.
- Created a
@cumulus/api/lib/OAuth2
interface, which is implemented by the
@cumulus/api/lib/EarthdataLogin
and@cumulus/api/lib/GoogleOAuth2
classes.
Endpoints that need to handle authentication will determine which class to use
based on environment variables. This also greatly simplifies testing. - Added
@cumulus/api/lib/assertions
, containing more complex AVA test assertions - Added PublishGranule workflow to publish a granule to CMR without full reingest. (ingest-in-place capability)
@cumulus/integration-tests
new functionality:listCollections
to list collections from a provided data directorydeleteCollection
to delete list of collections from a deployed stackcleanUpCollections
combines the above in one function.listProviders
to list providers from a provided data directorydeleteProviders
to delete list of providers from a deployed stackcleanUpProviders
combines the above in one function.@cumulus/integrations-tests/api.js
:deleteGranule
anddeletePdr
functions to makeDELETE
requests to Cumulus APIrules
API functionality for posting and deleting a rule and listing all ruleswait-for-deploy
lambda for use in the redeployment tests
- Added option to use environment variable to set CMR host in
@cumulus/cmrjs
.
Removed
- Removed
@cumulus/common/fake-earthdata-login-server
. Tests can now create a
service stub based on@cumulus/api/lib/OAuth2
if testing requires handling
authentication.
Changed
- CUMULUS-940 - modified
@cumulus/common/aws
receiveSQSMessages
to take a parameter object instead of positional parameters. All defaults remain the same, but now access to long polling is available throughoptions.waitTimeSeconds
. - Duplicate Granule Handling:
- CUMULUS-782 - Updated
@cumulus/sync-granule
task andGranule.ingestFile
in@cumulus/ingest
to keep both old and new data when a destination file with different checksum already exists andduplicateHandling
isversion
- Updated the config schema in
@cumulus/move-granules
to include themoveStagedFiles
param. - CUMULUS-778 - Updated config schema and documentation in
@cumulus/sync-granule
to includeduplicateHandling
parameter for specifying how duplicate filenames should be handled - CUMULUS-779 - Updated
@cumulus/sync-granule
to throwDuplicateFile
error when destination files already exist andduplicateHandling
iserror
- CUMULUS-780 - Updated
@cumulus/sync-granule
to useerror
as the default forduplicateHandling
when it is not specified - CUMULUS-780 - Updated
@cumulus/api
to useerror
as the default value forduplicateHandling
in theCollection
model - CUMULUS-785 - Updated the config schema and documentation in
@cumulus/move-granules
to includeduplicateHandling
parameter for specifying how duplicate filenames should be handled - CUMULUS-786, CUMULUS-787 - Updated
@cumulus/move-granules
to throwDuplicateFile
error when destination files already exist andduplicateHandling
iserror
or not specified - CUMULUS-789 - Updated
@cumulus/move-granules
to keep both old and new data when a destination file with different checksum already exists andduplicateHandling
isversion
- CUMULUS-782 - Updated
- CUMULUS-948 - Update lambda functions
CNMToCMA
andCnmResponse
in thecumulus-data-shared
bucket and point the default stack to them, for integration tests.
Fixed
getGranuleId
in@cumulus/ingest
bug:getGranuleId
was constructing an error usingfilename
which was undefined. The fix replacesfilename
with theuri
argument.- Fixes to
del
in@cumulus/api/endpoints/granules.js
to not error/fail when not all files exist in S3 (e.g. delete granule which has only 2 of 3 files ingested).