Salesforce source
This event source acts as a consumer of the Salesforce stream API.
With tmctl
:
tmctl create source salesforce --auth.clientID <clientID> --auth.server <server> --auth.user <user> --auth.certKey <certKey> --subscription.channel <channel> --subscription.replayID <replayID>
On Kubernetes:
apiVersion: sources.triggermesh.io/v1alpha1
kind: SalesforceSource
metadata:
name: sample
spec:
subscription:
channel: /data/ChangeEvents
replayID: -2
auth:
clientID: salesforce.client_id
server: https://login.salesforce.com
user: woodford@example.com
certKey:
value: my-key
sink:
ref:
apiVersion: eventing.triggermesh.io/v1alpha1
kind: RedisBroker
name: triggermesh
- Broker to send the events to.
- Client ID as retrieved from Salesforce Connected App.
- Server for authentication at Salesforce.
- User for the Salesforce account.
- Channel as configured at the Salesforce stream.
Events produced have the following attributes:
- type
com.salesforce.stream.message
See the Kubernetes object reference for more details.
Prerequisite(s)
- Salesforce Account
- Salesforce Stream Channel
- Certificate Key Secret
Salesforce Account
Salesforce source uses OAuth JWT credentials for service authentication.
-
First, you will need to generate an X509 certificate for signing and verifying requests. We will be using
OpenSSL
but any other certificate generation tool should work. -
At Salesforce site select
Setup > Apps > App Manager
, click onNew Connected App
.- Fill in mandatory fields, then click
Enable OAuth Settings
. - A callback URL is mandatory but can be filled with any HTTPS data.
- Enable
Use digital signatures
and upload the public cert (tm-sf.crt
in the example above). - Add Scopes for
api
andrefresh_token, offline_access
. - Save.
- Select the Connected App from the list and at the click on
Manage
. - Click
Edit policies
. - Set Permitted users to
Admin approved users are pre-authorized
. - Save.
- Select the Connected App from the list and at the click on
Manage
. - Click
Manage Profiles
. - Add permissions on the data this user will have access to.
- Save.
- Fill in mandatory fields, then click
-
Retrieve OAuth data to configure TriggerMesh Source.
-
Select the Connected App from the list and at the click on
View
. - Copy
Consumer Key
- Reveal and copy
Consumer Secret
Salesforce Stream Channel
Refer to Salesforce stream API on how to create stream channels:
- Change Data Capture events:
/data/ChangeEvents
- PushTopics for streams based on single entity SOQL queries:
/topic/TicketsSold
- Standard Platform Events for Salesforce event monitoring:
/event/LoginEventStream
- Custom Platform Events for your SOQL platform events:
/event/MyCustom__e
Each Streaming event type has a distinct set of features
Certificate Key Secret
The TriggerMesh Salesforce integration needs the certificate key to sign authentication requests with the Salesforce API.
A secret needs to be created at TriggerMesh that contains that certificate key.
The file name containing the key will need to be renamed to certKey
, then select Secrets
> + ADD SECRET
, File Upload