Binding credentials

Page last updated:

A bindable service returns credentials that an application can consume in response to the cf bind API call. Cloud Foundry writes these credentials to the VCAP_SERVICES environment variable. In some cases, buildpacks can write a subset of these credentials to other environment variables that frameworks might need.

Choose from the following list of credential fields, if possible, although you can provide additional fields as needed. Refer to the Using Bound Services section of the Managing Service Instances with the CLI topic for information about how these credentials are consumed.

If you provide a service that supports a connection string, provide the uri key for buildpacks and application libraries to use.

Credentials Description
uri Connection string of the form DB-TYPE://USERNAME:PASSWORD@HOSTNAME:PORT/NAME, where DB-TYPE is a type of database such as mysql, postgres, mongodb, or amqp.
hostname FQDN of the server host
port Port of the server host
name Name of the service instance
vhost Name of the messaging server virtual host - a replacement for a name specific to AMQP providers
username Server user
password Server password

The following is an example output of ENV['VCAP_SERVICES'].

Depending on the types of databases you are using, each database might return different credentials.

VCAP_SERVICES=
{
  cleardb: [
    {
      name: "cleardb-1",
      label: "cleardb",
      plan: "spark",
      credentials: {
        name: "ad_c6f4446532610ab",
        hostname: "us-cdbr-east-03.cleardb.com",
        port: "3306",
        username: "b5d435f40dd2b2",
        password: "ebfc00ac",
        uri: "mysql://b5d435f40dd2b2:[email protected]:3306/ad_c6f4446532610ab",
        jdbcUrl: "jdbc:mysql://b5d435f40dd2b2:[email protected]:3306/ad_c6f4446532610ab"
      }
    }
  ],
  cloudamqp: [
    {
      name: "cloudamqp-6",
      label: "cloudamqp",
      plan: "lemur",
      credentials: {
        uri: "amqp://ksvyjmiv:[email protected]/ksvyjmiv"
      }
    }
    {
      name: "cloudamqp-9dbc6",
      label: "cloudamqp",
      plan: "lemur",
      credentials: {
        uri: "amqp://vhuklnxa:[email protected]/vhuklnxa"
      }
    }
  ],
  rediscloud: [
    {
      name: "rediscloud-1",
      label: "rediscloud",
      plan: "20mb",
      credentials: {
        port: "6379",
        host: "pub-redis-6379.us-east-1-2.3.ec2.redislabs.com",
        password: "1M5zd3QfWi9nUyya"
      }
    },
  ],
}
Create a pull request or raise an issue on the source for this page in GitHub