Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@cumulus/aws-client

Package Overview
Dependencies
Maintainers
11
Versions
135
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cumulus/aws-client - npm Package Versions

1
1214

1.22.1

Diff

Changelog

Source

[v1.22.1] 2020-05-04

Note: v1.22.0 was not released as a package due to npm/release concerns. Users upgrading to 1.22.x should start with 1.22.1

Added

  • CUMULUS-1894
    • Added @cumulus/aws-client/S3.multipartCopyObject()
  • CUMULUS-408
    • Added certificateUri field to provider schema. This optional field allows operators to specify an S3 uri to a CA bundle to use for HTTPS requests.
  • CUMULUS-1787
    • Added collections/active endpoint for returning collections with active granules in @cumulus/api
  • CUMULUS-1799
    • Added @cumulus/common/stack.getBucketsConfigKey() to return the S3 key for the buckets config object
    • Added @cumulus/common/workflows.getWorkflowFileKey() to return the S3 key for a workflow definition object
    • Added @cumulus/common/workflows.getWorkflowsListKeyPrefix() to return the S3 key prefix for objects containing workflow definitions
    • Added @cumulus/message package containing utilities for building and parsing Cumulus messages
  • CUMULUS-1850
    • Added @cumulus/aws-client/Kinesis.describeStream() to get a Kinesis stream description
  • CUMULUS-1853
    • Added @cumulus/integration-tests/collections.createCollection()
    • Added @cumulus/integration-tests/executions.findExecutionArn()
    • Added @cumulus/integration-tests/executions.getExecutionWithStatus()
    • Added @cumulus/integration-tests/granules.getGranuleWithStatus()
    • Added @cumulus/integration-tests/providers.createProvider()
    • Added @cumulus/integration-tests/rules.createOneTimeRule()

Changed

  • CUMULUS-1682
    • Moved all @cumulus/ingest/parse-pdr code into the parse-pdr task as it had become tightly coupled with that task's handler and was not used anywhere else. Unit tests also restored.
  • CUMULUS-1820
    • Updated the Thin Egress App module used in tf-modules/distribution/main.tf to build 74. See the release notes.
  • CUMULUS-1852
    • Updated POST endpoints for /collections, /providers, and /rules to log errors when returning a 500 response
    • Updated POST endpoint for /collections:
      • Return a 400 response when the name or version fields are missing
      • Return a 409 response if the collection already exists
      • Improved error messages to be more explicit
    • Updated POST endpoint for /providers:
      • Return a 400 response if the host field value is invalid
      • Return a 409 response if the provider already exists
    • Updated POST endpoint for /rules:
      • Return a 400 response if rule name is invalid
      • Return a 400 response if rule type is invalid
  • CUMULUS-1891
    • Updated the following endpoints using async operations to return a 503 error if the ECS task cannot be started and a 500 response for a non-specific error:
      • POST /replays
      • POST /bulkDelete
      • POST /elasticsearch/index-from-database
      • POST /granules/bulk

Fixed

  • CUMULUS-408

    • Fixed HTTPS discovery and ingest.
  • CUMULUS-1850

    • Fixed a bug in Kinesis event processing where the message consumer would not properly filter available rules based on the collection information in the event and the Kinesis stream ARN
  • CUMULUS-1853

    • Fixed a bug where attempting to create a rule containing a payload property would fail schema validation.
  • CUMULUS-1854

    • Rule schema is validated before starting workflows or creating event source mappings
  • CUMULUS-1974

    • Fixed @cumulus/api webpack config for missing underscore object due to underscore update
  • CUMULUS-2210

    • Fixed cmr_oauth_provider variable not being propagated to reconciliation reports

Deprecated

  • CUMULUS-1799 - Deprecated the following code. For cases where the code was moved into another package, the new code location is noted:
    • @cumulus/aws-client/StepFunctions.fromSfnExecutionName()
    • @cumulus/aws-client/StepFunctions.toSfnExecutionName()
    • @cumulus/aws-client/StepFunctions.getExecutionArn() -> @cumulus/message/Executions.buildExecutionArn()
    • @cumulus/aws-client/StepFunctions.getExecutionUrl() -> @cumulus/message/Executions.getExecutionUrlFromArn()
    • @cumulus/aws-client/StepFunctions.getStateMachineArn() -> @cumulus/message/Executions.getStateMachineArnFromExecutionArn()
    • @cumulus/aws-client/StepFunctions.pullStepFunctionEvent() -> @cumulus/message/StepFunctions.pullStepFunctionEvent()
    • @cumulus/common/bucketsConfigJsonObject()
    • @cumulus/common/CloudWatchLogger
    • @cumulus/common/collection-config-store/CollectionConfigStore -> @cumulus/collection-config-store
    • @cumulus/common/collection-config-store.constructCollectionId() -> @cumulus/message/Collections.constructCollectionId
    • @cumulus/common/concurrency.limit()
    • @cumulus/common/concurrency.mapTolerant()
    • @cumulus/common/concurrency.promiseUrl()
    • @cumulus/common/concurrency.toPromise()
    • @cumulus/common/concurrency.unless()
    • @cumulus/common/config.buildSchema()
    • @cumulus/common/config.parseConfig()
    • @cumulus/common/config.resolveResource()
    • @cumulus/common/config.resourceToArn()
    • @cumulus/common/FieldPattern
    • @cumulus/common/launchpad.getLaunchpadToken() -> @cumulus/launchpad-auth/index.getLaunchpadToken()
    • @cumulus/common/LaunchpadToken -> @cumulus/launchpad-auth/LaunchpadToken
    • @cumulus/common/launchpad.validateLaunchpadToken() -> @cumulus/launchpad-auth/index.validateLaunchpadToken()
    • @cumulus/common/message.buildCumulusMeta() -> @cumulus/message/Build.buildCumulusMeta()
    • @cumulus/common/message.buildQueueMessageFromTemplate() -> @cumulus/message/Build.buildQueueMessageFromTemplate()
    • @cumulus/common/message.getCollectionIdFromMessage() -> @cumulus/message/Collections.getCollectionIdFromMessage()
    • @cumulus/common/message.getMessageExecutionArn() -> @cumulus/message/Executions.getMessageExecutionArn()
    • @cumulus/common/message.getMessageExecutionName() -> @cumulus/message/Executions.getMessageExecutionName()
    • @cumulus/common/message.getMaximumExecutions() -> @cumulus/message/Queue.getMaximumExecutions()
    • @cumulus/common/message.getMessageFromTemplate()
    • @cumulus/common/message.getMessageStateMachineArn() -> @cumulus/message/Executions.getMessageStateMachineArn())
    • @cumulus/common/message.getMessageGranules() -> @cumulus/message/Granules.getMessageGranules()
    • @cumulus/common/message.getQueueNameByUrl() -> @cumulus/message/Queue.getQueueNameByUrl()
    • @cumulus/common/message.getQueueName() -> @cumulus/message/Queue.getQueueName())
    • @cumulus/common/message.hasQueueAndExecutionLimit() -> @cumulus/message/Queue.hasQueueAndExecutionLimit()
    • @cumulus/common/Semaphore
    • @cumulus/common/test-utils.throttleOnce()
    • @cumulus/common/workflows.getWorkflowArn()
    • @cumulus/common/workflows.getWorkflowFile()
    • @cumulus/common/workflows.getWorkflowList()
    • @cumulus/common/workflows.getWorkflowTemplate()
    • @cumulus/integration-tests/sfnStep/SfnStep.parseStepMessage() -> @cumulus/message/StepFunctions.parseStepMessage()
  • CUMULUS-1858 - Deprecated the following functions.
    • @cumulus/common/string.globalReplace()
    • @cumulus/common/string.isNonEmptyString()
    • @cumulus/common/string.isValidHostname()
    • @cumulus/common/string.match()
    • @cumulus/common/string.matches()
    • @cumulus/common/string.replace()
    • @cumulus/common/string.toLower()
    • @cumulus/common/string.toUpper()

Removed

  • CUMULUS-1799: Deprecated code removals:
    • Removed from @cumulus/common/aws:
      • pullStepFunctionEvent()
    • Removed @cumulus/common/sfnStep
    • Removed @cumulus/common/StepFunctions
lfrederick
published 1.22.0 •

lfrederick
published 1.21.0 •

Changelog

Source

[v1.21.0] 2020-03-30

PLEASE NOTE

  • CUMULUS-1762: the messageConsumer for sns and kinesis-type rules now fetches the collection information from the message. You should ensure that your rule's collection name and version match what is in the message for these ingest messages to be processed. If no matching rule is found, an error will be thrown and logged in the messageConsumer Lambda function's log group.

Added

  • CUMULUS-1629`

    • Updates discover-granules task to respect/utilize duplicateHandling configuration such that
      • skip: Duplicates will be filtered from the granule list
      • error: Duplicates encountered will result in step failure
      • replace, version: Duplicates will be ignored and handled as normal.
    • Adds a new copy of the API lambda PrivateApiLambda() which is configured to not require authentication. This Lambda is not connected to an API gateway
    • Adds @cumulus/api-client with functions for use by workflow lambdas to call the API when needed
  • CUMULUS-1732

    • Added Python task/activity workflow and integration test (PythonReferenceSpec) to test cumulus-message-adapter-pythonand cumulus-process-py integration.
  • CUMULUS-1795

    • Added an IAM policy on the Cumulus EC2 creation to enable SSM when the deploy_to_ngap flag is true

Changed

  • CUMULUS-1762
    • the messageConsumer for sns and kinesis-type rules now fetches the collection information from the message.

Deprecated

  • CUMULUS-1629
    • Deprecate granulesApi, rulesApi, emsApi, executionsAPI from @cumulus/integration-test/api in favor of code moved to @cumulus/api-client

Removed

  • CUMULUS-1799: Deprecated code removals
    • Removed deprecated method @cumulus/api/models/Granule.createGranulesFromSns()
    • Removed deprecated method @cumulus/api/models/Granule.removeGranuleFromCmr()
    • Removed from @cumulus/common/aws:
      • apigateway()
      • buildS3Uri()
      • calculateS3ObjectChecksum()
      • cf()
      • cloudwatch()
      • cloudwatchevents()
      • cloudwatchlogs()
      • createAndWaitForDynamoDbTable()
      • createQueue()
      • deleteSQSMessage()
      • describeCfStackResources()
      • downloadS3File()
      • downloadS3Files()
      • DynamoDbSearchQueue class
      • dynamodbstreams()
      • ec2()
      • ecs()
      • fileExists()
      • findResourceArn()
      • fromSfnExecutionName()
      • getFileBucketAndKey()
      • getJsonS3Object()
      • getQueueUrl()
      • getObjectSize()
      • getS3ObjectReadStream()
      • getSecretString()
      • getStateMachineArn()
      • headObject()
      • isThrottlingException()
      • kinesis()
      • lambda()
      • listS3Objects()
      • promiseS3Upload()
      • publishSnsMessage()
      • putJsonS3Object()
      • receiveSQSMessages()
      • s3CopyObject()
      • s3GetObjectTagging()
      • s3Join()
      • S3ListObjectsV2Queue class
      • s3TagSetToQueryString()
      • s3PutObjectTagging()
      • secretsManager()
      • sendSQSMessage()
      • sfn()
      • sns()
      • sqs()
      • sqsQueueExists()
      • toSfnExecutionName()
      • uploadS3FileStream()
      • uploadS3Files()
      • validateS3ObjectChecksum()
    • Removed @cumulus/common/CloudFormationGateway class
    • Removed @cumulus/common/concurrency/Mutex class
    • Removed @cumulus/common/errors
    • Removed @cumulus/common/sftp
    • Removed @cumulus/common/string.unicodeEscape
    • Removed @cumulus/cmrjs/cmr-utils.getGranuleId()
    • Removed @cumulus/cmrjs/cmr-utils.getCmrFiles()
    • Removed @cumulus/cmrjs/cmr/CMR class
    • Removed @cumulus/cmrjs/cmr/CMRSearchConceptQueue class
    • Removed @cumulus/cmrjs/utils.getHost()
    • Removed @cumulus/cmrjs/utils.getIp()
    • Removed @cumulus/cmrjs/utils.hostId()
    • Removed @cumulus/cmrjs/utils/ummVersion()
    • Removed @cumulus/cmrjs/utils.updateToken()
    • Removed @cumulus/cmrjs/utils.validateUMMG()
    • Removed @cumulus/ingest/aws.getEndpoint()
    • Removed @cumulus/ingest/aws.getExecutionUrl()
    • Removed @cumulus/ingest/aws/invoke()
    • Removed @cumulus/ingest/aws/CloudWatch class
    • Removed @cumulus/ingest/aws/ECS class
    • Removed @cumulus/ingest/aws/Events class
    • Removed @cumulus/ingest/aws/SQS class
    • Removed @cumulus/ingest/aws/StepFunction class
    • Removed @cumulus/ingest/util.normalizeProviderPath()
    • Removed @cumulus/integration-tests/index.listCollections()
    • Removed @cumulus/integration-tests/index.listProviders()
    • Removed @cumulus/integration-tests/index.rulesList()
    • Removed @cumulus/integration-tests/api/api.addCollectionApi()
lfrederick
published 1.20.0 •

Changelog

Source

[v1.20.0] 2020-03-12

BREAKING CHANGES

  • CUMULUS-1714
    • Changed the format of the message sent to the granule SNS Topic. Message includes the granule record under record and the type of event under event. Messages with deleted events will have the record that was deleted with a deletedAt timestamp. Options for event are Create | Update | Delete
  • CUMULUS-1769 - deploy_to_ngap is now a required variable for the tf-modules/cumulus module. For those deploying to NGAP environments, this variable should always be set to true.

Notable changes

  • CUMULUS-1739 - You can now exclude Elasticsearch from your tf-modules/data-persistence deployment (via include_elasticsearch = false) and your tf-modules/cumulus module will still deploy successfully.

  • CUMULUS-1769 - If you set deploy_to_ngap = true for the tf-modules/archive Terraform module, you can only deploy your archive API gateway as PRIVATE, not EDGE.

Added

  • Added @cumulus/aws-client/S3.getS3ObjectReadStreamAsync() to deal with S3 eventual consistency issues by checking for the existence an S3 object with retries before getting a readable stream for that object.
  • CUMULUS-1769
    • Added deploy_to_ngap boolean variable for the tf-modules/cumulus and tf-modules/archive Terraform modules. This variable is required. For those deploying to NGAP environments, this variable should always be set to true.
  • HYRAX-70
    • Add the hyrax-metadata-update task

Changed

  • AccessToken.get() now enforces strongly consistent reads from DynamoDB
  • CUMULUS-1739
    • Updated tf-modules/data-persistence to make Elasticsearch alarm resources and outputs conditional on the include_elasticsearch variable
    • Updated @cumulus/aws-client/S3.getObjectSize to include automatic retries for any failures from S3.headObject
  • CUMULUS-1784
    • Updated @cumulus/api/lib/DistributionEvent.remoteIP() to parse the IP address in an S3 access log from the A-sourceip query parameter if present, otherwise fallback to the original parsing behavior.
  • CUMULUS-1768
    • The stats/summary endpoint reports the distinct collections for the number of granules reported

Fixed

  • CUMULUS-1739 - Fixed the tf-modules/cumulus and tf-modules/archive modules to make these Elasticsearch variables truly optional:

    • elasticsearch_domain_arn
    • elasticsearch_hostname
    • elasticsearch_security_group_id
  • CUMULUS-1768

    • Fixed the stats/ endpoint so that data is correctly filtered by timestamp and processingTime is calculated correctly.
  • CUMULUS-1769

    • In the tf-modules/archive Terraform module, the lifecycle block ignoring changes to the policy of the archive API gateway is now only enforced if deploy_to_ngap = true. This fixes a bug where users deploying outside of NGAP could not update their API gateway's resource policy when going from PRIVATE to EDGE, preventing their API from being accessed publicly.
  • CUMULUS-1775

    • Fix/update api endpoint to use updated google auth endpoints such that it will work with new accounts

Removed

  • CUMULUS-1768
    • Removed API endpoints stats/histogram and stats/average. All advanced stats needs should be acquired from Cloud Metrics or similarly configured ELK stack.
lfrederick
published 1.19.0 •

Changelog

Source

[v1.19.0] 2020-02-28

BREAKING CHANGES

  • CUMULUS-1736

    • The @cumulus/discover-granules task now sets the dataType of discovered granules based on the name of the configured collection, not the dataType.
    • The config schema of the @cumulus/discover-granules task now requires that collections contain a version.
    • The @cumulus/sync-granule task will set the dataType and version of a granule based on the configured collection if those fields are not already set on the granule. Previously it was using the dataType field of the configured collection, then falling back to the name field of the collection. This update will just use the name field of the collection to set the dataType field of the granule.
  • CUMULUS-1446

    • Update the @cumulus/integration-tests/api/executions.getExecution() function to parse the response and return the execution, rather than return the full API response.
  • CUMULUS-1672

    • The cumulus Terraform module in previous releases set a Deployment = var.prefix tag on all resources that it managed. In this release, a tags input variable has been added to the cumulus Terraform module to allow resource tagging to be customized. No default tags will be applied to Cumulus-managed resources. To replicate the previous behavior, set tags = { Deployment: var.prefix } as an input variable for the cumulus Terraform module.
  • CUMULUS-1684 Migration Instructions

    • In previous releases, a provider's username and password were encrypted using a custom encryption library. That has now been updated to use KMS. This release includes a Lambda function named <prefix>-ProviderSecretsMigration, which will re-encrypt existing provider credentials to use KMS. After this release has been deployed, you will need to manually invoke that Lambda function using either the AWS CLI or AWS Console. It should only need to be successfully run once.
    • Future releases of Cumulus will invoke a <prefix>-VerifyProviderSecretsMigration Lambda function as part of the deployment, which will cause the deployment to fail if the migration Lambda has not been run.
  • CUMULUS-1718

    • The @cumulus/sf-sns-report task for reporting mid-workflow updates has been retired. This task was used as the PdrStatusReport task in our ParsePdr example workflow. If you have a ParsePdr or other workflow using this task, use @cumulus/sf-sqs-report instead. Trying to deploy the old task will result in an error as the cumulus module no longer exports sf_sns_report_task.
    • Migration instruction: In your workflow definition, for each step using the old task change: "Resource": "${module.cumulus.sf_sns_report_task.task_arn}" to "Resource": "${module.cumulus.sf_sqs_report_task.task_arn}"
  • CUMULUS-1755

Added

  • CUMULUS-1446

    • Add @cumulus/common/FileUtils.readJsonFile() function
    • Add @cumulus/common/FileUtils.readTextFile() function
    • Add @cumulus/integration-tests/api/collections.createCollection() function
    • Add @cumulus/integration-tests/api/collections.deleteCollection() function
    • Add @cumulus/integration-tests/api/collections.getCollection() function
    • Add @cumulus/integration-tests/api/providers.getProvider() function
    • Add @cumulus/integration-tests/index.getExecutionOutput() function
    • Add @cumulus/integration-tests/index.loadCollection() function
    • Add @cumulus/integration-tests/index.loadProvider() function
    • Add @cumulus/integration-tests/index.readJsonFilesFromDir() function
  • CUMULUS-1672

    • Add a tags input variable to the archive Terraform module
    • Add a tags input variable to the cumulus Terraform module
    • Add a tags input variable to the cumulus_ecs_service Terraform module
    • Add a tags input variable to the data-persistence Terraform module
    • Add a tags input variable to the distribution Terraform module
    • Add a tags input variable to the ingest Terraform module
    • Add a tags input variable to the s3-replicator Terraform module
  • CUMULUS-1707

    • Enable logrotate on ECS cluster
  • CUMULUS-1684

    • Add a @cumulus/aws-client/KMS library of KMS-related functions
    • Add @cumulus/aws-client/S3.getTextObject()
    • Add @cumulus/sftp-client package
    • Create ProviderSecretsMigration Lambda function
    • Create VerifyProviderSecretsMigration Lambda function
  • CUMULUS-1548

    • Add ability to put default Cumulus logs in Metrics' ELK stack
    • Add ability to add custom logs to Metrics' ELK Stack
  • CUMULUS-1702

    • When logs are sent to Metrics' ELK stack, the logs endpoints will return results from there
  • CUMULUS-1459

    • Async Operations are indexed in Elasticsearch
    • To index any existing async operations you'll need to perform an index from database function.
  • CUMULUS-1717

    • Add @cumulus/aws-client/deleteAndWaitForDynamoDbTableNotExists, which deletes a DynamoDB table and waits to ensure the table no longer exists
    • Added publishGranules Lambda to handle publishing granule messages to SNS when granule records are written to DynamoDB
    • Added @cumulus/api/models/Granule.storeGranulesFromCumulusMessage to store granules from a Cumulus message to DynamoDB
  • CUMULUS-1718

    • Added @cumulus/sf-sqs-report task to allow mid-workflow reporting updates.
    • Added stepfunction_event_reporter_queue_url and sf_sqs_report_task outputs to the cumulus module.
    • Added publishPdrs Lambda to handle publishing PDR messages to SNS when PDR records are written to DynamoDB.
    • Added @cumulus/api/models/Pdr.storePdrFromCumulusMessage to store PDRs from a Cumulus message to DynamoDB.
    • Added @cumulus/aws-client/parseSQSMessageBody to parse an SQS message body string into an object.
  • Ability to set custom backend API url in the archive module

    • Add api_url definition in tf-modules/cumulus/archive.tf
    • Add archive_api_url variable in tf-modules/cumulus/variables.tf
  • CUMULUS-1741

    • Added an optional elasticsearch_security_group_ids variable to the data-persistence Terraform module to allow additional security groups to be assigned to the Elasticsearch Domain.
  • CUMULUS-1752

    • Added @cumulus/integration-tests/api/distribution.invokeTEADistributionLambda to simulate a request to the Thin Egress App by invoking the Lambda and getting a response payload.
    • Added @cumulus/integration-tests/api/distribution.getTEARequestHeaders to generate necessary request headers for a request to the Thin Egress App
    • Added @cumulus/integration-tests/api/distribution.getTEADistributionApiFileStream to get a response stream for a file served by Thin Egress App
    • Added @cumulus/integration-tests/api/distribution.getTEADistributionApiRedirect to get a redirect response from the Thin Egress App
  • CUMULUS-1755

    • Added @cumulus/aws-client/CloudFormation.describeCfStack() to describe a Cloudformation stack
    • Added @cumulus/aws-client/CloudFormation.getCfStackParameterValues() to get multiple parameter values for a Cloudformation stack

Changed

  • CUMULUS-1725

    • Moved the logic that updates the granule files cache Dynamo table into its own Lambda function called granuleFilesCacheUpdater.
  • CUMULUS-1736

    • The collections model in the API package now determines the name of a collection based on the name property, rather than using dataType and then falling back to name.
    • The @cumulus/integration-tests.loadCollection() function no longer appends the postfix to the end of the collection's dataType.
    • The @cumulus/integration-tests.addCollections() function no longer appends the postfix to the end of the collection's dataType.
  • CUMULUS-1672

    • Add a retryOptions parameter to the @cumulus/aws-client/S3.headObject function, which will retry if the object being queried does not exist.
  • CUMULUS-1446

    • Mark the @cumulus/integration-tests/api.addCollectionApi() function as deprecated
    • Mark the @cumulus/integration-tests/index.listCollections() function as deprecated
    • Mark the @cumulus/integration-tests/index.listProviders() function as deprecated
    • Mark the @cumulus/integration-tests/index.rulesList() function as deprecated
  • CUMULUS-1672

    • Previously, the cumulus module defaulted to setting a Deployment = var.prefix tag on all resources that it managed. In this release, the cumulus module will now accept a tags input variable that defines the tags to be assigned to all resources that it manages.
    • Previously, the data-persistence module defaulted to setting a Deployment = var.prefix tag on all resources that it managed. In this release, the data-persistence module will now accept a tags input variable that defines the tags to be assigned to all resources that it manages.
    • Previously, the distribution module defaulted to setting a Deployment = var.prefix tag on all resources that it managed. In this release, the distribution module will now accept a tags input variable that defines the tags to be assigned to all resources that it manages.
    • Previously, the ingest module defaulted to setting a Deployment = var.prefix tag on all resources that it managed. In this release, the ingest module will now accept a tags input variable that defines the tags to be assigned to all resources that it manages.
    • Previously, the s3-replicator module defaulted to setting a Deployment = var.prefix tag on all resources that it managed. In this release, the s3-replicator module will now accept a tags input variable that defines the tags to be assigned to all resources that it manages.
  • CUMULUS-1684

    • Update the API package to encrypt provider credentials using KMS instead of using RSA keys stored in S3
  • CUMULUS-1717

    • Changed name of cwSfExecutionEventToDb Lambda to cwSfEventToDbRecords
    • Updated cwSfEventToDbRecords to write granule records to DynamoDB from the incoming Cumulus message
  • CUMULUS-1718

    • Renamed cwSfEventToDbRecords to sfEventSqsToDbRecords due to architecture change to being a consumer of an SQS queue of Step Function Cloudwatch events.
    • Updated sfEventSqsToDbRecords to write PDR records to DynamoDB from the incoming Cumulus message
    • Moved data-cookbooks/sns.md to data-cookbooks/ingest-notifications.md and updated it to reflect recent changes.
  • CUMULUS-1748

    • (S)FTP discovery tasks now use the provider-path as-is instead of forcing it to a relative path.
    • Improved error handling to catch permission denied FTP errors better and log them properly. Workflows will still fail encountering this error and we intend to consider that approach in a future ticket.
  • CUMULUS-1752

    • Moved class for parsing distribution events to its own file: @cumulus/api/lib/DistributionEvent.js
      • Updated DistributionEvent to properly parse S3 access logs generated by requests from the Thin Egress App
  • CUMULUS-1753 - Changes to @cumulus/ingest/HttpProviderClient.js:

    • Removed regex filter in HttpProviderClient.list() that was used to return only files with an extension between 1 and 4 characters long. HttpProviderClient.list() will now return all files linked from the HTTP provider host.
  • CUMULUS-1755

    • Updated the Thin Egress App module used in tf-modules/distribution/main.tf to build 61. See the release notes.
  • CUMULUS-1757

    • Update @cumulus/cmr-client CMRSearchConceptQueue to take optional cmrEnvironment parameter

Deprecated

  • CUMULUS-1684

    • Deprecate @cumulus/common/key-pair-provider/S3KeyPairProvider
    • Deprecate @cumulus/common/key-pair-provider/S3KeyPairProvider.encrypt()
    • Deprecate @cumulus/common/key-pair-provider/S3KeyPairProvider.decrypt()
    • Deprecate @cumulus/common/kms/KMS
    • Deprecate @cumulus/common/kms/KMS.encrypt()
    • Deprecate @cumulus/common/kms/KMS.decrypt()
    • Deprecate @cumulus/common/sftp.Sftp
  • CUMULUS-1717

    • Deprecate @cumulus/api/models/Granule.createGranulesFromSns
  • CUMULUS-1718

    • Deprecate @cumulus/sf-sns-report.
      • This task has been updated to always throw an error directing the user to use @cumulus/sf-sqs-report instead. This was done because there is no longer an SNS topic to which to publish, and no consumers to listen to it.
  • CUMULUS-1748

    • Deprecate @cumulus/ingest/util.normalizeProviderPath
  • CUMULUS-1752

    • Deprecate @cumulus/integration-tests/api/distribution.getDistributionApiFileStream
    • Deprecate @cumulus/integration-tests/api/distribution.getDistributionApiRedirect
    • Deprecate @cumulus/integration-tests/api/distribution.invokeApiDistributionLambda

Removed

  • CUMULUS-1684

    • Remove the deployment script that creates encryption keys and stores them to S3
  • CUMULUS-1768

    • Removed API endpoints stats/histogram and stats/average. All advanced stats needs should be acquired from Cloud Metrics or similarly configured ELK stack.

Fixed

  • Fix default values for urs_url in variables.tf files

    • Remove trailing / from default urs_url values.
  • CUMULUS-1610 - Add the Elasticsearch security group to the EC2 security groups

  • CUMULUS-1740 - cumulus_meta.workflow_start_time is now set in Cumulus messages

  • CUMULUS-1753 - Fixed @cumulus/ingest/HttpProviderClient.js to properly handle HTTP providers with:

    • Multiple link tags (e.g. <a>) per line of source code
    • Link tags in uppercase or lowercase (e.g. <A>)
    • Links with filepaths in the link target (e.g. <a href="/path/to/file.txt">). These files will be returned from HTTP file discovery as the file name only (e.g. file.txt).
  • CUMULUS-1768

    • Fix an issue in the stats endpoints in @cumulus/api to send back stats for the correct type
flamingbear
published 1.18.1-alpha.0 •

lfrederick
published 1.18.0 •

Changelog

Source

[v1.18.0] 2020-02-03

BREAKING CHANGES

  • CUMULUS-1686

    • ecs_cluster_instance_image_id is now a required variable of the cumulus module, instead of optional.
  • CUMULUS-1698

    • Change variable saml_launchpad_metadata_path to saml_launchpad_metadata_url in the tf-modules/cumulus Terraform module.
  • CUMULUS-1703

    • Remove the unused forceDownload option from the sync-granule tasks's config
    • Remove the @cumulus/ingest/granule.Discover class
    • Remove the @cumulus/ingest/granule.Granule class
    • Remove the @cumulus/ingest/pdr.Discover class
    • Remove the @cumulus/ingest/pdr.Granule class
    • Remove the @cumulus/ingest/parse-pdr.parsePdr function

Added

  • CUMULUS-1040

    • Added @cumulus/aws-client package to provide utilities for working with AWS services and the Node.js AWS SDK
    • Added @cumulus/errors package which exports error classes for use in Cumulus workflow code
    • Added @cumulus/integration-tests/sfnStep to provide utilities for parsing step function execution histories
  • CUMULUS-1102

    • Adds functionality to the @cumulus/api package for better local testing.
      • Adds data seeding for @cumulus/api's localAPI.
        • seed functions allow adding collections, executions, granules, pdrs, providers, and rules to a Localstack Elasticsearch and DynamoDB via addCollections, addExecutions, addGranules, addPdrs, addProviders, and addRules.
      • Adds eraseDataStack function to local API server code allowing resetting of local datastack for testing (ES and DynamoDB).
      • Adds optional parameters to the @cumulus/api bin serve to allow for launching the api without destroying the current data.
  • CUMULUS-1697

    • Added the @cumulus/tf-inventory package that provides command line utilities for managing Terraform resources in your AWS account
  • CUMULUS-1703

    • Add @cumulus/aws-client/S3.createBucket function
    • Add @cumulus/aws-client/S3.putFile function
    • Add @cumulus/common/string.isNonEmptyString function
    • Add @cumulus/ingest/FtpProviderClient class
    • Add @cumulus/ingest/HttpProviderClient class
    • Add @cumulus/ingest/S3ProviderClient class
    • Add @cumulus/ingest/SftpProviderClient class
    • Add @cumulus/ingest/providerClientUtils.buildProviderClient function
    • Add @cumulus/ingest/providerClientUtils.fetchTextFile function
  • CUMULUS-1731

    • Add new optional input variables to the Cumulus Terraform module to support TEA upgrade:
      • thin_egress_cookie_domain - Valid domain for Thin Egress App cookie
      • thin_egress_domain_cert_arn - Certificate Manager SSL Cert ARN for Thin Egress App if deployed outside NGAP/CloudFront
      • thin_egress_download_role_in_region_arn - ARN for reading of Thin Egress App data buckets for in-region requests
      • thin_egress_jwt_algo - Algorithm with which to encode the Thin Egress App JWT cookie
      • thin_egress_jwt_secret_name - Name of AWS secret where keys for the Thin Egress App JWT encode/decode are stored
      • thin_egress_lambda_code_dependency_archive_key - Thin Egress App - S3 Key of packaged python modules for lambda dependency layer
  • CUMULUS-1733

    • Add discovery-filtering operator doc to document previously undocumented functionality.
  • CUMULUS-1737

    • Added the cumulus-test-cleanup module to run a nightly cleanup on resources left over from the integration tests run from the example/spec directory.

Changed

  • CUMULUS-1102

    • Updates @cumulus/api/auth/testAuth to use JWT instead of random tokens.
    • Updates the default AMI for the ecs_cluster_instance_image_id.
  • CUMULUS-1622

    • Mutex class has been deprecated in @cumulus/common/concurrency and will be removed in a future release.
  • CUMULUS-1686

    • Changed ecs_cluster_instance_image_id to be a required variable of the cumulus module and removed the default value. The default was not available across accounts and regions, nor outside of NGAP and therefore not particularly useful.
  • CUMULUS-1688

    • Updated @cumulus/aws.receiveSQSMessages not to replace message.Body with a parsed object. This behavior was undocumented and confusing as received messages appeared to contradict AWS docs that state message.Body is always a string.
    • Replaced sf_watcher CloudWatch rule from cloudwatch-events.tf with an EventSourceMapping on sqs2sf mapped to the start_sf SQS queue (in event-sources.tf).
    • Updated sqs2sf with an EventSourceMapping handler and unit test.
  • CUMULUS-1698

    • Change variable saml_launchpad_metadata_path to saml_launchpad_metadata_url in the tf-modules/cumulus Terraform module.
    • Updated @cumulus/api/launchpadSaml to download launchpad IDP metadata from configured location when the metadata in s3 is not valid, and to work with updated IDP metadata and SAML response.
  • CUMULUS-1731

    • Upgrade the version of the Thin Egress App deployed by Cumulus to v48
      • Note: New variables available, see the 'Added' section of this changelog.

Fixed

  • CUMULUS-1664

    • Updated dbIndexer Lambda to remove hardcoded references to DynamoDB table names.
  • CUMULUS-1733

    • Fixed granule discovery recursion algorithm used in S/FTP protocols.

Removed

  • CUMULUS-1481
    • removed process config and output from PostToCmr as it was not required by the task nor downstream steps, and should still be in the output message's meta regardless.

Deprecated

  • CUMULUS-1040
    • Deprecated the following code. For cases where the code was moved into another package, the new code location is noted:
      • @cumulus/common/CloudFormationGateway -> @cumulus/aws-client/CloudFormationGateway
      • @cumulus/common/DynamoDb -> @cumulus/aws-client/DynamoDb
      • @cumulus/common/errors -> @cumulus/errors
      • @cumulus/common/StepFunctions -> @cumulus/aws-client/StepFunctions
      • All of the exported functions in @cumulus/commmon/aws (moved into @cumulus/aws-client), except:
        • @cumulus/common/aws/isThrottlingException -> @cumulus/errors/isThrottlingException
        • @cumulus/common/aws/improveStackTrace (not deprecated)
        • @cumulus/common/aws/retryOnThrottlingException (not deprecated)
      • @cumulus/common/sfnStep/SfnStep.parseStepMessage -> @cumulus/integration-tests/sfnStep/SfnStep.parseStepMessage
      • @cumulus/common/sfnStep/ActivityStep -> @cumulus/integration-tests/sfnStep/ActivityStep
      • @cumulus/common/sfnStep/LambdaStep -> @cumulus/integration-tests/sfnStep/LambdaStep
      • @cumulus/common/string/unicodeEscape -> @cumulus/aws-client/StepFunctions.unicodeEscape
      • @cumulus/common/util/setErrorStack -> @cumulus/aws-client/util/setErrorStack
      • @cumulus/ingest/aws/invoke -> @cumulus/aws-client/Lambda/invoke
      • @cumulus/ingest/aws/CloudWatch.bucketSize
      • @cumulus/ingest/aws/CloudWatch.cw
      • @cumulus/ingest/aws/ECS.ecs
      • @cumulus/ingest/aws/ECS
      • @cumulus/ingest/aws/Events.putEvent -> @cumulus/aws-client/CloudwatchEvents.putEvent
      • @cumulus/ingest/aws/Events.deleteEvent -> @cumulus/aws-client/CloudwatchEvents.deleteEvent
      • @cumulus/ingest/aws/Events.deleteTarget -> @cumulus/aws-client/CloudwatchEvents.deleteTarget
      • @cumulus/ingest/aws/Events.putTarget -> @cumulus/aws-client/CloudwatchEvents.putTarget
      • @cumulus/ingest/aws/SQS.attributes -> @cumulus/aws-client/SQS.getQueueAttributes
      • @cumulus/ingest/aws/SQS.deleteMessage -> @cumulus/aws-client/SQS.deleteSQSMessage
      • @cumulus/ingest/aws/SQS.deleteQueue -> @cumulus/aws-client/SQS.deleteQueue
      • @cumulus/ingest/aws/SQS.getUrl -> @cumulus/aws-client/SQS.getQueueUrlByName
      • @cumulus/ingest/aws/SQS.receiveMessage -> @cumulus/aws-client/SQS.receiveSQSMessages
      • @cumulus/ingest/aws/SQS.sendMessage -> @cumulus/aws-client/SQS.sendSQSMessage
      • @cumulus/ingest/aws/StepFunction.getExecutionStatus -> @cumulus/aws-client/StepFunction.getExecutionStatus
      • @cumulus/ingest/aws/StepFunction.getExecutionUrl -> @cumulus/aws-client/StepFunction.getExecutionUrl
flamingbear
published 1.17.0-alpha7 •

cumuluspublisher
published 1.17.0-alpha6 •

cumuluspublisher
published 1.17.0-alpha5 •

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