Skip to content

Conversation

@fspeirs
Copy link
Contributor

@fspeirs fspeirs commented Feb 11, 2026

Status

Points for consideration:

  • Security
  • Performance

What's changed?

  • Adds a salesforce_connect database configuration to allow Salesforce-related models to talk to the rpf-heroku-connect datastore.
  • Introduces a Salesforce module containing a Salesforce::School model
  • Introduces a SalesforceSyncJob - a base class to sync things to Salesforce

Steps to perform after deploying to production

BEFORE merging, we will need to connect the rpf-heroku-connect datastore to Editor API.

This commit adds a databse called salesforce_connect which will end up
talking to the Heroku app `rpf-heroku-connect` datastore.
This commit creates a Salesforce module, a Salesforce::School object
which inherits from a Saleforce::Base class.

It also introduces a Salesforce::SyncJob base class of background job
for writing to Salesforce and a specific Salesforce::SchoolSyncJob to
  sync a School record with Salesforce.
@cla-bot cla-bot bot added the cla-signed label Feb 11, 2026
This uses an `after_commit` hook on the above two events to enqueue a
sync to Salesforce.
This commit adds the heroku-connect container as documented in:

https://github.com/RaspberryPiFoundation/heroku-connect

This means that building the project now requires authenticating with
`ghcr.io` by doing:

$ echo $GITHUB_TOKEN | docker login ghcr.io -u <github-username> \
   --password-stdin

Where $GITHUB_TOKEN is a PAT with `packages:read` permissions (same as
you use for NPM).
@fspeirs fspeirs force-pushed the fs-sync-schools-to-salesforce branch from d6ab230 to 4837a1c Compare February 12, 2026 11:23
This commit adds a new queue to GoodJob to run SalesforceSyncJobs on.
These are the settings neede to talk to the `salesforce_connect`
container.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant