skillfed

auth

Authorization for humans

auth v3.1.0 94.8K downloads/30d#13,305 on PyPI
Permissive license MIT Active released

What it is and what it does

auth is a dedicated HTTP service for role-based access control that centralizes authorization logic so your services don't reinvent roles and permissions. It answers a single question—may user X do Y—by checking whether a user holds a role that grants a permission. It is strictly authorization: it does not authenticate users, store passwords, or issue tokens. Instead, it trusts that callers already know who the user is and decides what they may do based on a simple model: user → role → permission.

You interact with it via HTTP endpoints or a Python client. Each client uses a UUID4 key as a private namespace. You create roles, assign permissions to roles, create user identities (optionally backed by API keys), and add users to roles. When you need to check access, you query whether a user has a permission. Since version 3.0.0, new namespaces enforce strict user identity—users must hold an API key before receiving roles—though existing namespaces and opt-out are supported indefinitely.

Use it for:

  • Gate microservice endpoints on whether a caller holds a required role and permission without embedding auth logic in each service.
  • Manage CLI tool access by checking user roles and permissions before executing privileged commands.
  • Implement workflow engine authorization by verifying that a user can transition a task to the next stage.
  • Provide a multi-tenant SaaS application with isolated role hierarchies and permission checks per customer namespace.
  • Audit and rotate user access by revoking API keys or removing role memberships without redeploying services.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

An HTTP authorization service that answers whether a user may perform an action, using role-based access control without handling authentication, passwords, or tokens.

Yes, if you need centralized RBAC for multiple services or want to avoid reinventing role and permission logic. The low install friction, active maintenance, MIT license, and zero known vulnerabilities support adoption. However, you must run or access an auth service instance—it is not an in-process library—and you need to understand that it handles authorization only, not authentication. Not suitable if you need fine-grained attribute-based access control or cannot tolerate a network round-trip per permission check.

Install

auth on PyPI

pip

pip install auth

uv

uv add auth

poetry

poetry add auth

Installing auth

Before you install

Low install friction with a pure-Python wheel. Actively maintained with a release 2 days old. Supports Python 3.9 through 3.14. Depends on 12 runtime packages including Flask, SQLAlchemy, and cryptography—a moderate but standard stack for a web service.

License in practice

MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.

Quickstart

from auth import Client

KEY = "your-uuid4-key-here"
with Client(api_key=KEY, service_url="https://auth.rodmena.app") as c:
    c.create_role("engineers")
    c.add_permission("engineers", "deploy")
    c.create_api_key("alice")
    c.add_membership("alice", "engineers")
    result = c.user_has_permission("alice", "deploy")

Requires a running auth service instance (self-hosted or external). Since 3.0.0, new namespaces require users to hold an API key before role assignment; existing namespaces were grandfathered with key-less user support.

Verify before relying

  • Performance characteristics under high permission-check volume or with large role/permission graphs
  • Exact latency overhead of network round-trips versus in-process caching strategies
  • Multi-tenancy isolation guarantees and audit trail completeness

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 12 — flask, flask-cors, sqlalchemy, waitress, cryptography, APScheduler, psycopg, pydantic, pydantic-settings, requests, bleach, python-json-logger
Maintenance actively maintained — 2 days since the last release
First released
Downloads 94,779/month — #13,305 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: auth-3.1.0-py3-none-any.whl

Keywords: authorization, role, auth, groups, membership, ensure, ldap

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python Modules

Tags

role-based access control serviceRBAC authorization HTTP APIpermission checking serviceuser role membership managementauthorization without authenticationdistributed permission enginerole permission delegation
rbacauthorization-servicemulti-tenant

More Python Modules packages