Root Access monorepo for AWS.
Root Access (usually written as RootVC Access in code, infrastructure, etc. so as not to confuse people...) is an application that works with Zapier to process all incoming emails and store relevant information in a Postgres database to be able to build a meaningful social graph for every person inside a company. This is somewhat similar to other services, but Open Source, and you know...free.
The ultimate goal of the project is to make it easy for founders in the Root Ventures portfolio to ask us for introductions for sales, hiring, etc. LinkedIN is simply not high enough fidelity to be realiable for this.
The RootVC Access service runs in AWS and listens for incoming requests on a webhook. After we have the service running, we will setup Zapier for each user (ie: employee at a firm who wants to share their network.)
Migrate the database
npx prisma migrate dev
for development, or npx prisma migrate deploy
for production
Install dependencies
npm install
Start the servers
npm start
TODO: example Dockerfile
The following environment variables must be set in the Dockerfile
(other non-secret ones) DATABASE_URL= CLEARBIT_API_KEY= SUPERTOKENS_URI= SUPERTOKENS_API_KEY= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= OWNER_GOOGLE_DOMAIN=
Sign up for Clearbit, Supertokens, and Google App.
Once the service is running, each user (ie: employee at a firm who wants to share their network) needs to create a Zap to process new emails, and may optionally run a Transfer to populate legacy emails.
This part is quite easy to do, but maybe a bit hard to explain. I'm going to record a Loom for this in the future.
TODO
TODO
TODO
Prisma, hosted on RDS Aurora (Postgres).
/prisma
Altering the database scheme using prisma:
- Modify
/prisma/schema.prisma
- Run
npx prisma migrate dev name_your_migration
- Run
npx prisma deploy
to migrate the production database when ready
Graphile workers for both scheduled and triggered jobs. Graphile uses Postgres as a durable job queue.
/tasks
- clearbitEnrichment.js (called by Zapier when a new email is sent or received)
Express server endpoints, currently only used to interface with Zapier
/heartbeat
- GET /heartbeat returns 200 OK, used to verify server is up
/webhooks
- POST /webhooks/emails (called when a new email is received or sent)
- GraphQL or REST API
- web frontend for searching the db