The Wayback Machine - https://web.archive.org/web/20221206063612/https://github.com/rentrop/serverless-postgraphql
Skip to content

rentrop/serverless-postgraphql

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Serverless graphql endpoint for PostgresSQL database using AWS, serverless and postgraphql

Official lambda implementation from the postgraphql-creators: https://github.com/graphile/postgraphile-lambda-example

How to use my implementation:

Setup

πŸ’Ύ Install Serverless

πŸ‘― Clone the repo

git clone https://github.com/rentrop/serverless-postgraphql
cd serverless-postgraphql

πŸ’Ύ Install

npm install

πŸš€ Rebuild and Deploy

npm run rebuild-and-deploy

β˜• Coffeetime: AWS takes ~10min to setup the Postgres DB

  • From the result of the serverless deployment take the pgEndpoint and insert it in:
    • package.json-file in the config of PGCON (line 7)
    • serverless.yml-file in the environment-variable named PGCON (line 21)

πŸš€ Rebuild and Deploy Again

npm run rebuild-and-deploy

You are all set now. You can now query the resulting endpoint as you wish via POST and GET.

One example to authenticate a user would be:

mutation {
  authenticate(input: {email: "spowell0@noaa.gov", password: "iFbWWlc"}) {
    jwtToken
  }
}

You can try this by entering the following in your browser:

your-url/dev/graphql?query=mutation%20%7B%0Aauthenticate%28input%3A%20%7Bemail%3A%20%22spowell0%40noaa.gov%22%2C%20password%3A%20%22iFbWWlc%22%7D%29%20%7B%0AjwtToken%0A%7D%0A%7D

For most other queries you need to be authorised. Authorization in postgraphql is done via the jwtToken. Set this in your following requests as Authorization header:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhIjoxLCJiIjoyLCJjIjozfQ.hxhGCCCmGV9nT1slief1WgEsOsfdnlVizNrODxfh1M8

Running Locally

πŸ’Ύ Install Postgres 🐘

⌨️ Initialize the database

npm run init-local-db

⌨️ Run the local server

npm run local-server

TODO/Ideas

About

Serverless GraphQL endpoint for PostgresSQL using AWS, serverless and PostGraphQL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published