Skip to content

A demo of macaroon tokens, a Google invention credential with contextual caveats for decentralized authorization and delegation. Application introduces the use of first-party caveats and is built with NextJS and FastAPI frameworks.

Notifications You must be signed in to change notification settings

BigSamu/Macaroons_Demo

Repository files navigation

Github Follow License Forks Stars Watchers Ask Me Anything Say Thanks!

Gmail Small LinkedIn Small Hackerrank Small

Macaroons Demo

A demo of macaroon tokens, credentials with contextual caveats for decentralized authorization and delegation.

Demo available in following link

demo_video_1 demo_video_2 demo_video_3

Table of Contents

(back to top)


About The Project

Have you ever wondered how cloud storage services like Google Drive or Microsoft OneDrive enable users to share files and resources with others while also managing permissions such as editing or viewing rights? These platforms often utilize advanced authorization mechanisms to control access, ensuring security and flexibility. How exactly do they achieve this intricate balance? Introducing macaroon tokens,a Google invention credential that incorporates contextual caveats for decentralized authorization and delegation!

Here's a demo highlighting the use of these tokens for authorization and delegation in decentralized environments implementing the use of first-party caveats and is built with NextJS and FastAPI frameworks. It's a great resource for tech enthusiasts keen on understanding this unique approach in a succinct and insightful manner.


Technologies

The following technologies are used for the implementation of this project:

HTML5 Python Javascript NodeJS NPM PyPi ReactJS Bootstrap FastAPI SQLite PostgreSQL Vercel

(back to top)


Getting Started

Prerequisites

For the setup of this web application, the following prerequisites are required

  • Frontend: Node.js 18.7.0 or greater and (Node Package Manager) NPM.
  • Backend: Python 3.9 or greater and pip3.

For easy management of Node.js environments, Node Version Manager (NVM) tool is recommended. Check installation instructions in website.

NOTE: At the time of the implementation of this project, Node.js v18.17.1, NPM 9.6.7 Python v3.10.11, pip v23.2.1 were used.

Installation

To get a copy of this project and run it in your local environment, follow the steps listed below.

  1. Clone the repo

    git clone [email protected]:BigSamu/Macaroons_Demo.git
  2. Go into the repository

    cd Macaroons_Demo
  3. Install required pyhon packages or dependencies

    npm install
  4. Create a .env file and update the enviromental variables that don't have values. Use as reference the env.example. For development, the enviromental variables that required an update are the following:

    NEXT_PUBLIC_CLIENT_DOMAIN_URL_PRODUCTION="<your-vercel-domain>"
    ENVIRONMENT = "<development-or-production>" # Change for "development" for this case
    MACAROON_SECRET_KEY="<your-very-strong-secret-key>"
    
  5. Run appplication. Python packages will be installed automatically, because a script command has specifications for that.

    npm run dev

(back to top)

Usage

After succesfull installation, you will be able to check the WebApp in any browser by visiting the following URL address: http://localhost:3000

(back to top)


Contact Me

Feel free to contact me if you have any doubt!

Samuel Valdes Gutierrez

Gmail Twitter LinkedIn HackerRank

(back to top)


Support

Whether you use this work to learn something or if you just like my work, please 🙏 consider supporting it. This aid will help me to dedicate more time to create and developed well design open-source projects.

Paypal Ko-Fi BuyMeACoffe

(back to top)


License

This project is licensed under the terms of the MIT license.

You can check out the full license here

(back to top)


Developed with ❤️ in Chile 🇨🇱

About

A demo of macaroon tokens, a Google invention credential with contextual caveats for decentralized authorization and delegation. Application introduces the use of first-party caveats and is built with NextJS and FastAPI frameworks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published