New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cumulus/common

Package Overview
Dependencies
Maintainers
8
Versions
216
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cumulus/common - npm Package Versions

1
22

3.0.0

Diff

Changelog

Source

[v3.0.0] 2020-10-7

MIGRATION STEPS

  • CUMULUS-2099

    • All references to meta.queues in workflow configuration must be replaced with references to queue URLs from Terraform resources. See the updated data cookbooks or example Discover Granules workflow configuration.
    • The steps for configuring queued execution throttling have changed. See the updated documentation.
    • In addition to the configuration for execution throttling, the internal mechanism for tracking executions by queue has changed. As a result, you should disable any rules or workflows scheduling executions via a throttled queue before upgrading. Otherwise, you may be at risk of having twice as many executions as are configured for the queue while the updated tracking is deployed. You can re-enable these rules/workflows once the upgrade is complete.
  • CUMULUS-2111

    • Before you re-deploy your cumulus-tf module, note that the [thin-egress-app][thin-egress-app] is no longer deployed by default as part of the cumulus module, so you must add the TEA module to your deployment and manually modify your Terraform state to avoid losing your API gateway and impacting any Cloudfront endpoints pointing to those gateways. If you don't care about losing your API gateway and impacting Cloudfront endpoints, you can ignore the instructions for manually modifying state.

      1. Add the [thin-egress-app][thin-egress-app] module to your cumulus-tf deployment as shown in the Cumulus example deployment.

        • Note that the values for tea_stack_name variable to the cumulus module and the stack_name variable to the thin_egress_app module must match
        • Also, if you are specifying the stage_name variable to the thin_egress_app module, the value of the tea_api_gateway_stage variable to the cumulus module must match it
      2. If you want to preserve your existing thin-egress-app API gateway and avoid having to update your Cloudfront endpoint for distribution, then you must follow these instructions: https://nasa.github.io/cumulus/docs/upgrade-notes/migrate_tea_standalone. Otherwise, you can re-deploy as usual.

    • If you provide your own custom bucket map to TEA as a standalone module, you must ensure that your custom bucket map includes mappings for the protected and public buckets specified in your cumulus-tf/terraform.tfvars, otherwise Cumulus may not be able to determine the correct distribution URL for ingested files and you may encounter errors

  • CUMULUS-2197

    • EMS resources are now optional, and ems_deploy is set to false by default, which will delete your EMS resources.
    • If you would like to keep any deployed EMS resources, add the ems_deploy variable set to true in your cumulus-tf/terraform.tfvars

BREAKING CHANGES

  • CUMULUS-2200
    • Changes return from 303 redirect to 200 success for Granule Inventory's /reconciliationReport returns. The user (dashboard) must read the value of url from the return to get the s3SignedURL and then download the report.
  • CUMULUS-2099
    • meta.queues has been removed from Cumulus core workflow messages.
    • @cumulus/sf-sqs-report workflow task no longer reads the reporting queue URL from input.meta.queues.reporting on the incoming event. Instead, it requires that the queue URL be set as the reporting_queue_url environment variable on the deployed Lambda.
  • CUMULUS-2111
    • The deployment of the thin-egress-app module has be removed from tf-modules/distribution, which is a part of the tf-modules/cumulus module. Thus, the thin-egress-app module is no longer deployed for you by default. See the migration steps for details about how to add deployment for the thin-egress-app.
  • CUMULUS-2141
    • The parse-pdr task has been updated to respect the NODE_NAME property in a PDR's FILE_GROUP. If a NODE_NAME is present, the task will query the Cumulus API for a provider with that host. If a provider is found, the output granule from the task will contain a provider property containing that provider. If NODE_NAME is set but a provider with that host cannot be found in the API, or if multiple providers are found with that same host, the task will fail.
    • The queue-granules task has been updated to expect an optional granule.provider property on each granule. If present, the granule will be enqueued using that provider. If not present, the task's config.provider will be used instead.
  • CUMULUS-2197
    • EMS resources are now optional and will not be deployed by default. See migration steps for information about how to deploy EMS resources.
CODE CHANGES
  • The @cumulus/api-client.providers.getProviders function now takes a queryStringParameters parameter which can be used to filter the providers which are returned
  • The @cumulus/aws-client/S3.getS3ObjectReadStreamAsync function has been removed. It read the entire S3 object into memory before returning a read stream, which could cause Lambdas to run out of memory. Use @cumulus/aws-client/S3.getObjectReadStream instead.
  • The @cumulus/ingest/util.lookupMimeType function now returns undefined rather than null if the mime type could not be found.
  • The @cumulus/ingest/lock.removeLock function now returns undefined
  • The @cumulus/ingest/granule.generateMoveFileParams function now returns source: undefined and target :undefined on the response object if either could not be determined. Previously, null had been returned.
  • The @cumulus/ingest/recursion.recursion function must now be imported using const { recursion } = require('@cumulus/ingest/recursion');
  • The @cumulus/ingest/granule.getRenamedS3File function has been renamed to listVersionedObjects
  • @cumulus/common.http has been removed
  • @cumulus/common/http.download has been removed

Added

  • CUMULUS-1855
    • Fixed SyncGranule task to return an empty granules list when given an empty (or absent) granules list on input, rather than throwing an exception
  • CUMULUS-1955
    • Added @cumulus/aws-client/S3.getObject to get an AWS S3 object
    • Added @cumulus/aws-client/S3.waitForObject to get an AWS S3 object, retrying, if necessary
  • CUMULUS-1961
    • Adds startTimestamp and endTimestamp parameters to endpoint reconcilationReports. Setting these values will filter the returned report to cumulus data that falls within the timestamps. It also causes the report to be one directional, meaning cumulus is only reconciled with CMR, but not the other direction. The Granules will be filtered by their updatedAt values. Collections are filtered by the updatedAt time of their granules, i.e. Collections with granules that are updatedAt a time between the time parameters will be returned in the reconciliation reports.
    • Adds startTimestamp and endTimestamp parameters to create-reconciliation-reports lambda function. If either of these params is passed in with a value that can be converted to a date object, the inter-platform comparison between Cumulus and CMR will be one way. That is, collections, granules, and files will be filtered by time for those found in Cumulus and only those compared to the CMR holdings. For the moment there is not enough information to change the internal consistency check, and S3 vs Cumulus comparisons are unchanged by the timestamps.
  • CUMULUS-1962
    • Adds location as parameter to /reconciliationReports endpoint. Options are S3 resulting in a S3 vs. Cumulus database search or CMR resulting in CMR vs. Cumulus database search.
  • CUMULUS-1963
    • Adds granuleId as input parameter to /reconcilationReports endpoint. Limits inputs parameters to either collectionId or granuleId and will fail to create the report if both are provided. Adding granuleId will find collections in Cumulus by granuleId and compare those one way with those in CMR.
    • /reconciliationReports now validates any input json before starting the async operation and the lambda handler no longer validates input parameters.
  • CUMULUS-1964
    • Reports can now be filtered on provider
  • CUMULUS-1965
    • Adds collectionId parameter to the /reconcilationReports endpoint. Setting this value will limit the scope of the reconcilation report to only the input collectionId when comparing Cumulus and CMR. collectionId is provided an array of strings e.g. [shortname___version, shortname2___version2]
  • CUMULUS-2107
    • Added a new task, update-cmr-access-constraints, that will set access constraints in CMR Metadata. Currently supports UMMG-JSON and Echo10XML, where it will configure AccessConstraints and RestrictionFlag/RestrictionComment, respectively.
    • Added an operator doc on how to configure and run the access constraint update workflow, which will update the metadata using the new task, and then publish the updated metadata to CMR.
    • Added an operator doc on bulk operations.
  • CUMULUS-2111
    • Added variables to cumulus module:
      • tea_api_egress_log_group
      • tea_external_api_endpoint
      • tea_internal_api_endpoint
      • tea_rest_api_id
      • tea_rest_api_root_resource_id
      • tea_stack_name
    • Added variables to distribution module:
      • tea_api_egress_log_group
      • tea_external_api_endpoint
      • tea_internal_api_endpoint
      • tea_rest_api_id
      • tea_rest_api_root_resource_id
      • tea_stack_name
  • CUMULUS-2112
    • Added @cumulus/api/lambdas/internal-reconciliation-report, so create-reconciliation-report lambda can create Internal reconciliation report
  • CUMULUS-2116
    • Added @cumulus/api/models/granule.unpublishAndDeleteGranule which unpublishes a granule from CMR and deletes it from Cumulus, but does not update the record to published: false before deletion
  • CUMULUS-2113
    • Added Granule not found report to reports endpoint
    • Update reports to return breakdown by Granule of files both in DynamoDB and S3
  • CUMULUS-2123
    • Added cumulus-rds-tf DB cluster module to tf-modules that adds a serverless RDS Aurora/PostgreSQL database cluster to meet the PostgreSQL requirements for future releases.
    • Updated the default Cumulus module to take the following new required variables:
      • rds_user_access_secret_arn: AWS Secrets Manager secret ARN containing a JSON string of DB credentials (containing at least host, password, port as keys)
      • rds_security_group: RDS Security Group that provides connection access to the RDS cluster
    • Updated API lambdas and default ECS cluster to add them to the rds_security_group for database access
  • CUMULUS-2126
    • The collections endpoint now writes to the RDS database
  • CUMULUS-2127
    • Added migration to create collections relation for RDS database
  • CUMULUS-2129
    • Added data-migration1 Terraform module and Lambda to migrate data from Dynamo to RDS
      • Added support to Lambda for migrating collections data from Dynamo to RDS
  • CUMULUS-2155
    • Added rds_connection_heartbeat to cumulus and data-migration tf modules. If set to true, this diagnostic variable instructs Core's database code to fire off a connection 'heartbeat' query and log the timing/results for diagnostic purposes, and retry certain connection timeouts once. This option is disabled by default
  • CUMULUS-2156
    • Support array inputs parameters for Internal reconciliation report
  • CUMULUS-2157
    • Added support to data-migration1 Lambda for migrating providers data from Dynamo to RDS
      • The migration process for providers will convert any credentials that are stored unencrypted or encrypted with an S3 keypair provider to be encrypted with a KMS key instead
  • CUMULUS-2161
    • Rules now support an executionNamePrefix property. If set, any executions triggered as a result of that rule will use that prefix in the name of the execution.
    • The QueueGranules task now supports an executionNamePrefix property. Any executions queued by that task will use that prefix in the name of the execution. See the example workflow for usage.
    • The QueuePdrs task now supports an executionNamePrefix config property. Any executions queued by that task will use that prefix in the name of the execution. See the example workflow for usage.
  • CUMULUS-2162
    • Adds new report type to /reconciliationReport endpoint. The new report is Granule Inventory. This report is a CSV file of all the granules in the Cumulus DB. This report will eventually replace the existing granules-csv endpoint which has been deprecated.
  • CUMULUS-2197
    • Added ems_deploy variable to the cumulus module. This is set to false by default, except for our example deployment, where it is needed for integration tests.

Changed

  • Upgraded version of TEA deployed with Cumulus to build 88.
  • CUMULUS-2107
    • Updated the applyWorkflow functionality on the granules endpoint to take a meta property to pass into the workflow message.
    • Updated the BULK_GRANULE functionality on the granules endpoint to support the above applyWorkflow change.
  • CUMULUS-2111
    • Changed distribution_api_gateway_stage variable for cumulus module to tea_api_gateway_stage
    • Changed api_gateway_stage variable for distribution module to tea_api_gateway_stage
  • CUMULUS-2224
    • Updated /reconciliationReport's file reconciliation to include "EXTENDED METADATA" as a valid CMR relatedUrls Type.

Fixed

  • CUMULUS-2168
    • Fixed issue where large number of documents (generally logs) in the cumulus elasticsearch index results in the collection granule stats queries failing for the collections list api endpoint
  • CUMULUS-1955
    • Due to AWS's eventual consistency model, it was possible for PostToCMR to publish an earlier version of a CMR metadata file, rather than the latest version created in a workflow. This fix guarantees that the latest version is published, as expected.
  • CUMULUS-1961
    • Fixed activeCollections query only returning 10 results
  • CUMULUS-2201
    • Fix Reconciliation Report integration test failures by waiting for collections appear in es list and ingesting a fake granule xml file to CMR
  • CUMULUS-2015
    • Reduced concurrency of QueueGranules task. That task now has a config.concurrency option that defaults to 3.
  • CUMULUS-2116
    • Fixed a race condition with bulk granule delete causing deleted granules to still appear in Elasticsearch. Granules removed via bulk delete should now be removed from Elasticsearch.
  • CUMULUS-2163
    • Remove the public-read ACL from the move-granules task
  • CUMULUS-2164
    • Fix issue where cumulus index is recreated and attached to an alias if it has been previously deleted
  • CUMULUS-2195
    • Fixed issue with redirect from /token not working when using a Cloudfront endpoint to access the Cumulus API with Launchpad authentication enabled. The redirect should now work properly whether you are using a plain API gateway URL or a Cloudfront endpoint pointing at an API gateway URL.
  • CUMULUS-2200
    • Fixed issue where __in and __not queries were stripping spaces from values

Deprecated

  • CUMULUS-1955
    • @cumulus/aws-client/S3.getS3Object()
    • @cumulus/message/Queue.getQueueNameByUrl()
    • @cumulus/message/Queue.getQueueName()
  • CUMULUS-2162
    • @cumulus/api/endpoints/granules-csv/list()

Removed

  • CUMULUS-2111
    • Removed distribution_url and distribution_redirect_uri outputs from the cumulus module
    • Removed variables from the cumulus module:
      • distribution_url
      • log_api_gateway_to_cloudwatch
      • thin_egress_cookie_domain
      • thin_egress_domain_cert_arn
      • thin_egress_download_role_in_region_arn
      • thin_egress_jwt_algo
      • thin_egress_jwt_secret_name
      • thin_egress_lambda_code_dependency_archive_key
      • thin_egress_stack_name
    • Removed outputs from the distribution module:
      • distribution_url
      • internal_tea_api
      • rest_api_id
      • thin_egress_app_redirect_uri
    • Removed variables from the distribution module:
      • bucket_map_key
      • distribution_url
      • log_api_gateway_to_cloudwatch
      • thin_egress_cookie_domain
      • thin_egress_domain_cert_arn
      • thin_egress_download_role_in_region_arn
      • thin_egress_jwt_algo
      • thin_egress_jwt_secret_name
      • thin_egress_lambda_code_dependency_archive_key
  • CUMULUS-2157
    • Removed providerSecretsMigration and verifyProviderSecretsMigration lambdas
  • Removed deprecated @cumulus/sf-sns-report task
  • Removed code:
    • @cumulus/aws-client/S3.calculateS3ObjectChecksum
    • @cumulus/aws-client/S3.getS3ObjectReadStream
    • @cumulus/cmrjs.getFullMetadata
    • @cumulus/cmrjs.getMetadata
    • @cumulus/common/util.isNil
    • @cumulus/common/util.isNull
    • @cumulus/common/util.isUndefined
    • @cumulus/common/util.lookupMimeType
    • @cumulus/common/util.mkdtempSync
    • @cumulus/common/util.negate
    • @cumulus/common/util.noop
    • @cumulus/common/util.omit
    • @cumulus/common/util.renameProperty
    • @cumulus/common/util.sleep
    • @cumulus/common/util.thread
    • @cumulus/ingest/granule.copyGranuleFile
    • @cumulus/ingest/granule.moveGranuleFile
    • @cumulus/integration-tests/api/rules.deleteRule
    • @cumulus/integration-tests/api/rules.getRule
    • @cumulus/integration-tests/api/rules.listRules
    • @cumulus/integration-tests/api/rules.postRule
    • @cumulus/integration-tests/api/rules.rerunRule
    • @cumulus/integration-tests/api/rules.updateRule
    • @cumulus/integration-tests/sfnStep.parseStepMessage
    • @cumulus/message/Queue.getQueueName
    • @cumulus/message/Queue.getQueueNameByUrl
lfrederick
published 2.0.7 •

Changelog

Source

[v2.0.7] 2020-10-1 - [BACKPORT]

Fixed

  • CVE-2020-7720
    • Updated common node-forge dependency to 0.10.0 to address CVE finding
lfrederick
published 2.0.6 •

Changelog

Source

[v2.0.6] 2020-09-25 - [BACKPORT]

Fixed

  • CUMULUS-2168
    • Fixed issue where large number of documents (generally logs) in the cumulus elasticsearch index results in the collection granule stats queries failing for the collections list api endpoint
lfrederick
published 2.0.5 •

Changelog

Source

[v2.0.5] 2020-09-15 - [BACKPORT]

Added
  • Added thin_egress_stack_name variable to cumulus and distribution Terraform modules to allow overriding the default Cloudformation stack name used for the thin-egress-app. Please note that if you change/set this value for an existing deployment, it will destroy and re-create your API gateway for the thin-egress-app.
Fixed
  • Fix collection list queries. Removed fixes to collection stats, which break queries for a large number of granules.
lfrederick
published 2.0.4 •

Changelog

Source

[v2.0.4] 2020-09-08 - [BACKPORT]

Changed
  • Upgraded version of TEA deployed with Cumulus to build 88.
lfrederick
published 2.0.3 •

Changelog

Source

[v2.0.3] 2020-09-02 - [BACKPORT]

Fixed
  • CUMULUS-1961

    • Fixed activeCollections query only returning 10 results
  • CUMULUS-2039

    • Fix issue causing SyncGranules task to run out of memory on large granules
CODE CHANGES
  • The @cumulus/aws-client/S3.getS3ObjectReadStreamAsync function has been removed. It read the entire S3 object into memory before returning a read stream, which could cause Lambdas to run out of memory. Use @cumulus/aws-client/S3.getObjectReadStream instead.
lfrederick
published 2.0.2 •

Changelog

Source

v2.0.2+ Backport releases

Release v2.0.1 was the last release on the 2.0.x release series.

Changes after this version on the 2.0.x release series are limited security/requested feature patches and will not be ported forward to future releases unless there is a corresponding CHANGELOG entry.

For up-to-date CHANGELOG for the maintenance release branch see CHANGELOG.md from the 2.0.x branch.

For the most recent release information for the maintenance branch please see the release page

lfrederick
published 2.0.1 •

Changelog

Source

[v2.0.1] 2020-07-28

Added

  • CUMULUS-1886
    • Added multiple sort keys support to @cumulus/api
  • CUMULUS-2099
    • @cumulus/message/Queue.getQueueUrl to get the queue URL specified in a Cumulus workflow message, if any.

Fixed

  • PR 1790
    • Fixed bug with request headers in @cumulus/launchpad-auth causing Launchpad token requests to fail
lfrederick
published 2.0.0 •

Changelog

Source

[v2.0.0] 2020-07-23

BREAKING CHANGES

  • Changes to the @cumulus/api-client package
    • The CumulusApiClientError class must now be imported using const { CumulusApiClientError } = require('@cumulus/api-client/CumulusApiClientError')
  • The @cumulus/sftp-client/SftpClient class must now be imported using const { SftpClient } = require('@cumulus/sftp-client');
  • Instances of @cumulus/ingest/SftpProviderClient no longer implicitly connect when download, list, or sync are called. You must call connect on the provider client before issuing one of those calls. Failure to do so will result in a "Client not connected" exception being thrown.
  • Instances of @cumulus/ingest/SftpProviderClient no longer implicitly disconnect from the SFTP server when list is called.
  • Instances of @cumulus/sftp-client/SftpClient must now be explicitly closed by calling .end()
  • Instances of @cumulus/sftp-client/SftpClient no longer implicitly connect to the server when download, unlink, syncToS3, syncFromS3, and list are called. You must explicitly call connect before calling one of those methods.
  • Changes to the @cumulus/common package
    • cloudwatch-event.getSfEventMessageObject() now returns undefined if the message could not be found or could not be parsed. It previously returned null.
    • S3KeyPairProvider.decrypt() now throws an exception if the bucket containing the key cannot be determined.
    • S3KeyPairProvider.decrypt() now throws an exception if the stack cannot be determined.
    • S3KeyPairProvider.encrypt() now throws an exception if the bucket containing the key cannot be determined.
    • S3KeyPairProvider.encrypt() now throws an exception if the stack cannot be determined.
    • sns-event.getSnsEventMessageObject() now returns undefined if it could not be parsed. It previously returned null.
    • The aws module has been removed.
    • The BucketsConfig.buckets property is now read-only and private
    • The test-utils.validateConfig() function now resolves to undefined rather than true.
    • The test-utils.validateInput() function now resolves to undefined rather than true.
    • The test-utils.validateOutput() function now resolves to undefined rather than true.
    • The static S3KeyPairProvider.retrieveKey() function has been removed.
  • Changes to the @cumulus/cmrjs package
    • @cumulus/cmrjs.constructOnlineAccessUrl() and @cumulus/cmrjs/cmr-utils.constructOnlineAccessUrl() previously took a buckets parameter, which was an instance of @cumulus/common/BucketsConfig. They now take a bucketTypes parameter, which is a simple object mapping bucket names to bucket types. Example: { 'private-1': 'private', 'public-1': 'public' }
    • @cumulus/cmrjs.reconcileCMRMetadata() and @cumulus/cmrjs/cmr-utils.reconcileCMRMetadata() now take a required bucketTypes parameter, which is a simple object mapping bucket names to bucket types. Example: { 'private-1': 'private', 'public-1': 'public' }
    • @cumulus/cmrjs.updateCMRMetadata() and @cumulus/cmrjs/cmr-utils.updateCMRMetadata() previously took an optional inBuckets parameter, which was an instance of @cumulus/common/BucketsConfig. They now take a required bucketTypes parameter, which is a simple object mapping bucket names to bucket types. Example: { 'private-1': 'private', 'public-1': 'public' }
  • The minimum supported version of all published Cumulus packages is now Node 12.18.0
    • Tasks using the cumuluss/cumulus-ecs-task Docker image must be updated to cumuluss/cumulus-ecs-task:1.7.0. This can be done by updating the image property of any tasks defined using the cumulus_ecs_service Terraform module.
  • Changes to @cumulus/aws-client/S3
    • The signature of the getObjectSize function has changed. It now takes a params object with three properties:
      • s3: an instance of an AWS.S3 object
      • bucket
      • key
    • The getObjectSize function will no longer retry if the object does not exist
  • CUMULUS-1861
    • @cumulus/message/Collections.getCollectionIdFromMessage now throws a CumulusMessageError if collectionName and collectionVersion are missing from meta.collection. Previously this method would return 'undefined___undefined' instead
    • @cumulus/integration-tests/addCollections now returns an array of collections that were added rather than the count of added collections
  • CUMULUS-1930
    • The @cumulus/common/util.uuid() function has been removed
  • CUMULUS-1955
    • @cumulus/aws-client/S3.multipartCopyObject now returns an object with the AWS etag of the destination object
    • @cumulus/ingest/S3ProviderClient.list now sets a file object's path property to undefined instead of null when the file is at the top level of its bucket
    • The sync methods of the following classes in the @cumulus/ingest package now return an object with the AWS s3uri and etag of the destination file (they previously returned only a string representing the S3 URI)
      • FtpProviderClient
      • HttpProviderClient
      • S3ProviderClient
      • SftpProviderClient
  • CUMULUS-1958
    • The following methods exported from @cumulus/cmr-js/cmr-utils were made async, and added distributionBucketMap as a parameter:
      • constructOnlineAccessUrl
      • generateFileUrl
      • reconcileCMRMetadata
      • updateCMRMetadata
  • CUMULUS-1969
    • The DiscoverPdrs task now expects provider_path to be provided at event.config.provider_path, not event.config.collection.provider_path
    • event.config.provider_path is now a required parameter of the DiscoverPdrs task
    • event.config.collection is no longer a parameter to the DiscoverPdrs task
    • Collections no longer support the provider_path property. The tasks that relied on that property are now referencing config.meta.provider_path. Workflows should be updated accordingly.
  • CUMULUS-1977
    • Moved bulk granule deletion endpoint from /bulkDelete to /granules/bulkDelete
  • CUMULUS-1991
    • Updated CMR metadata generation to use "Download file.hdf" (where file.hdf is the filename of the given resource) as the resource description instead of "File to download"
    • CMR metadata updates now respect changes to resource descriptions (previously only changes to resource URLs were respected)

MIGRATION STEPS

  • Due to an issue with the AWS API Gateway and how the Thin Egress App Cloudformation template applies updates, you may need to redeploy your thin-egress-app-EgressGateway manually as a one time migration step. If your deployment fails with an error similar to:

    Error: Lambda function (<stack>-tf-TeaCache) returned error: ({"errorType":"HTTPError","errorMessage":"Response code 404 (Not Found)"})
    

    Then follow the AWS instructions to Redeploy a REST API to a stage for your egress API and re-run terraform apply.

Added

  • CUMULUS-2081

    • Add Integrator Guide section for onboarding
    • Add helpful tips documentation
  • CUMULUS-1902

    • Add Common Use Cases section under Operator Docs
  • CUMULUS-2058

    • Added lambda_processing_role_name as an output from the cumulus module to provide the processing role name
  • CUMULUS-1417

    • Added a checksumFor property to collection files config. Set this property on a checksum file's definition matching the regex of the target file. More details in the 'Data Cookbooks Setup' documentation.
    • Added checksumFor validation to collections model.
  • CUMULUS-1956

    • Added @cumulus/earthata-login-client package
    • The /s3credentials endpoint that is deployed as part of distribution now supports authentication using tokens created by a different application. If a request contains the EDL-ClientId and EDL-Token headers, authentication will be handled using that token rather than attempting to use OAuth.
    • @cumulus/earthata-login-client.getTokenUsername() now accepts an xRequestId argument, which will be included as the X-Request-Id header when calling Earthdata Login.
    • If the s3Credentials endpoint is invoked with an EDL token and an X-Request-Id header, that X-Request-Id header will be forwarded to Earthata Login.
  • CUMULUS-1957

    • If EDL token authentication is being used, and the EDL-Client-Name header is set, @the-client-name will be appended to the end of the Earthdata Login username that is used as the RoleSessionName of the temporary IAM credentials. This value will show up in the AWS S3 server access logs.
  • CUMULUS-1958

    • Add the ability for users to specify a bucket_map_key to the cumulus terraform module as an override for the default .yaml values that are passed to TEA by Core. Using this option requires that each configured Cumulus 'distribution' bucket (e.g. public/protected buckets) have a single TEA mapping. Multiple maps per bucket are not supported.
    • Updated Generating a distribution URL, the MoveGranules task and all CMR reconciliation functionality to utilize the TEA bucket map override.
    • Updated deploy process to utilize a bootstrap 'tea-map-cache' lambda that will, after deployment of Cumulus Core's TEA instance, query TEA for all protected/public buckets and generate a mapping configuration used internally by Core. This object is also exposed as an output of the Cumulus module as distribution_bucket_map.
  • CUMULUS-1961

    • Replaces DynamoDB for Elasticsearch for reconciliationReportForCumulusCMR comparisons between Cumulus and CMR.
  • CUMULUS-1970

    • Created the add-missing-file-checksums workflow task
    • Added @cumulus/aws-client/S3.calculateObjectHash() function
    • Added @cumulus/aws-client/S3.getObjectReadStream() function
  • CUMULUS-1887

    • Add additional fields to the granule CSV download file
  • CUMULUS-2019

    • Add infix search to es query builder @cumulus/api/es/es/queries to support partial matching of the keywords

Changed

  • CUMULUS-2032

    • Updated @cumulus/ingest/HttpProviderClient to utilize a configuration key httpListTimeout to set the default timeout for discovery HTTP/HTTPS requests, and updates the default for the provider to 5 minutes (300 seconds).
    • Updated the DiscoverGranules and DiscoverPDRs tasks to utilize the updated configuration value if set via workflow config, and updates the default for these tasks to 5 minutes (300 seconds).
  • CUMULUS-176

    • The API will now respond with a 400 status code when a request body contains invalid JSON. It had previously returned a 500 status code.
  • CUMULUS-1861

    • Updates Rule objects to no longer require a collection.
    • Changes the DLQ behavior for sfEventSqsToDbRecords and sfEventSqsToDbRecordsInputQueue. Previously failure to write a database record would result in lambda success, and an error log in the CloudWatch logs. The lambda has been updated to manually add a record to the sfEventSqsToDbRecordsDeadLetterQueue if the granule, execution, or pdr record fails to write, in addition to the previous error logging.
  • CUMULUS-1956

    • The /s3credentials endpoint that is deployed as part of distribution now supports authentication using tokens created by a different application. If a request contains the EDL-ClientId and EDL-Token headers, authentication will be handled using that token rather than attempting to use OAuth.
  • CUMULUS-1977

    • API endpoint POST /granules/bulk now returns a 202 status on a successful response instead of a 200 response
    • API endpoint DELETE /granules/<granule-id> now returns a 404 status if the granule record was already deleted
    • @cumulus/api/models/Granule.update() now returns the updated granule record
    • Implemented POST /granules/bulkDelete API endpoint to support deleting granules specified by ID or returned by the provided query in the request body. If the request is successful, the endpoint returns the async operation ID that has been started to remove the granules.
    • Added @cumulus/api/models/Granule.getRecord() method to return raw record from DynamoDB
    • Added @cumulus/api/models/Granule.delete() method which handles deleting the granule record from DynamoDB and the granule files from S3
  • CUMULUS-1982

    • The globalConnectionLimit property of providers is now optional and defaults to "unlimited"
  • CUMULUS-1997

    • Added optional launchpad configuration to @cumulus/hyrax-metadata-updates task config schema.
  • CUMULUS-1991

    • @cumulus/cmrjs/src/cmr-utils/constructOnlineAccessUrls() now throws an error if cmrGranuleUrlType = "distribution" and no distribution endpoint argument is provided
  • CUMULUS-2011

    • Reconciliation reports are now generated within an AsyncOperation
  • CUMULUS-2016

    • Upgrade TEA to version 79

Fixed

  • CUMULUS-1991

    • Added missing DISTRIBUTION_ENDPOINT environment variable for API lambdas. This environment variable is required for API requests to move granules.
  • CUMULUS-1961

    • Fixed granules and executions query params not getting sent to API in granule list operation in @cumulus/api-client

Deprecated

  • @cumulus/aws-client/S3.calculateS3ObjectChecksum()

  • @cumulus/aws-client/S3.getS3ObjectReadStream()

  • @cumulus/common/log.convertLogLevel()

  • @cumulus/collection-config-store

  • @cumulus/common/util.sleep()

  • CUMULUS-1930

    • @cumulus/common/log.convertLogLevel()
    • @cumulus/common/util.isNull()
    • @cumulus/common/util.isUndefined()
    • @cumulus/common/util.negate()
    • @cumulus/common/util.noop()
    • @cumulus/common/util.isNil()
    • @cumulus/common/util.renameProperty()
    • @cumulus/common/util.lookupMimeType()
    • @cumulus/common/util.thread()
    • @cumulus/common/util.mkdtempSync()

Removed

  • The deprecated @cumulus/common.bucketsConfigJsonObject function has been removed
  • The deprecated @cumulus/common.CollectionConfigStore class has been removed
  • The deprecated @cumulus/common.concurrency module has been removed
  • The deprecated @cumulus/common.constructCollectionId function has been removed
  • The deprecated @cumulus/common.launchpad module has been removed
  • The deprecated @cumulus/common.LaunchpadToken class has been removed
  • The deprecated @cumulus/common.Semaphore class has been removed
  • The deprecated @cumulus/common.stringUtils module has been removed
  • The deprecated @cumulus/common/aws.cloudwatchlogs function has been removed
  • The deprecated @cumulus/common/aws.deleteS3Files function has been removed
  • The deprecated @cumulus/common/aws.deleteS3Object function has been removed
  • The deprecated @cumulus/common/aws.dynamodb function has been removed
  • The deprecated @cumulus/common/aws.dynamodbDocClient function has been removed
  • The deprecated @cumulus/common/aws.getExecutionArn function has been removed
  • The deprecated @cumulus/common/aws.headObject function has been removed
  • The deprecated @cumulus/common/aws.listS3ObjectsV2 function has been removed
  • The deprecated @cumulus/common/aws.parseS3Uri function has been removed
  • The deprecated @cumulus/common/aws.promiseS3Upload function has been removed
  • The deprecated @cumulus/common/aws.recursivelyDeleteS3Bucket function has been removed
  • The deprecated @cumulus/common/aws.s3CopyObject function has been removed
  • The deprecated @cumulus/common/aws.s3ObjectExists function has been removed
  • The deprecated @cumulus/common/aws.s3PutObject function has been removed
  • The deprecated @cumulus/common/bucketsConfigJsonObject function has been removed
  • The deprecated @cumulus/common/CloudWatchLogger class has been removed
  • The deprecated @cumulus/common/collection-config-store.CollectionConfigStore class has been removed
  • The deprecated @cumulus/common/collection-config-store.constructCollectionId function has been removed
  • The deprecated @cumulus/common/concurrency.limit function has been removed
  • The deprecated @cumulus/common/concurrency.mapTolerant function has been removed
  • The deprecated @cumulus/common/concurrency.promiseUrl function has been removed
  • The deprecated @cumulus/common/concurrency.toPromise function has been removed
  • The deprecated @cumulus/common/concurrency.unless function has been removed
  • The deprecated @cumulus/common/config.parseConfig function has been removed
  • The deprecated @cumulus/common/config.resolveResource function has been removed
  • The deprecated @cumulus/common/DynamoDb.get function has been removed
  • The deprecated @cumulus/common/DynamoDb.scan function has been removed
  • The deprecated @cumulus/common/FieldPattern class has been removed
  • The deprecated @cumulus/common/launchpad.getLaunchpadToken function has been removed
  • The deprecated @cumulus/common/launchpad.validateLaunchpadToken function has been removed
  • The deprecated @cumulus/common/LaunchpadToken class has been removed
  • The deprecated @cumulus/common/message.buildCumulusMeta function has been removed
  • The deprecated @cumulus/common/message.buildQueueMessageFromTemplate function has been removed
  • The deprecated @cumulus/common/message.getCollectionIdFromMessage function has been removed
  • The deprecated @cumulus/common/message.getMaximumExecutions function has been removed
  • The deprecated @cumulus/common/message.getMessageExecutionArn function has been removed
  • The deprecated @cumulus/common/message.getMessageExecutionName function has been removed
  • The deprecated @cumulus/common/message.getMessageFromTemplate function has been removed
  • The deprecated @cumulus/common/message.getMessageGranules function has been removed
  • The deprecated @cumulus/common/message.getMessageStateMachineArn function has been removed
  • The deprecated @cumulus/common/message.getQueueName function has been removed
  • The deprecated @cumulus/common/message.getQueueNameByUrl function has been removed
  • The deprecated @cumulus/common/message.hasQueueAndExecutionLimit function has been removed
  • The deprecated @cumulus/common/Semaphore class has been removed
  • The deprecated @cumulus/common/string.globalReplace function has been removed
  • The deprecated @cumulus/common/string.isNonEmptyString function has been removed
  • The deprecated @cumulus/common/string.isValidHostname function has been removed
  • The deprecated @cumulus/common/string.match function has been removed
  • The deprecated @cumulus/common/string.matches function has been removed
  • The deprecated @cumulus/common/string.replace function has been removed
  • The deprecated @cumulus/common/string.toLower function has been removed
  • The deprecated @cumulus/common/string.toUpper function has been removed
  • The deprecated @cumulus/common/testUtils.getLocalstackEndpoint function has been removed
  • The deprecated @cumulus/common/util.setErrorStack function has been removed
  • The @cumulus/common/util.uuid function has been removed
  • The deprecated @cumulus/common/workflows.getWorkflowArn function has been removed
  • The deprecated @cumulus/common/workflows.getWorkflowFile function has been removed
  • The deprecated @cumulus/common/workflows.getWorkflowList function has been removed
  • The deprecated @cumulus/common/workflows.getWorkflowTemplate function has been removed
  • @cumulus/aws-client/StepFunctions.toSfnExecutionName()
  • @cumulus/aws-client/StepFunctions.fromSfnExecutionName()
  • @cumulus/aws-client/StepFunctions.getExecutionArn()
  • @cumulus/aws-client/StepFunctions.getExecutionUrl()
  • @cumulus/aws-client/StepFunctions.getStateMachineArn()
  • @cumulus/aws-client/StepFunctions.pullStepFunctionEvent()
  • @cumulus/common/test-utils/throttleOnce()
  • @cumulus/integration-tests/api/distribution.invokeApiDistributionLambda()
  • @cumulus/integration-tests/api/distribution.getDistributionApiRedirect()
  • @cumulus/integration-tests/api/distribution.getDistributionApiFileStream()
lfrederick
published 1.24.0 •

Changelog

Source

[v1.24.0] 2020-06-03

BREAKING CHANGES

  • CUMULUS-1969

    • The DiscoverPdrs task now expects provider_path to be provided at event.config.provider_path, not event.config.collection.provider_path
    • event.config.provider_path is now a required parameter of the DiscoverPdrs task
    • event.config.collection is no longer a parameter to the DiscoverPdrs task
    • Collections no longer support the provider_path property. The tasks that relied on that property are now referencing config.meta.provider_path. Workflows should be updated accordingly.
  • CUMULUS-1997

    • @cumulus/cmr-client/CMRSearchConceptQueue parameters have been changed to take a cmrSettings object containing clientId, provider, and auth information. This can be generated using @cumulus/cmrjs/cmr-utils/getCmrSettings. The cmrEnvironment variable has been removed.

Added

  • CUMULUS-1800
    • Added task configuration setting named syncChecksumFiles to the SyncGranule task. This setting is false by default, but when set to true, all checksum files associated with data files that are downloaded will be downloaded as well.
  • CUMULUS-1952
    • Updated HTTP(S) provider client to accept username/password for Basic authorization. This change adds support for Basic Authorization such as Earthdata login redirects to ingest (i.e. as implemented in SyncGranule), but not to discovery (i.e. as implemented in DiscoverGranules). Discovery still expects the provider's file system to be publicly accessible, but not the individual files and their contents.
    • NOTE: Using this in combination with the HTTP protocol may expose usernames and passwords to intermediary network entities. HTTPS is highly recommended.
  • CUMULUS-1997
    • Added optional launchpad configuration to @cumulus/hyrax-metadata-updates task config schema.

Fixed

  • CUMULUS-1997
    • Updated all CMR operations to use configured authentication scheme
  • CUMULUS-2010
    • Updated @cumulus/api/launchpadSaml to support multiple userGroup attributes from the SAML response
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc