![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@cumulus/cumulus-message-adapter-js
Advanced tools
Cumulus is a cloud-based data ingest, archive, distribution and management prototype for NASA's future Earth science data streams.
Read the Cumulus Documentation
The Cumulus Message Adapter is a library that adapts incoming messages in the Cumulus protocol to a format more easily consumable by Cumulus tasks, invokes the tasks, and then adapts their response back to the Cumulus message protocol to be sent to the next task.
The cumulus-message-adapter-js can be installed via Node Package Manager (NPM) and the package is located here.
The package can be added to your project by running npm install @cumulus/cumulus-message-adapter-js --save
.
In order to use the Cumulus Message Adapter, you will need to create two methods in your task module: a handler function and a business logic function.
The handler function is a standard Lambda handler function which takes three
parameters (as specified by AWS): event
, context
, and callback
.
The business logic function is where the actual work of your task occurs. It
should take two parameters: nestedEvent
and context
.
The nestedEvent
object contains two keys:
input
- the task's input, typically the payload
of the message,
produced at runtimeconfig
- the task's configuration, with any templated variables
resolvedThe context
parameter is the standard Lambda context as passed by AWS.
The return value of the business logic function will be placed in the
payload
of the resulting Cumulus message.
Expectations for input, config, and return values are all defined by the task, and should be well documented. Tasks should thoughtfully consider their inputs and return values, as breaking changes may have cascading effects on tasks throughout a workflow. Configuration changes are slightly less impactful, but must be communicated to those using the task.
The Cumulus Message adapter for Javascript provides one method:
runCumulusTask
. It takes five parameters:
taskFunction
- the function containing your business logic (as described
above)cumulusMessage
- the event passed by Lambda, and should be a Cumulus
Messagecontext
- the Lambda contextcallback
- the callback passed by Lambdaschemas
- JSON object with the locations of the task schemasThe schemas
JSON should contain input:
, output:
, and config:
with strings for each location. If the schema locations are not specified, the message adapter will look for schemas in a schemas directory at the root level for the files: input.json, output.json, or config.json. If the schema is not specified or missing, schema validation will not be performed.
const cumulusMessageAdapter = require('@cumulus/cumulus-message-adapter-js');
function myBusinessLogic(nestedEvent, context) {
console.log('Hello, example!');
return { answer: 42 };
}
// The handler function should rarely, if ever, contain more than this line
function handler(event, context, callback) {
cumulusMessageAdapter.runCumulusTask(myBusinessLogic, event, context, callback, schemas);
}
exports.handler = handler;
Tasks that use this library are just standard AWS Lambda tasks. Information on creating release packages is available here.
For documentation on how to utilize this package in a Cumulus Deployment, view the Cumulus Workflow Documenation.
There are two environment variables that can be used with this library:
CUMULUS_MESSAGE_ADAPTER_DISABLED=true
CUMULUS_MESSAGE_ADAPTER_DIR
To run the tests for this package, run npm run lint && npm test
This approach has a few major advantages:
meta
and cumulus_meta
that are owned internally and may therefore
be broken in future updates. To gain access to fields in these structures,
tasks must be passed the data explicitly in the workflow configuration.meta
. Cumulus owns cumulus_meta
. Tasks define their own config
,
input
, and output
formats.[v2.3.0] 2025-01-24
FAQs
Cumulus message adapter
The npm package @cumulus/cumulus-message-adapter-js receives a total of 388 weekly downloads. As such, @cumulus/cumulus-message-adapter-js popularity was classified as not popular.
We found that @cumulus/cumulus-message-adapter-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.