Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
The jsforce npm package is a powerful library for interacting with Salesforce from Node.js. It provides a comprehensive set of tools for working with Salesforce's REST API, SOAP API, Bulk API, and more. This makes it an excellent choice for developers looking to integrate Salesforce with their Node.js applications.
Authentication
This feature allows you to authenticate with Salesforce using a username, password, and security token. Once authenticated, you can perform various operations on Salesforce data.
const jsforce = require('jsforce');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
console.log('User ID: ' + userInfo.id);
console.log('Org ID: ' + userInfo.organizationId);
});
Querying Data
This feature allows you to query Salesforce data using SOQL (Salesforce Object Query Language). The example demonstrates how to fetch Account records.
const jsforce = require('jsforce');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
conn.query('SELECT Id, Name FROM Account', function(err, result) {
if (err) { return console.error(err); }
console.log('Total records: ' + result.totalSize);
console.log('Fetched records: ' + result.records.length);
});
});
CRUD Operations
This feature allows you to perform CRUD (Create, Read, Update, Delete) operations on Salesforce objects. The example shows how to create a new Account record.
const jsforce = require('jsforce');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
conn.sobject('Account').create({ Name: 'New Account' }, function(err, ret) {
if (err || !ret.success) { return console.error(err, ret); }
console.log('Created record id: ' + ret.id);
});
});
Bulk API
This feature allows you to perform bulk operations on Salesforce data, which is useful for handling large volumes of records efficiently. The example demonstrates how to insert multiple Account records using the Bulk API.
const jsforce = require('jsforce');
const conn = new jsforce.Connection();
conn.login('username@example.com', 'password+securityToken', function(err, userInfo) {
if (err) { return console.error(err); }
const records = [{ Name: 'Account 1' }, { Name: 'Account 2' }];
conn.bulk.load('Account', 'insert', records, function(err, rets) {
if (err) { return console.error(err); }
for (let i = 0; i < rets.length; i++) {
if (rets[i].success) {
console.log('Created record id: ' + rets[i].id);
} else {
console.log('Error: ' + rets[i].errors.join(', '));
}
}
});
});
The node-salesforce package is another library for interacting with Salesforce from Node.js. It provides similar functionalities to jsforce, such as authentication, querying, and CRUD operations. However, jsforce is generally considered more feature-rich and better maintained.
The nforce package is a lightweight Node.js wrapper for the Salesforce REST API. It offers basic functionalities like authentication, querying, and CRUD operations. While it is simpler and easier to use, it lacks some of the advanced features provided by jsforce, such as support for the Bulk API and SOAP API.
Salesforce API Library for JavaScript applications (both on web browser and Node.js)
JSforce (f.k.a. Node-Salesforce) is an isomorphic JavaScript Library utilizing Salesforce's API: It works both in the browser and with Node.js.
It capsulates the access to various APIs provided by Salesforce in asynchronous JavaScript function calls.
It also has command line interface (CLI) which gives interactive console (REPL), so you can learn the usage without hassle.
Supported Salesforce APIs are the following:
See documentation in http://jsforce.github.io/ .
See Releases.
See license (MIT License).
If you have any questions first file it on issues before contacting authors via e-mail.
In order to run tests you will need a Salesforce Developer Org
You will also need to install the JsforceTestSuite package, which can be done by running:
SF_USERNAME=myusername SF_PASSWORD=password+securityToken ./test/bin/org-setup
You may need to run this more then once if you encounter timeouts or dropped connections/
Finally, to run the tests simply do:
SF_USERNAME=myusername SF_PASSWORD=password+securityToken npm run test:node
SF_USERNAME=myusername SF_PASSWORD=password+securityToken npm run test:browser
Alternatively, if you are using sfdx
and have a default DevHub set up, you can create a scratch org with all the test setup ready by running ./test/bin/org-setup-sfdx.sh
(it's a bash script and probably won't help most windows users)
Your contributions are welcome: both by reporting issues on GitHub issues or pull-requesting patches.
If you want to implement any additional features, to be added to JSforce to our master branch, which may or may not be merged please first check current opening issues with milestones and confirm whether the feature is on road map or not.
If your feature implementation is brand-new or fixing unsupposed bugs in the library's test cases, please include additional test codes in the test/
directory.
FAQs
Salesforce API Library for JavaScript
The npm package jsforce receives a total of 491,121 weekly downloads. As such, jsforce popularity was classified as popular.
We found that jsforce demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers 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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.