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

@ibm-functions/composer

Package Overview
Dependencies
Maintainers
6
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ibm-functions/composer

Composer is an IBM Cloud Functions programming model for composing individual functions into larger applications.

  • 0.2.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
20
Maintainers
6
Weekly downloads
 
Created
Source

@ibm-functions/composer

Travis License Join
Slack

Composer is a new programming model from IBM Research for composing IBM Cloud Functions, built on Apache OpenWhisk. With Composer, developers can build even more serverless applications including using it for IoT, with workflow orchestration, conversation services, and devops automation, to name a few examples.

Programming compositions for IBM Cloud Functions is supported by a new developer tool called IBM Cloud Shell, or just Shell. Shell offers a CLI and graphical interface for fast, incremental, iterative, and local development of serverless applications. While we recommend using Shell, Shell is not required to work with compositions. Compositions may be managed using a combination of the Composer compose shell script (for deployment) and the OpenWhisk CLI (for configuration, invocation, and life-cycle management).

In contrast to earlier releases of Composer, a REDIS server is not required to run compositions. Composer now synthesizes OpenWhisk conductor actions to implement compositions. Compositions have all the attributes and capabilities of an action (e.g., default parameters, limits, blocking invocation, web export).

This repository includes:

Composer and Shell are currently available as IBM Research previews. As Composer and Shell continue to evolve, it may be necessary to redeploy existing compositions to take advantage of new capabilities. However existing compositions should continue to run fine without redeployment.

Installation

To install the composer module use the Node Package Manager:

npm -g install @ibm-functions/composer

We recommend to install the module globally (with -g option) so the compose command is added to the path. Otherwise, it can be found in the bin folder of the module installation.

Example

A composition is typically defined by means of a Javascript file as illustrated in samples/demo.js:

composer.if(
    composer.action('authenticate', { action: function main({ password }) { return { value: password === 'abc123' } } }),
    composer.action('success', { action: function main() { return { message: 'success' } } }),
    composer.action('failure', { action: function main() { return { message: 'failure' } } }))

Composer offers traditional control-flow concepts as methods. These methods are called combinators. This example composition composes three actions named authenticate, success, and failure using the composer.if combinator, which implements the usual conditional construct. It take three actions (or compositions) as parameters. It invokes the first one and, depending on the result of this invocation, invokes either the second or third action.

This composition includes the definitions of the three composed actions. If the actions are defined and deployed elsewhere, the composition code can be shorten to:

composer.if('authenticate', 'success', 'failure')

To deploy this composition use the compose command:

compose demo.js --deploy demo

The compose command synthesizes and deploy an action named demo that implements the composition. It also deploys the composed actions if definitions are provided for them.

The demo composition may be invoked like any action, for instance using the OpenWhisk CLI:

wsk action invoke demo -r -p password passw0rd
{
    "message": "failure"
}

Getting started

Videos

Blog posts

Contributions

We are looking forward to your feedback and criticism. We encourage you to join us on slack. File bugs and we will squash them.

We welcome contributions to Composer and Shell. See CONTRIBUTING.md.

Keywords

FAQs

Package last updated on 20 Mar 2018

Did you know?

Socket

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.

Install

Related posts

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