cf-runtime

Cloud Foundry API module

cf-runtime

cf-runtime is a Node.js module that provides API to Cloud Foundry platform. It provides easy access to Cloud Foundry application properties and services.

npm install cf-runtime

If cloned from github install dependencies:

npm install -d

Run basic tests:

npm test

To run integration tests copy services.conf.template to services.conf with specified services connection properties and run:

TESTS=integration npm test
var cf = require('cf-runtime')
var app = cf.CloudApp
 
// Check if application is running on Cloud Foundry 
 
app.runningInCloud
 
// Get application properties 
 
app.host
app.port
 
// Get the list of application service names 
 
app.serviceNames
 
// Obtain connection properties for single service of type Redis 
 
app.serviceProps.redis
 
// Obtain connection properties for service named 'redis-service-name' 
 
app.serviceProps['redis-service-name']
 
// Obtain the list of service names of specific type 
 
app.serviceNamesOfType.redis
 
// Check if service of the given type is available 
 
cf.RedisClient !== 
 
// Connect to a single service of type Redis 
 
var redisClient = cf.RedisClient.create()
 
// Connect to mysql service named 'redis-service-name' 
 
var redisClient = cf.RedisClient.createFromSvc('redis-service-name')
 
  • name
  • label (service type)
  • version
  • host
  • port
  • username
  • password

Rabbitmq:

  • url
  • vhost

MongoDB:

  • db
  • url

Postgresql, Mysql, Redis:

  • database

This is the list of Node.js modules that are used to provide connection to Cloud Foundry services:

Node module: amqp

Functions:

  • cf.AMQPClient.create([implOptions]) - creates and returns an amqp client instance connected to a single rabbitmq service
  • cf.AMQPClient.createFromSvc(name, [implOptions]) - creates and returns an amqp client instance connected to a rabbitmq service with the specified name

Parameters:

implOptions - optional {object} non-connection related implementation options

Returns: AMQP client instance

Node module: mongodb

Functions:

  • cf.MongoClient.create([options], callback) - creates a mongodb client instance connected to a single mongodb service and executes provided callback
  • cf.MongoClient.createFromSvc(name, [options], callback) - creates a mongodb client instance connected to a mongodb service with the specified name and executes provided callback

Parameters:

options - optional {object} non-connection related options callback - {function} connection callback

Returns: null

Node module: mysql

Functions:

  • cf.MysqlClient.create([options]) - creates and returns a mysql client instance connected to a single mysql service
  • cf.MysqlClient.createFromSvc(name, [options]) - creates and returns a mysql client instance connected to a mysql service with the specified name

Parameters:

options - optional {object} non-connection related options

Returns: Mysql client instance

Node module: pg

Functions:

  • cf.PGClient.create(callback) - creates a postgresql client instance connected to a single postgresql service and executes provided callback
  • cf.PGClient.createFromSvc(name, callback) - creates a postgresql client instance connected to a postgresql service with the specified name and executes provided callback

Parameters:

callback - {function} connection callback

Returns: {boolean}

Node module: redis

Functions:

  • cf.RedisClient.create([options]) - creates and returns a redis client instance connected to a single redis service
  • cf.RedisClient.createFromSvc(name, [options]) - creates and returns a redis client instance connected to a redis service with the specified name

Parameters:

options - optional {object} non-connection related options

Returns: Redis client instance