fix: telemetry

This commit is contained in:
Nick
2019-02-02 01:17:09 -05:00
parent 3ede499732
commit 44e87cb60b
12 changed files with 400 additions and 310 deletions

View File

@@ -71,38 +71,14 @@ module.exports = () => {
app.get('*', async (req, res) => {
let packageObj = await fs.readJson(path.join(WIKI.ROOTPATH, 'package.json'))
res.render('setup', {
packageObj,
telemetryClientID: WIKI.telemetry.cid
})
res.render('setup', { packageObj })
})
/**
* Finalize
*/
app.post('/finalize', async (req, res) => {
WIKI.telemetry.sendEvent('setup', 'finalize')
try {
// Basic checks
if (!semver.satisfies(process.version, '>=10.14')) {
throw new Error('Node.js 10.14.x or later required!')
}
// Upgrade from WIKI.js 1.x?
if (req.body.upgrade) {
await WIKI.system.upgradeFromMongo({
mongoCnStr: cfgHelper.parseConfigValue(req.body.upgMongo)
})
}
// Create directory structure
WIKI.logger.info('Creating data directories...')
const dataPath = path.join(process.cwd(), 'data')
await fs.ensureDir(dataPath)
await fs.emptyDir(path.join(dataPath, 'cache'))
await fs.ensureDir(path.join(dataPath, 'uploads'))
// Set config
_.set(WIKI.config, 'auth', {
audience: 'urn:wiki.js',
@@ -149,7 +125,7 @@ module.exports = () => {
_.set(WIKI.config, 'sessionSecret', (await crypto.randomBytesAsync(32)).toString('hex'))
_.set(WIKI.config, 'telemetry', {
isEnabled: req.body.telemetry === true,
clientId: WIKI.telemetry.cid
clientId: uuid()
})
_.set(WIKI.config, 'theming', {
theme: 'default',
@@ -157,6 +133,30 @@ module.exports = () => {
})
_.set(WIKI.config, 'title', 'Wiki.js')
// Init Telemetry
WIKI.kernel.initTelemetry()
WIKI.telemetry.sendEvent('setup', 'install-start')
// Basic checks
if (!semver.satisfies(process.version, '>=10.14')) {
throw new Error('Node.js 10.14.x or later required!')
}
// Upgrade from WIKI.js 1.x?
if (req.body.upgrade) {
WIKI.telemetry.sendEvent('setup', 'install-mongo-upgrade')
await WIKI.system.upgradeFromMongo({
mongoCnStr: cfgHelper.parseConfigValue(req.body.upgMongo)
})
}
// Create directory structure
WIKI.logger.info('Creating data directories...')
const dataPath = path.join(process.cwd(), 'data')
await fs.ensureDir(dataPath)
await fs.emptyDir(path.join(dataPath, 'cache'))
await fs.ensureDir(path.join(dataPath, 'uploads'))
// Generate certificates
WIKI.logger.info('Generating certificates...')
const certs = crypto.generateKeyPairSync('rsa', {
@@ -244,6 +244,8 @@ module.exports = () => {
await WIKI.models.searchEngines.refreshSearchEnginesFromDisk()
await WIKI.models.searchEngines.query().patch({ isEnabled: true }).where('key', 'db')
WIKI.telemetry.sendEvent('setup', 'install-loadedmodules')
// Load storage targets
await WIKI.models.storage.refreshTargetsFromDisk()
@@ -305,6 +307,7 @@ module.exports = () => {
})
WIKI.logger.info('Setup is complete!')
WIKI.telemetry.sendEvent('setup', 'install-completed')
res.json({
ok: true,
redirectPath: '/',
@@ -321,6 +324,7 @@ module.exports = () => {
}, 1000)
})
} catch (err) {
WIKI.telemetry.sendError(err)
res.json({ ok: false, error: err.message })
}
})