cf-runtime

Cloud Foundry API module

npm install cf-runtime
461 downloads in the last day
8 189 downloads in the last week
24 279 downloads in the last month

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.

Installation

npm install cf-runtime

If cloned from github install dependencies:

npm install -d

Tests

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

Usage

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 !== undefined

// 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')

Service properties

  • name
  • label (service type)
  • version
  • host
  • port
  • username
  • password

Additional properties

Rabbitmq:

  • url
  • vhost

MongoDB:

  • db
  • url

Postgresql, Mysql, Redis:

  • database

Service clients

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

AMQP client

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

Mongodb client

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

Mysql client

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

Postgresql client

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}

Redis client

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

npm loves you