
Product
Introducing Socket Firewall Enterprise: Flexible, Configurable Protection for Modern Package Ecosystems
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.
push2cloud-cf-adapter-dormakaba
Advanced tools
This repository is part of the push2cloud project. For contribution guidelines, issues, and general documentation, visit the main push2cloud project page.
push2cloud-cf-adapter abstracts the cloud foundry api.
It's designed for use with Node.js and installable via npm install --save push2cloud-cf-adapter.
const cf = require('push2cloud-cf-adapter');
const api = cf({
api: process.env.CF_API ||Â 'https://api.lyra-836.appcloud.swisscom.com',
username: process.env.CF_USER,
password: process.env.CF_PWD,
org: process.env.CF_ORG,
space: process.env.CF_SPACE
});
// the callback way...
api.init((err, result) => {
api.pushApp({
name: 'temp-app',
path: '/path/to/sampleApp'
}, (err, app) => {
api.stageApp({
appGuid: app.metadata.guid
// or: name: 'temp-app'
}, (err) => {
api.startAppAndWaitForInstances({
appGuid: app.metadata.guid
// or: name: 'temp-app'
}, (err) => {
// ...
});
});
});
});
// or the promise way...
api.init()
.then((app) => {
return api.pushApp({
name: 'temp-app',
path: '/path/to/sampleApp'
});
})
.then((app) => {
return api.stageApp({
appGuid: app.metadata.guid
// or: name: 'temp-app'
});
})
.then(() => {
return api.startAppAndWaitForInstances({
appGuid: app.metadata.guid
// or: name: 'temp-app'
});
})
.then(() => {
// ...
});
The source is available for download from GitHub. Alternatively, you can install using npm:
npm install --save push2cloud-cf-adapter
You can then require() push2cloud-cf-adapter as normal:
const cf = require('push2cloud-cf-adapter');
Each asynchronous call can be done with classical callback style or with promise style.
createAppuploadApppushAppstageAppstartAppstopApprestartAppstartAppAndWaitForInstancesdeleteAppGeneral api methods.
Retrieves information of the current space. i.e. apps, services, service bindings, routes, domains, etc...
Arguments
callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
const cf = require('push2cloud-cf-adapter');
const api = cf({
api: 'https://the-url-to-the-cloud-foundry-api-endpoint',
username: 'my-funny-username',
password: 'my-very-secret-password',
org: 'the-cf-org',
space: 'the-cf-space',
rejectUnauthorized: true, // optional
maxRetries: 3, // optional
delay: 1000, // optional
delayFactor: 1 // optional
});
api.init((err, result) => {
console.log(result);
// {
// "apps": [
// {
// "name": "push2cloud-example-api-1.0.0",
// "unversionedName": "push2cloud-example-api",
// "guid": "cff85cc4-e217-47f0-b0e0-113d04e6e37d",
// "instances": 1,
// "memory": 512,
// "disk": 512,
// "state": "STARTED",
// "version": "1.0.0",
// "package_state": "STAGED"
// },
// {
// "name": "push2cloud-example-host-2.0.0",
// "unversionedName": "push2cloud-example-host",
// "guid": "9afc0b68-9004-4292-9284-6110bed72afb",
// "instances": 1,
// "memory": 512,
// "disk": 1024,
// "state": "STARTED",
// "version": "2.0.0",
// "package_state": "STAGED"
// }
// ],
// "serviceBindings": [
// {
// "service": "todo-db",
// "serviceInstanceGuid": "e0dc3f5e-7631-473e-ad3e-ebbf0549ad22",
// "app": "push2cloud-example-api-1.0.0",
// "unversionedName": "push2cloud-example-api",
// "appGuid": "cff85cc4-e217-47f0-b0e0-113d04e6e37d",
// "guid": "0d82e751-26ab-40b1-987a-8e1671b39c24"
// }
// ],
// "services": [
// {
// "name": "todo-db",
// "guid": "e0dc3f5e-7631-473e-ad3e-ebbf0549ad22",
// "type": "redis",
// "plan": "small"
// }
// ],
// "routes": [
// {
// "guid": "bd7cb2eb-f9fe-4b84-a7cd-1f43969e3ba9",
// "domain": "scapp.io",
// "domainGuid": "5f952bf2-618b-4584-b37e-92e406149285",
// "hostname": "push2cloud-example-host-iot-cf-test",
// "app": "push2cloud-example-host-2.0.0",
// "unversionedName": "push2cloud-example-host",
// "appGuid": "9afc0b68-9004-4292-9284-6110bed72afb"
// },
// {
// "guid": "47542223-1a74-45e9-8857-7baab1b29941",
// "domain": "scapp.io",
// "domainGuid": "5f952bf2-618b-4584-b37e-92e406149285",
// "hostname": "push2cloud-example-api-iot-cf-test",
// "app": "push2cloud-example-api-1.0.0",
// "unversionedName": "push2cloud-example-api",
// "appGuid": "cff85cc4-e217-47f0-b0e0-113d04e6e37d"
// }
// ],
// "envVars": [
// {
// "env": {
// "SYSTEM_VERSION": "1.0.0"
// },
// "name": "push2cloud-example-api-1.0.0",
// "unversionedName": "push2cloud-example-api"
// },
// {
// "env": {
// "SYSTEM_VERSION": "1.0.0",
// "PUSH2CLOUD_EXAMPLE_API_HOST": "https://push2cloud-example-api-iot-cf-test.scapp.io"
// },
// "name": "push2cloud-example-host-2.0.0",
// "unversionedName": "push2cloud-example-host"
// }
// ],
// "domains": [
// {
// "guid": "5f952bf2-618b-4584-b37e-92e406149285",
// "name": "scapp.io"
// },
// {
// "guid": "dc478cd0-5185-4a48-a964-1e53d868daf2",
// "name": "applicationcloud.io"
// }
// ]
// }
});
Retrieves information of the cloud foundry platform.
Arguments
callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.getInfo((err, result) => {
console.log(result);
// {
// "name": "",
// "build": "",
// "support": "https://developer.swisscom.com/contact",
// "version": 0,
// "description": "Cloud Foundry provided by Swisscom",
// "authorization_endpoint": "https://login.lyra-836.appcloud.swisscom.com",
// "token_endpoint": "https://uaa.lyra-836.appcloud.swisscom.com",
// "min_cli_version": null,
// "min_recommended_cli_version": null,
// "api_version": "2.52.0",
// "app_ssh_endpoint": "ssh.lyra-836.appcloud.swisscom.com:2222",
// "app_ssh_host_key_fingerprint": "6d:d2:8c:09:64:b6:fc:2b:50:3c:a9:cb:2e:be:d4:a7",
// "app_ssh_oauth_client": "ssh-proxy",
// "logging_endpoint": "wss://loggregator.lyra-836.appcloud.swisscom.com:443",
// "doppler_logging_endpoint": "wss://doppler.lyra-836.appcloud.swisscom.com:443"
// }
});
Will be emitted when an api request will retry.
Arguments
fn(obj) - A function which is called when an api request will retry.Example
api.stats.on('retry', (obj) => {
console.log(obj);
// {
// "error": null,
// "response": { "statusCode": "500" /* rest of the response object */ },
// "result": {
// "code": 10011,
// "description": "Database error",
// "error_code": "CF-DatabaseError"
// },
// "attempt": 1,
// "infos": {
// "method": "POST",
// "uri": "/v2/service_instances",
// "json": {
// "name": "my-db",
// "space_guid": "7d8bf5be-a793-472b-8a84-78b04cc03864",
// "service_plan_guid": "0ad5b617-0a32-4a24-ba24-216f191ab9ef",
// "parameters": {},
// "tags": []
// },
// "qs": { "accepts_incomplete": true },
// "baseUrl": "https://api.lyra-836.appcloud.swisscom.com",
// "rejectUnauthorized": true,
// "headers": { "Authorization": "bearer eyJ..." }
// },
// "reason": "Database error"
// }
});
You can attach you own retryHandler for your target.
Arguments
fn(options) - A function or an array of funcitons which is called to verify if the failed request should be retried. Should return true or a string to trigger a retry.Examples
api.attachRetryHandler((options) => {
// const err = options.error;
// const response = options.response;
const result = options.result;
const infos = options.infos;
// const attempt = options.attempt;
if (infos.uri.indexOf('/service_bindings') >= 0) {
if (result && result.error_code && result.error_code === 'UnknownError') {
return result.description || 'An unknown error occurred';
}
}
if (infos.uri.indexOf('/service_instances') >= 0) {
if (result && result.code === 10011) {
return result.error_description;
}
}
});
api.attachRetryHandler([
(options) => {
// const err = options.error;
// const response = options.response;
const result = options.result;
const infos = options.infos;
// const attempt = options.attempt;
if (infos.uri.indexOf('/service_bindings') >= 0) {
if (result && result.error_code && result.error_code === 'UnknownError') {
return result.description || 'An unknown error occurred';
}
}
},
(options) => {
// const err = options.error;
// const response = options.response;
const result = options.result;
const infos = options.infos;
// const attempt = options.attempt;
if (infos.uri.indexOf('/service_instances') >= 0) {
if (result && result.code === 10011) {
return result.error_description;
}
}
}
]);
App related api methods.
Creates an app.
Arguments
options - An options containing:
name - The app name.buildpack - Optional Buildpack to build the app. 3 options:
command - Optional The command to start an app after it is staged, maximum length: 4096 (e.g. 'rails s -p $PORT' or 'java com.org.Server $PORT').env - Optional Object containing key/value pairs of all the environment variables to run in your app. Does not include any system or service variables.disk - Optional The maximum amount of disk available to an instance of an app. i.e. 256MB, 1G, 256, 1024memory - Optional The amount of memory each instance should have. i.e. 256MB, 1G, 256, 1024instances - Optional The number of instances of the app to run. To ensure optimal availability, ensure there are at least 2 instances.dockerImage - Optional Name of the Docker image containing the app.enableSSH - Optional Enable SSHing into the app. Supported for Diego only. false if SSH is disabled globally or on the space, true if enabled for bothhealthCheckType - Optional Type of health check to perform. 'port' or 'process'healthCheckTimeout - Optional Timeout for health checking of an staged app when starting upcallback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.createApp({
name: 'temp-app'
}, (err, result) => {});
Uploads an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.path - The path to the app on your filesystem.tmpZipPath - Optional Custom temporary path to save the zip file. Default is path + '.zip.tmp'.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.uploadApp({
path: '/path/to/sampleApp'
}, (err, result) => {});
Creates and uploads an app.
Arguments
options - See combined options argument of createApp and uploadApp.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.pushApp({
name: 'temp-app',
path: '/path/to/sampleApp'
}, (err, result) => {});
Stages an app. Creates a droplet so the effective start of that app will be much faster.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.stageTimeout - Optional Will return if staging duration is longer than that value in seconds. Default is 300.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.stageApp({
name: 'temp-app'
}, (err, result) => {});
Starts an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.startApp({
name: 'temp-app'
}, (err, result) => {});
Stops an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.stopApp({
name: 'temp-app'
}, (err, result) => {});
Restarts an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.restartApp({
name: 'temp-app'
}, (err, result) => {});
Starts an app and waits for all instances to run stable.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.startTimeout - Optional Will return if starting duration is longer than that value in seconds. Default is 30.interval - Optional The interval in seconds to wait between checking the app instance state. Default is 3.timeout - Optional Will return if starting duration of a single instance is longer than that value in seconds. Default is 30.gracePeriod - Optional Period to check and wait for the app instances not crashing. Default is 40.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.startAppAndWaitForInstances({
name: 'temp-app'
}, (err, result) => {});
Deletes an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or name are mandatory but not both.name - Optional The app name. appGuid or name are mandatory but not both.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.deleteApp({
name: 'temp-app'
}, (err, result) => {});
Route related api methods.
Creates a route.
Arguments
options - An options containing:
domainGuid - Optional The app guid. domainGuid or domain are mandatory but not both.domain - Optional The app name. domainGuid or domain are mandatory but not both.hostname - The host portion of the route. Required for shared-domains.path - The path for a route as raw text. 1) Paths must be between 2 and 128 characters 2) Paths must start with a forward slash "/" 3) Paths must not contain a "?"port - The port of the route. Supported for domains of TCP router groups only.generatePort - Set to true to generate a random port. Defaults to false. Supported for domains for TCP router groups only. Takes precedence over manually specified port.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.createRoute({
hostname: 'my-app',
domain: 'applicationcloud.io'
}, (err, result) => {});
Associates a route to an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or app are mandatory but not both.app - Optional The app name. appGuid or app are mandatory but not both.routeGuid - Optional The route guid. routeGuid or domain and hostname are mandatory but not all.domain - Optional The app name. routeGuid or domain and hostname are mandatory but not all.hostname - Optional The host portion of the route. Required for shared-domains. routeGuid or domain and hostname are mandatory but not all.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.associateRoute({
app: 'temp-app',
hostname: 'my-app',
domain: 'applicationcloud.io'
}, (err, result) => {});
Disassociates a route from an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or app are mandatory but not both.app - Optional The app name. appGuid or app are mandatory but not both.routeGuid - Optional The route guid. routeGuid or domain and hostname are mandatory but not all.domain - Optional The app name. routeGuid or domain and hostname are mandatory but not all.hostname - Optional The host portion of the route. Required for shared-domains. routeGuid or domain and hostname are mandatory but not all.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.disassociateRoute({
app: 'temp-app',
hostname: 'my-app',
domain: 'applicationcloud.io'
}, (err, result) => {});
Deletes a route.
Arguments
options - An options containing:
routeGuid - Optional The route guid. routeGuid or domain and hostname are mandatory but not all.domain - Optional The app name. routeGuid or domain and hostname are mandatory but not all.hostname - Optional The host portion of the route. Required for shared-domains. routeGuid or domain and hostname are mandatory but not all.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.deleteRoute({
app: 'temp-app',
hostname: 'my-app',
domain: 'applicationcloud.io'
}, (err, result) => {});
Service related api methods.
Creates a service instance.
Arguments
options - An options containing:
name - The service instance name.type - The service type.plan - The service plan.parameters - Optional Arbitrary parameters to pass along to the service broker. Must be an object.tags - Optional An array of strings for the service instance. Max characters: 2048callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.createServiceInstance({
name: 'my-db',
type: 'mongodb',
plan: 'small'
}, (err, result) => {});
Binds a service instance to an app.
Arguments
options - An options containing:
appGuid - Optional The app guid. appGuid or app are mandatory but not both.app - Optional The app name. appGuid or app are mandatory but not both.service - Optional The service instance name. serviceInstanceGuid or service are mandatory but not both.serviceInstanceGuid - Optional The service instance guid. serviceInstanceGuid or service are mandatory but not both.parameters - Optional Arbitrary parameters to pass along to the service broker. Must be an object.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.bindService({
app: 'temp-app',
service: 'my-db'
}, (err, result) => {});
Unbinds a service instance from an app.
Arguments
options - An options containing:
app - Optional The app name. serviceBindingGuid or app and service` are mandatory but not all.service - Optional The service instance name. serviceBindingGuid or app and service` are mandatory but not all.serviceBindingGuid - Optional serviceBindingGuid or app and service` are mandatory but not all.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.unbindService({
app: 'temp-app',
service: 'my-db'
}, (err, result) => {});
Deletes a service instance.
Arguments
options - An options containing:
name - Optional The service instance name. serviceInstanceGuid or name are mandatory but not both.serviceInstanceGuid - Optional The service instance guid. serviceInstanceGuid or name are mandatory but not both.callback(err, result) - A callback which is called when function has finished, or an error occurs.Example
api.deleteServiceInstance({
app: 'temp-app',
service: 'my-db'
}, (err, result) => {});
FAQs
abstracts cloud foundry api
We found that push2cloud-cf-adapter-dormakaba demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.