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

@cumulus/common

Package Overview
Dependencies
Maintainers
9
Versions
214
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

1.14.0

Diff

Changelog

Source

[v1.14.0] - 2019-08-22

PLEASE NOTE

  • We have encountered transient lambda service errors in our integration testing. Please handle transient service errors following these guidelines. The workflows in the example/workflows folder have been updated with retries configured for these errors.

  • CUMULUS-799 added additional IAM permissions to support reading CloudWatch and API Gateway, so you will have to redeploy your IAM stack.

  • CUMULUS-800 Several items:

    • Delete existing API Gateway stages: To allow enabling of API Gateway logging, Cumulus now creates and manages a Stage resource during deployment. Before upgrading Cumulus, it is necessary to delete the API Gateway stages on both the Backend API and the Distribution API. Instructions are included in the documentation under Delete API Gateway Stages.

    • Set up account permissions for API Gateway to write to CloudWatch: In a one time operation for your AWS account, to enable CloudWatch Logs for API Gateway, you must first grant the API Gateway permission to read and write logs to CloudWatch for your account. The AmazonAPIGatewayPushToCloudWatchLogs managed policy (with an ARN of arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs) has all the required permissions. You can find a simple how to in the documentation under Enable API Gateway Logging.

    • Configure API Gateway to write logs to CloudWatch To enable execution logging for the distribution API set config.yaml apiConfigs.distribution.logApigatewayToCloudwatch value to true. More information Enable API Gateway Logs

    • Configure CloudWatch log delivery: It is possible to deliver CloudWatch API execution and access logs to a cross-account shared AWS::Logs::Destination. An operator does this by adding the key logToSharedDestination to the config.yml at the default level with a value of a writable log destination. More information in the documentation under Configure CloudWatch Logs Delivery.

    • Additional Lambda Logging: It is now possible to configure any lambda to deliver logs to a shared subscriptions by setting logToSharedDestination to the ARN of a writable location (either an AWS::Logs::Destination or a Kinesis Stream) on any lambda config. Documentation for Lambda Log Subscriptions

    • Configure S3 Server Access Logs: If you are running Cumulus in an NGAP environment you may configure S3 Server Access Logs to be delivered to a shared bucket where the Metrics Team will ingest the logs into their ELK stack. Contact the Metrics team for permission and location.

  • CUMULUS-1368 The Cumulus distribution API has been deprecated and is being replaced by ASF's Thin Egress App. By default, the distribution API will not deploy. Please follow the instructions for deploying and configuring Thin Egress.

To instead continue to deploy and use the legacy Cumulus distribution app, add the following to your config.yml:

deployDistributionApi: true

If you deploy with no distribution app your deployment will succeed but you may encounter errors in your workflows, particularly in the MoveGranule task.

  • CUMULUS-1418 Users who are packaging the CMA in their Lambdas outside of Cumulus may need to update their Lambda configuration. Please see BREAKING CHANGES below for details.

Added

  • CUMULUS-642

  • CUMULUS-1418

    • Adds usage docs/testing of lambda layers (introduced in PR1125), updates Core example tasks to use the updated cumulus-ecs-task and a CMA layer instead of kes CMA injection.
    • Added Terraform module to publish CMA as layer to user account.
  • PR1125 - Adds layers config option to support deploying Lambdas with layers

  • PR1128 - Added useXRay config option to enable AWS X-Ray for Lambdas.

  • CUMULUS-1345

    • Adds new variables to the app deployment under cmr.
    • cmrEnvironment values are SIT, UAT, or OPS with UAT as the default.
    • cmrLimit and cmrPageSize have been added as configurable options.
  • CUMULUS-1273

    • Added lambda function EmsProductMetadataReport to generate EMS Product Metadata report
  • CUMULUS-1226

    • Added API endpoint elasticsearch/index-from-database to index to an Elasticsearch index from the database for recovery purposes and elasticsearch/indices-status to check the status of Elasticsearch indices via the API.
  • CUMULUS-824

    • Added new Collection parameter reportToEms to configure whether the collection is reported to EMS
  • CUMULUS-1357

    • Added new BackendApi endpoint ems that generates EMS reports.
  • CUMULUS-1241

    • Added information about queues with maximum execution limits defined to default workflow templates (meta.queueExecutionLimits)
  • CUMULUS-1311

    • Added @cumulus/common/message with various message parsing/preparation helpers
  • CUMULUS-812

    • Added support for limiting the number of concurrent executions started from a queue. See the data cookbook for more information.
  • CUMULUS-1337

    • Adds cumulus.stackName value to the instanceMetadata endpoint.
  • CUMULUS-1368

    • Added cmrGranuleUrlType to the @cumulus/move-granules task. This determines what kind of links go in the CMR files. The options are distribution, s3, or none, with the default being distribution. If there is no distribution API being used with Cumulus, you must set the value to s3 or none.
  • Added packages/s3-replicator Terraform module to allow same-region s3 replication to metrics bucket.

  • CUMULUS-1392

    • Added tf-modules/report-granules Terraform module which processes granule ingest notifications received via SNS and stores granule data to a database. The module includes:
      • SNS topic for publishing granule ingest notifications
      • Lambda to process granule notifications and store data
      • IAM permissions for the Lambda
      • Subscription for the Lambda to the SNS topic
  • CUMULUS-1393

    • Added tf-modules/report-pdrs Terraform module which processes PDR ingest notifications received via SNS and stores PDR data to a database. The module includes:
      • SNS topic for publishing PDR ingest notifications
      • Lambda to process PDR notifications and store data
      • IAM permissions for the Lambda
      • Subscription for the Lambda to the SNS topic
    • Added unit tests for @cumulus/api/models/pdrs.createPdrFromSns()
  • CUMULUS-1400

    • Added tf-modules/report-executions Terraform module which processes workflow execution information received via SNS and stores it to a database. The module includes:
      • SNS topic for publishing execution data
      • Lambda to process and store execution data
      • IAM permissions for the Lambda
      • Subscription for the Lambda to the SNS topic
    • Added @cumulus/common/sns-event which contains helpers for SNS events:
      • isSnsEvent() returns true if event is from SNS
      • getSnsEventMessage() extracts and parses the message from an SNS event
      • getSnsEventMessageObject() extracts and parses message object from an SNS event
    • Added @cumulus/common/cloudwatch-event which contains helpers for Cloudwatch events:
      • isSfExecutionEvent() returns true if event is from Step Functions
      • isTerminalSfStatus() determines if a Step Function status from a Cloudwatch event is a terminal status
      • getSfEventStatus() gets the Step Function status from a Cloudwatch event
      • getSfEventDetailValue() extracts a Step Function event detail field from a Cloudwatch event
      • getSfEventMessageObject() extracts and parses Step Function detail object from a Cloudwatch event
  • CUMULUS-1429

    • Added tf-modules/data-persistence Terraform module which includes resources for data persistence in Cumulus:
      • DynamoDB tables
      • Elasticsearch with optional support for VPC
      • Cloudwatch alarm for number of Elasticsearch nodes
  • CUMULUS-1379 CMR Launchpad Authentication

    • Added launchpad configuration to @cumulus/deployment/app/config.yml, and cloudformation templates, workflow message, lambda configuration, api endpoint configuration
    • Added @cumulus/common/LaunchpadToken and @cumulus/common/launchpad to provide methods to get token and validate token
    • Updated lambdas to use Launchpad token for CMR actions (ingest and delete granules)
    • Updated deployment documentation and added instructions to setup CMR client for Launchpad authentication

Changed

  • CUMULUS-1232

    • Added retries to update @cumulus/cmr-client updateToken()
  • CUMULUS-1245 CUMULUS-795

    • Added additional ems configuration parameters for sending the ingest reports to EMS
    • Added functionality to send daily ingest reports to EMS
  • CUMULUS-1241

    • Removed the concept of "priority levels" and added ability to define a number of maximum concurrent executions per SQS queue
    • Changed mapping of Cumulus message properties for the sqs2sfThrottle lambda:
      • Queue name is read from cumulus_meta.queueName
      • Maximum executions for the queue is read from meta.queueExecutionLimits[queueName], where queueName is cumulus_meta.queueName
    • Changed sfSemaphoreDown lambda to only attempt decrementing semaphores when:
      • the message is for a completed/failed/aborted/timed out workflow AND
      • cumulus_meta.queueName exists on the Cumulus message AND
      • An entry for the queue name (cumulus_meta.queueName) exists in the the object meta.queueExecutionLimits on the Cumulus message
  • CUMULUS-1338

    • Updated sfSemaphoreDown lambda to be triggered via AWS Step Function Cloudwatch events instead of subscription to sfTracker SNS topic
  • CUMULUS-1311

    • Updated @cumulus/queue-granules to set cumulus_meta.queueName for queued execution messages
    • Updated @cumulus/queue-pdrs to set cumulus_meta.queueName for queued execution messages
    • Updated sqs2sfThrottle lambda to immediately decrement queue semaphore value if dispatching Step Function execution throws an error
  • CUMULUS-1362

    • Granule processingStartTime and processingEndTime will be set to the execution start time and end time respectively when there is no sync granule or post to cmr task present in the workflow
  • CUMULUS-1400

    • Deprecated @cumulus/ingest/aws/getExecutionArn. Use @cumulus/common/aws/getExecutionArn instead.

Fixed

  • CUMULUS-1439

    • Fix bug with rule.logEventArn deletion on Kinesis rule update and fix unit test to verify
  • CUMULUS-796

    • Added production information (collection ShortName and Version, granuleId) to EMS distribution report
    • Added functionality to send daily distribution reports to EMS
  • CUMULUS-1319

    • Fixed a bug where granule ingest times were not being stored to the database
  • CUMULUS-1356

    • The Collection model's delete method now removes the specified item from the collection config store that was inserted by the create method. Previously, this behavior was missing.
  • CUMULUS-1374

    • Addressed audit concerns (https://www.npmjs.com/advisories/782) in api package

BREAKING CHANGES

Changed

  • CUMULUS-1418
    • Adding a default cmaDir key to configuration will cause CUMULUS_MESSAGE_ADAPTER_DIR to be set by default to /opt for any Lambda not setting useCma to true, or explicitly setting the CMA environment variable. In lambdas that package the CMA independently of the Cumulus packaging. Lambdas manually packaging the CMA should have their Lambda configuration updated to set the CMA path, or alternately if not using the CMA as a Lambda layer in this deployment set cmaDir to ./cumulus-message-adapter.

Removed

  • CUMULUS-1337

    • Removes the S3 Access Metrics package added in CUMULUS-799
  • PR1130

    • Removed code deprecated since v1.11.1:
      • Removed @cumulus/common/step-functions. Use @cumulus/common/StepFunctions instead.
      • Removed @cumulus/api/lib/testUtils.fakeFilesFactory. Use @cumulus/api/lib/testUtils.fakeFileFactory instead.
      • Removed @cumulus/cmrjs/cmr functions: searchConcept, ingestConcept, deleteConcept. Use the functions in @cumulus/cmr-client instead.
      • Removed @cumulus/ingest/aws.getExecutionHistory. Use @cumulus/common/StepFunctions.getExecutionHistory instead.
lfrederick
published 1.13.4 •

Changelog

Source

[v1.13.4] - 2019-07-29

  • CUMULUS-1411 - Fix deployment issue when using a template override
lfrederick
published 1.13.3 •

Changelog

Source

[v1.13.3] - 2019-07-26

  • CUMULUS-1345 Full backport of CUMULUS-1345 features - Adds new variables to the app deployment under cmr.
    • cmrEnvironment values are SIT, UAT, or OPS with UAT as the default.
    • cmrLimit and cmrPageSize have been added as configurable options.
lfrederick
published 1.13.2 •

Changelog

Source

[v1.13.2] - 2019-07-25

  • Re-release of v1.13.1 to fix broken npm packages.
lfrederick
published 1.13.1 •

Changelog

Source

[v1.13.1] - 2019-07-22

  • CUMULUS-1374 - Resolve audit compliance with lodash version for api package subdependency
  • CUMULUS-1412 - Resolve audit compliance with googleapi package
  • CUMULUS-1345 - Backported CMR environment setting in getUrl to address immediate user need. CMR_ENVIRONMENT can now be used to set the CMR environment to OPS/SIT
cumuluspublisher
published 1.13.0 •

Changelog

Source

[v1.13.0] - 2019-5-20

PLEASE NOTE

CUMULUS-802 added some additional IAM permissions to support ECS autoscaling, so you will have to redeploy your IAM stack. As a result of the changes for CUMULUS-1193, CUMULUS-1264, and CUMULUS-1310, you must delete your existing stacks (except IAM) before deploying this version of Cumulus. If running Cumulus within a VPC and extended downtime is acceptable, we recommend doing this at the end of the day to allow AWS backend resources and network interfaces to be cleaned up overnight.

BREAKING CHANGES

  • CUMULUS-1228

    • The default AMI used by ECS instances is now an NGAP-compliant AMI. This will be a breaking change for non-NGAP deployments. If you do not deploy to NGAP, you will need to find the AMI ID of the most recent Amazon ECS-optimized AMI, and set the ecs.amiid property in your config. Instructions for finding the most recent NGAP AMI can be found using these instructions.
  • CUMULUS-1310

    • Database resources (DynamoDB, ElasticSearch) have been moved to an independent db stack. Migrations for this version will need to be user-managed. (e.g. elasticsearch and dynamoDB). Order of stack deployment is iam -> db -> app.
    • All stacks can now be deployed using a single config.yml file, i.e.: kes cf deploy --kes-folder app --template node_modules/@cumulus/deployment/[iam|db|app] [...] Backwards-compatible. For development, please re-run npm run bootstrap to build new kes overrides. Deployment docs have been updated to show how to deploy a single-config Cumulus instance.
    • params have been moved: Nest params fields under app, db or iam to override all Parameters for a particular stack's cloudformation template. Backwards-compatible with multi-config setups.
    • stackName and stackNameNoDash have been retired. Use prefix and prefixNoDash instead.
    • The iams section in app/config.yml IAM roles has been deprecated as a user-facing parameter, unless your IAM role ARNs do not match the convention shown in @cumulus/deployment/app/config.yml
    • The vpc.securityGroup will need to be set with a pre-existing security group ID to use Cumulus in a VPC. Must allow inbound HTTP(S) (Port 443).
  • CUMULUS-1212

    • @cumulus/post-to-cmr will now fail if any granules being processed are missing a metadata file. You can set the new config option skipMetaCheck to true to pass post-to-cmr without a metadata file.
  • CUMULUS-1232

    • @cumulus/sync-granule will no longer silently pass if no checksum data is provided. It will use input from the granule object to:
      • Verify checksum if checksumType and checksumValue are in the file record OR a checksum file is provided (throws InvalidChecksum on fail), else log warning that no checksum is available.
      • Then, verify synced S3 file size if file.size is in the file record (throws UnexpectedFileSize on fail), else log warning that no file size is available.
      • Pass the step.
  • CUMULUS-1264

    • The Cloudformation templating and deployment configuration has been substantially refactored.
      • CumulusApiDefault nested stack resource has been renamed to CumulusApiDistribution
      • CumulusApiV1 nested stack resource has been renamed to CumulusApiBackend
    • The urs: true config option for when defining your lambdas (e.g. in lambdas.yml) has been deprecated. There are two new options to replace it:
      • urs_redirect: 'token': This will expose a TOKEN_REDIRECT_ENDPOINT environment variable to your lambda that references the /token endpoint on the Cumulus backend API
      • urs_redirect: 'distribution': This will expose a DISTRIBUTION_REDIRECT_ENDPOINT environment variable to your lambda that references the /redirect endpoint on the Cumulus distribution API
  • CUMULUS-1193

    • The elasticsearch instance is moved behind the VPC.
    • Your account will need an Elasticsearch Service Linked role. This is a one-time setup for the account. You can follow the instructions to use the AWS console or AWS CLI here or use the following AWS CLI command: aws iam create-service-linked-role --aws-service-name es.amazonaws.com
  • CUMULUS-802

    • ECS maxInstances must be greater than minInstances. If you use defaults, no change is required.
  • CUMULUS-1269

    • Brought Cumulus data models in line with CNM JSON schema:
      • Renamed file object fileType field to type
      • Renamed file object fileSize field to size
      • Renamed file object checksumValue field to checksum where not already done.
      • Added ancillary and linkage type support to file objects.

Added

  • CUMULUS-799

    • Added an S3 Access Metrics package which will take S3 Server Access Logs and write access metrics to CloudWatch
  • CUMULUS-1242 - Added sqs2sfThrottle lambda. The lambda reads SQS messages for queued executions and uses semaphores to only start new executions if the maximum number of executions defined for the priority key (cumulus_meta.priorityKey) has not been reached. Any SQS messages that are read but not used to start executions remain in the queue.

  • CUMULUS-1240

    • Added sfSemaphoreDown lambda. This lambda receives SNS messages and for each message it decrements the semaphore used to track the number of running executions if:
      • the message is for a completed/failed workflow AND
      • the message contains a level of priority (cumulus_meta.priorityKey)
    • Added sfSemaphoreDown lambda as a subscriber to the sfTracker SNS topic
  • CUMULUS-1265

    • Added apiConfigs configuration option to configure API Gateway to be private
    • All internal lambdas configured to run inside the VPC by default
    • Removed references to NoVpc lambdas from documentation and example folder.
  • CUMULUS-802

    • Adds autoscaling of ECS clusters
    • Adds autoscaling of ECS services that are handling StepFunction activities

Changed

  • Updated @cumulus/ingest/http/httpMixin.list() to trim trailing spaces on discovered filenames

  • CUMULUS-1310

    • Database resources (DynamoDB, ElasticSearch) have been moved to an independent db stack. This will enable future updates to avoid affecting database resources or requiring migrations. Migrations for this version will need to be user-managed. (e.g. elasticsearch and dynamoDB). Order of stack deployment is iam -> db -> app.
    • All stacks can now be deployed using a single config.yml file, i.e.: kes cf deploy --kes-folder app --template node_modules/@cumulus/deployment/[iam|db|app] [...] Backwards-compatible. Please re-run npm run bootstrap to build new kes overrides. Deployment docs have been updated to show how to deploy a single-config Cumulus instance.
    • params fields should now be nested under the stack key (i.e. app, db or iam) to provide Parameters for a particular stack's cloudformation template, for use with single-config instances. Keys must match the name of the deployment package folder (app, db, or iam). Backwards-compatible with multi-config setups.
    • stackName and stackNameNoDash have been retired as user-facing config parameters. Use prefix and prefixNoDash instead. This will be used to create stack names for all stacks in a single-config use case. stackName may still be used as an override in multi-config usage, although this is discouraged. Warning: overriding the db stack's stackName will require you to set dbStackName in your app/config.yml. This parameter is required to fetch outputs from the db stack to reference in the app stack.
    • The iams section in app/config.yml IAM roles has been retired as a user-facing parameter, unless your IAM role ARNs do not match the convention shown in @cumulus/deployment/app/config.yml In that case, overriding iams in your own config is recommended.
    • iam and db cloudformation.yml file names will have respective prefixes (e.g iam.cloudformation.yml).
    • Cumulus will now only attempt to create reconciliation reports for buckets of the private, public and protected types.
    • Cumulus will no longer set up its own security group. To pass a pre-existing security group for in-VPC deployments as a parameter to the Cumulus template, populate vpc.securityGroup in config.yml. This security group must allow inbound HTTP(S) traffic (Port 443). SSH traffic (Port 22) must be permitted for SSH access to ECS instances.
    • Deployment docs have been updated with examples for the new deployment model.
  • CUMULUS-1236

    • Moves access to public files behind the distribution endpoint. Authentication is not required, but direct http access has been disallowed.
  • CUMULUS-1223

    • Adds unauthenticated access for public bucket files to the Distribution API. Public files should be requested the same way as protected files, but for public files a redirect to a self-signed S3 URL will happen without requiring authentication with Earthdata login.
  • CUMULUS-1232

    • Unifies duplicate handling in ingest/granule.handleDuplicateFile for maintainability.
    • Changed ingest/granule.ingestFile and move-granules/index.moveFileRequest to use new function.
    • Moved file versioning code to ingest/granule.moveGranuleFileWithVersioning
    • ingest/granule.verifyFile now also tests file.size for verification if it is in the file record and throws UnexpectedFileSize error for file size not matching input.
    • ingest/granule.verifyFile logs warnings if checksum and/or file size are not available.
  • CUMULUS-1193

    • Moved reindex CLI functionality to an API endpoint. See API docs
  • CUMULUS-1207

    • No longer disable lambda event source mappings when disabling a rule

Fixed

  • Updated Lerna publish script so that published Cumulus packages will pin their dependencies on other Cumulus packages to exact versions (e.g. 1.12.1 instead of ^1.12.1)

  • CUMULUS-1203

    • Fixes IAM template's use of intrinsic functions such that IAM template overrides now work with kes
  • CUMULUS-1268

    • Deployment will not fail if there are no ES alarms or ECS services
cumuluspublisher
published 1.12.1 •

Changelog

Source

[v1.12.1] - 2019-4-8

mhuffnagle
published 1.12.0 •

Changelog

Source

[v1.12.0] - 2019-4-4

Note: There was an issue publishing 1.12.0. Upgrade to 1.12.1.

BREAKING CHANGES

  • CUMULUS-1139

    • granule.applyWorkflow uses the new-style granule record as input to workflows.
  • CUMULUS-1171

    • Fixed provider handling in the API to make it consistent between protocols. NOTE: This is a breaking change. When applying this upgrade, users will need to:
      1. Disable all workflow rules
      2. Update any http or https providers so that the host field only contains a valid hostname or IP address, and the port field contains the provider port.
      3. Perform the deployment
      4. Re-enable workflow rules
  • CUMULUS-1176:

    • @cumulus/move-granules input expectations have changed. @cumulus/files-to-granules is a new intermediate task to perform input translation in the old style. See the Added and Changed sections of this release changelog for more information.
  • CUMULUS-670

    • The behavior of ParsePDR and related code has changed in this release. PDRs with FILE_TYPEs that do not conform to the PDR ICD (+ TGZ) (https://cdn.earthdata.nasa.gov/conduit/upload/6376/ESDS-RFC-030v1.0.pdf) will fail to parse.
  • CUMULUS-1208

    • The granule object input to @cumulus/queue-granules will now be added to ingest workflow messages as is. In practice, this means that if you are using @cumulus/queue-granules to trigger ingest workflows and your granule objects input have invalid properties, then your ingest workflows will fail due to schema validation errors.

Added

  • CUMULUS-777

    • Added new cookbook entry on configuring Cumulus to track ancillary files.
  • CUMULUS-1183

    • Kes overrides will now abort with a warning if a workflow step is configured without a corresponding lambda configuration
  • CUMULUS-1223

    • Adds convenience function @cumulus/common/bucketsConfigJsonObject for fetching stack's bucket configuration as an object.
  • CUMULUS-853

    • Updated FakeProcessing example lambda to include option to generate fake browse
    • Added feature documentation for ancillary metadata export, a new cookbook entry describing a workflow with ancillary metadata generation(browse), and related task definition documentation
  • CUMULUS-805

    • Added a CloudWatch alarm to check running ElasticSearch instances, and a CloudWatch dashboard to view the health of ElasticSearch
    • Specify AWS_REGION in .env to be used by deployment script
  • CUMULUS-803

    • Added CloudWatch alarms to check running tasks of each ECS service, and add the alarms to CloudWatch dashboard
  • CUMULUS-670

    • Added Ancillary Metadata Export feature (see https://nasa.github.io/cumulus/docs/features/ancillary_metadata for more information)
    • Added new Collection file parameter "fileType" that allows configuration of workflow granule file fileType
  • CUMULUS-1184 - Added kes logging output to ensure we always see the state machine reference before failures due to configuration

  • CUMULUS-1105 - Added a dashboard endpoint to serve the dashboard from an S3 bucket

  • CUMULUS-1199 - Moves s3credentials endpoint from the backend to the distribution API.

  • CUMULUS-666

    • Added @api/endpoints/s3credentials to allow EarthData Login authorized users to retrieve temporary security credentials for same-region direct S3 access.
  • CUMULUS-671

    • Added @packages/integration-tests/api/distribution/getDistributionApiS3SignedUrl() to return the S3 signed URL for a file protected by the distribution API
  • CUMULUS-672

    • Added cmrMetadataFormat and cmrConceptId to output for individual granules from @cumulus/post-to-cmr. cmrMetadataFormat will be read from the cmrMetadataFormat generated for each granule in @cumulus/cmrjs/publish2CMR()
    • Added helpers to @packages/integration-tests/api/distribution:
      • getDistributionApiFileStream() returns a stream to download files protected by the distribution API
      • getDistributionFileUrl() constructs URLs for requesting files from the distribution API
  • CUMULUS-1185 @cumulus/api/models/Granule.removeGranuleFromCmrByGranule to replace @cumulus/api/models/Granule.removeGranuleFromCmr and use the Granule UR from the CMR metadata to remove the granule from CMR

  • CUMULUS-1101

    • Added new @cumulus/checksum package. This package provides functions to calculate and validate checksums.
    • Added new checksumming functions to @cumulus/common/aws: calculateS3ObjectChecksum and validateS3ObjectChecksum, which depend on the checksum package.
  • CUMULUS-1171

    • Added @cumulus/common API documentation to packages/common/docs/API.md
    • Added an npm run build-docs task to @cumulus/common
    • Added @cumulus/common/string#isValidHostname()
    • Added @cumulus/common/string#match()
    • Added @cumulus/common/string#matches()
    • Added @cumulus/common/string#toLower()
    • Added @cumulus/common/string#toUpper()
    • Added @cumulus/common/URLUtils#buildURL()
    • Added @cumulus/common/util#isNil()
    • Added @cumulus/common/util#isNull()
    • Added @cumulus/common/util#isUndefined()
    • Added @cumulus/common/util#negate()
  • CUMULUS-1176

    • Added new @cumulus/files-to-granules task to handle converting file array output from cumulus-process tasks into granule objects. Allows simplification of @cumulus/move-granules and @cumulus/post-to-cmr, see Changed section for more details.
  • CUMULUS-1151 Compare the granule holdings in CMR with Cumulus' internal data store

  • CUMULUS-1152 Compare the granule file holdings in CMR with Cumulus' internal data store

Changed

  • CUMULUS-1216 - Updated @cumulus/ingest/granule/ingestFile to download files to expected staging location.

  • CUMULUS-1208 - Updated @cumulus/ingest/queue/enqueueGranuleIngestMessage() to not transform granule object passed to it when building an ingest message

  • CUMULUS-1198 - @cumulus/ingest no longer enforces any expectations about whether provider_path contains a leading slash or not.

  • CUMULUS-1170

    • Update scripts and docs to use npm instead of yarn
    • Use package-lock.json files to ensure matching versions of npm packages
    • Update CI builds to use npm ci instead of npm install
  • CUMULUS-670

    • Updated ParsePDR task to read standard PDR types+ (+ tgz as an external customer requirement) and add a fileType to granule-files on Granule discovery
    • Updated ParsePDR to fail if unrecognized type is used
    • Updated all relevant task schemas to include granule->files->filetype as a string value
    • Updated tests/test fixtures to include the fileType in the step function/task inputs and output validations as needed
    • Updated MoveGranules task to handle incoming configuration with new "fileType" values and to add them as appropriate to the lambda output.
    • Updated DiscoverGranules step/related workflows to read new Collection file parameter fileType that will map a discovered file to a workflow fileType
    • Updated CNM parser to add the fileType to the defined granule file fileType on ingest and updated integration tests to verify/validate that behavior
    • Updated generateEcho10XMLString in cmr-utils.js to use a map/related library to ensure order as CMR requires ordering for their online resources.
    • Updated post-to-cmr task to appropriately export CNM filetypes to CMR in echo10/UMM exports
  • CUMULUS-1139 - Granules stored in the API contain a files property. That schema has been greatly simplified and now better matches the CNM format.

    • The name property has been renamed to fileName.
    • The filepath property has been renamed to key.
    • The checksumValue property has been renamed to checksum.
    • The path property has been removed.
    • The url_path property has been removed.
    • The filename property (which contained an s3:// URL) has been removed, and the bucket and key properties should be used instead. Any requests sent to the API containing a granule.files[].filename property will be rejected, and any responses coming back from the API will not contain that filename property.
    • A source property has been added, which is a URL indicating the original source of the file.
    • @cumulus/ingest/granule.moveGranuleFiles() no longer includes a filename field in its output. The bucket and key fields should be used instead.
  • CUMULUS-672

    • Changed @cumulus/integration-tests/api/EarthdataLogin.getEarthdataLoginRedirectResponse to @cumulus/integration-tests/api/EarthdataLogin.getEarthdataAccessToken. The new function returns an access response from Earthdata login, if successful.
    • @cumulus/integration-tests/cmr/getOnlineResources now accepts an object of options, including cmrMetadataFormat. Based on the cmrMetadataFormat, the function will correctly retrieve the online resources for each metadata format (ECHO10, UMM-G)
  • CUMULUS-1101

    • Moved @cumulus/common/file/getFileChecksumFromStream into @cumulus/checksum, and renamed it to generateChecksumFromStream. This is a breaking change for users relying on @cumulus/common/file/getFileChecksumFromStream.
    • Refactored @cumulus/ingest/Granule to depend on new common/aws checksum functions and remove significantly present checksumming code.
      • Deprecated @cumulus/ingest/granule.validateChecksum. Replaced with @cumulus/ingest/granule.verifyFile.
      • Renamed granule.getChecksumFromFile to granule.retrieveSuppliedFileChecksumInformation to be more accurate.
    • Deprecated @cumulus/common/aws.checksumS3Objects. Use @cumulus/common/aws.calculateS3ObjectChecksum instead.
  • CUMULUS-1171

    • Fixed provider handling in the API to make it consistent between protocols. Before this change, FTP providers were configured using the host and port properties. HTTP providers ignored port and protocol, and stored an entire URL in the host property. Updated the API to only accept valid hostnames or IP addresses in the provider.host field. Updated ingest code to properly build HTTP and HTTPS URLs from provider.protocol, provider.host, and provider.port.
    • The default provider port was being set to 21, no matter what protocol was being used. Removed that default.
  • CUMULUS-1176

    • @cumulus/move-granules breaking change: Input to move-granules is now expected to be in the form of a granules object (i.e. { granules: [ { ... }, { ... } ] }); For backwards compatibility with array-of-files outputs from processing steps, use the new @cumulus/files-to-granules task as an intermediate step. This task will perform the input translation. This change allows move-granules to be simpler and behave more predictably. config.granuleIdExtraction and config.input_granules are no longer needed/used by move-granules.
    • @cumulus/post-to-cmr: config.granuleIdExtraction is no longer needed/used by post-to-cmr.
  • CUMULUS-1174

    • Better error message and stacktrace for S3KeyPairProvider error reporting.

Fixed

  • CUMULUS-1218 Reconciliation report will now scan only completed granules.
  • @cumulus/api files and granules were not getting indexed correctly because files indexing was failing in db-indexer
  • @cumulus/deployment A bug in the Cloudformation template was preventing the API from being able to be launched in a VPC, updated the IAM template to give the permissions to be able to run the API in a VPC

Deprecated

  • @cumulus/api/models/Granule.removeGranuleFromCmr, instead use @cumulus/api/models/Granule.removeGranuleFromCmrByGranule
  • @cumulus/ingest/granule.validateChecksum, instead use @cumulus/ingest/granule.verifyFile
  • @cumulus/common/aws.checksumS3Objects, instead use @cumulus/common/aws.calculateS3ObjectChecksum
  • @cumulus/cmrjs: getGranuleId and getCmrFiles are deprecated due to changes in input handling.
cumuluspublisher
published 1.11.3 •

Changelog

Source

[v1.11.3] - 2019-3-5

Added

  • CUMULUS-1187 - Added @cumulus/ingest/granule/duplicateHandlingType() to determine how duplicate files should be handled in an ingest workflow

Fixed

  • CUMULUS-1187 - workflows not respecting the duplicate handling value specified in the collection
  • Removed refreshToken schema requirement for OAuth
cumuluspublisher
published 1.11.2 •

Changelog

Source

[v1.11.2] - 2019-2-15

Added

  • CUMULUS-1169
    • Added a @cumulus/common/StepFunctions module. It contains functions for querying the AWS StepFunctions API. These functions have the ability to retry when a ThrottlingException occurs.
    • Added @cumulus/common/aws.retryOnThrottlingException(), which will wrap a function in code to retry on ThrottlingExceptions.
    • Added @cumulus/common/test-utils.throttleOnce(), which will cause a function to return a ThrottlingException the first time it is called, then return its normal result after that.
  • CUMULUS-1103 Compare the collection holdings in CMR with Cumulus' internal data store
  • CUMULUS-1099 Add support for UMMG JSON metadata versions > 1.4.
    • If a version is found in the metadata object, that version is used for processing and publishing to CMR otherwise, version 1.4 is assumed.
  • CUMULUS-678
    • Added support for UMMG json v1.4 metadata files. reconcileCMRMetadata added to @cumulus/cmrjs to update metadata record with new file locations. @cumulus/common/errors adds two new error types CMRMetaFileNotFound and InvalidArgument. @cumulus/common/test-utils adds new function randomId to create a random string with id to help in debugging. @cumulus/common/BucketsConfig adds a new helper class BucketsConfig for working with bucket stack configuration and bucket names. @cumulus/common/aws adds new function s3PutObjectTagging as a convenience for the aws s3().putObjectTagging function. @cumulus/cmrjs Adds: - isCMRFile - Identify an echo10(xml) or UMMG(json) metadata file. - metadataObjectFromCMRFile Read and parse CMR XML file from s3. - updateCMRMetadata Modify a cmr metadata (xml/json) file with updated information. - publish2CMR Posts XML or UMMG CMR data to CMR service. - reconcileCMRMetadata Reconciles cmr metadata file after a file moves.
  • Adds some ECS and other permissions to StepRole to enable running ECS tasks from a workflow
  • Added Apache logs to cumulus api and distribution lambdas
  • CUMULUS-1119 - Added @cumulus/integration-tests/api/EarthdataLogin.getEarthdataLoginRedirectResponse helper for integration tests to handle login with Earthdata and to return response from redirect to Cumulus API
  • CUMULUS-673 Added @cumulus/common/file/getFileChecksumFromStream to get file checksum from a readable stream

Fixed

  • CUMULUS-1123
    • Cloudformation template overrides now work as expected

Changed

  • CUMULUS-1169

    • Deprecated the @cumulus/common/step-functions module.
    • Updated code that queries the StepFunctions API to use the retry-enabled functions from @cumulus/common/StepFunctions
  • CUMULUS-1121

    • Schema validation is now strongly enforced when writing to the database. Additional properties are not allowed and will result in a validation error.
  • CUMULUS-678 tasks/move-granules simplified and refactored to use functionality from cmrjs. ingest/granules.moveGranuleFiles now just moves granule files and returns a list of the updated files. Updating metadata now handled by @cumulus/cmrjs/reconcileCMRMetadata. move-granules.updateGranuleMetadata refactored and bugs fixed in the case of a file matching multiple collection.files.regexps. getCmrXmlFiles simplified and now only returns an object with the cmrfilename and the granuleId. @cumulus/test-processing - test processing task updated to generate UMM-G metadata

  • CUMULUS-1043

    • @cumulus/api now uses express as the API engine.
    • All @cumulus/api endpoints on ApiGateway are consolidated to a single endpoint the uses {proxy+} definition.
    • All files under packages/api/endpoints along with associated tests are updated to support express's request and response objects.
    • Replaced environment variables internal, bucket and systemBucket with system_bucket.
    • Update @cumulus/integration-tests to work with updated cumulus-api express endpoints
  • @cumulus/integration-tests - buildAndExecuteWorkflow and buildWorkflow updated to take a meta param to allow for additional fields to be added to the workflow meta

  • CUMULUS-1049 Updated Retrieve Execution Status API in @cumulus/api: If the execution doesn't exist in Step Function API, Cumulus API returns the execution status information from the database.

  • CUMULUS-1119

    • Renamed DISTRIBUTION_URL environment variable to DISTRIBUTION_ENDPOINT
    • Renamed DEPLOYMENT_ENDPOINT environment variable to DISTRIBUTION_REDIRECT_ENDPOINT
    • Renamed API_ENDPOINT environment variable to TOKEN_REDIRECT_ENDPOINT

Removed

  • Functions deprecated before 1.11.0:
    • @cumulus/api/models/base: static Manager.createTable() and static Manager.deleteTable()
    • @cumulus/ingest/aws/S3
    • @cumulus/ingest/aws/StepFunction.getExecution()
    • @cumulus/ingest/aws/StepFunction.pullEvent()
    • @cumulus/ingest/consumer.Consume
    • @cumulus/ingest/granule/Ingest.getBucket()

Deprecated

@cmrjs/ingestConcept, instead use the CMR object methods. @cmrjs/CMR.ingestGranule or @cmrjs/CMR.ingestCollection @cmrjs/searchConcept, instead use the CMR object methods. @cmrjs/CMR.searchGranules or @cmrjs/CMR.searchCollections @cmrjs/deleteConcept, instead use the CMR object methods. @cmrjs/CMR.deleteGranule or @cmrjs/CMR.deleteCollection

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