Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
c72eca5
feat: add scaffolding for python API for roles
mariajgrimaldi Sep 23, 2025
b39f026
feat: first version of public API for roles
mariajgrimaldi Sep 24, 2025
18232a3
refactor: update gitignore with .sqlite files
mariajgrimaldi Sep 29, 2025
ca26e5e
refactor: place roles, permissions and user functions into their own …
mariajgrimaldi Sep 29, 2025
bf94a4b
refactor: wrap namespace into attrs classes
mariajgrimaldi Sep 30, 2025
172aeb6
test: add test suite for enforcer based on policy lifecycle
mariajgrimaldi Sep 30, 2025
7920359
fix: remove conflict markings
mariajgrimaldi Sep 30, 2025
4c0d56e
fix: revert changes in non-relevant files
mariajgrimaldi Sep 30, 2025
dfc8c96
refactor: change user to subject
mariajgrimaldi Sep 30, 2025
624ea8f
refactor: make specific data classes inherit from generic
mariajgrimaldi Oct 1, 2025
75e61de
refactor: drop unnecessary assert
mariajgrimaldi Oct 1, 2025
637cbdd
refactor: remove duplication while assigning
mariajgrimaldi Oct 1, 2025
6c7d069
refactor: completely abstract consumers of internal naming conventions
mariajgrimaldi Oct 1, 2025
947d1cc
refactor: return typed role assignemnts for easier management
mariajgrimaldi Oct 1, 2025
d762a84
test: add tests for users and data modules
mariajgrimaldi Oct 1, 2025
f2c164f
refactor: add tests for getting assignments for role
mariajgrimaldi Oct 1, 2025
fa51feb
refactor: drop print for debugging
mariajgrimaldi Oct 1, 2025
147d533
refactor: drop assert to check duplicates
mariajgrimaldi Oct 1, 2025
d003279
feat: implement function to get all role assignments within a scope
mariajgrimaldi Oct 2, 2025
23936eb
temp: hardcode content library scope while implementing factory pattern
mariajgrimaldi Oct 2, 2025
776058b
refactor: generalize definitions for data classes
mariajgrimaldi Oct 2, 2025
ccc1088
refactor: make easier to change separator and namespace
mariajgrimaldi Oct 3, 2025
3098228
refactor: implement factory class as metaclass for scope and libraries
mariajgrimaldi Oct 3, 2025
f39a330
feat: implement factory class as metaclass for subject
mariajgrimaldi Oct 6, 2025
bf7e447
refactor: drop black changes for not modified files
mariajgrimaldi Oct 6, 2025
3593be0
refactor: address quality issues
mariajgrimaldi Oct 6, 2025
becc68e
refactor: address quality issues
mariajgrimaldi Oct 6, 2025
c97a4c4
refactor: address doc quality issues
mariajgrimaldi Oct 6, 2025
c75bfb7
refactor: drop :no-index: for a more maintainable solution
mariajgrimaldi Oct 6, 2025
ee329fa
refactor: address docs quality failures
mariajgrimaldi Oct 6, 2025
3a10db0
refactor: drop debug prints
mariajgrimaldi Oct 6, 2025
4535f9f
refactor: raise value error when policy is malformed
mariajgrimaldi Oct 6, 2025
4ebed98
refactor: add cases for post_init method for attrs classes
mariajgrimaldi Oct 6, 2025
e27c02a
docs: add comment to migrate class ContentLibraryData(ScopeData)
mariajgrimaldi Oct 6, 2025
a11161f
refactor: address PR reviews
mariajgrimaldi Oct 6, 2025
152f738
refactor: group role assignments for all subjects
mariajgrimaldi Oct 6, 2025
c347a18
refactor: make defaults maintainable over time
mariajgrimaldi Oct 6, 2025
5e4dfcd
refactor: update docstrings for new separator
mariajgrimaldi Oct 6, 2025
3778ffe
docs: use autodoc mock imports configuration to avoid duplicates failure
mariajgrimaldi Oct 6, 2025
92e1d3e
docs: change the docstring for the engine utils to match generalization
mariajgrimaldi Oct 6, 2025
769e223
refactor: add error management when getting scope subclasses
mariajgrimaldi Oct 7, 2025
59cd003
refactor: use is_user_allowed instead of has permission to improve co…
mariajgrimaldi Oct 7, 2025
b7dbf55
refactor: address quality errors
mariajgrimaldi Oct 7, 2025
1383535
refactor: add __str__ and __repr__ to data classes for better represe…
mariajgrimaldi Oct 8, 2025
c97cdf9
refactor: address PR reviews
mariajgrimaldi Oct 8, 2025
b077c11
docs: improve docstrings of data classes
mariajgrimaldi Oct 8, 2025
2a31090
docs: update docstrings with latest model changes
mariajgrimaldi Oct 9, 2025
66c8eec
refactor: address PR reviews for namespaced key
mariajgrimaldi Oct 9, 2025
a850d98
test: add test cases for empty namespaces
mariajgrimaldi Oct 9, 2025
9eb6c8f
docs: add use for generic scopes
mariajgrimaldi Oct 9, 2025
72e65e1
refactor: address quality issues
mariajgrimaldi Oct 10, 2025
7a72d93
docs: update changelog for release
mariajgrimaldi Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,6 @@ docs/openedx_authz.*.rst
requirements/private.in
requirements/private.txt

# Sqlite Database
# Persistent database files
*.sqlite3
*.db
12 changes: 11 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,14 @@ Unreleased
Added
=====

* First release on PyPI.
* Basic repo structure and initial setup.

0.2.0 - 2025-10-10
******************

Added
=====

* ADRs for key design decisions.
* Casbin model (CONF) and engine layer for authorization.
* Implementation of public API for roles and permissions management.
7 changes: 6 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ def get_version(*file_paths):
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#

autodoc_mock_imports = [
"openedx_authz.api",
]

# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
Expand All @@ -72,6 +76,7 @@ def get_version(*file_paths):
# A list of warning types to suppress arbitrary warning messages.
suppress_warnings = [
"image.nonlocal_uri",
"autodoc.mocked_object"
]

# Add any paths that contain templates here, relative to this directory.
Expand Down
11 changes: 11 additions & 0 deletions openedx_authz/api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"""Public API for the Open edX AuthZ framework.

This module provides a public API as part of the Open edX AuthZ framework. This
is part of the Open edX Layer used to abstract the authorization engine and
provide a simpler interface for other services in the Open edX ecosystem.
"""

from openedx_authz.api.data import *
from openedx_authz.api.permissions import *
from openedx_authz.api.roles import *
from openedx_authz.api.users import *
Loading