docs: define REST API ownership and visibility extension - #390
docs: define REST API ownership and visibility extension#390mariajgrimaldi wants to merge 6 commits into
Conversation
…line ADR 0016 records the domain-ownership audit of openedx_authz.rest_api: which endpoints are Authorization's own data, which is the one exception (WaffleFlagStatesAPIView), and why generic endpoints must not depend on another domain's concepts (the rationale PR #361 ran into). ADR 0017 names the package-layout convention the admin_console/ and course_authoring/ subpackages apply, so a future endpoint has a placement rule instead of a fresh discussion. ADR 0015 gains an addendum reflecting ADR 0016's conclusion, the actual toggle_target_removal_date (2027-06-09) and upstream tracking issue for the flag, and the confirmed details of openedx-platform's own ToggleStateView as prior art for the rejected /api/toggles/v0/state/ alternative. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds two consequences: callers must resolve their own scope against the raw override lists (course -> org -> global precedence), with frontend-app-admin-console's useCourseAuthoringFlag hook (PR #176) as the reference implementation, and the endpoint takes no client-supplied parameters, so CSRF doesn't apply since it's GET-only and IsAuthenticated is what actually gates access.
The concern isn't request forgery, this is a GET endpoint with no client-supplied parameters to forge. It's that the response isn't scoped per caller: any authenticated user gets every org/course override on the instance, with no additional permission check beyond IsAuthenticated. Also trims the Consequences and Addendum prose, which had grown longer than this repo's established ADR style (see docs/decisions/0012 and 0014 for reference).
Drop the "Decision item 4 said/left" framing: an ADR should state its current position directly, not cite an earlier numbered item by name as if quoting it. Also fixes a comma splice and cuts an unnecessary "not by caller" contrastive clause.
ADR 0018 records the Open edX Filter mechanism: the shared AuthorizationDataRequested contract, the per-endpoint integration points, and the course-authoring pipeline step's location and opt-in nature. ADR 0016's decisions 3 and 4 are corrected to reflect that the pipeline step implementation lives in this repo, not in the calling application. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Thanks for the pull request, @mariajgrimaldi! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
cb3e8a6 to
26bc34a
Compare
26bc34a to
33b5f81
Compare
Description
Before reading these ADRs please review the development plan proposal and leave comments!
https://openedx.atlassian.net/wiki/spaces/OEPM/pages/6670319622/Proposal+Role+scope+assignment+visibility+management
This PR documents the path from the temporary Verawood visibility solution to a maintainable backend extension for Willow:
The ADRs also record two pending Willow decisions. We still need to define how the Admin Console obtains organizations associated with visible course scopes and how unscoped permission requests provide enough information for course visibility. Both must be resolved where the Admin Console depends on them before the temporary flag-state endpoint is removed.
This PR changes documentation only. The backend filter, its course-authoring implementation, API integration, and frontend cleanup will follow after the ADRs are accepted.
Supporting information