Salesforce install auth
Skill jeremylongshore/claude-code-plugins-plus-skills/skills/.curated/salesforce-install-auth
425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill salesforce-install-authAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
'Install and configure Salesforce SDK/CLI authentication with jsforce or Salesforce CLI.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.0 KB, as published. Nobody here has run it
Salesforce Install & Auth
Overview
Set up Salesforce connectivity using jsforce (Node.js) or simple-salesforce (Python), and configure one of three OAuth 2.0 authentication flows.
Prerequisites
- Node.js 18+ or Python 3.10+
- A Salesforce org (Developer Edition free at developer.salesforce.com)
- Connected App configured in Setup > App Manager > New Connected App
- OAuth scopes:
api,refresh_token,offline_access
Instructions
Step 1: Install SDK
# Node.js — jsforce (most popular SF client, 3M+ weekly downloads)
npm install jsforce
# Python — simple-salesforce
pip install simple-salesforce
# Salesforce CLI (for metadata, deployment, scratch orgs)
npm install -g @salesforce/cli
Step 2: Choose Authentication Flow
| Flow | Use Case | Requires Browser? |
|---|---|---|
| Username-Password | Dev/test scripts | No |
| JWT Bearer | CI/CD, server-to-server | No |
| Web Server (Authorization Code) | User-facing apps | Yes |
Step 3: Configure Credentials
# .env (NEVER commit — add .env to .gitignore)
SF_LOGIN_URL=https://login.salesforce.com
[email protected]
SF_PASSWORD=yourpassword
SF_SECURITY_TOKEN=yourtoken
SF_CLIENT_ID=your_connected_app_consumer_key
SF_CLIENT_SECRET=your_connected_app_consumer_secret
# For sandbox orgs, use:
# SF_LOGIN_URL=https://test.salesforce.com
Step 4: Connect with Username-Password Flow
import jsforce from 'jsforce';
const conn = new jsforce.Connection({
loginUrl: process.env.SF_LOGIN_URL || 'https://login.salesforce.com',
});
await conn.login(
process.env.SF_USERNAME!,
process.env.SF_PASSWORD! + process.env.SF_SECURITY_TOKEN!
);
console.log('Connected to:', conn.instanceUrl);
console.log('User ID:', conn.userInfo?.id);
console.log('Org ID:', conn.userInfo?.organizationId);
Step 5: Connect with JWT Bearer Flow (Production)
import jsforce from 'jsforce';
import fs from 'fs';
const conn = new jsforce.Connection({
loginUrl: process.env.SF_LOGIN_URL,
// JWT requires a Connected App with a digital certificate
});
await conn.authorize({
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
client_id: process.env.SF_CLIENT_ID!,
username: process.env.SF_USERNAME!,
privateKeyFile: './server.key', // RSA private key from your certificate
});
Step 6: Connect with OAuth2 Web Server Flow
import jsforce from 'jsforce';
const oauth2 = new jsforce.OAuth2({
loginUrl: process.env.SF_LOGIN_URL,
clientId: process.env.SF_CLIENT_ID!,
clientSecret: process.env.SF_CLIENT_SECRET!,
redirectUri: 'https://yourapp.com/oauth/callback',
});
// Step A: Redirect user to authorization URL
const authUrl = oauth2.getAuthorizationUrl({ scope: 'api refresh_token' });
// Step B: Handle callback — exchange code for tokens
const conn = new jsforce.Connection({ oauth2 });
await conn.authorize(authorizationCode);
// conn.accessToken and conn.refreshToken are now set
Step 7: Verify Connection
// Quick verification — query org info
const identity = await conn.identity();
console.log('Username:', identity.username);
console.log('Display Name:', identity.display_name);
// Check API version
const versions = await conn.request('/services/data/');
console.log('Latest API version:', versions[versions.length - 1].version);
Python Setup (simple-salesforce)
from simple_salesforce import Salesforce
import os
# Username-Password flow
sf = Salesforce(
username=os.environ['SF_USERNAME'],
password=os.environ['SF_PASSWORD'],
security_token=os.environ['SF_SECURITY_TOKEN'],
domain='test' if os.environ.get('SF_SANDBOX') else None # 'test' for sandbox
)
# Verify connection
print(f"Connected to: {sf.sf_instance}")
result = sf.query("SELECT Id, Name FROM Organization")
print(f"Org: {result['records'][0]['Name']}")
Output
- jsforce or simple-salesforce installed
- Authentication flow configured
- Environment variables set (never hardcoded)
- Connection verified with identity/org query
Error Handling
| Error | Cause | Solution |
|---|---|---|
INVALID_LOGIN | Wrong username/password/token | Verify credentials; reset security token in Setup > My Personal Information |
INVALID_CLIENT_ID | Wrong Connected App consumer key | Check Setup > App Manager > your app |
INVALID_GRANT | JWT cert mismatch or user not pre-authorized | Upload cert to Connected App; pre-authorize user profile |
LOGIN_MUST_USE_SECURITY_TOKEN | Missing security token | Append token to password or whitelist your IP in Setup |
API_DISABLED_FOR_ORG | API not enabled | Requires Enterprise, Unlimited, Developer, or Performance edition |
REQUEST_LIMIT_EXCEEDED | Daily API limit hit | Check Setup > Company Information for remaining calls |
Resources
- jsforce Documentation
- simple-salesforce PyPI
- Salesforce OAuth 2.0 Flows
- Connected App Setup
- JWT Bearer Flow
Next Steps
After successful auth, proceed to salesforce-hello-world for your first SOQL query.