177411045a
* Installed @tryghost/members-api@0.2.0 refs #10886 This will allow us to mount one router rather than having a static and api router. * Added members v2 api directory refs #10886 This brings the members api more inline with how the rest of the apis work within Ghost. * Mounted the members api app to the api route closes #10886 This successfully mounts the api and the static pages to the /api/v2/members/ URL. * Installed @tryghost/members-auth-pages@1.0.0 refs #10886 This updates the auth pages to work correctly with the new mount point. * Changed membersUrl in members.js to use members api refs #10886 This keeps the membersUrl lined up with the path for the static members pages. * Removed old members static mount point refs #10886 These are no longer used, nor desired. * Remove superfluous code from members service refs #10886 This remove the gateway getter which is no longer used, and the fallback for members not enabled - which is handled within the members app. * Updated ssoOrigin to use admin url refs #10886 This ensures that sites running on a separate admin domain have the correct ssoOrigin, which is used to ensure only the designated auth pages are used to hit the authentication endpoints. Since the auth pages are now hosted under the `/ghost` url, they will be on the admin origin and not the site origin
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
const debug = require('ghost-ignition').debug('web:parent');
|
|
const express = require('express');
|
|
const config = require('../config');
|
|
const compress = require('compression');
|
|
const netjet = require('netjet');
|
|
const shared = require('./shared');
|
|
|
|
module.exports = function setupParentApp(options = {}) {
|
|
debug('ParentApp setup start');
|
|
const parentApp = express();
|
|
|
|
// ## Global settings
|
|
|
|
// Make sure 'req.secure' is valid for proxied requests
|
|
// (X-Forwarded-Proto header will be checked, if present)
|
|
parentApp.enable('trust proxy');
|
|
|
|
parentApp.use(shared.middlewares.logRequest);
|
|
|
|
// Register event emmiter on req/res to trigger cache invalidation webhook event
|
|
parentApp.use(shared.middlewares.emitEvents);
|
|
|
|
// enabled gzip compression by default
|
|
if (config.get('compress') !== false) {
|
|
parentApp.use(compress());
|
|
}
|
|
|
|
// Preload link headers
|
|
if (config.get('preloadHeaders')) {
|
|
parentApp.use(netjet({
|
|
cache: {
|
|
max: config.get('preloadHeaders')
|
|
}
|
|
}));
|
|
}
|
|
|
|
// This sets global res.locals which are needed everywhere
|
|
parentApp.use(shared.middlewares.ghostLocals);
|
|
|
|
// Mount the apps on the parentApp
|
|
|
|
// API
|
|
// @TODO: finish refactoring the API app
|
|
parentApp.use('/ghost/api', require('./api')());
|
|
|
|
// ADMIN
|
|
parentApp.use('/ghost', require('./admin')());
|
|
|
|
// BLOG
|
|
parentApp.use(require('./site')(options));
|
|
|
|
debug('ParentApp setup end');
|
|
|
|
return parentApp;
|
|
};
|