Releases: bonsaedev/node-red-salesforce
v0.7.1
v0.7.0
v0.6.2
0.6.2 (2026-06-09)
Bug Fixes
- exclude apex-lsp from client unit coverage (9084371)
- hide empty status bar, fix default code indentation, and remove node-red devDep (ba59339)
- mark connection as required and add status bar visibility tests (aa9545a)
- regenerate lockfile without local link override (223d54a)
- use cross-platform vite scripts and align dependency versions (1af13fa)
v0.6.1
v0.6.0
0.6.0 (2026-06-03)
Bug Fixes
- correct Apex type mappings for currency, percent, and long fields (3f4e90b)
- extend tsconfig rootDir to include shared module (8bfbb3c)
Features
- add Apex Language Server integration with Monaco editor (76d929f)
- add SObject field completions from connected org (7b39124)
Breaking Changes
Apex Code node: code field format changed
The code field now expects class body level code instead of just the run() method body.
Before (v0.5.x):
String reversed = payload.reverse();
return reversed;After (v0.6.x):
private static Object run(String payload) {
String reversed = payload.reverse();
return reversed;
}Users can now add helper methods and inner classes alongside run():
private static Object run(String payload) {
Processor p = new Processor();
return p.process(payload);
}
public class Processor {
public String process(String input) {
return input.reverse();
}
}Migration
- Delete existing Apex Code nodes from the canvas
- Re-add them — the new default code includes the
run()method signature - Move your logic into the
run()method body
Why
This change enables users to define helper methods and inner classes, and provides better LSP support since the editor now shows the full method signature.
v0.5.0
0.5.0 (2026-06-03)
Bug Fixes
- add missing locale labels and translate Connection field (e3eefc3)
- use fresh token from jsforce connection for streaming (bf197e2)
Features
- add channel picklist to streaming node (7d13eff)
- add Open Org button to connection config node (1bbf8b0)
- improve bulk node with streaming support and single result output (ed0bb7c)
- split Apex into caller and code deployer nodes (0da89d9)
Breaking Changes
Apex nodes replaced
The salesforce-apex node has been replaced by two purpose-specific nodes:
- salesforce-apex-invocation — Calls existing Apex REST endpoints or Invocable Actions. Select the type (REST/Invocable), pick an endpoint from a dropdown that queries your org, and choose the HTTP method.
- salesforce-apex-code — Deploys and executes custom inline Apex code. Select the type (Invocable/REST), enter a class name, choose the HTTP method for REST, configure the URL mapping, and write your Apex method body in the built-in code editor.
Migration: Delete existing salesforce-apex nodes from your flows and replace them with salesforce-apex-invocation (for calling existing endpoints) or salesforce-apex-code (for deploying custom code). Re-wire any connections.
Bulk node restructured
The salesforce-bulk node has been significantly reworked:
- Port layout changed: The node now has a single output port. Job Created and Job Complete output ports have been removed. Job lifecycle events (created, uploading, processing, complete) are communicated via
this.status()— enable the Status Port toggle to react to them downstream. - Input format: Accepts
Record[]arrays, CSV strings, or Node.jsReadablestreams for ingest operations. SOQL queries are now configured via a dedicated TypedInput field (str/msg/jsonata) instead ofmsg.payload. - Output format changed: For ingest operations, the output
msg.payloadis now a single results object{ successfulResults, failedResults, unprocessedRecords }instead of streaming individual records. - New operations:
hardDeleteis now supported alongside insert, update, upsert, delete, and query. emitJobCreatedtoggle removed: Job Created is no longer a separate output port.
Migration: Delete existing bulk nodes from your flows and re-add them. Update downstream nodes to read from msg.payload.successfulResults and msg.payload.failedResults instead of processing individual record messages. If you relied on the Job Created or Job Complete output ports, use the Status Port instead.
Config property renamed
The type config property has been renamed to apexType on both Apex nodes to avoid conflicts with Node-RED's reserved type property. This affects saved flows — nodes using the old property name will need to be reconfigured.