Coder Social home page Coder Social logo

iq-scm / permify Goto Github PK

View Code? Open in Web Editor NEW

This project forked from permify/permify

0.0 0.0 0.0 176.34 MB

Permify is an open-source authorization service inspired by Google Zanzibar.

Home Page: https://docs.permify.co/

License: Apache License 2.0

JavaScript 10.11% Go 88.15% TypeScript 0.11% Makefile 0.18% HTML 0.06% Dockerfile 0.09% Less 1.30%

permify's Introduction

Permify logo
Permify - Open Source Authorization Service

Permify Go Version  Permify Go Report Card  Permify Licence  Permify Discord Channel  Permify Release  Permify Commit Activity  GitHub Workflow Status  Scrutinizer code quality (GitHub/Bitbucket) 

Permify - Open source authorization as a service

What is Permify?

Permify is an open-source authorization service for creating and maintaining fine-grained authorizations in your applications.

With Permify you can easily structure your authorization model, store authorization data in your own servers securely, and interact with Permify API to handle all authorization questions from any of your applications.

Permify's data model is inspired by Google’s consistent, global authorization system, Google Zanzibar Paper.

Looking for Permify Managed Service? See our pricing plans.


View Documentation  Try Playground 

Key Features

🛡️ Production ready authorization API that serve as gRPC and REST

🔮 Domain Specific Authorization Language - Permify Schema - to easily model your authorization

🔐 Database Configuration to store your permissions in house with high availability

Perform access control checks and get answers down to 10ms with parallel graph engine

💪 Battle tested, robust authorization architecture and data model based on Google Zanzibar

⚙️ Create custom permissions for your tenants, and manage them in single place with Multi Tenancy

⚡ Analyze performance and behavior of your authorization with tracing tools jaeger, signoz or zipkin

Cases that can benefit from Permify

  • If you already have an identity/auth solution and want to plug in fine-grained authorization on top of that.
  • If you want to create a unified access control mechanism to use across your individual applications.
  • If you want to make future-proof authorization system and don't want to spend engineering effort for it.
  • If you’re managing authorization for growing micro-service infrastructure.
  • If your authorization logic is cluttering your code base.
  • If your data model is getting too complicated to handle your authorization within the service.
  • If your authorization is growing too complex to handle within code or API gateway.
+ Missing a specific use case? no problem, let's discuss it together! just open an issue. 

How it works

Permify stores access control relations on a database you choose and performs authorization checks based on the stored relations. We called that database Write Database (WriteDB) and it behaves as a centralized data source for your authorization system. You can model your authorization with Permify's DSL - Permify Schema and perform access checks with a single API call anywhere on your stack.

Value Chain Schema

QuickStart

You can quickly start Permify on your local with running the docker command below:

docker run -p 3476:3476 -p 3478:3478  ghcr.io/permify/permify serve

This will start Permify with the default configuration options:

  • Port 3476 is used to serve the REST API.
  • Port 3478 is used to serve the GRPC Service.
  • Authorization data stored in memory.

See all of the options that you can use to set up and deploy Permify in your servers.

Test your connection

You can test your connection with creating an GET request,

localhost:3476/healthz

Getting Started

Run in Postman View in Swagger

Community & Support

We would love to hear from you ❤️

You can get immediate help on our Discord channel. This can be any kind of question-related to Permify, authorization, or authentication and identity management. We'd love to discuss anything related to access control space.

For feature requests, bugs, or any improvements you can always open an issue.

Want to Contribute? Here are the ways to contribute to Permify

  • Contribute to codebase: We're collaboratively working with our community to make Permify the best it can be! You can develop new features, fix existing issues or make third-party integrations/packages.
  • Improve documentation: Alongside our codebase, documentation one of the most significant part in our open-source journey. We're trying to give the best DX possible to explain ourselfs and Permify. And you can help on that with importing resources or adding new ones.
  • Contribute to playground: Permify playground allows you to visualize and test your authorization logic. You can contribute to our playground by improving its user interface, fixing glitches, or adding new features.

You can find more details about contributions on CONTRIBUTING.md.

Communication Channels

If you like Permify, please consider giving us a ⭐

permify | Discord permify | Twitter permify | Linkedin

Stargazers

Stargazers repo roster for permify/permify

permify's People

Contributors

ahmadkashif avatar alielbashir avatar anascann avatar bhagatpratham avatar brandensilva avatar dependabot[bot] avatar egeaytin avatar firatcand avatar imkcat avatar joelparkerhenderson avatar mfridman avatar mtyazici avatar muratmirgun avatar phoenix24 avatar rimon-fedyuk avatar sevkioruc avatar snyk-bot avatar thecaffeinedev avatar titusjaka avatar tolgaozen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.