Skip to content
GitLab
Next
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,761
    • Issues 44,761
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,330
    • Merge requests 1,330
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #325463
Closed
Open
Issue created Mar 20, 2021 by Alex Kalderimis@alexkalderimis🔴Maintainer

Open source declarative policy library

Proposal

We use a library for our authorization called DeclarativePolicy. This is a solid, stable library that allows for robust secure code. It is genuinely excellent.

I propose that we release this as a separate gem, under a FOSS license.

The rationale for this is:

  • we have other projects (including Rails apps) that would benefit from this
  • this library is exceptionally stable
  • the library is not strongly coupled to other code (extraction would be straightforward)
  • it is a foundational tool, solving a common problem likely to be of benefit to others
  • we are the only users of this library, and it would benefit community contributors to be more familiar with our tooling.
  • releasing it (and hopefully getting some broader support) would make it easier to incorporate into 3rd party tools that we use (for example the same way GraphQL Ruby provides integration for pundit and cancan).

There are other tools in this space (such as Pundit, which is very similar in terminology and practices). The declarative policy library would naturally fit in this category of authorization libraries.

/cc @gitlab-org/maintainers/rails-backend

Edited Mar 20, 2021 by Alex Kalderimis
Assignee
Assign to
Time tracking