UMACS is a unified management and access control service.
Project description
UMACS User Management and Access Control Service
UMACS (User Management and Access Control Service) is a lightweight, reusable Authorization service.
Features
- Policy Engine based on Casbin for flexible access control, supporting RBAC and ABAC.
- Logging using SQL tables for efficient storage and auditing of decision logs.
- JWKS discovery + caching for validating tokens from configured IdPs and rejecting invalid tokens.
- API for managing users, roles, and permissions.
Core Dependencies
The service is built using:
- FastAPI + Uvicorn
- Authlib (OIDC JWT verification)
- Casbin (RBAC + optional ABAC)
- SQLModel + AsyncSQLAlchemy (Policies, Users, Resources, Decision Logs)
- Alembic (Database Migrations)
Quickstart
Prerequisites
Environment
Create a .env file based on .env.example.
Database Setup
Run migrations to set up the SQL database:
uv run alembic upgrade head
Install and run (using uv):
uv sync
uv run fastapi dev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file umacs-0.7.2.tar.gz.
File metadata
- Download URL: umacs-0.7.2.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
482e1cac1d1f511561efe862da3238ae7346eec3cc186b2fe63531ba62db5eca
|
|
| MD5 |
88c0370c580552234b7b683598f6522c
|
|
| BLAKE2b-256 |
ef23a77b065ceda0a6d30c3e1302424ac6b4cecb03333c7543e9a47b17f6a6aa
|
Provenance
The following attestation bundles were made for umacs-0.7.2.tar.gz:
Publisher:
build.yaml on csed-ucm/umacs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
umacs-0.7.2.tar.gz -
Subject digest:
482e1cac1d1f511561efe862da3238ae7346eec3cc186b2fe63531ba62db5eca - Sigstore transparency entry: 2112414037
- Sigstore integration time:
-
Permalink:
csed-ucm/umacs@64b69806658d92c9ee3eb2794ca82d2b1541d40a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/csed-ucm
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yaml@64b69806658d92c9ee3eb2794ca82d2b1541d40a -
Trigger Event:
pull_request
-
Statement type:
File details
Details for the file umacs-0.7.2-py3-none-any.whl.
File metadata
- Download URL: umacs-0.7.2-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb04d0f40a301b85e8b24789a8f2545b1829894ef2293d1453495a395e72d5bc
|
|
| MD5 |
15c16e4f7948e0fac43afd3d667706f6
|
|
| BLAKE2b-256 |
ab07fb84b9d554e38bf2fe10275a62bd894983bc586c85b494f0c75779663d52
|
Provenance
The following attestation bundles were made for umacs-0.7.2-py3-none-any.whl:
Publisher:
build.yaml on csed-ucm/umacs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
umacs-0.7.2-py3-none-any.whl -
Subject digest:
bb04d0f40a301b85e8b24789a8f2545b1829894ef2293d1453495a395e72d5bc - Sigstore transparency entry: 2112414260
- Sigstore integration time:
-
Permalink:
csed-ucm/umacs@64b69806658d92c9ee3eb2794ca82d2b1541d40a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/csed-ucm
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yaml@64b69806658d92c9ee3eb2794ca82d2b1541d40a -
Trigger Event:
pull_request
-
Statement type: