gitclub
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