Skip to content

Commit b4537a0

Browse files
docs: add purpose of this repo to argue the use of this repo for authz
1 parent 11f3e70 commit b4537a0

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
0001: Purpose of This Repo
2+
##########################
3+
4+
Status
5+
******
6+
7+
**Draft**
8+
9+
Context
10+
*******
11+
12+
The authorization (AuthZ) project is a community initiative to modernize how roles and permissions are defined, stored, and evaluated across the ecosystem. The existing system is fragmented, inflexible, and often results in over-permissioned users, repetitive administrative tasks, and difficulty adapting roles to organizational needs.
13+
14+
This project aims to introduce a unified authorization model that supports custom roles, flexible scopes, and policy-based evaluation. By decoupling role/permission logic from application code, the goal is to achieve a more scalable, extensible, and user-friendly authorization framework.
15+
16+
For more details, please refer to the `Roles & Permissions confluence space <https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4724490259>`_.
17+
18+
Decision
19+
********
20+
21+
We will create a repository to hold the architecture, design decisions, and reference implementation for the Open edX Authorization (AuthZ) project.
22+
23+
This repository will serve as the central place for:
24+
25+
- Architectural Decision Records (ADRs) that document the evolution of the authorization model.
26+
- Design documents for scopes, policies, and integration approaches.
27+
- Reference implementations, libraries, and supporting code.
28+
- Migration strategies for replacing legacy RBAC models with the new system.
29+
30+
Consequences
31+
************
32+
33+
- This repository will provide a single source of truth for all architectural and design decisions regarding the new authorization framework.
34+
- It will make it easier to share progress, collect feedback, and collaborate across the community.
35+
- It decouples AuthZ development from ``edx-platform``, ensuring that the project can evolve independently and be later a reusable Django library.
36+
- The repo creates a clear boundary for experimentation and iteration, while providing a migration path to replace legacy role/permission handling over time.
37+
38+
Rejected Alternatives
39+
*********************
40+
41+
- **Using the edx-platform repository for AuthZ work.**
42+
Keeping the new authorization work inside ``edx-platform`` would limit flexibility, slow down iteration, and tightly couple experimental design with production code.
43+
A standalone repo enables a cleaner separation of concerns and aligns with the long-term goal of a reusable library.
44+
45+
References
46+
**********
47+
48+
- Technical Approach: `AuthZ <https://openedx.atlassian.net/wiki/spaces/OEPM/pages/5176229910>`_
49+
- PRD: `Roles & Permissions <https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4724490259>`_
50+
- OEP-66: `Authorization Best Practices <https://docs.openedx.org/projects/openedx-proposals/en/latest/best-practices/oep-0066-bp-authorization.html>`_

docs/decisions/README.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
This directory is a historical record on the architectural decisions we make with this repository as it evolves over time.
2+
3+
It uses Architecture Decision Records, as described by Michael Nygard in `Documenting Architecture Decisions`_.
4+
5+
For more information, see `OEP-19's section on ADRs`_.
6+
7+
.. _Documenting Architecture Decisions: https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
8+
.. _OEP-19's section on ADRs: https://open-edx-proposals.readthedocs.io/en/latest/best-practices/oep-0019-bp-developer-documentation.html#adrs

0 commit comments

Comments
 (0)