gitclub icon indicating copy to clipboard operation
gitclub copied to clipboard

Realistic examples of using Oso in an application for authorization. Built for multiple different backends.

GitClub

This is an example application based on GitHub that's meant to model GitHub's permissions system. The app is implemented in a number of backend languages, which all expose a common API that is consumed by a React frontend (in the frontend/ folder).

For more information, check out one of the backend implementations linked below.

Backends

  • Flask SQLAlchemy Backend
  • Flask SQLAlchemy Backend (with sqlalchemy-oso integration library)
  • Rails Backend
  • Express/TypeORM Backend

Frontend

Running the frontend

$ cd frontend
$ yarn
$ yarn start

Architecture

  • TypeScript / React / Reach Router

Development

The backends all run on port 5000, and use cookies to manage sessions.

If you want to be able to debug/test the backend without running the frontend and logging in, you can use the following to save a session locally:

Save the cookies

curl -c gitclub.cookies -H "Content-Type: application/json" -X POST -d '{"email": "[email protected]"}' localhost:5000/session

Use the cookies

curl -b gitclub.cookies localhost:5000/orgs/1