
"assets": Config of the assets manager

    "basePath": Where all assets are (normally /app/assets/) expected to have sub-folders "html", "images", "json", "sfx', "styles"


"router": Config of the router (not the routes)

    "getRolesFrom": How to get the roles, can be an array of string or string representing a function 
                    (normally app.User.getRoles : will thus use getRoles method of the user class) 

    "controllersPath": Where all controllers are (normally /app/controllers/)
    "modelsPath": Where all models are (normally /app/models/)
    "viewsPath": Where all views are (normally /app/views/) 

    "libsBaseClasses": Array of application libraries to preload 
        "path": path below /app/libs, 
        "classes": Array of classes (= scripts names) to load,
        "dependencies" : Object where 
            KEY is the class name that depends on something
            VALUE is an Array of dependencies classes (= scripts names) (to load before the KEY class can be loaded)

    "masterController": class name of the master controller that shall instanciated before any other controller (don't forget to preload it in the libs or elsewhere),
    "defaultMasterTemplate": The default view name used by the mastercontroller (the view that fills the page's body)


"logger": Config of the logging system
    "enabled": Well...
    "levels": Array with possible values "err","warn": messages of levels present here are posted to postUrl
    "latestErrsMax": Number of log entries to keep in app.latestErrors (use in support page)
    "postUrl": Where to post the json of a logger entry


"userLib": Config of the user library (core or custom)
    "className": If present, will be used to overwrite the vanilla-core User class by convention : "myUser", in libs,

    Options below depend on the custom user class, here's for EIC :

    "authEndpoint": API url to check if authenticated and get the auth redirect URL if not,
    "logoutEndpoint": API url to logout,
    "apiDiscoveryEndpoint": API url for services discovery
    "resourcePermissionsEndpoint": API url for permissions discovery
    "apiStage": Stage name or '*', used to filter API services discovered
    "apiStageExceptions": Object where
        KEY is business entity name (like in permissions)
        VALUE is an object where
            KEY is the action name on the business entity (like in permissions)
            VALUE is an object where
                "method" : http method to use
                "uri": the uri to call
    
    "authForwardDomain": if true sets the header "x-requested-path" to the url path, when authenticating (used for original url preservation across EUlogin)


"messageBus": Config of the message bus library
    "enabled": well...
    "pathToWorker": path to the websocket worker script ("/core/libs/MessageBusWorker.js" unless custom),
    "protocol": (should really be "wss://" as "ws://" is insecure and would come with all sorts of browser limitations)
    "port": ("" to use same as for web which is recommanded to avoid browser & firewall limitations)
    "path": path part of the websocket URL where you'll be http-upgraded ("/api/msgbus")
    "connectTimeout": well... (in seconds)
    "autoReconnect": wait that many seconds before attempting a FIRST reconnect on disconnection. Carefull not to overload the server ! (5 is cool)
    "autoReconnectTimeFactor": on every new attempt, multiply the previous delay by this factor (float), so retrials are more and more time-spaced (1.3 is cool)
    "autoReconnectTimeMax": max reconnect delay not to go over when autoReconnectTimeFactor is >1  (30 is cool)
    "autoReconnectJitterPercent": percentage of randomness applied on reconnection times.
                                  Important so that after a server-down, not everyone retries precisely at the same time
                                  (10 is cool)

"squeeze": Config of the squeezer (read by the squeezer during deploy, and by sparc)

    "indexDefaults" : What to put in the index page whan no scripts are "setIndexPage" or no styles are "setIndexPage"
        "scripts" : Array of script paths (from url root) that will end-up as script tags ([ "/core/Sparc-core-1.0.js" ])
        "styles" : Array of css paths (from url root) that will end-up as link tags  (["/app/thirdparty/eicui/eicui-2.0.css"])

    "packages" : Array of packages objects (also called "dragées") where
            "target": the name of the concatenated script to create, that willend-up in /squeezed
            "sources": Array of scripts (url paths) to concatenate
            "compressed": will produce a ".js.gz" if true. Do not use in AWS as cloudfront does compression on the fly, 
                          and doesn't know how to properly send a gzip (missing content-encoding header)
            "minify": minify if true (using uglify-js)
            "mangle": mangle if true (using uglify-js),
            "setIndexPage": If true, adds a script tag in the index.html page pointing to this target

