matlab-proxy 0.24.2__tar.gz → 0.25.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of matlab-proxy might be problematic. Click here for more details.

Files changed (190) hide show
  1. matlab_proxy-0.25.0/PKG-INFO +246 -0
  2. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/README.md +26 -12
  3. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/index.jsx +5 -11
  4. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/reducers/index.js +0 -22
  5. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/selectors/index.js +0 -2
  6. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/test/utils/responses.js +0 -2
  7. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/test/utils/state.js +0 -2
  8. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/app.py +1 -3
  9. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/app_state.py +39 -13
  10. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/constants.py +2 -1
  11. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/matlab/startup.m +1 -4
  12. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/settings.py +15 -11
  13. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/environment_variables.py +2 -27
  14. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/exceptions.py +14 -1
  15. matlab_proxy-0.25.0/matlab_proxy.egg-info/PKG-INFO +246 -0
  16. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/entry_points.txt +0 -1
  17. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/requires.txt +2 -3
  18. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/setup.py +4 -4
  19. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_with_license/test_http_end_points.py +4 -5
  20. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_app.py +94 -45
  21. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_app_state.py +8 -7
  22. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_non_dev_mode.py +4 -4
  23. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_settings.py +0 -15
  24. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/test_token_auth.py +5 -5
  25. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/test_mw.py +2 -2
  26. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/test_util.py +7 -7
  27. matlab-proxy-0.24.2/PKG-INFO +0 -213
  28. matlab-proxy-0.24.2/matlab_proxy.egg-info/PKG-INFO +0 -213
  29. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/LICENSE.md +0 -0
  30. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/MANIFEST.in +0 -0
  31. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/.eslintrc.json +0 -0
  32. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/.gitignore +0 -0
  33. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/README.md +0 -0
  34. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/eslint.config.js +0 -0
  35. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/index.css +0 -0
  36. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/index.html +0 -0
  37. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/package-lock.json +0 -0
  38. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/package.json +0 -0
  39. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/public/favicon.ico +0 -0
  40. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/public/manifest.json +0 -0
  41. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/public/robots.txt +0 -0
  42. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/actionCreators/actionCreators.spec.js +0 -0
  43. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/actionCreators/index.js +0 -0
  44. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/actions/index.js +0 -0
  45. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/css/bootstrap.min.css +0 -0
  46. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/css/site7.min.css +0 -0
  47. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.eot +0 -0
  48. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.svg +0 -0
  49. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.ttf +0 -0
  50. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff +0 -0
  51. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff2 +0 -0
  52. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-eps.svg +0 -0
  53. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-eps.ttf +0 -0
  54. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-eps.woff +0 -0
  55. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.svg +0 -0
  56. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.ttf +0 -0
  57. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.woff +0 -0
  58. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks.svg +0 -0
  59. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks.ttf +0 -0
  60. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/fonts/mathworks.woff +0 -0
  61. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/bug_reports/workaround.gif +0 -0
  62. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account-hover.svg +0 -0
  63. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account.svg +0 -0
  64. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact-hover.svg +0 -0
  65. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact.svg +0 -0
  66. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/3p/images/responsive/global/ico-sprite.png +0 -0
  67. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/App.css +0 -0
  68. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/App.spec.jsx +0 -0
  69. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/IdleBufferTimeouts.spec.jsx +0 -0
  70. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/App/MATLAB-env-blur.png +0 -0
  71. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Confirmation/Confirmation.spec.jsx +0 -0
  72. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Confirmation/index.jsx +0 -0
  73. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/Controls.css +0 -0
  74. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/Controls.spec.jsx +0 -0
  75. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/feedback.svg +0 -0
  76. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/help.svg +0 -0
  77. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/index.jsx +0 -0
  78. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/restart.svg +0 -0
  79. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/sign-out.svg +0 -0
  80. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/start.svg +0 -0
  81. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/stop.svg +0 -0
  82. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Controls/terminate.svg +0 -0
  83. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/EntitlementSelector/EntitlementSelector.spec.jsx +0 -0
  84. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/EntitlementSelector/index.jsx +0 -0
  85. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Error/Error.css +0 -0
  86. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Error/Error.spec.jsx +0 -0
  87. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Error/index.jsx +0 -0
  88. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Help/Help.css +0 -0
  89. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Help/Help.spec.jsx +0 -0
  90. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Help/index.jsx +0 -0
  91. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Information/Information.css +0 -0
  92. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Information/Information.spec.jsx +0 -0
  93. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Information/index.jsx +0 -0
  94. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/ExistingLicense.css +0 -0
  95. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/ExistingLicense.jsx +0 -0
  96. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/LicenseGatherer.spec.jsx +0 -0
  97. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/LicensingGatherer.css +0 -0
  98. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/MHLM.jsx +0 -0
  99. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/NLM.jsx +0 -0
  100. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/LicensingGatherer/index.jsx +0 -0
  101. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/MatlabJsd/MatlabJsd.css +0 -0
  102. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/MatlabJsd/MatlabJsd.spec.jsx +0 -0
  103. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/MatlabJsd/index.jsx +0 -0
  104. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Overlay/Overlay.css +0 -0
  105. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Overlay/Overlay.spec.jsx +0 -0
  106. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/Overlay/index.jsx +0 -0
  107. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/OverlayTrigger.css +0 -0
  108. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/OverlayTrigger.spec.jsx +0 -0
  109. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/ResizeOverlayTrigger.spec.jsx +0 -0
  110. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/arrow.svg +0 -0
  111. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/gripper.svg +0 -0
  112. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/index.jsx +0 -0
  113. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/trigger-error.svg +0 -0
  114. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/OverlayTrigger/trigger-ok.svg +0 -0
  115. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/ShutdownWarning/ShutdownWarning.css +0 -0
  116. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/components/ShutdownWarning/index.jsx +0 -0
  117. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/constants.js +0 -0
  118. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/main.jsx +0 -0
  119. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/reducers/reducers.spec.js +0 -0
  120. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/selectors/selectors.spec.js +0 -0
  121. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/setupTests.js +0 -0
  122. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/src/test/utils/react-test.jsx +0 -0
  123. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/gui/vite.config.js +0 -0
  124. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/__init__.py +0 -0
  125. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/default_configuration.py +0 -0
  126. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/devel.py +0 -0
  127. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/icons/matlab.svg +0 -0
  128. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/matlab/evaluateUserMatlabCode.m +0 -0
  129. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/__init__.py +0 -0
  130. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/event_loop.py +0 -0
  131. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/list_servers.py +0 -0
  132. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mw.py +0 -0
  133. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/__init__.py +0 -0
  134. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/custom_http_headers.py +0 -0
  135. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/download.py +0 -0
  136. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/embedded_connector/__init__.py +0 -0
  137. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/embedded_connector/helpers.py +0 -0
  138. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/embedded_connector/request.py +0 -0
  139. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/logger.py +0 -0
  140. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/token_auth.py +0 -0
  141. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/mwi/validators.py +0 -0
  142. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/system.py +0 -0
  143. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy/util/windows.py +0 -0
  144. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/SOURCES.txt +0 -0
  145. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/dependency_links.txt +0 -0
  146. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/not-zip-safe +0 -0
  147. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy.egg-info/top_level.txt +0 -0
  148. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/__init__.py +0 -0
  149. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/lib/__init__.py +0 -0
  150. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/lib/api.py +0 -0
  151. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/storage/__init__.py +0 -0
  152. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/storage/file_repository.py +0 -0
  153. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/storage/interface.py +0 -0
  154. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/storage/server.py +0 -0
  155. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/__init__.py +0 -0
  156. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/auth.py +0 -0
  157. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/constants.py +0 -0
  158. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/environment_variables.py +0 -0
  159. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/helpers.py +0 -0
  160. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/utils/logger.py +0 -0
  161. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/web/__init__.py +0 -0
  162. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/web/app.py +0 -0
  163. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/web/monitor.py +0 -0
  164. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/matlab_proxy_manager/web/watcher.py +0 -0
  165. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/setup.cfg +0 -0
  166. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/__init__.py +0 -0
  167. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_with_license/__init__.py +0 -0
  168. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_with_license/conftest.py +0 -0
  169. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_without_license/__init__.py +0 -0
  170. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_without_license/conftest.py +0 -0
  171. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/integration_tests_without_license/test_matlab_is_down_if_unlicensed.py +0 -0
  172. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/utils/__init__.py +0 -0
  173. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/utils/integration_tests_utils.py +0 -0
  174. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/integration/utils/licensing.py +0 -0
  175. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/__init__.py +0 -0
  176. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/conftest.py +0 -0
  177. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_constants.py +0 -0
  178. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_ddux.py +0 -0
  179. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/test_devel.py +0 -0
  180. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/__init__.py +0 -0
  181. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/__init__.py +0 -0
  182. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/embedded_connector/__init__.py +0 -0
  183. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/embedded_connector/test_helpers.py +0 -0
  184. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/embedded_connector/test_request.py +0 -0
  185. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/test_custom_http_headers.py +0 -0
  186. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/test_download.py +0 -0
  187. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/test_logger.py +0 -0
  188. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/unit/util/mwi/test_validators.py +0 -0
  189. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/utils/__init__.py +0 -0
  190. {matlab-proxy-0.24.2 → matlab_proxy-0.25.0}/tests/utils/logging_util.py +0 -0
@@ -0,0 +1,246 @@
1
+ Metadata-Version: 2.1
2
+ Name: matlab-proxy
3
+ Version: 0.25.0
4
+ Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
5
+ Home-page: https://github.com/mathworks/matlab-proxy/
6
+ Author: The MathWorks, Inc.
7
+ Author-email: cloud@mathworks.com
8
+ License: MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE
9
+ Keywords: Proxy,MATLAB Proxy,MATLAB,MATLAB Javascript Desktop,MATLAB Web Desktop,Remote MATLAB Web Access
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Requires-Python: ~=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE.md
20
+ Requires-Dist: aiohttp>=3.7.4
21
+ Requires-Dist: aiohttp_session[secure]
22
+ Requires-Dist: importlib-metadata
23
+ Requires-Dist: importlib-resources
24
+ Requires-Dist: psutil
25
+ Requires-Dist: watchdog
26
+ Requires-Dist: requests
27
+ Provides-Extra: dev
28
+ Requires-Dist: aiohttp-devtools; extra == "dev"
29
+ Requires-Dist: black; extra == "dev"
30
+ Requires-Dist: pytest; extra == "dev"
31
+ Requires-Dist: pytest-env; extra == "dev"
32
+ Requires-Dist: pytest-cov; extra == "dev"
33
+ Requires-Dist: pytest-timeout; extra == "dev"
34
+ Requires-Dist: pytest-mock; extra == "dev"
35
+ Requires-Dist: pytest-aiohttp; extra == "dev"
36
+ Requires-Dist: pytest-timeout; extra == "dev"
37
+ Requires-Dist: psutil; extra == "dev"
38
+ Requires-Dist: urllib3; extra == "dev"
39
+ Requires-Dist: pytest-playwright; extra == "dev"
40
+
41
+ # MATLAB Proxy
42
+ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mathworks/matlab-proxy/run-tests.yml?branch=main&logo=github)](https://github.com/mathworks/matlab-proxy/actions)   [![PyPI badge](https://img.shields.io/pypi/v/matlab-proxy.svg?logo=pypi)](https://pypi.python.org/pypi/matlab-proxy)   [![codecov](https://codecov.io/gh/mathworks/matlab-proxy/branch/main/graph/badge.svg?token=ZW3SESKCSS)](https://codecov.io/gh/mathworks/matlab-proxy)   [![Downloads](https://static.pepy.tech/personalized-badge/matlab-proxy?period=month&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20downloads/month)](https://pepy.tech/project/matlab-proxy)
43
+
44
+ ----
45
+
46
+ Use this Python® package `matlab-proxy` to start MATLAB® and access it from a web browser.
47
+
48
+ Install this package to create an executable `matlab-proxy-app`, which starts MATLAB and provides you a URL to access it.
49
+
50
+ MATLAB Proxy is under active development. For support or to report issues, see [Feedback](#feedback).
51
+
52
+ ----
53
+
54
+ **Table of Contents**
55
+ - [Requirements](#requirements)
56
+ - [Installation](#installation)
57
+ - [PyPI](#pypi)
58
+ - [Building From Sources](#building-from-sources)
59
+ - [Usage](#usage)
60
+ - [Examples](#examples)
61
+ - [Limitations](#limitations)
62
+ - [Security](#security)
63
+ - [Feedback](#feedback)
64
+
65
+ ## Requirements
66
+ * MATLAB® R2020b or later, installed and added to the system PATH.
67
+ ```bash
68
+ # Confirm MATLAB is on the PATH
69
+ which matlab
70
+ ```
71
+ * The dependencies required to run MATLAB.
72
+ For details, refer to the Dockerfiles in the [matlab-deps](https://github.com/mathworks-ref-arch/container-images/tree/master/matlab-deps) repository for your desired version of MATLAB.
73
+
74
+ * X Virtual Frame Buffer (Xvfb) (only for Linux® based systems):
75
+
76
+ Installing Xvfb is optional (starting v0.11.0 of matlab-proxy) but highly recommended. Xvfb enables graphical abilities like plots and figures in the MATLAB desktop.
77
+ To install Xvfb on your Linux machine, use:
78
+
79
+ ```bash
80
+ # On a Debian/Ubuntu based system:
81
+ $ sudo apt install xvfb
82
+ ```
83
+ ```bash
84
+ # On a RHEL based system:
85
+ $ yum search Xvfb
86
+ xorg-x11-server-Xvfb.x86_64 : A X Windows System virtual framebuffer X server.
87
+
88
+ $ sudo yum install xorg-x11-server-Xvfb
89
+ ```
90
+
91
+
92
+ * Fluxbox Window Manager (only for Linux® based systems):
93
+
94
+ Installing fluxbox is optional but required to use Simulink Online.
95
+
96
+ Install fluxbox using:
97
+ ```bash
98
+ # On a Debian/Ubuntu based system:
99
+ $ sudo apt install fluxbox
100
+ ```
101
+
102
+ * Python versions: **3.8** | **3.9** | **3.10** | **3.11**
103
+ * [Browser Requirements](https://www.mathworks.com/support/requirements/browser-requirements.html)
104
+ * Supported Operating Systems:
105
+ * Linux®
106
+ * Windows® Operating System ( starting v0.4.0 of matlab-proxy )
107
+ * MacOS (starting v0.5.0 of matlab-proxy )
108
+ See [Platform Support](#platform-support) for more information
109
+
110
+ ## Installation
111
+
112
+ ### PyPI
113
+ This repository can be installed directly from the Python Package Index.
114
+ ```bash
115
+ python -m pip install matlab-proxy
116
+ ```
117
+
118
+ ### Building From Sources
119
+ Building from sources requires Node.js® version 18 or higher. [Click here to install Node.js](https://nodejs.org/en/)
120
+
121
+ ```bash
122
+ git clone https://github.com/mathworks/matlab-proxy.git
123
+
124
+ cd matlab-proxy
125
+
126
+ python -m pip install .
127
+ ```
128
+
129
+ Installing the package creates an executable called `matlab-proxy-app`, which is placed onto your system PATH by `pip`, usually in: `$HOME/.local/bin/`
130
+ ```bash
131
+ # Confirm it is on the PATH
132
+ which matlab-proxy-app
133
+ ```
134
+
135
+ ## Usage
136
+
137
+ Once the `matlab-proxy` package is installed.
138
+
139
+ * Open a terminal and start `matlab-proxy-app`. On Linux, the command would be
140
+ ```bash
141
+ env MWI_BASE_URL="/matlab" matlab-proxy-app
142
+ ```
143
+ `MWI_BASE_URL` is an environment variable which controls the link on which MATLAB can be accessed.
144
+ For a detailed listing of all environment variables. See [Advanced-Usage.md](./Advanced-Usage.md)
145
+
146
+ Running the above command will print text out on your terminal, which will contain the URL to access MATLAB. For example:
147
+ ```
148
+ Access MATLAB at
149
+ http://localhost:44549/matlab/index.html
150
+ ```
151
+
152
+ * Open the the link above in a web browser. If prompted to do so, enter credentials for a MathWorks account associated with a MATLAB license. If you are using a network license manager, then change to the _Network License Manager_ tab and enter the license server address instead. To determine the appropriate method for your license type, consult [MATLAB Licensing Info](./MATLAB-Licensing-Info.md).
153
+ <p align="center">
154
+ <img width="400" src="https://github.com/mathworks/matlab-proxy/raw/main/img/licensing_GUI.png">
155
+ </p>
156
+
157
+ * Wait for the MATLAB session to start. *This can take several minutes*.
158
+ <p align="center">
159
+ <img width="800" src="https://github.com/mathworks/matlab-proxy/raw/main/img/MATLAB_Desktop.png">
160
+ </p>
161
+
162
+ * To manage the MATLAB session, click the tools icon shown below.
163
+ <p align="center">
164
+ <img width="100" src="https://github.com/mathworks/matlab-proxy/raw/main/img/tools_icon.png">
165
+ </p>
166
+
167
+ * Clicking the tools icon opens a status panel with buttons like the ones below:
168
+ <p align="center">
169
+ <img width="800" src="https://github.com/mathworks/matlab-proxy/raw/main/img/status_panel.png">
170
+ </p>
171
+
172
+ The following options are available in the status panel (some options are only available in a specific context):
173
+
174
+ | Option | Description |
175
+ | ---- | ---- |
176
+ | Start MATLAB | Start your MATLAB session. Available if MATLAB is stopped.|
177
+ | Restart MATLAB | Restart your MATLAB session. Available if MATLAB is running or starting.|
178
+ | Stop MATLAB | Stop your MATLAB session. Use this option if you want to free up RAM and CPU resources. Available if MATLAB is running or starting.|
179
+ | Sign Out | Sign out of MATLAB session. Use this to stop MATLAB and sign in with an alternative account. Available if using online licensing.|
180
+ | Unset License Server Address | Unset network license manager server address. Use this to stop MATLAB and enter new licensing information. Available if using network license manager.|
181
+ | Feedback | Provide feedback. Opens a new tab to create an issue on GitHub.|
182
+ | Help | Open a help pop-up for a detailed description of the options.|
183
+
184
+ ## Examples
185
+ * For installing/usage in a Docker container, see this [Dockerfile](./examples/Dockerfile) and its [README](./examples/README.md).
186
+ * For upgrading **matlab-proxy** in an existing Docker image, see this [Dockerfile.upgrade.matlab-proxy](./examples/Dockerfile.upgrade.matlab-proxy) and its [README](./examples/README.md#upgrading-matlab-proxy-package-in-a-docker-image).
187
+ * For usage in a Jupyter environment, see [jupyter-matlab-proxy](https://github.com/mathworks/jupyter-matlab-proxy).
188
+
189
+ ## Platform Support
190
+
191
+ ### Linux
192
+ This package is fully supported for the Linux Operating System.
193
+
194
+ ### Windows
195
+
196
+ Windows® Operating System support was introduced in package version `v0.4.0`.
197
+ Install the version >=0.4.0 to use the package on Windows.
198
+ ```bash
199
+ # To upgrade an existing installation of matlab-proxy package:
200
+ $ pip install --upgrade matlab-proxy>=0.4.0
201
+ ```
202
+
203
+ ### MacOS
204
+
205
+ MacOS support was introduced in package version `v0.5.0`.
206
+ It works best for MATLAB versions newer than R2022b.
207
+ Note: Figures *also* open in a separate windows on versions of MATLAB older than R2022b.
208
+
209
+ Install the version >=0.5.0 to use the package on MacOS.
210
+
211
+ ```bash
212
+ # To upgrade an existing installation of matlab-proxy package:
213
+ $ pip install --upgrade matlab-proxy>=0.5.0
214
+ ```
215
+
216
+ ### Windows Subsystem for Linux (WSL 2)
217
+
218
+ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
219
+
220
+ ## Using an already activated MATLAB with matlab-proxy
221
+ `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
222
+
223
+ ## Limitations
224
+ This package supports the same set of MATLAB features and commands as MATLAB® Online. For the full list, see
225
+ [Specifications and Limitations for MATLAB Online](https://www.mathworks.com/products/matlab-online/limitations.html).
226
+
227
+ Simulink Online is supported exclusively on Linux platforms starting from MATLAB R2024b.
228
+
229
+ ## Security
230
+ We take your security concerns seriously, and will attempt to address all concerns.
231
+ `matlab-proxy` uses several other python packages, and depend on them to fix their own vulnerabilities.
232
+
233
+ All security patches will be released as a new version of the package.
234
+ Patches are never backported to older versions or releases of the package.
235
+ Using the latest version will provide the latest available security updates or patches.
236
+
237
+ ## Feedback
238
+
239
+ We encourage you to try this repository with your environment and provide feedback.
240
+ If you encounter a technical issue or have an enhancement request, create an issue [here](https://github.com/mathworks/matlab-proxy/issues)
241
+
242
+ ---
243
+
244
+ Copyright 2020-2025 The MathWorks, Inc.
245
+
246
+ ---
@@ -3,11 +3,11 @@
3
3
 
4
4
  ----
5
5
 
6
- `matlab-proxy` is a Python® package which enables you to launch MATLAB® and access it from a web browser.
6
+ Use this Python® package `matlab-proxy` to start MATLAB® and access it from a web browser.
7
7
 
8
- Installation of this package creates an executable `matlab-proxy-app`, which launches MATLAB and provides a URL to access it.
8
+ Install this package to create an executable `matlab-proxy-app`, which starts MATLAB and provides you a URL to access it.
9
9
 
10
- The MATLAB Proxy is under active development. For support or to report issues, see the [Feedback](#feedback) section.
10
+ MATLAB Proxy is under active development. For support or to report issues, see [Feedback](#feedback).
11
11
 
12
12
  ----
13
13
 
@@ -23,17 +23,19 @@ The MATLAB Proxy is under active development. For support or to report issues, s
23
23
  - [Feedback](#feedback)
24
24
 
25
25
  ## Requirements
26
- * MATLAB® R2020b or later is installed and on the system PATH.
26
+ * MATLAB® R2020b or later, installed and added to the system PATH.
27
27
  ```bash
28
28
  # Confirm MATLAB is on the PATH
29
29
  which matlab
30
30
  ```
31
31
  * The dependencies required to run MATLAB.
32
- Refer to the Dockerfiles in the [matlab-deps](https://github.com/mathworks-ref-arch/container-images/tree/master/matlab-deps) repository for the desired version of MATLAB.
32
+ For details, refer to the Dockerfiles in the [matlab-deps](https://github.com/mathworks-ref-arch/container-images/tree/master/matlab-deps) repository for your desired version of MATLAB.
33
33
 
34
- * X Virtual Frame Buffer (Xvfb) : (only for Linux® based systems)
34
+ * X Virtual Frame Buffer (Xvfb) (only for Linux® based systems):
35
+
36
+ Installing Xvfb is optional (starting v0.11.0 of matlab-proxy) but highly recommended. Xvfb enables graphical abilities like plots and figures in the MATLAB desktop.
37
+ To install Xvfb on your Linux machine, use:
35
38
 
36
- Install it on your linux machine using:
37
39
  ```bash
38
40
  # On a Debian/Ubuntu based system:
39
41
  $ sudo apt install xvfb
@@ -46,7 +48,17 @@ The MATLAB Proxy is under active development. For support or to report issues, s
46
48
  $ sudo yum install xorg-x11-server-Xvfb
47
49
  ```
48
50
 
49
- *Note: The installation of Xvfb is **optional** (w.e.f. v0.11.0 of matlab-proxy). However, we highly recommend installing it.*
51
+
52
+ * Fluxbox Window Manager (only for Linux® based systems):
53
+
54
+ Installing fluxbox is optional but required to use Simulink Online.
55
+
56
+ Install fluxbox using:
57
+ ```bash
58
+ # On a Debian/Ubuntu based system:
59
+ $ sudo apt install fluxbox
60
+ ```
61
+
50
62
  * Python versions: **3.8** | **3.9** | **3.10** | **3.11**
51
63
  * [Browser Requirements](https://www.mathworks.com/support/requirements/browser-requirements.html)
52
64
  * Supported Operating Systems:
@@ -84,7 +96,7 @@ which matlab-proxy-app
84
96
 
85
97
  Once the `matlab-proxy` package is installed.
86
98
 
87
- * Open a Linux terminal and launch the application with
99
+ * Open a terminal and start `matlab-proxy-app`. On Linux, the command would be
88
100
  ```bash
89
101
  env MWI_BASE_URL="/matlab" matlab-proxy-app
90
102
  ```
@@ -131,7 +143,7 @@ The following options are available in the status panel (some options are only a
131
143
 
132
144
  ## Examples
133
145
  * For installing/usage in a Docker container, see this [Dockerfile](./examples/Dockerfile) and its [README](./examples/README.md).
134
- * For upgrading **matlab-proxy** in an existing Docker image, see this [Dockerfile.upgrade.matlab-proxy](./examples/Dockerfile.upgrade.matlab-proxy) and its [README](./examples/README.md#upgrading-matlab-proxy-package-in-a-docker-image).*
146
+ * For upgrading **matlab-proxy** in an existing Docker image, see this [Dockerfile.upgrade.matlab-proxy](./examples/Dockerfile.upgrade.matlab-proxy) and its [README](./examples/README.md#upgrading-matlab-proxy-package-in-a-docker-image).
135
147
  * For usage in a Jupyter environment, see [jupyter-matlab-proxy](https://github.com/mathworks/jupyter-matlab-proxy).
136
148
 
137
149
  ## Platform Support
@@ -169,8 +181,10 @@ To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installat
169
181
  `matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
170
182
 
171
183
  ## Limitations
172
- This package supports the same subset of MATLAB features and commands as MATLAB® Online, except there is no support for Simulink® Online.
173
- [Click here for a full list of Specifications and Limitations for MATLAB Online](https://www.mathworks.com/products/matlab-online/limitations.html).
184
+ This package supports the same set of MATLAB features and commands as MATLAB® Online. For the full list, see
185
+ [Specifications and Limitations for MATLAB Online](https://www.mathworks.com/products/matlab-online/limitations.html).
186
+
187
+ Simulink Online is supported exclusively on Linux platforms starting from MATLAB R2024b.
174
188
 
175
189
  ## Security
176
190
  We take your security concerns seriously, and will attempt to address all concerns.
@@ -31,8 +31,6 @@ import {
31
31
  selectLicensingMhlmHasEntitlements,
32
32
  selectIsEntitled,
33
33
  selectLicensingInfo,
34
- selectUseMOS,
35
- selectUseMRE,
36
34
  selectIsConcurrent,
37
35
  selectWasEverActive,
38
36
  selectIsConcurrencyEnabled,
@@ -73,8 +71,6 @@ function App () {
73
71
  const isAuthenticated = useSelector(selectIsAuthenticated);
74
72
  const authEnabled = useSelector(selectAuthEnabled);
75
73
  const licensingInfo = useSelector(selectLicensingInfo);
76
- const useMOS = useSelector(selectUseMOS);
77
- const useMRE = useSelector(selectUseMRE);
78
74
  const isSessionConcurrent = useSelector(selectIsConcurrent);
79
75
  const isActiveClient = useSelector(selectIsActiveClient);
80
76
  const isConcurrencyEnabled = useSelector(selectIsConcurrencyEnabled);
@@ -163,12 +159,11 @@ function App () {
163
159
  }, []);
164
160
 
165
161
  const htmlToRenderMATLAB = () => {
166
- let theHtmlToRenderMATLAB = useMOS
167
- ? 'index-matlabonlineserver.html'
168
- : 'index-jsd-cr.html';
169
- if (useMRE) {
170
- theHtmlToRenderMATLAB += `?mre=${encodeURIComponent(fullyQualifiedUrl)}`;
171
- }
162
+ let theHtmlToRenderMATLAB = 'index-jsd-cr.html';
163
+
164
+ // Add mre query parameter
165
+ theHtmlToRenderMATLAB += `?mre=${encodeURIComponent(fullyQualifiedUrl)}`;
166
+
172
167
  return theHtmlToRenderMATLAB;
173
168
  };
174
169
 
@@ -377,7 +372,6 @@ function App () {
377
372
  // process in development mode
378
373
 
379
374
  // MW Internal Comment: See g2992889 for a discussion on why a FQDN is required in the MRE parameter.
380
- // MW Internal Comment: Using websocket on breaks some UI components : `./index-matlabonlineserver.html?websocket=on&mre=${fullyQualifiedUrl}`;
381
375
  const matlabUrl = process.env.NODE_ENV === 'development'
382
376
  ? 'http://localhost:31515/index-jsd-cr.html'
383
377
  : `./${htmlToRenderMATLAB()}`;
@@ -41,26 +41,6 @@ export function authEnabled (state = false, action) {
41
41
  }
42
42
  }
43
43
 
44
- // Stores information on whether to use MOS HTML while rendering MATLAB.
45
- export function useMOS (state = false, action) {
46
- switch (action.type) {
47
- case RECEIVE_ENV_CONFIG:
48
- return action.config.useMOS;
49
- default:
50
- return state;
51
- }
52
- }
53
-
54
- // Stores information on whether to provide MRE parameter to HTML while rendering MATLAB.
55
- export function useMRE (state = false, action) {
56
- switch (action.type) {
57
- case RECEIVE_ENV_CONFIG:
58
- return action.config.useMRE;
59
- default:
60
- return state;
61
- }
62
- }
63
-
64
44
  // Stores timeout duration for idle timer.
65
45
  export function idleTimeoutDuration (state = null, action) {
66
46
  switch (action.type) {
@@ -413,8 +393,6 @@ export const matlab = combineReducers({
413
393
  versionOnPath: matlabVersionOnPath,
414
394
  supportedVersions: supportedMatlabVersions,
415
395
  busyStatus: matlabBusyStatus,
416
- useMOS,
417
- useMRE
418
396
  });
419
397
 
420
398
  export const serverStatus = combineReducers({
@@ -19,8 +19,6 @@ export const selectServerStatusFetchFailCount = state => state.serverStatus.fetc
19
19
  export const selectLoadUrl = state => state.loadUrl;
20
20
  export const selectError = state => state.error;
21
21
  export const selectWarnings = state => state.warnings;
22
- export const selectUseMOS = state => state.matlab.useMOS === true;
23
- export const selectUseMRE = state => state.matlab.useMRE === true;
24
22
  export const selectAuthEnabled = state => state.authentication.enabled;
25
23
  export const selectAuthToken = state => state.authentication.token;
26
24
  export const selectIsAuthenticated = state => state.authentication.status === true;
@@ -28,8 +28,6 @@ export const getEnvConfigResponse = {
28
28
  doc_url: state.envConfig.doc_url,
29
29
  extension_name: state.envConfig.extension_name,
30
30
  extension_name_short_description: state.envConfig.extension_name_short_description,
31
- useMOS: state.matlab.useMOS,
32
- useMRE: state.matlab.useMRE,
33
31
  authentication: state.authentication,
34
32
  matlab: {
35
33
  version: state.matlab.versionOnPath,
@@ -42,8 +42,6 @@ const state = {
42
42
  versionOnPath: 'R2023b',
43
43
  supportedVersions: ['R2020b', 'R2023b'],
44
44
  busyStatus: 'idle',
45
- useMOS: false,
46
- useMRE: false
47
45
  },
48
46
  authentication: {
49
47
  enabled: false,
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2024 The MathWorks, Inc.
1
+ # Copyright 2020-2025 The MathWorks, Inc.
2
2
 
3
3
  import asyncio
4
4
  import json
@@ -197,8 +197,6 @@ async def get_env_config(req):
197
197
  state = req.app["state"]
198
198
  config = state.settings["env_config"]
199
199
 
200
- config["useMOS"] = mwi_env.Experimental.should_use_mos_html()
201
- config["useMRE"] = mwi_env.Experimental.should_use_mre_html()
202
200
  config["isConcurrencyEnabled"] = IS_CONCURRENCY_CHECK_ENABLED
203
201
  # In a previously authenticated session, if the url is accessed without the token(using session cookie), send the token as well.
204
202
  config["authentication"] = {
@@ -34,6 +34,7 @@ from matlab_proxy.util.mwi.exceptions import (
34
34
  OnlineLicensingError,
35
35
  UIVisibleFatalError,
36
36
  XvfbError,
37
+ WindowManagerError,
37
38
  log_error,
38
39
  )
39
40
 
@@ -548,7 +549,7 @@ class AppState:
548
549
 
549
550
  if system.is_linux():
550
551
  # If Xvfb is on system PATH, check if it up and running.
551
- if self.settings["is_xvfb_available"] and (
552
+ if self.settings.get("is_xvfb_available", None) and (
552
553
  xvfb_process is None or xvfb_process.returncode is not None
553
554
  ):
554
555
  logger.debug(
@@ -994,17 +995,11 @@ class AppState:
994
995
  # The mwi_logs_dir is where MATLAB will write any subsequent logs
995
996
  matlab_env["MATLAB_LOG_DIR"] = str(self.mwi_logs_dir)
996
997
 
997
- # Set MW_CONNECTOR_CONTEXT_ROOT for MPA
998
- if mwi_env.Experimental.is_mpa_enabled():
999
- matlab_env["MW_CONNECTOR_CONTEXT_ROOT"] = self.settings.get("base_url", "/")
1000
- logger.info(
1001
- f"MW_CONNECTOR_CONTEXT_ROOT is set to: {matlab_env['MW_CONNECTOR_CONTEXT_ROOT']}"
1002
- )
1003
-
1004
- # Setup Simulink Online which requires a pre-warm stage
1005
- if mwi_env.Experimental.is_simulink_enabled():
1006
- logger.info("Enabling usage of Simulink Online...")
1007
- matlab_env["PREWARM_SIMULINK"] = "true"
998
+ # Set MW_CONNECTOR_CONTEXT_ROOT
999
+ matlab_env["MW_CONNECTOR_CONTEXT_ROOT"] = self.settings.get("base_url", "/")
1000
+ logger.info(
1001
+ f"MW_CONNECTOR_CONTEXT_ROOT is set to: {matlab_env['MW_CONNECTOR_CONTEXT_ROOT']}"
1002
+ )
1008
1003
 
1009
1004
  # Env setup related to logging
1010
1005
  # Very verbose logging in debug mode
@@ -1053,6 +1048,31 @@ class AppState:
1053
1048
  key: value for key, value in env_vars.items() if not key.startswith(prefix)
1054
1049
  }
1055
1050
 
1051
+ async def __start_window_manager(self, display=None):
1052
+ if display is None:
1053
+ logger.info("Not starting fluxbox as display is not provided")
1054
+ return None
1055
+
1056
+ wm_env = os.environ.copy()
1057
+ wm_env["DISPLAY"] = display
1058
+ wm_cmd = ["fluxbox", "-screen", "0", "-log", "/dev/null"]
1059
+
1060
+ try:
1061
+ logger.info(f"Starting window manager with DISPLAY={wm_env['DISPLAY']}")
1062
+ return await asyncio.create_subprocess_exec(
1063
+ *wm_cmd, close_fds=False, env=wm_env, stderr=asyncio.subprocess.PIPE
1064
+ )
1065
+
1066
+ except Exception as err:
1067
+ self.error = WindowManagerError(
1068
+ "Unable to start the Fluxbox Window Manager due to the following error: "
1069
+ + err
1070
+ )
1071
+ # Log the error on the console.
1072
+ log_error(logger, self.error)
1073
+
1074
+ return None
1075
+
1056
1076
  async def __start_xvfb_process(self):
1057
1077
  """Private method to start the xvfb process. Will set appropriate
1058
1078
  errors to self.error and return None when any exceptions are raised.
@@ -1074,7 +1094,7 @@ class AppState:
1074
1094
  )
1075
1095
  self.settings["matlab_display"] = ":" + str(display_port)
1076
1096
 
1077
- logger.debug(f"Started Xvfb with PID={xvfb.pid} on DISPLAY={display_port}")
1097
+ logger.info(f"Started Xvfb with PID={xvfb.pid} on DISPLAY={display_port}")
1078
1098
 
1079
1099
  return xvfb
1080
1100
 
@@ -1304,7 +1324,13 @@ class AppState:
1304
1324
 
1305
1325
  self.processes["xvfb"] = xvfb
1306
1326
 
1327
+ # Start Window Manager on linux if possible
1328
+ if system.is_linux() and self.settings["is_windowmanager_available"]:
1329
+ display = self.settings.get("matlab_display", None)
1330
+ await self.__start_window_manager(display)
1331
+
1307
1332
  try:
1333
+
1308
1334
  # Prepare ready file for the MATLAB process.
1309
1335
  self.create_logs_dir_for_MATLAB()
1310
1336
 
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 The MathWorks, Inc.
1
+ # Copyright 2023-2025 The MathWorks, Inc.
2
2
  from typing import Final, List
3
3
 
4
4
  """This module defines project-level constants"""
@@ -24,6 +24,7 @@ SUPPORTED_MATLAB_VERSIONS: Final[List[str]] = [
24
24
  "R2023b",
25
25
  "R2024a",
26
26
  "R2024b",
27
+ "R2025a",
27
28
  ]
28
29
 
29
30
  # This constant when set to True restricts the number of active sessions to one
@@ -1,8 +1,5 @@
1
- % Copyright 2020-2024 The MathWorks, Inc.
1
+ % Copyright 2020-2025 The MathWorks, Inc.
2
2
 
3
- if (strlength(getenv('MWI_BASE_URL')) > 0)
4
- connector.internal.setConfig('contextRoot', getenv('MWI_BASE_URL'));
5
- end
6
3
  evalc('connector.internal.Worker.start');
7
4
 
8
5
  % Add-on explorer is not supported in this environment.
@@ -218,6 +218,7 @@ def get_dev_settings(config):
218
218
  ),
219
219
  "warnings": [],
220
220
  "is_xvfb_available": False,
221
+ "is_windowmanager_available": False,
221
222
  "mwi_idle_timeout": None,
222
223
  }
223
224
 
@@ -271,12 +272,21 @@ def get(config_name=matlab_proxy.get_default_config_name(), dev=False):
271
272
  settings.update(get_server_settings(config_name))
272
273
 
273
274
  settings["is_xvfb_available"] = True if shutil.which("Xvfb") else False
275
+ settings["is_windowmanager_available"] = (
276
+ True if shutil.which("fluxbox") else False
277
+ )
274
278
 
275
279
  # Warn user if xvfb is not available on system path.
276
- if system.is_linux() and not settings["is_xvfb_available"]:
277
- warning = " Unable to find Xvfb on the system PATH. Xvfb enables graphical abilities like plots and figures in the MATLAB desktop.\nConsider adding Xvfb to the system PATH and restart matlab-proxy. See https://github.com/mathworks/matlab-proxy#requirements for information."
278
- logger.warning(warning)
279
- settings["warnings"].append(warning)
280
+ if system.is_linux():
281
+ if not settings["is_xvfb_available"]:
282
+ warning = " Unable to find Xvfb on the system PATH. Xvfb enables graphical abilities like plots and figures in the MATLAB desktop.\nConsider adding Xvfb to the system PATH and restart matlab-proxy.\nFor details, see https://github.com/mathworks/matlab-proxy#requirements."
283
+ logger.warning(warning)
284
+ settings["warnings"].append(warning)
285
+
286
+ if not settings["is_windowmanager_available"]:
287
+ warning = " Unable to find fluxbox on the system PATH. To use Simulink Online, add Fluxbox to the system PATH and restart matlab-proxy. For details, see https://github.com/mathworks/matlab-proxy#requirements."
288
+ logger.warning(warning)
289
+ settings["warnings"].append(warning)
280
290
 
281
291
  settings.update(get_matlab_settings())
282
292
 
@@ -674,12 +684,6 @@ def _get_matlab_cmd(matlab_executable_path, code_to_execute, nlm_conn_str):
674
684
  if system.is_windows():
675
685
  flag_to_hide_desktop.extend(["-noDisplayDesktop", "-wait", "-log"])
676
686
 
677
- mpa_flags = (
678
- mwi_env.Experimental.get_mpa_flags()
679
- if mwi_env.Experimental.is_mpa_enabled()
680
- else ""
681
- )
682
-
683
687
  profile_matlab_startup = (
684
688
  "-timing" if mwi_env.Experimental.is_matlab_startup_profiling_enabled() else ""
685
689
  )
@@ -691,7 +695,7 @@ def _get_matlab_cmd(matlab_executable_path, code_to_execute, nlm_conn_str):
691
695
  "-softwareopengl",
692
696
  # " v=mvm ",
693
697
  *matlab_lic_mode,
694
- *mpa_flags,
698
+ "-externalUI",
695
699
  profile_matlab_startup,
696
700
  "-r",
697
701
  code_to_execute,