Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
cloudrail-si
Advanced tools
The CloudRail SI SDK for Node.JS, a simple, universal, unified API for the most popular cloud services
Integrate Multiple Services With Just One API
CloudRail is a free software library which abstracts multiple APIs from different providers into a single and universal interface.
Full documentation can be found at https://docs.cloudrail.com/
With CloudRail, you can easily integrate external APIs into your application. CloudRail is an abstracted interface that takes several services and then gives a developer-friendly API that uses common functions between all providers. This means that, for example, upload() works in exactly the same way for Dropbox as it does for Google Drive, OneDrive, and other Cloud Storage Services, and getEmail() works similarly the same way across all social networks.
Interface | Included Services |
---|---|
Cloud Storage | Dropbox, Google Drive, OneDrive, Box |
Social Profiles | Facebook, GitHub, Google+, LinkedIn, Slack, Twitter, Windows Live, Yahoo, Instagram |
Payment | PayPal, Stripe |
Maljet, Sendgrid | |
SMS | Twilio, Nexmo |
Point of Interest | Google Places, Foursquare, Yelp |
const services = require("cloudrail-si").services;
// let cs = new services.Box(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let cs = new services.OneDrive(context, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let cs = new services.GoogleDrive(context, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
let cs = new services.Dropbox(context, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
cs.createFolder("/TestFolder"); // <---
let fileStream = fs.createReadStream("UserData.csv");
let size = fs.statSync("UserData.csv").size;
cs.upload("/TestFolder/Data.csv", fileStream, size, false, (err) => { // <---
if (err) throw err;
console.log("Upload successfully finished");
});
const services = require("cloudrail-si").services;
// let profile = new services.GooglePlus(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let profile = new services.GitHub(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let profile = new services.Slack(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let profile = new services.Instagram(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// ...
let profile = new services.Facebook(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
profile.getFullName((err, fullName) => {
if (err) throw err;
console.log("User's full name is " + fullName);
});
profile.getEmail((err, email) => {
if (err) throw err;
console.log("User's email address is " + email);
});
const services = require("cloudrail-si").services;
const types = require("cloudrail-si").types;
// let payment = new services.Stripe(null, "[secretKey]");
let payment = new services.PayPal(null, true, "[clientIdentifier]", "[clientSecret]");
let source = new types.CreditCard(null, 6, 2021, "xxxxxxxxxxxxxxxx", "visa", "<FirstName>", "<LastName>", null);
payment.createCharge(500, "USD", source, (err, charge) => {
if (err) throw err;
console.log("Successfully charged " + charge.amount + " " + charge.currency);
});
const services = require("cloudrail-si").services;
// let email = new services.Mailjet(null, "[clientID]", "[clientSecret]");
let email = new services.Sendgrid(null, "[username]", "[password]");
email.sendEmail("info@cloudrail.com", "CloudRail", ["foo@bar.com", "bar@foo.com"], "Welcome", "Hello from CloudRail", null, null, null, (err) => {
if (err) throw err;
console.log("Email successfully sent");
});
const services = require("cloudrail-si").services;
// let sms = new services.Nexmo(null, "[clientIdentifier]", "[clientSecret]");
let sms = new services.Twilio(null, "[clientIdentifier]", "[clientSecret]");
sms.sendSMS("CloudRail", "+4912345678", "Hello from CloudRail", (err) => {
if (err) throw err;
console.log("SMS successfully sent");
});
const services = require("cloudrail-si").services;
// let poi = new services.Foursquare(null, "[clientID]", "[clientSecret]");
// let poi = new services.Yelp(null, "[consumerKey]", "[consumerSecret]", "[token]", "[tokenSecret]");
let poi = new services.GooglePlaces(null, "[apiKey]");
poi.getNearbyPOIs(49.4557091, 8.5279138, 1000, "restaurant", null, (err, pois) => {
if (err) throw err;
console.log("Amount of locations called 'restaurant' in a 1 km radius around the given coordinates: " + pois.length);
});
More interfaces are coming soon.
Consistent Interfaces: As functions work the same across all services, you can perform tasks between services simply.
Easy Authentication: CloudRail includes easy ways to authenticate, to remove one of the biggest hassles of coding for external APIs.
Switch services instantly: One line of code is needed to set up the service you are using. Changing which service is as simple as changing the name to the one you wish to use.
Simple Documentation: There is no searching around Stack Overflow for the answer. The CloudRail documentation at https://docs.cloudrail.com/ is regularly updated, clean, and simple to use.
No Maintenance Times: The CloudRail Libraries are updated when a provider changes their API.
Direct Data: Everything happens directly in the Library. No data ever passes a CloudRail server.
npm install cloudrail-si
(this only concerns Typescript users) The package includes an index.d.ts file. To use the typings provided, include services and types like so:
/// <reference path="node_modules/cloudrail-si/index.d.ts" />
import {PointsOfInterest} from "cloudrail-si/interfaces/PointsOfInterest";
import {Foursquare} from "cloudrail-si/services/Foursquare";
import {POI} from "cloudrail-si/types/POI";
let poi:PointsOfInterest = new Foursquare(null, "[clientID]", "[clientSecret]");
poi.getNearbyPOIs(49.4557091, 8.5279138, 1000, "restaurant", null, (err:Error, pois:POI[]) => {
if (err) console.log(err);
console.log("Amount of locations called 'restaurant' in a 1 km radius around the given coordinates: " + pois.length);
});
To keep updated with CloudRail, including any new providers that are added, just add your email address to https://cloudrail.com/updates/.
CloudRail is free to use. For all projects; commercial and non-commercial. We want APIs to be accessible to all developers. We want APIs to be easier to manage. This is only possible if there are free, powerful tools out there to do this. The only favor we are asking for, is to spread the word about this library. Thank you!
CloudRail also has enterprise licensing options. Please contact us for more information: support@cloudrail.com
CloudRail is also available for other platforms like Android, iOS and Java. You can find all libraries on https://cloudrail.github.io
Get in touch at any time by emailing us: support@cloudrail.com
or
Tag a question with cloudrail on StackOverflow
FAQs
The CloudRail SI SDK for Node.JS, a simple, universal, unified API for the most popular cloud services. Supports: AmazonS3, Box, Backblaze, Dropbox, Egnyte, Facebook, FacebookPage, Foursquare, GitHub, GoogleCloudPlatform, GoogleDrive, GooglePlaces, Google
The npm package cloudrail-si receives a total of 109 weekly downloads. As such, cloudrail-si popularity was classified as not popular.
We found that cloudrail-si 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.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.