Skip to content
← Public packages

@kody/salesforce

Salesforce REST helpers for identity, SOQL, multi-org routing, and error investigation.

src/index.ts

29 lines · 1.8 KB · TypeScript
/**
 * Describe the Salesforce package, integration requirements, and export surface.
 * @example
 * import salesforce from 'kody:@kody/salesforce'
 * const overview = await salesforce()
 */
export default async function salesforceOverview() {
	return {
		name: 'Salesforce',
		integration: 'salesforce',
		connectUrl:
			'https://kody.codes/connect/oauth?provider=salesforce&authorizeUrl=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Fauthorize&tokenUrl=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Ftoken&apiBaseUrl=https%3A%2F%2Flogin.salesforce.com&scopes=api%20refresh_token%20offline_access&flow=confidential&allowedHosts=login.salesforce.com%2C*.salesforce.com%2C*.force.com%2C*.my.salesforce.com',
		sandboxNote:
			'For sandboxes, replace login.salesforce.com with test.salesforce.com in authorizeUrl, tokenUrl, apiBaseUrl, and allowedHosts.',
		selfHostedNote:
			'Self-hosted deployments use that deployment origin plus /connect/oauth as the callback and connect URL.',
		multiOrgNote:
			'Connect each org under its own integrationName (salesforce-acme, salesforce-sandbox). Pass that name on every call. For webhooks, persist list-orgs().map in a private package packageStorage key "org-map" and pass it to resolve-org / triage-error. Live @kody/salesforce cannot store the map. Unknown organization ids fail closed.',
		safety:
			'Mutating operations require confirm: true and support dryRun: true. triage-error is read-only. When an organization id is present, triage-error will not fall back to the default salesforce connection.',
		exports: {
			account: ['get-user-info', 'smoke-test', 'list-orgs', 'resolve-org'],
			data: ['query', 'list-sobjects', 'describe-sobject', 'get-record'],
			investigate: ['triage-error'],
			mutations: ['create-record', 'update-record', 'delete-record'],
			advanced: ['request'],
		},
	}
}