plone / plone.recipe.zope2instance

zc.buildout recipe to setup and configure a Zope 2 instance.
https://pypi.org/project/plone.recipe.zope2instance
6 stars 23 forks source link

Customizing the WSGI pipeline #116

Closed ale-rt closed 3 years ago

ale-rt commented 5 years ago

It would be cool to customize the pipeline so that some middleware can be used for whatever reason. One immediate example is to use the https://github.com/hathawsh/slowlog middleware as an immediately working and available replacement for Products.LongRequestLogger in Python 3: see https://github.com/zopefoundation/Products.LongRequestLogger/issues/4

ale-rt commented 5 years ago

In current master the pipeline is setup in the wsgi.ini like this: https://github.com/plone/plone.recipe.zope2instance/blob/460a15dfa34bacf6211bc83edd2c865714e46c15/src/plone/recipe/zope2instance/recipe.py#L1268 And the pipeline variable seems to be computed only here: https://github.com/plone/plone.recipe.zope2instance/blob/460a15dfa34bacf6211bc83edd2c865714e46c15/src/plone/recipe/zope2instance/recipe.py#L707-L712

Any thoughts about the best way to implement this?

I would say that we could provide a pipeline option for this recipe with the default value of: ['egg:Zope#httpexceptions', 'zope']. Then this default can be overridden using a proper buildout configuration.