Making Heroku a First Class Developer Platform for Salesforce
- Dominant language
- No language data
- Stars
- 225
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
### Required Terms
- [X] I agree to follow this project's [Code of Conduct](https://github.com/heroku/roadmap/blob/main/CODE_OF_CONDUCT.md)
- [X] I have read and accept the [Salesforce Program Agreement](https://www.salesforce.com/company/program-agreement/)
### What service(s) is this request for?
Salesforce ISVs
### Tell us about what you're trying to solve. What challenges are you facing?
Feedback from a new ISV, Salesfoce veteran:
All the pieces exist, but I am now at least 12 hours into figuring this out authentication/authorization. I feel that if you want Salesforce+Heroku to be the Go-To solution, this should be a 15 minute explainer video and an existing Add-on.
According to last office hourses, Salesforce Dev Support has seemed to take a "throw out options, don't be proscriptive in solutions" approach. I think that that is a mistake. I think you should have best practices, which will add consistency in the platform.
For the OAuth/JWT, the raw docs on there, but your options are roll your own or test all the third party ones and see what works. For Salesforce w/ AWS/Google Cloud, this approach makes sense. If Heroku is the Salesforce "obvious platform" - it's missing some key ingredients to make this easy.
Essentially, Jitendra Zaa has done the heavy lift of getting this to all work.
Here is his blog post:
https://www.jitendrazaa.com/blog/salesforce/using-jwt-flow-to-authenticate-nodejs-application-with-salesforce/
Explainer youtube video:
https://www.youtube.com/watch?v=Iez9xdKbeuk
GitHub Page:
https://github.com/JitendraZaa/OAuthFlows
For this use case of Salesforce w/ Heroku, I "feel" like I should be able to add some hypothetical "Heroku Element Salesforce Connected App" --and be ready to start developing - in ANY language, not just node/JS.
Here is what my ideal "Setup" would be.
1. A Document that explains the pieces, how a Connected App works, how Oauth works, how JWT works, and how this comes together.
2. Heroku Add-on that handles the Oauth/JWT components
3. Simple Setup Instructions for the Connected app (or even better, the Heroku Add-on does it via Oauth and setting up)
This Element could:
Add-On ("Heroku Connected App Buton") that
1. Asks for CRT/Key OR creates self signed
2. Has an "Authorize" button, that gets Auth from Org, creates the connected app, and flows the data to Heroke
3. Has "routes" for the Oauth, get JWT Token, verify
4. Some simple "requires" capability that ideally could run in ANY Heroku environment, determining access
5. Some persistent data layer that I can pull in my App so I can use the Org Id + Connected App. Upserting the database might be my responsibility, but for toy level apps, querying the Add-on is fine.
I could then focus on building my App.
That would make Heroku a first class environment for Connected Apps.
Parameters that should be "automagically setup"
Connected App w/ Callback URL, Client Id, and Secret Key
Certificate / Private Key
A Salesforce "Widget" of some kind (with LWC, Aura, and Visual Force instructions) to, "Enable the Connected App"
This Widget could be embedded in my Managed Package, so upon installation, the welcome screen lets you do this.
Creates the Connected App, and passes the information to Heroku.
That would mean that I can jump right into building the Heroku side in my language of choice.
Jitendra Zaa is doing it with Node libraries. There is an Auth0 Add-on that could probably be made to work. But I can't find any documentation for how.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.