Watson Pattern Explorer Custom Node RED Nodes

Register
Submit a solution
The challenge is finished.

Challenge Overview

Watson Pattern Explorer Custom Node RED Nodes Contest Specification

1.     Project Overview

1.1     System Description

The goal is to produce a proof of concept pattern explorer application using Node RED technology. The application should take in data from the Watson Engagement Advisor Instance, run it through a series of processing steps and provide access to the processed data.

1.2     Competition Task Overview.

1.2.1 Develop credentials node
    

Develop a custom node that can hold multiple bluemix service credentials. Each credential would consist of  service name, username and password. This node should use the cf cli tool to periodically fetch bluemix credentials for a user and cache those credentials. Make all configured credentials available in the global context (context.global.credentials). 

Existing Watson service nodes don't expect the credentials to be available in the global context, so we need to set them up manually. In the constructor of the credentials node, iterate over all available nodes (using RED.nodes.eachNode), filter nodes with type string that starts with watson-*, and force set the credentials for that node using RED.nodes.addCredentials(noded.id,{username:uname,password:pwd}). Skip forcing the credentials if the node already has credentials configured by the user in the flow editor. Add a flag to enable/disable this action.

CF Cli tool is available at https://www.ng.bluemix.net/docs/cli/downloads.html

To get a list of all services use "cf services"

Then for each service use "cf service-keys <service instance name>"

Finaly to get credentials for a service name use "cf service-keys <service instance name> <credential name>"

Credentials node should require bluemix account username/password as mandatory configuration parameters. Those will be used to login with the cf tool.

1.2     Common

Detailed logging is needed for all the nodes. Log should be pushed to console (use this.log, this.warn, this.err). In case of errors/exceptions throw them with “node.error(detailedMessage,source)”

1.3     Verification

For verification, create a simple flow with a few watson nodes and verify that credentials are set properly and the nodes can be used with preconfigured credentials.

1.4     Technology overview

 



Final Submission Guidelines

Submit a zip file with all the deliverables.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051167