Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DEPR] FFI-3 (Course Enrollment by Tenant) feature #218

Open
3 tasks
MaferMazu opened this issue Oct 1, 2024 · 9 comments
Open
3 tasks

[DEPR] FFI-3 (Course Enrollment by Tenant) feature #218

MaferMazu opened this issue Oct 1, 2024 · 9 comments
Assignees
Labels
depr Deprecations

Comments

@MaferMazu
Copy link
Contributor

MaferMazu commented Oct 1, 2024

Proposal Date

Oct 1, 2024

Target Ticket Acceptance Date

Oct 10, 2024

Earliest Open edX Named Release Without This Functionality

Sumac - 2024-10

Rationale

From the user story in the FFI-3 document, this feature shows in the learning dashboard te course enrollment by tenant, and also modifies the APIs api/enrollment/v1/enrollment and api/mobile/v1/users/{username}/course_enrollments/.

Como estudiante
Quiero ver los cursos del sitio al que estoy registrado
Para no confundirme con los cursos de otros sitios

Este feature se refiere a modificar las APIs que exponen los enrollments (a móviles o a desktop u otras apps) de forma que solo entreguen información sobre los enrollments en el site actual.

But since Redwood and MFEs, we have already seen different enrollments by tenant.

Screenshot from 2024-09-27 14-18-37
Screenshot from 2024-09-27 14-18-56

Removal

Replacement

In our Redwood instance, we can already see different course enrollments by tenant without this feature.

Deprecation

Leave in the Custom changes and in the FFI-3 doc, that this feature is deprecated

Additional Info

📌 If a not Nimbus instance needs to specifically have the APIs api/enrollment/v1/enrollment and api/mobile/v1/users/{username}/course_enrollments/ filtered, please raise the hand to decline this proposal.

I think it is a specific and unnecessary change, but if necessary, we can implement it as a filter.

Task List

@MaferMazu MaferMazu added the enhancement New feature or request label Oct 1, 2024
@MaferMazu MaferMazu added depr Deprecations and removed enhancement New feature or request labels Oct 1, 2024
@MaferMazu MaferMazu changed the title [DEPR] FFI-3 feature [DEPR] FFI-3 (Course Enrollment by Tenant) feature Oct 1, 2024
@felipemontoya
Copy link
Member

Reverting openedx/openedx-filters/pull/47 is not actually an option. This filter was accepted by the filters library more than one year ago. If we want to remove it we need to properly deprecate it.

@mariajgrimaldi what are your thoughts on this? do you know why the dashboard mfe is working out of the box given that the CourseEnrollmentQuerysetRequested filter is never in use at edx-platform?

@mariajgrimaldi
Copy link
Collaborator

mariajgrimaldi commented Oct 2, 2024

@felipemontoya: Why can't we skip the deprecation process, as is, since the filter was never included in any service or library to be used (https://github.com/search?q=CourseEnrollmentQuerysetRequested&type=code), so it is not used by the community? IMHO, a good enough removal would be to open a PR, remove the filter, and release the library with a major bump. If you disagree, we can discuss the conditions where a proper deprecation process is needed here.

@mariajgrimaldi
Copy link
Collaborator

do you know why the dashboard mfe is working out of the box given that the CourseEnrollmentQuerysetRequested filter is never in use at edx-platform?

I'm not sure how this is working. The enrollments are filtered by site org: https://github.com/openedx/edx-platform/blob/open-release/redwood.master/lms/djangoapps/learner_home/views.py#L504-L506, but that's also how the legacy FE works. I'll be looking into it.

@DonatoBD
Copy link

Initially, I didn't understand why we were considering removing a filter that already exists until I realized that the edx-platform PR was closed. So, as far as I'm concerned, there's no point in keeping it when it's not used in edx-platform

@MaferMazu
Copy link
Contributor Author

@DonatoBD, the question here is:
Does a not Nimbus instance need to specifically have the APIs api/enrollment/v1/enrollment and api/mobile/v1/users/{username}/course_enrollments/ filtered?

If not, we can deprecate this feature.

@DonatoBD
Copy link

Apart from NELC, I would say that no other Stratus has that restriction at the API level. @johanseto, do you know if NELC uses/needs that enrollment API filtered in any custom development?

@johanseto
Copy link
Contributor

johanseto commented Oct 21, 2024

@DonatoBD Yes, recently, we needed to filter course enrollments by tenant for the mobile API. /api/mobile/v4/users/{username}/course_enrollments/
We merged it in our fork nelc/edx-platform#36,
but also we created a PR for upstream with that.
openedx/edx-platform#35500

@MaferMazu
Copy link
Contributor Author

MaferMazu commented Oct 24, 2024

Based on the comments, I think the option that requires minor effort and more value is helping with this PR openedx/edx-platform#35500, and reverting the filter change in openedx-filters and eox-tenant; because with the maintaining the filter option, we should edit the current filter, edit the pipeline in eox-tenant and create a new PR in edx-platform, and I am not sure if the value justifies that effort.

I would go with the idea of reverting and helping the NELC effort.

But if you think it is better to have the filter and approach to the community with that, we can discuss it.

What do you think?

cc @DonatoBD @mariajgrimaldi @felipemontoya

Update
The only thing I see as a possible blocker is that openedx/edx-platform#35500 is adding more to the idea of site_configuration, and I don't know if the community still accepts that kind of PRs, on the other hand, the PR looks good, makes sense and is a small change.

@felipemontoya
Copy link
Member

The problem I see with the NELC PR is that it is a bandaid trying to add tenant support in an API that has never had tenant support in the past. This in theory needs product approval and it won't get it as the the right way to do it is via a filter, not in the is_org method, but in the get_queryset method.

If reverting the filter as it is not being used (as Majo said) is an option, we can always create a general filter that can serve anywhere we are fetching a list of courses.

In the long run FFI-3 is not a high priority as we are not currently thinking of migrating the multitenant saas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
depr Deprecations
Projects
None yet
Development

No branches or pull requests

6 participants