0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-04 10:39:43 +08:00
discourse/plugins/discourse-lti
Alan Guo Xiang Tan 661ea0c2bd
PERF: Avoid replacing CSP nonces in non-cacheable responses (#42008)
CSP nonce placeholders are replaced after rendering by scanning and
copying the complete response body, even when the response could not
enter the anonymous cache.

Generate the final nonce before rendering non-cacheable requests so
templates can emit it directly. Requests eligible for anonymous caching
continue to use placeholders, preserving a unique nonce each time cached
HTML is served.

On a site with 11K categories for a logged in user, ~400ms was spent
executing `gsub` on the response body.
2026-07-24 09:49:01 +08:00
..
assets/javascripts DEV: Replace discourseComputed with @computed across the codebase (#36840) 2026-03-02 17:55:24 -03:00
config I18N: Update translations (#38272) 2026-03-10 09:52:23 +01:00
lib/discourse_lti PERF: Avoid replacing CSP nonces in non-cacheable responses (#42008) 2026-07-24 09:49:01 +08:00
public/javascripts
spec DEV: Update rubocop (#38721) 2026-03-20 00:39:52 +01:00
package.json DEV: Add a script for generating external types in discourse-types (#37095) 2026-03-09 20:37:43 +01:00
plugin.rb UX: add admin sidebar icons for preinstalled plugins (#36764) 2025-12-18 16:39:00 -05:00
README.md
tsconfig.json DEV: Add a script for generating external types in discourse-types (#37095) 2026-03-09 20:37:43 +01:00

Learning Management System Integration Plugin

A plugin which allows Discourse to act as an Learning Tools Interoperability (1.3) Tool

For more information, please see: https://meta.discourse.org/t/learning-management-system-integration-lti-1-3-authentication/196174