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

ESI rendering for complex CMS components #4

Open
ppodgorsek opened this issue Jul 14, 2019 · 0 comments
Open

ESI rendering for complex CMS components #4

ppodgorsek opened this issue Jul 14, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@ppodgorsek
Copy link
Owner

ppodgorsek commented Jul 14, 2019

A new boolean attribute ("esiRendering") should be added on CMS components: when this attribute is true, components should not be rendered inside the page referencing them. Instead, an ESI fragment should be declared in lieu of it.

That fragment should have the following format:

https://<domain name>:<port>/<application context>/esi-cache/<component label>?<additional parameters>

The additional parameters could include information such as the user/group/segment which should be used to render the component.

A Varnish configuration file should also be provided to match this configuration. The grace period should be extremely long by default.
The documentation should clearly state that only Varnish should be allowed to access that cached URL, it should be blocked for all requests originating from outside of the datacentre.

Furthermore, Varnish fragments should have their own filter chain to avoid going through the StorefrontFilter as the latter is user-dependent.

https://github.com/ppodgorsek/easy-esi can be used to speed up the development work.
https://github.com/ppodgorsek/juncacher can be used to invalidate the component once it has been modified.

@ppodgorsek ppodgorsek added the enhancement New feature or request label Jul 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant