/
LMS Endpoints Rendered By Django
LMS Endpoints Rendered By Django
- Diana Huang
- Jeremy Bowman (Deactivated)
Owned by Diana Huang
In an attempt to deprecate as many LMS frontends as we can, I ran a script to find all the URLs/endpoints in LMS and find the remaining MFEs that need to be created to handle them all.
I have done an initial pass of removing as many API endpoints (aka, does not have frontends) and admin endpoints (auto-generated by Django) as possible.
This was run on my local devstack, so the configurations do not match up with what is running on edx.org in production with the MFEs set up.
/ lms.djangoapps.branding.views.index root
/403 lms.djangoapps.static_template_view.views.render_403
/404 lms.djangoapps.static_template_view.views.render 404
/404 lms.djangoapps.static_template_view.views.render_404
/404 lms.djangoapps.static_template_view.views.render_404 static_template_view.views.render_404
/429 lms.djangoapps.static_template_view.views.render_429
/500 lms.djangoapps.static_template_view.views.render_500
/500 lms.djangoapps.static_template_view.views.render_500 static_template_view.views.render_500
/about lms.djangoapps.static_template_view.views.render about
/account/settings openedx.core.djangoapps.user_api.accounts.settings_views.account_settings account_settings
/accounts/manage_user_standing common.djangoapps.student.views.management.manage_user_standing manage_user_standing
/blog lms.djangoapps.static_template_view.views.render blog
/blog lms.djangoapps.static_template_view.views.render blog
/calculate common.djangoapps.util.views.calculate
/catalog/management/cache_programs/ openedx.core.djangoapps.catalog.views.cache_programs catalog:cache_programs
/certificates/<certificate_uuid> lms.djangoapps.certificates.views.webview.render_cert_by_uuid certificates:render_cert_by_uuid
/certificates/course/<course_id> lms.djangoapps.certificates.views.webview.render_preview_certificate certificates:preview_cert
/certificates/user/<user_id>/course/<course_id> lms.djangoapps.certificates.views.webview.unsupported_url certificates:unsupported_url
/config/catalog config_models.views._create_atomic_wrapper
/config/forums config_models.views._create_atomic_wrapper
/config/programs config_models.views._create_atomic_wrapper
/consent/api/v1/data_sharing_consent consent.api.v1.views.DataSharingConsentView data_sharing_consent
/contact lms.djangoapps.static_template_view.views.render contact
/copyright lms.djangoapps.static_template_view.views.render copyright
/cornerstone/course-list integrated_channels.cornerstone.views.CornerstoneCoursesListView cornerstone-course-list
/course_modes/choose/<course_id>/ common.djangoapps.course_modes.views.ChooseModeView course_modes_choose
/course_run/<course_id>/refund_status common.djangoapps.student.views.management.course_run_refund_status course_run_refund_status
/courses/ lms.djangoapps.branding.views.courses courses
/courses/<course_id>/ lms.djangoapps.courseware.views.views.course_about course_root
/courses/<course_id>/<tab_slug>/ lms.djangoapps.courseware.views.views.StaticCourseTabView static_tab
/courses/<course_id>/about lms.djangoapps.courseware.views.views.course_about about_course
/courses/<course_id>/book/<book_index>/ lms.djangoapps.staticbook.views.index book
/courses/<course_id>/book/<book_index>/<page> lms.djangoapps.staticbook.views.index book
/courses/<course_id>/bookmarks/ openedx.features.course_bookmarks.views.course_bookmarks.CourseBookmarksView openedx.course_bookmarks.home
/courses/<course_id>/bookmarks/bookmarks_fragment openedx.features.course_bookmarks.views.course_bookmarks.CourseBookmarksFragmentView openedx.course_bookmarks.course_bookmarks_fragment_view
/courses/<course_id>/calendar_sync openedx.features.calendar_sync.views.calendar_sync.CalendarSyncView openedx.calendar_sync
/courses/<course_id>/course/ openedx.features.course_experience.views.course_home.outline_tab
/courses/<course_id>/course/updates openedx.features.course_experience.views.course_updates.CourseUpdatesView openedx.course_experience.course_updates
/courses/<course_id>/course_wiki/ lms.djangoapps.course_wiki.views.course_wiki_redirect course_wiki
/courses/<course_id>/courseware/ lms.djangoapps.courseware.views.index.CoursewareIndex courseware
/courses/<course_id>/courseware/<chapter>/ lms.djangoapps.courseware.views.index.CoursewareIndex courseware_chapter
/courses/<course_id>/courseware/<chapter>/<section>/ lms.djangoapps.courseware.views.index.CoursewareIndex courseware_section
/courses/<course_id>/courseware/<chapter>/<section>/<position>/ lms.djangoapps.courseware.views.index.CoursewareIndex courseware_position
/courses/<course_id>/dates lms.djangoapps.courseware.views.views.dates dates
/courses/<course_id>/discussion/<commentable_id>/follow lms.djangoapps.discussion.django_comment_client.base.views.follow_commentable follow_commentable
/courses/<course_id>/discussion/<commentable_id>/threads/create lms.djangoapps.discussion.django_comment_client.base.views.create_thread create_thread
/courses/<course_id>/discussion/<commentable_id>/unfollow lms.djangoapps.discussion.django_comment_client.base.views.unfollow_commentable unfollow_commentable
/courses/<course_id>/discussion/comments/<comment_id>/delete lms.djangoapps.discussion.django_comment_client.base.views.delete_comment delete_comment
/courses/<course_id>/discussion/comments/<comment_id>/downvote lms.djangoapps.discussion.django_comment_client.base.views.vote_for_comment downvote_comment
/courses/<course_id>/discussion/comments/<comment_id>/endorse lms.djangoapps.discussion.django_comment_client.base.views.endorse_comment endorse_comment
/courses/<course_id>/discussion/comments/<comment_id>/flagAbuse lms.djangoapps.discussion.django_comment_client.base.views.flag_abuse_for_comment flag_abuse_for_comment
/courses/<course_id>/discussion/comments/<comment_id>/reply lms.djangoapps.discussion.django_comment_client.base.views.create_sub_comment create_sub_comment
/courses/<course_id>/discussion/comments/<comment_id>/unFlagAbuse lms.djangoapps.discussion.django_comment_client.base.views.un_flag_abuse_for_comment un_flag_abuse_for_comment
/courses/<course_id>/discussion/comments/<comment_id>/unvote lms.djangoapps.discussion.django_comment_client.base.views.undo_vote_for_comment undo_vote_for_comment
/courses/<course_id>/discussion/comments/<comment_id>/update lms.djangoapps.discussion.django_comment_client.base.views.update_comment update_comment
/courses/<course_id>/discussion/comments/<comment_id>/upvote lms.djangoapps.discussion.django_comment_client.base.views.vote_for_comment upvote_comment
/courses/<course_id>/discussion/forum/ lms.djangoapps.discussion.views.forum_form_discussion forum_form_discussion
/courses/<course_id>/discussion/forum/<discussion_id>/inline lms.djangoapps.discussion.views.inline_discussion inline_discussion
/courses/<course_id>/discussion/forum/<discussion_id>/threads/<thread_id> lms.djangoapps.discussion.views.single_thread single_thread
/courses/<course_id>/discussion/forum/discussion_board_fragment_view lms.djangoapps.discussion.views.DiscussionBoardFragmentView discussion_board_fragment_view
/courses/<course_id>/discussion/forum/users/<user_id> lms.djangoapps.discussion.views.user_profile user_profile
/courses/<course_id>/discussion/forum/users/<user_id>/followed lms.djangoapps.discussion.views.followed_threads followed_threads
/courses/<course_id>/discussion/threads/<thread_id>/close lms.djangoapps.discussion.django_comment_client.base.views.openclose_thread openclose_thread
/courses/<course_id>/discussion/threads/<thread_id>/delete lms.djangoapps.discussion.django_comment_client.base.views.delete_thread delete_thread
/courses/<course_id>/discussion/threads/<thread_id>/downvote lms.djangoapps.discussion.django_comment_client.base.views.vote_for_thread downvote_thread
/courses/<course_id>/discussion/threads/<thread_id>/flagAbuse lms.djangoapps.discussion.django_comment_client.base.views.flag_abuse_for_thread flag_abuse_for_thread
/courses/<course_id>/discussion/threads/<thread_id>/follow lms.djangoapps.discussion.django_comment_client.base.views.follow_thread follow_thread
/courses/<course_id>/discussion/threads/<thread_id>/pin lms.djangoapps.discussion.django_comment_client.base.views.pin_thread pin_thread
/courses/<course_id>/discussion/threads/<thread_id>/reply lms.djangoapps.discussion.django_comment_client.base.views.create_comment create_comment
/courses/<course_id>/discussion/threads/<thread_id>/unFlagAbuse lms.djangoapps.discussion.django_comment_client.base.views.un_flag_abuse_for_thread un_flag_abuse_for_thread
/courses/<course_id>/discussion/threads/<thread_id>/unfollow lms.djangoapps.discussion.django_comment_client.base.views.unfollow_thread unfollow_thread
/courses/<course_id>/discussion/threads/<thread_id>/unpin lms.djangoapps.discussion.django_comment_client.base.views.un_pin_thread un_pin_thread
/courses/<course_id>/discussion/threads/<thread_id>/unvote lms.djangoapps.discussion.django_comment_client.base.views.undo_vote_for_thread undo_vote_for_thread
/courses/<course_id>/discussion/threads/<thread_id>/update lms.djangoapps.discussion.django_comment_client.base.views.update_thread update_thread
/courses/<course_id>/discussion/threads/<thread_id>/upvote lms.djangoapps.discussion.django_comment_client.base.views.vote_for_thread upvote_thread
/courses/<course_id>/discussion/upload lms.djangoapps.discussion.django_comment_client.base.views.upload upload
/courses/<course_id>/discussion/users lms.djangoapps.discussion.django_comment_client.base.views.users users
/courses/<course_id>/edxnotes/ lms.djangoapps.edxnotes.views.edxnotes edxnotes
/courses/<course_id>/edxnotes/notes/ lms.djangoapps.edxnotes.views.notes notes
/courses/<course_id>/edxnotes/token/ lms.djangoapps.edxnotes.views.get_token get_token
/courses/<course_id>/edxnotes/visibility/ lms.djangoapps.edxnotes.views.edxnotes_visibility edxnotes_visibility
/courses/<course_id>/enroll_staff lms.djangoapps.courseware.views.views.EnrollStaffView enroll_staff
/courses/<course_id>/generate_user_cert lms.djangoapps.courseware.views.views.generate_user_cert generate_user_cert
/courses/<course_id>/htmlbook/<book_index>/ lms.djangoapps.staticbook.views.html_index html_book
/courses/<course_id>/htmlbook/<book_index>/chapter/<chapter>/ lms.djangoapps.staticbook.views.html_index html_book
/courses/<course_id>/instructor lms.djangoapps.instructor.views.instructor_dashboard.instructor_dashboard_2 instructor_dashboard
/courses/<course_id>/jump_to/<location> lms.djangoapps.courseware.views.views.jump_to jump_to
/courses/<course_id>/jump_to_id/<module_id> lms.djangoapps.courseware.views.views.jump_to_id jump_to_id
/courses/<course_id>/lti_rest_endpoints/ lms.djangoapps.courseware.views.views.get_course_lti_endpoints lti_rest_endpoints
/courses/<course_id>/lti_tab/<provider_uuid>/ lms.djangoapps.courseware.views.views.CourseTabView lti_course_tab
/courses/<course_id>/pdfbook/<book_index>/ lms.djangoapps.staticbook.views.pdf_index pdf_book
/courses/<course_id>/pdfbook/<book_index>/<page> lms.djangoapps.staticbook.views.pdf_index pdf_book
/courses/<course_id>/pdfbook/<book_index>/chapter/<chapter>/ lms.djangoapps.staticbook.views.pdf_index pdf_book
/courses/<course_id>/pdfbook/<book_index>/chapter/<chapter>/<page> lms.djangoapps.staticbook.views.pdf_index pdf_book
/courses/<course_id>/progress lms.djangoapps.courseware.views.views.progress progress
/courses/<course_id>/progress/<student_id>/ lms.djangoapps.courseware.views.views.progress student_progress
/courses/<course_id>/set_course_mode_price lms.djangoapps.instructor.views.instructor_dashboard.set_course_mode_price set_course_mode_price
/courses/<course_id>/submission_history/<learner_identifier>/<location> lms.djangoapps.courseware.views.views.submission_history submission_history
/courses/<course_id>/survey lms.djangoapps.courseware.views.views.course_survey course_survey
/courses/<course_id>/syllabus lms.djangoapps.courseware.views.views.syllabus syllabus
/courses/<course_id>/tab/<tab_type>/ lms.djangoapps.courseware.views.views.CourseTabView course_tab_view
/courses/<course_id>/teams/ lms.djangoapps.teams.views.TeamsDashboardView teams_dashboard
/courses/<course_id>/xblock/<usage_id>/handler/<handler><var> lms.djangoapps.courseware.block_render.handle_xblock_callback xblock_handler
/courses/<course_id>/xblock/<usage_id>/handler_noauth/<handler><var> lms.djangoapps.courseware.block_render.handle_xblock_callback_noauth xblock_handler_noauth
/courses/<course_id>/xblock/<usage_id>/view/<view_name> lms.djangoapps.courseware.block_render.xblock_view xblock_view
/courses/<course_id>/xqueue/<userid>/<mod_id>/<dispatch> lms.djangoapps.courseware.block_render.xqueue_callback xqueue_callback
/courses/<course_key_string>/cohorts/<cohort_id> openedx.core.djangoapps.course_groups.views.cohort_handler cohorts
/courses/<course_key_string>/cohorts/<cohort_id> openedx.core.djangoapps.course_groups.views.users_in_cohort list_cohort
/courses/<course_key_string>/cohorts/<cohort_id>/add openedx.core.djangoapps.course_groups.views.add_users_to_cohort add_to_cohort
/courses/<course_key_string>/cohorts/<cohort_id>/delete openedx.core.djangoapps.course_groups.views.remove_user_from_cohort remove_from_cohort
/courses/<course_key_string>/cohorts/debug openedx.core.djangoapps.course_groups.views.debug_cohort_mgmt debug_cohort_mgmt
/courses/<course_key_string>/cohorts/settings openedx.core.djangoapps.course_groups.views.course_cohort_settings_handler course_cohort_settings
/courses/<course_key_string>/discussion/topics lms.djangoapps.discussion.views.discussion_topics discussion_topics
/courses/<course_key_string>/discussions/settings lms.djangoapps.discussion.views.course_discussions_settings_handler course_discussions_settings
/courses/<course_key_string>/masquerade lms.djangoapps.courseware.masquerade.MasqueradeView masquerade_update
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/ wiki.views.article.ArticleView course_wiki_do_not_reverse:root
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<article_id>/plugin/<slug>/ wiki.views.article.Plugin course_wiki_do_not_reverse:plugin
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<article_id>/plugin/links/json/query-urlpath/ wiki.plugins.links.views.QueryUrlPath course_wiki_do_not_reverse:links_query_urlpath
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/ wiki.views.article.ArticleView course_wiki_do_not_reverse:get
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/delete/ wiki.views.article.Delete course_wiki_do_not_reverse:delete
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/deleted/ wiki.views.article.Deleted course_wiki_do_not_reverse:deleted
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/edit/ wiki.views.article.Edit course_wiki_do_not_reverse:edit
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/history/ wiki.views.article.History course_wiki_do_not_reverse:history
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/preview/ wiki.views.article.Preview course_wiki_do_not_reverse:preview
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/revision/change/<int:revision_id>/ wiki.decorators.wrapper course_wiki_do_not_reverse:change_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/revision/merge/<int:revision_id>/ wiki.decorators.wrapper course_wiki_do_not_reverse:merge_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/settings/ wiki.views.article.Settings course_wiki_do_not_reverse:settings
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<int:article_id>/source/ wiki.views.article.Source course_wiki_do_not_reverse:source
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path> wiki.views.article.ArticleView course_wiki_do_not_reverse:get
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_create/ wiki.views.article.Create course_wiki_do_not_reverse:create
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_delete/ wiki.views.article.Delete course_wiki_do_not_reverse:delete
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_deleted/ wiki.views.article.Deleted course_wiki_do_not_reverse:deleted
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_dir/ wiki.views.article.Dir course_wiki_do_not_reverse:dir
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_edit/ wiki.views.article.Edit course_wiki_do_not_reverse:edit
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_history/ wiki.views.article.History course_wiki_do_not_reverse:history
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_plugin/<slug>/ wiki.views.article.Plugin course_wiki_do_not_reverse:plugin
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_plugin/links/json/query-urlpath/ wiki.plugins.links.views.QueryUrlPath course_wiki_do_not_reverse:links_query_urlpath
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_preview/ wiki.views.article.Preview course_wiki_do_not_reverse:preview
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_revision/change/<revision_id>/ wiki.decorators.wrapper course_wiki_do_not_reverse:change_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_revision/merge/<revision_id>/ wiki.decorators.wrapper course_wiki_do_not_reverse:merge_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_settings/ wiki.views.article.Settings course_wiki_do_not_reverse:settings
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/<path>_source/ wiki.views.article.Source course_wiki_do_not_reverse:source
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/_revision/change/<int:article_id>/<int:revision_id>/ wiki.decorators.wrapper course_wiki_do_not_reverse:change_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/_revision/diff/<int:revision_id>/ wiki.decorators.wrap course_wiki_do_not_reverse:diff
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/_revision/merge/<int:article_id>/<int:revision_id>/preview/ wiki.decorators.wrapper course_wiki_do_not_reverse:merge_revision_preview
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/_revision/preview/<int:article_id>/ wiki.views.article.Preview course_wiki_do_not_reverse:preview_revision
/courses/<var>courses/(:[/+]+(/|\+)[/+]+<var>[/]+)/wiki/create-root/ wiki.views.article.CreateRootView course_wiki_do_not_reverse:root_create
/courses/yt_video_metadata lms.djangoapps.courseware.views.views.yt_video_metadata yt_video_metadata
/create_account openedx.core.djangoapps.user_authn.views.register.RegistrationView create_account
/dashboard/ common.djangoapps.student.views.dashboard.student_dashboard dashboard
/dashboard/programs/ lms.djangoapps.learner_dashboard.program_views.program_listing program_listing_view
/dashboard/programs/<program_uuid>/ lms.djangoapps.learner_dashboard.program_views.program_details program_details_view
/dashboard/programs/<program_uuid>/details_fragment/ lms.djangoapps.learner_dashboard.programs.ProgramDetailsFragmentView program_details_fragment_view
/dashboard/programs/<program_uuid>/discussion/ lms.djangoapps.learner_dashboard.program_views.ProgramDiscussionIframeView program_discussion
/dashboard/programs/<program_uuid>/live/ lms.djangoapps.learner_dashboard.program_views.ProgramLiveIframeView program_live
/dashboard/programs_fragment/ lms.djangoapps.learner_dashboard.programs.ProgramsFragmentView program_listing_fragment_view
/donate lms.djangoapps.static_template_view.views.render donate
/donate lms.djangoapps.static_template_view.views.render donate
/email_confirm/<key> common.djangoapps.student.views.management.confirm_email_change confirm_email_change
/enterprise/<enterprise_uuid>/course/<course_id>/enroll/ enterprise.views.RouterView enterprise_course_run_enrollment_page
/enterprise/<enterprise_uuid>/course/<course_key>/enroll/ enterprise.views.RouterView enterprise_course_enrollment_page
/enterprise/<enterprise_uuid>/program/<program_uuid>/enroll/ enterprise.views.RouterView enterprise_program_enrollment_page
/enterprise/grant_data_sharing_permissions enterprise.views.GrantDataSharingPermissions grant_data_sharing_permissions
<