refactor: updated loggers + admin UI improvements + setup fixes

This commit is contained in:
NGPixel
2018-03-12 00:09:54 -04:00
parent 6baa277f51
commit 8e09c6fce1
26 changed files with 434 additions and 178 deletions

View File

@@ -53,7 +53,6 @@ defaults:
configNamespaces:
- auth
- features
- git
- logging
- site
- theme

View File

@@ -33,12 +33,11 @@ module.exports = {
// Load authentication strategies
const modules = _.values(autoload(path.join(WIKI.SERVERPATH, 'modules/authentication')))
console.info(WIKI.config.auth)
_.forEach(modules, (strategy) => {
const strategyConfig = _.get(WIKI.config.auth.strategies, strategy.key, {})
const strategyConfig = _.get(WIKI.config.auth.strategies, strategy.key, { isEnabled: false })
strategyConfig.callbackURL = `${WIKI.config.site.host}${WIKI.config.site.path}login/${strategy.key}/callback`
strategy.config = strategyConfig
if (strategyConfig.isEnabled) {
console.info(strategy.title)
try {
strategy.init(passport, strategyConfig)
} catch (err) {

View File

@@ -1,37 +1,25 @@
const _ = require('lodash')
const cluster = require('cluster')
const fs = require('fs-extra')
const path = require('path')
const winston = require('winston')
/* global WIKI */
module.exports = {
loggers: {},
init() {
let winston = require('winston')
let logger = new (winston.Logger)({
let logger = winston.createLogger({
level: WIKI.config.logLevel,
transports: []
})
logger.filters.push((level, msg) => {
let processName = (cluster.isMaster) ? 'MASTER' : `WORKER-${cluster.worker.id}`
return '[' + processName + '] ' + msg
format: winston.format.combine(
winston.format.colorize(),
winston.format.label({ label: (cluster.isMaster) ? 'MASTER' : `WORKER-${cluster.worker.id}` }),
winston.format.timestamp(),
winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`)
)
})
_.forOwn(_.omitBy(WIKI.config.logging.loggers, s => s.enabled === false), (loggerConfig, loggerKey) => {
let loggerModule = require(`../modules/logging/${loggerKey}`)
loggerModule.init(logger, loggerConfig)
fs.readFile(path.join(WIKI.ROOTPATH, `assets/svg/auth-icon-${loggerKey}.svg`), 'utf8').then(iconData => {
logger.icon = iconData
}).catch(err => {
if (err.code === 'ENOENT') {
logger.icon = '[missing icon]'
} else {
logger.error(err)
}
})
this.loggers[logger.key] = loggerModule
})

View File

@@ -17,7 +17,7 @@ module.exports = {
AuthenticationQuery: {
providers(obj, args, context, info) {
let prv = _.map(WIKI.auth.strategies, str => ({
isEnabled: true,
isEnabled: str.config.isEnabled,
key: str.key,
props: str.props,
title: str.title,

View File

@@ -24,9 +24,9 @@ module.exports = {
callback(null, true)
}
logger.add(BugsnagLogger, {
logger.add(new BugsnagLogger({
level: 'warn',
key: conf.key
})
}))
}
}

View File

@@ -11,12 +11,12 @@ module.exports = {
title: 'Console',
props: [],
init (logger, conf) {
logger.add(winston.transports.Console, {
logger.add(new winston.transports.Console({
level: WIKI.config.logLevel,
prettyPrint: true,
colorize: true,
silent: false,
timestamp: true
})
}))
}
}

View File

@@ -10,12 +10,12 @@ module.exports = {
props: ['token', 'subdomain'],
init (logger, conf) {
require('winston-loggly-bulk')
logger.add(winston.transports.Loggly, {
logger.add(new winston.transports.Loggly({
token: conf.token,
subdomain: conf.subdomain,
tags: ['wiki-js'],
level: 'warn',
json: true
})
}))
}
}

View File

@@ -10,11 +10,11 @@ module.exports = {
props: ['host', 'port'],
init (logger, conf) {
require('winston-papertrail').Papertrail // eslint-disable-line no-unused-expressions
logger.add(winston.transports.Papertrail, {
logger.add(new winston.transports.Papertrail({
host: conf.host,
port: conf.port,
level: 'warn',
program: 'wiki.js'
})
}))
}
}

View File

@@ -24,9 +24,9 @@ module.exports = {
callback(null, true)
}
logger.add(RollbarLogger, {
logger.add(new RollbarLogger({
level: 'warn',
key: conf.key
})
}))
}
}

View File

@@ -24,9 +24,9 @@ module.exports = {
callback(null, true)
}
logger.add(SentryLogger, {
logger.add(new SentryLogger({
level: 'warn',
key: conf.key
})
}))
}
}

View File

@@ -276,7 +276,6 @@ module.exports = () => {
// Populate config namespaces
WIKI.config.auth = WIKI.config.auth || {}
WIKI.config.features = WIKI.config.features || {}
WIKI.config.git = WIKI.config.git || {}
WIKI.config.logging = WIKI.config.logging || {}
WIKI.config.site = WIKI.config.site || {}
WIKI.config.theme = WIKI.config.theme || {}
@@ -290,7 +289,7 @@ module.exports = () => {
// Auth namespace
_.set(WIKI.config.auth, 'public', req.body.public === 'true')
_.set(WIKI.config.auth, 'strategies.local.enabled', true)
_.set(WIKI.config.auth, 'strategies.local.isEnabled', true)
_.set(WIKI.config.auth, 'strategies.local.allowSelfRegister', req.body.selfRegister === 'true')
// Logging namespace

View File

@@ -3,8 +3,9 @@ extends ../master.pug
block body
body
#app.is-fullscreen
.onboarding
img(src='/svg/logo-wikijs.svg', alt='Wiki.js')
h1= t('welcome.title')
h2= t('welcome.subtitle')
a.button.is-blue(href='/e/home')= t('welcome.createhome')
v-app
.onboarding
img(src='/svg/logo-wikijs.svg', alt='Wiki.js')
h1= t('welcome.title')
h2= t('welcome.subtitle')
v-btn(color='primary', href='/e/home')= t('welcome.createhome')

View File

@@ -4,7 +4,7 @@ const Promise = require('bluebird')
module.exports = Promise.join(
WIKI.db.onReady,
WIKI.configSvc.loadFromDb(['features', 'git', 'logging', 'site', 'uploads'])
WIKI.configSvc.loadFromDb(['features', 'logging', 'site', 'uploads'])
).then(() => {
const path = require('path')
@@ -25,7 +25,7 @@ module.exports = Promise.join(
const i18nBackend = require('i18next-node-fs-backend')
WIKI.lang.use(i18nBackend).init({
load: 'languageOnly',
ns: ['common', 'admin', 'auth', 'errors', 'git'],
ns: ['common', 'admin', 'auth', 'errors'],
defaultNS: 'common',
saveMissing: false,
preload: [WIKI.config.lang],