Skip to content

Commit c8bd814

Browse files
fix: drop scope inheritance in favor of explicit inheritance management (#76)
1 parent 4a2562c commit c8bd814

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

docs/decisions/0002-authorization-model-foundation.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,16 @@ Scopes as first-class citizens in permission-granting
4747
* A **scope** defines the boundary within which a role or policy applies (for example: platform-wide, organization-wide, a single course, or a specific library).
4848
* Treating scopes as **first-class citizens** means they are explicitly modeled in the system, not hidden inside ad-hoc resource definitions. They must be available to policies, queries, and audits in a consistent way.
4949
* Scopes can be **parameterized** (e.g., ``organization:ORG-A``, ``course:course-v1:OpenedX+DemoX+DemoCourse``, ``site:sandbox.openedx.org``, ``instance``) to support granular checks.
50-
* **Inheritance across scopes** must be supported (e.g., permissions granted at the organization level can cascade to courses in that organization when intended).
5150
* By making scopes explicit and consistent, we avoid the fragmentation seen in legacy systems (different services using different implicit notions of "instance", "org", "course").
5251
* Scope is part of the **Context** in S-A-O-C checks.
5352

53+
Inheritance Across Scopes Won't be Explicitly Modeled
54+
-----------------------------------------------------
55+
* Permissions will **not cascade implicitly** from broader scopes (e.g., org) to narrower ones (e.g., course).
56+
* If access should apply across multiple scopes, it must be written as **explicit checks** (logical OR).
57+
* This approach keeps authorization logic **visible and auditable**, avoiding hidden derivations.
58+
* A limited **safety hatch** (e.g., for superusers) may be considered to prevent lockouts, but scope inheritance remains deliberate.
59+
5460
III. Authorization Paradigm
5561
===========================
5662

0 commit comments

Comments
 (0)