A better way to work on Salesforce
The Jetstream platform makes managing your Salesforce instances a breeze. Use Jetstream to work with your data and metadata to get your work done faster.
Learn more by reading the docs.
JETSTREAM IS SOURCE-AVAILABLE AND FREE TO USE. IF YOUR COMPANY IS GETTING VALUE, CONSIDER SPONSORING THE PROJECT ❤️
Jetstream wouldn't be possible without your contributions.
There are multiple ways to use Jetstream.
This project was generated using Nx - This repository is considered a mono-repo and has multiple applications
├── app (This is used in the generation of the desktop application)
├── apps (Application)
│ ├── api (BACKEND NODE SERVER)
│ ├── cron-tasks
│ ├── docs (DOCS WEBSITE)
│ ├── download-zip-sw
│ ├── jetstream (FRONTEND REACT APPLICATION)
│ ├── jetstream-e2e
│ ├── jetstream-worker
│ ├── landing (LANDING PAGE WEBSITE)
│ ├── maizzle (EMAIL TEMPLATE GENERATION)
│ └── ui-e2e
├── custom-typings
├── dist (FOLDER CREATED ONCE APPLICATION IS BUILT)
├── libs (CORE LIBRARIES SHARED ACROSS ALL APPLICATIONS)
│ ├── api-config
│ ├── connected (FRONTEND DATA LIBRARY)
│ ├── icon-factory (SFDC ICONS)
│ ├── monaco-configuration
│ ├── shared (SHARED UTILS ETC..)
│ ├── splitjs
│ ├── types (TYPESCRIPT TYPES)
│ └── ui (ANYTHING UI RELATED)
├── prisma (DB MIGRATIONS)
│ └── migrations
├── scripts
└── tools
└── generators
IF YOU HAVE ANY ISSUES WITH THE STEPS BELOW, PLEASE FILE A TICKET.
Pre-req
📓 You can choose to skip authentication locally by setting the environment variable EXAMPLE_USER_OVERRIDE=true
. This is set to true by default in the .env.example
file.
🌟 To use this, don't click the login button, but instead just go to http://localhost:3333/app
or http://localhost:4200/app
(if running the react development server) directly.
If you have docker and just want to run the application locally, using docker is the easiest option.
Build the docker image (this takes a while the first time).
docker build -t jetstream-app .
Use docker compose to create a dockerized postgres database and run the app.
docker compose up
http://localhost:3333
5555
if you wanted to connect to it locally.EXAMPLE_USER_OVERRIDE
if you want to disable this behaviorUse this option if you want to contribute to the codebase.
Jetstream relies on a Postgres database, so you either need to run Postgresql locally or use a managed provider such as one from the list below. Optionally you can run jetstream in a Docker container which includes Postgresql.
You can use the example Salesforce OAuth2 client secret or client id, but you are welcome to create you own connected app in any Salesforce org of your choice.
If you want to create your own:
http://localhost:3333/oauth/sfdc/callback
id, profile, email, address, phone
openid
api
refresh_token, offline_access
.env
and replace SFDC_CONSUMER_KEY
and SFDC_CONSUMER_SECRET
with the values from your connected app.⭐ If you want to contribute to Jetstream, this is the best option.
postgres
and a user named postgres
on default port 5432.env
after you initialize your application and this file is created.yarn
to install all dependencies.env
file
yarn init:project
(or manually copy .env.example
to .env
)yarn build
(this may take some time - if the build is cached in the cloud, this may run quickly)yarn db:migrate
to initialize databaseyarn db:seed
to insert required records for the applicationnode dist/apps/api/main.js
http://localhost:3333/app
yarn build:landing
yarn build:sw
yarn db:generate
yarn start:api
to start api server
http://localhost:3333
- most endpoints are prefixed at the /api
pathyarn start
to start api server
http://localhost:4200
and you will need to access the application here http://localhost:4200/app
yarn start:ui:storybook
to start the storybook server
http://localhost:4400
⚠️ Docker requires a computer with substantial resources.
docker compose up
in your terminal
docker compose build