cubicweb #17062821 Add a "pyramid" instance configuration type [validation pending]

(description taken from patch https://www.cubicweb.org/patch/17062587)

In a new module 'cubicweb.pyramid.config' we define a "pyramid" instance configuration type. The noticeable feature of this configuration is that it manages a 'development.ini' file that gets installed in application home (along with .conf file). This file is templated and includes generated values for secrets of session and authtk tokens.

This means that we can just call:

pserve etc/cubicweb.d//development.ini

or

gunicorn --paste etc/cubicweb.d//development.ini -b :8080

just after instance creation to get a pyramid instance running without having to hack around a 'pyramid.ini' file.

This patch drops 'development.ini' from skeleton and moves it in cubicweb/pyramid so that it gets installed at instance creation which is more appropriate than in cube creation.

The new configuration class sets "cubicweb.bwcompat" setting to false so it is not intended to replace the "all-in-one" configuration type (which would require a bit more work). This configuration is close to the the 'repository' configuration type with just a couple of options from WebConfiguration that are needed for Pyramid (anonymous user/password plus some miscellaneous options that I'm not so sure are really needed). Note, in particular, that we do not pull CORS settings to be injected as a WSGI middleware like in wsgi_application_from_cwconfig() since I believe this should be left as an end-user responsibility and since this can be defined in a standard way in paste configuration. This configuration inherits from ServerConfiguration but registers the same appobjects as WebConfiguration.

prioritynormal
typeenhancement
done in3.25.0
load1.000
load left0.000
closed by<not specified>
patch[pyramid] Add a "pyramid" instance configuration type [applied]