cf-runtime

0.0.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i cf-runtime

Weekly Downloads

2

Version

0.0.1

License

none

Last publish

Collaborators

  • mariash